You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by gs...@apache.org on 2008/04/18 17:05:23 UTC

svn commit: r649560 [2/3] - in /labs/vysper/src/main/java/org/apache/vysper/xmpp/addressing: ./ stringprep/

Added: labs/vysper/src/main/java/org/apache/vysper/xmpp/addressing/stringprep/StringPrepConstants.java
URL: http://svn.apache.org/viewvc/labs/vysper/src/main/java/org/apache/vysper/xmpp/addressing/stringprep/StringPrepConstants.java?rev=649560&view=auto
==============================================================================
--- labs/vysper/src/main/java/org/apache/vysper/xmpp/addressing/stringprep/StringPrepConstants.java (added)
+++ labs/vysper/src/main/java/org/apache/vysper/xmpp/addressing/stringprep/StringPrepConstants.java Fri Apr 18 08:05:15 2008
@@ -0,0 +1,2874 @@
+package org.apache.vysper.xmpp.addressing.stringprep;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.vysper.util.annotations.RfcCompliant;
+
+/**
+ * This auxiliary class contains all character maps/sets specified by RFC3454.
+ * 
+ * @see http://www.ietf.org/rfc/rfc3454.txt
+ * @author Gerolf Seitz (gseitz@apache.org)
+ * 
+ */
+public class StringPrepConstants {
+	@RfcCompliant(rfc = "3454", section = "B.1")
+	public static final Map<String, String> B_1_CommonlyMappedtoNothing;
+	@RfcCompliant(rfc = "3454", section = "B.2")
+	public static final Map<String, String> B_2_MappingForCaseFoldingUsedWithKFC;
+	public static final Map<String, String> B_3_MappingForCaseFoldingWithNoNormalization;
+	@RfcCompliant(rfc = "3454", section = "C.1.1")
+	public static final Set<String> C_1_1_AsciiSpaceCharacters;
+	@RfcCompliant(rfc = "3454", section = "C.1.2")
+	public static final Set<String> C_1_2_NonAsciiSpaceCharacters;
+	@RfcCompliant(rfc = "3454", section = "C.2.1")
+	public static final Set<String> C_2_1_AsciiControlCharacters;
+	@RfcCompliant(rfc = "3454", section = "C.2.2")
+	public static final Set<String> C_2_2_NonAsciiControlCharacters;
+	@RfcCompliant(rfc = "3454", section = "C.3")
+	public static final Set<String> C_3_PrivateUse;
+	@RfcCompliant(rfc = "3454", section = "C.4")
+	public static final Set<String> C_4_NonCharacterCodePoints;
+	@RfcCompliant(rfc = "3454", section = "C.5")
+	public static final Set<String> C_5_SurrogateCodes;
+	@RfcCompliant(rfc = "3454", section = "C.6")
+	public static final Set<String> C_6_InappropriateForPlainText;
+	@RfcCompliant(rfc = "3454", section = "C.7")
+	public static final Set<String> C_7_InappropriateForCanonicalRepresentation;
+	@RfcCompliant(rfc = "3454", section = "C.8")
+	public static final Set<String> C_8_ChangeDisplayPropertiesOrAreDeprecated;
+	@RfcCompliant(rfc = "3454", section = "C.9")
+	public static final Set<String> C_9_TaggingCharacters;
+	@RfcCompliant(rfc = "3454", section = "D.1")
+	public static final Set<String> D_1_CharactersWithBiDiPropertiesRorAl;
+	@RfcCompliant(rfc = "3454", section = "D.2")
+	public static final Set<String> D_2_CharactersWithBiDiPropertyL;
+
+	static {
+		B_1_CommonlyMappedtoNothing = build_B_1_CommonlyMappedtoNothing();
+		B_2_MappingForCaseFoldingUsedWithKFC = build_B_2_MappingForCaseFoldingUsedWithKFC();
+		B_3_MappingForCaseFoldingWithNoNormalization = build_B_3_MappingForCaseFoldingWithNoNormalization();
+		C_1_1_AsciiSpaceCharacters = build_C_1_1_AsciiSpaceCharacters();
+		C_1_2_NonAsciiSpaceCharacters = build_C_1_2_NonAsciiSpaceCharacters();
+		C_2_1_AsciiControlCharacters = build_C_2_1_AsciiControlCharacters();
+		C_2_2_NonAsciiControlCharacters = build_C_2_2_NonAsciiControlCharacters();
+		C_3_PrivateUse = build_C_3_PrivateUse();
+		C_4_NonCharacterCodePoints = build_C_4_NonCharacterCodePoints();
+		C_5_SurrogateCodes = build_C_5_SurrogateCodes();
+		C_6_InappropriateForPlainText = build_C_6_InappropriateForPlainText();
+		C_7_InappropriateForCanonicalRepresentation = build_C_7_InappropriateForCanonicalRepresentation();
+		C_8_ChangeDisplayPropertiesOrAreDeprecated = build_C_8_ChangeDisplayPropertiesOrAreDeprecated();
+		C_9_TaggingCharacters = build_C_9_TaggingCharacters();
+		D_1_CharactersWithBiDiPropertiesRorAl = build_D_1_CharactersWithBiDiPropertiesRorAl();
+		D_2_CharactersWithBiDiPropertyL = build_D_2_CharactersWithBiDiPropertyL();
+	}
+
+	private static final Map<String, String> build_B_1_CommonlyMappedtoNothing() {
+		Map<String, String> b_1 = new HashMap<String, String>();
+		b_1.put("\u00AD", "");
+		b_1.put("\u034F", "");
+		b_1.put("\u1806", "");
+		b_1.put("\u180B", "");
+		b_1.put("\u180C", "");
+		b_1.put("\u180D", "");
+		b_1.put("\u200B", "");
+		b_1.put("\u200C", "");
+		b_1.put("\u200D", "");
+		b_1.put("\u2060", "");
+		b_1.put("\uFE00", "");
+		b_1.put("\uFE01", "");
+		b_1.put("\uFE02", "");
+		b_1.put("\uFE03", "");
+		b_1.put("\uFE04", "");
+		b_1.put("\uFE05", "");
+		b_1.put("\uFE06", "");
+		b_1.put("\uFE07", "");
+		b_1.put("\uFE08", "");
+		b_1.put("\uFE09", "");
+		b_1.put("\uFE0A", "");
+		b_1.put("\uFE0B", "");
+		b_1.put("\uFE0C", "");
+		b_1.put("\uFE0D", "");
+		b_1.put("\uFE0E", "");
+		b_1.put("\uFE0F", "");
+		b_1.put("\uFEFF", "");
+		b_1.put("\u2060", "");
+		b_1.put("\uFE00", "");
+		b_1.put("\uFE01", "");
+		b_1.put("\uFE02", "");
+		b_1.put("\uFE03", "");
+		b_1.put("\uFE04", "");
+		b_1.put("\uFE05", "");
+		b_1.put("\uFE06", "");
+		b_1.put("\uFE07", "");
+		b_1.put("\uFE08", "");
+		b_1.put("\uFE09", "");
+		b_1.put("\uFE0A", "");
+		b_1.put("\uFE0B", "");
+		b_1.put("\uFE0C", "");
+		b_1.put("\uFE0D", "");
+		b_1.put("\uFE0E", "");
+		b_1.put("\uFE0F", "");
+		b_1.put("\uFEFF", "");
+		return Collections.unmodifiableMap(b_1);
+	}
+
+	private static final Map<String, String> build_B_2_MappingForCaseFoldingUsedWithKFC() {
+		Map<String, String> b_2 = new HashMap<String, String>();
+		b_2.put("\u0041", "\u0061");
+		b_2.put("\u0042", "\u0062");
+		b_2.put("\u0043", "\u0063");
+		b_2.put("\u0044", "\u0064");
+		b_2.put("\u0045", "\u0065");
+		b_2.put("\u0046", "\u0066");
+		b_2.put("\u0047", "\u0067");
+		b_2.put("\u0048", "\u0068");
+		b_2.put("\u0049", "\u0069");
+		b_2.put("\u004A", "\u006A");
+		b_2.put("\u004B", "\u006B");
+		b_2.put("\u004C", "\u006C");
+		b_2.put("\u004D", "\u006D");
+		b_2.put("\u004E", "\u006E");
+		b_2.put("\u004F", "\u006F");
+		b_2.put("\u0050", "\u0070");
+		b_2.put("\u0051", "\u0071");
+		b_2.put("\u0052", "\u0072");
+		b_2.put("\u0053", "\u0073");
+		b_2.put("\u0054", "\u0074");
+		b_2.put("\u0055", "\u0075");
+		b_2.put("\u0056", "\u0076");
+		b_2.put("\u0057", "\u0077");
+		b_2.put("\u0058", "\u0078");
+		b_2.put("\u0059", "\u0079");
+		b_2.put("\u005A", "\u007A");
+		b_2.put("\u00B5", "\u03BC");
+		b_2.put("\u00C0", "\u00E0");
+		b_2.put("\u00C1", "\u00E1");
+		b_2.put("\u00C2", "\u00E2");
+		b_2.put("\u00C3", "\u00E3");
+		b_2.put("\u00C4", "\u00E4");
+		b_2.put("\u00C5", "\u00E5");
+		b_2.put("\u00C6", "\u00E6");
+		b_2.put("\u00C7", "\u00E7");
+		b_2.put("\u00C8", "\u00E8");
+		b_2.put("\u00C9", "\u00E9");
+		b_2.put("\u00CA", "\u00EA");
+		b_2.put("\u00CB", "\u00EB");
+		b_2.put("\u00CC", "\u00EC");
+		b_2.put("\u00CD", "\u00ED");
+		b_2.put("\u00CE", "\u00EE");
+		b_2.put("\u00CF", "\u00EF");
+		b_2.put("\u00D0", "\u00F0");
+		b_2.put("\u00D1", "\u00F1");
+		b_2.put("\u00D2", "\u00F2");
+		b_2.put("\u00D3", "\u00F3");
+		b_2.put("\u00D4", "\u00F4");
+		b_2.put("\u00D5", "\u00F5");
+		b_2.put("\u00D6", "\u00F6");
+		b_2.put("\u00D8", "\u00F8");
+		b_2.put("\u00D9", "\u00F9");
+		b_2.put("\u00DA", "\u00FA");
+		b_2.put("\u00DB", "\u00FB");
+		b_2.put("\u00DC", "\u00FC");
+		b_2.put("\u00DD", "\u00FD");
+		b_2.put("\u00DE", "\u00FE");
+		b_2.put("\u00DF", "\u0073\u0073");
+		b_2.put("\u0100", "\u0101");
+		b_2.put("\u0102", "\u0103");
+		b_2.put("\u0104", "\u0105");
+		b_2.put("\u0106", "\u0107");
+		b_2.put("\u0108", "\u0109");
+		b_2.put("\u010A", "\u010B");
+		b_2.put("\u010C", "\u010D");
+		b_2.put("\u010E", "\u010F");
+		b_2.put("\u0110", "\u0111");
+		b_2.put("\u0112", "\u0113");
+		b_2.put("\u0114", "\u0115");
+		b_2.put("\u0116", "\u0117");
+		b_2.put("\u0118", "\u0119");
+		b_2.put("\u011A", "\u011B");
+		b_2.put("\u011C", "\u011D");
+		b_2.put("\u011E", "\u011F");
+		b_2.put("\u0120", "\u0121");
+		b_2.put("\u0122", "\u0123");
+		b_2.put("\u0124", "\u0125");
+		b_2.put("\u0126", "\u0127");
+		b_2.put("\u0128", "\u0129");
+		b_2.put("\u012A", "\u012B");
+		b_2.put("\u012C", "\u012D");
+		b_2.put("\u012E", "\u012F");
+		b_2.put("\u0130", "\u0069\u0307");
+		b_2.put("\u0132", "\u0133");
+		b_2.put("\u0134", "\u0135");
+		b_2.put("\u0136", "\u0137");
+		b_2.put("\u0139", "\u013A");
+		b_2.put("\u013B", "\u013C");
+		b_2.put("\u013D", "\u013E");
+		b_2.put("\u013F", "\u0140");
+		b_2.put("\u0141", "\u0142");
+		b_2.put("\u0143", "\u0144");
+		b_2.put("\u0145", "\u0146");
+		b_2.put("\u0147", "\u0148");
+		b_2.put("\u0149", "\u02BC\u006E");
+		b_2.put("\u014A", "\u014B");
+		b_2.put("\u014C", "\u014D");
+		b_2.put("\u014E", "\u014F");
+		b_2.put("\u0150", "\u0151");
+		b_2.put("\u0152", "\u0153");
+		b_2.put("\u0154", "\u0155");
+		b_2.put("\u0156", "\u0157");
+		b_2.put("\u0158", "\u0159");
+		b_2.put("\u015A", "\u015B");
+		b_2.put("\u015C", "\u015D");
+		b_2.put("\u015E", "\u015F");
+		b_2.put("\u0160", "\u0161");
+		b_2.put("\u0162", "\u0163");
+		b_2.put("\u0164", "\u0165");
+		b_2.put("\u0166", "\u0167");
+		b_2.put("\u0168", "\u0169");
+		b_2.put("\u016A", "\u016B");
+		b_2.put("\u016C", "\u016D");
+		b_2.put("\u016E", "\u016F");
+		b_2.put("\u0170", "\u0171");
+		b_2.put("\u0172", "\u0173");
+		b_2.put("\u0174", "\u0175");
+		b_2.put("\u0176", "\u0177");
+		b_2.put("\u0178", "\u00FF");
+		b_2.put("\u0179", "\u017A");
+		b_2.put("\u017B", "\u017C");
+		b_2.put("\u017D", "\u017E");
+		b_2.put("\u017F", "\u0073");
+		b_2.put("\u0181", "\u0253");
+		b_2.put("\u0182", "\u0183");
+		b_2.put("\u0184", "\u0185");
+		b_2.put("\u0186", "\u0254");
+		b_2.put("\u0187", "\u0188");
+		b_2.put("\u0189", "\u0256");
+		b_2.put("\u018A", "\u0257");
+		b_2.put("\u018B", "\u018C");
+		b_2.put("\u018E", "\u01DD");
+		b_2.put("\u018F", "\u0259");
+		b_2.put("\u0190", "\u025B");
+		b_2.put("\u0191", "\u0192");
+		b_2.put("\u0193", "\u0260");
+		b_2.put("\u0194", "\u0263");
+		b_2.put("\u0196", "\u0269");
+		b_2.put("\u0197", "\u0268");
+		b_2.put("\u0198", "\u0199");
+		b_2.put("\u019C", "\u026F");
+		b_2.put("\u019D", "\u0272");
+		b_2.put("\u019F", "\u0275");
+		b_2.put("\u01A0", "\u01A1");
+		b_2.put("\u01A2", "\u01A3");
+		b_2.put("\u01A4", "\u01A5");
+		b_2.put("\u01A6", "\u0280");
+		b_2.put("\u01A7", "\u01A8");
+		b_2.put("\u01A9", "\u0283");
+		b_2.put("\u01AC", "\u01AD");
+		b_2.put("\u01AE", "\u0288");
+		b_2.put("\u01AF", "\u01B0");
+		b_2.put("\u01B1", "\u028A");
+		b_2.put("\u01B2", "\u028B");
+		b_2.put("\u01B3", "\u01B4");
+		b_2.put("\u01B5", "\u01B6");
+		b_2.put("\u01B7", "\u0292");
+		b_2.put("\u01B8", "\u01B9");
+		b_2.put("\u01BC", "\u01BD");
+		b_2.put("\u01C4", "\u01C6");
+		b_2.put("\u01C5", "\u01C6");
+		b_2.put("\u01C7", "\u01C9");
+		b_2.put("\u01C8", "\u01C9");
+		b_2.put("\u01CA", "\u01CC");
+		b_2.put("\u01CB", "\u01CC");
+		b_2.put("\u01CD", "\u01CE");
+		b_2.put("\u01CF", "\u01D0");
+		b_2.put("\u01D1", "\u01D2");
+		b_2.put("\u01D3", "\u01D4");
+		b_2.put("\u01D5", "\u01D6");
+		b_2.put("\u01D7", "\u01D8");
+		b_2.put("\u01D9", "\u01DA");
+		b_2.put("\u01DB", "\u01DC");
+		b_2.put("\u01DE", "\u01DF");
+		b_2.put("\u01E0", "\u01E1");
+		b_2.put("\u01E2", "\u01E3");
+		b_2.put("\u01E4", "\u01E5");
+		b_2.put("\u01E6", "\u01E7");
+		b_2.put("\u01E8", "\u01E9");
+		b_2.put("\u01EA", "\u01EB");
+		b_2.put("\u01EC", "\u01ED");
+		b_2.put("\u01EE", "\u01EF");
+		b_2.put("\u01F0", "\u006A\u030C");
+		b_2.put("\u01F1", "\u01F3");
+		b_2.put("\u01F2", "\u01F3");
+		b_2.put("\u01F4", "\u01F5");
+		b_2.put("\u01F6", "\u0195");
+		b_2.put("\u01F7", "\u01BF");
+		b_2.put("\u01F8", "\u01F9");
+		b_2.put("\u01FA", "\u01FB");
+		b_2.put("\u01FC", "\u01FD");
+		b_2.put("\u01FE", "\u01FF");
+		b_2.put("\u0200", "\u0201");
+		b_2.put("\u0202", "\u0203");
+		b_2.put("\u0204", "\u0205");
+		b_2.put("\u0206", "\u0207");
+		b_2.put("\u0208", "\u0209");
+		b_2.put("\u020A", "\u020B");
+		b_2.put("\u020C", "\u020D");
+		b_2.put("\u020E", "\u020F");
+		b_2.put("\u0210", "\u0211");
+		b_2.put("\u0212", "\u0213");
+		b_2.put("\u0214", "\u0215");
+		b_2.put("\u0216", "\u0217");
+		b_2.put("\u0218", "\u0219");
+		b_2.put("\u021A", "\u021B");
+		b_2.put("\u021C", "\u021D");
+		b_2.put("\u021E", "\u021F");
+		b_2.put("\u0220", "\u019E");
+		b_2.put("\u0222", "\u0223");
+		b_2.put("\u0224", "\u0225");
+		b_2.put("\u0226", "\u0227");
+		b_2.put("\u0228", "\u0229");
+		b_2.put("\u022A", "\u022B");
+		b_2.put("\u022C", "\u022D");
+		b_2.put("\u022E", "\u022F");
+		b_2.put("\u0230", "\u0231");
+		b_2.put("\u0232", "\u0233");
+		b_2.put("\u0345", "\u03B9");
+		b_2.put("\u037A", "\u0020\u03B9");
+		b_2.put("\u0386", "\u03AC");
+		b_2.put("\u0388", "\u03AD");
+		b_2.put("\u0389", "\u03AE");
+		b_2.put("\u038A", "\u03AF");
+		b_2.put("\u038C", "\u03CC");
+		b_2.put("\u038E", "\u03CD");
+		b_2.put("\u038F", "\u03CE");
+		b_2.put("\u0390", "\u03B9\u0308\u0301");
+		b_2.put("\u0391", "\u03B1");
+		b_2.put("\u0392", "\u03B2");
+		b_2.put("\u0393", "\u03B3");
+		b_2.put("\u0394", "\u03B4");
+		b_2.put("\u0395", "\u03B5");
+		b_2.put("\u0396", "\u03B6");
+		b_2.put("\u0397", "\u03B7");
+		b_2.put("\u0398", "\u03B8");
+		b_2.put("\u0399", "\u03B9");
+		b_2.put("\u039A", "\u03BA");
+		b_2.put("\u039B", "\u03BB");
+		b_2.put("\u039C", "\u03BC");
+		b_2.put("\u039D", "\u03BD");
+		b_2.put("\u039E", "\u03BE");
+		b_2.put("\u039F", "\u03BF");
+		b_2.put("\u03A0", "\u03C0");
+		b_2.put("\u03A1", "\u03C1");
+		b_2.put("\u03A3", "\u03C3");
+		b_2.put("\u03A4", "\u03C4");
+		b_2.put("\u03A5", "\u03C5");
+		b_2.put("\u03A6", "\u03C6");
+		b_2.put("\u03A7", "\u03C7");
+		b_2.put("\u03A8", "\u03C8");
+		b_2.put("\u03A9", "\u03C9");
+		b_2.put("\u03AA", "\u03CA");
+		b_2.put("\u03AB", "\u03CB");
+		b_2.put("\u03B0", "\u03C5\u0308\u0301");
+		b_2.put("\u03C2", "\u03C3");
+		b_2.put("\u03D0", "\u03B2");
+		b_2.put("\u03D1", "\u03B8");
+		b_2.put("\u03D2", "\u03C5");
+		b_2.put("\u03D3", "\u03CD");
+		b_2.put("\u03D4", "\u03CB");
+		b_2.put("\u03D5", "\u03C6");
+		b_2.put("\u03D6", "\u03C0");
+		b_2.put("\u03D8", "\u03D9");
+		b_2.put("\u03DA", "\u03DB");
+		b_2.put("\u03DC", "\u03DD");
+		b_2.put("\u03DE", "\u03DF");
+		b_2.put("\u03E0", "\u03E1");
+		b_2.put("\u03E2", "\u03E3");
+		b_2.put("\u03E4", "\u03E5");
+		b_2.put("\u03E6", "\u03E7");
+		b_2.put("\u03E8", "\u03E9");
+		b_2.put("\u03EA", "\u03EB");
+		b_2.put("\u03EC", "\u03ED");
+		b_2.put("\u03EE", "\u03EF");
+		b_2.put("\u03F0", "\u03BA");
+		b_2.put("\u03F1", "\u03C1");
+		b_2.put("\u03F2", "\u03C3");
+		b_2.put("\u03F4", "\u03B8");
+		b_2.put("\u03F5", "\u03B5");
+		b_2.put("\u0400", "\u0450");
+		b_2.put("\u0401", "\u0451");
+		b_2.put("\u0402", "\u0452");
+		b_2.put("\u0403", "\u0453");
+		b_2.put("\u0404", "\u0454");
+		b_2.put("\u0405", "\u0455");
+		b_2.put("\u0406", "\u0456");
+		b_2.put("\u0407", "\u0457");
+		b_2.put("\u0408", "\u0458");
+		b_2.put("\u0409", "\u0459");
+		b_2.put("\u040A", "\u045A");
+		b_2.put("\u040B", "\u045B");
+		b_2.put("\u040C", "\u045C");
+		b_2.put("\u040D", "\u045D");
+		b_2.put("\u040E", "\u045E");
+		b_2.put("\u040F", "\u045F");
+		b_2.put("\u0410", "\u0430");
+		b_2.put("\u0411", "\u0431");
+		b_2.put("\u0412", "\u0432");
+		b_2.put("\u0413", "\u0433");
+		b_2.put("\u0414", "\u0434");
+		b_2.put("\u0415", "\u0435");
+		b_2.put("\u0416", "\u0436");
+		b_2.put("\u0417", "\u0437");
+		b_2.put("\u0418", "\u0438");
+		b_2.put("\u0419", "\u0439");
+		b_2.put("\u041A", "\u043A");
+		b_2.put("\u041B", "\u043B");
+		b_2.put("\u041C", "\u043C");
+		b_2.put("\u041D", "\u043D");
+		b_2.put("\u041E", "\u043E");
+		b_2.put("\u041F", "\u043F");
+		b_2.put("\u0420", "\u0440");
+		b_2.put("\u0421", "\u0441");
+		b_2.put("\u0422", "\u0442");
+		b_2.put("\u0423", "\u0443");
+		b_2.put("\u0424", "\u0444");
+		b_2.put("\u0425", "\u0445");
+		b_2.put("\u0426", "\u0446");
+		b_2.put("\u0427", "\u0447");
+		b_2.put("\u0428", "\u0448");
+		b_2.put("\u0429", "\u0449");
+		b_2.put("\u042A", "\u044A");
+		b_2.put("\u042B", "\u044B");
+		b_2.put("\u042C", "\u044C");
+		b_2.put("\u042D", "\u044D");
+		b_2.put("\u042E", "\u044E");
+		b_2.put("\u042F", "\u044F");
+		b_2.put("\u0460", "\u0461");
+		b_2.put("\u0462", "\u0463");
+		b_2.put("\u0464", "\u0465");
+		b_2.put("\u0466", "\u0467");
+		b_2.put("\u0468", "\u0469");
+		b_2.put("\u046A", "\u046B");
+		b_2.put("\u046C", "\u046D");
+		b_2.put("\u046E", "\u046F");
+		b_2.put("\u0470", "\u0471");
+		b_2.put("\u0472", "\u0473");
+		b_2.put("\u0474", "\u0475");
+		b_2.put("\u0476", "\u0477");
+		b_2.put("\u0478", "\u0479");
+		b_2.put("\u047A", "\u047B");
+		b_2.put("\u047C", "\u047D");
+		b_2.put("\u047E", "\u047F");
+		b_2.put("\u0480", "\u0481");
+		b_2.put("\u048A", "\u048B");
+		b_2.put("\u048C", "\u048D");
+		b_2.put("\u048E", "\u048F");
+		b_2.put("\u0490", "\u0491");
+		b_2.put("\u0492", "\u0493");
+		b_2.put("\u0494", "\u0495");
+		b_2.put("\u0496", "\u0497");
+		b_2.put("\u0498", "\u0499");
+		b_2.put("\u049A", "\u049B");
+		b_2.put("\u049C", "\u049D");
+		b_2.put("\u049E", "\u049F");
+		b_2.put("\u04A0", "\u04A1");
+		b_2.put("\u04A2", "\u04A3");
+		b_2.put("\u04A4", "\u04A5");
+		b_2.put("\u04A6", "\u04A7");
+		b_2.put("\u04A8", "\u04A9");
+		b_2.put("\u04AA", "\u04AB");
+		b_2.put("\u04AC", "\u04AD");
+		b_2.put("\u04AE", "\u04AF");
+		b_2.put("\u04B0", "\u04B1");
+		b_2.put("\u04B2", "\u04B3");
+		b_2.put("\u04B4", "\u04B5");
+		b_2.put("\u04B6", "\u04B7");
+		b_2.put("\u04B8", "\u04B9");
+		b_2.put("\u04BA", "\u04BB");
+		b_2.put("\u04BC", "\u04BD");
+		b_2.put("\u04BE", "\u04BF");
+		b_2.put("\u04C1", "\u04C2");
+		b_2.put("\u04C3", "\u04C4");
+		b_2.put("\u04C5", "\u04C6");
+		b_2.put("\u04C7", "\u04C8");
+		b_2.put("\u04C9", "\u04CA");
+		b_2.put("\u04CB", "\u04CC");
+		b_2.put("\u04CD", "\u04CE");
+		b_2.put("\u04D0", "\u04D1");
+		b_2.put("\u04D2", "\u04D3");
+		b_2.put("\u04D4", "\u04D5");
+		b_2.put("\u04D6", "\u04D7");
+		b_2.put("\u04D8", "\u04D9");
+		b_2.put("\u04DA", "\u04DB");
+		b_2.put("\u04DC", "\u04DD");
+		b_2.put("\u04DE", "\u04DF");
+		b_2.put("\u04E0", "\u04E1");
+		b_2.put("\u04E2", "\u04E3");
+		b_2.put("\u04E4", "\u04E5");
+		b_2.put("\u04E6", "\u04E7");
+		b_2.put("\u04E8", "\u04E9");
+		b_2.put("\u04EA", "\u04EB");
+		b_2.put("\u04EC", "\u04ED");
+		b_2.put("\u04EE", "\u04EF");
+		b_2.put("\u04F0", "\u04F1");
+		b_2.put("\u04F2", "\u04F3");
+		b_2.put("\u04F4", "\u04F5");
+		b_2.put("\u04F8", "\u04F9");
+		b_2.put("\u0500", "\u0501");
+		b_2.put("\u0502", "\u0503");
+		b_2.put("\u0504", "\u0505");
+		b_2.put("\u0506", "\u0507");
+		b_2.put("\u0508", "\u0509");
+		b_2.put("\u050A", "\u050B");
+		b_2.put("\u050C", "\u050D");
+		b_2.put("\u050E", "\u050F");
+		b_2.put("\u0531", "\u0561");
+		b_2.put("\u0532", "\u0562");
+		b_2.put("\u0533", "\u0563");
+		b_2.put("\u0534", "\u0564");
+		b_2.put("\u0535", "\u0565");
+		b_2.put("\u0536", "\u0566");
+		b_2.put("\u0537", "\u0567");
+		b_2.put("\u0538", "\u0568");
+		b_2.put("\u0539", "\u0569");
+		b_2.put("\u053A", "\u056A");
+		b_2.put("\u053B", "\u056B");
+		b_2.put("\u053C", "\u056C");
+		b_2.put("\u053D", "\u056D");
+		b_2.put("\u053E", "\u056E");
+		b_2.put("\u053F", "\u056F");
+		b_2.put("\u0540", "\u0570");
+		b_2.put("\u0541", "\u0571");
+		b_2.put("\u0542", "\u0572");
+		b_2.put("\u0543", "\u0573");
+		b_2.put("\u0544", "\u0574");
+		b_2.put("\u0545", "\u0575");
+		b_2.put("\u0546", "\u0576");
+		b_2.put("\u0547", "\u0577");
+		b_2.put("\u0548", "\u0578");
+		b_2.put("\u0549", "\u0579");
+		b_2.put("\u054A", "\u057A");
+		b_2.put("\u054B", "\u057B");
+		b_2.put("\u054C", "\u057C");
+		b_2.put("\u054D", "\u057D");
+		b_2.put("\u054E", "\u057E");
+		b_2.put("\u054F", "\u057F");
+		b_2.put("\u0550", "\u0580");
+		b_2.put("\u0551", "\u0581");
+		b_2.put("\u0552", "\u0582");
+		b_2.put("\u0553", "\u0583");
+		b_2.put("\u0554", "\u0584");
+		b_2.put("\u0555", "\u0585");
+		b_2.put("\u0556", "\u0586");
+		b_2.put("\u0587", "\u0565\u0582");
+		b_2.put("\u1E00", "\u1E01");
+		b_2.put("\u1E02", "\u1E03");
+		b_2.put("\u1E04", "\u1E05");
+		b_2.put("\u1E06", "\u1E07");
+		b_2.put("\u1E08", "\u1E09");
+		b_2.put("\u1E0A", "\u1E0B");
+		b_2.put("\u1E0C", "\u1E0D");
+		b_2.put("\u1E0E", "\u1E0F");
+		b_2.put("\u1E10", "\u1E11");
+		b_2.put("\u1E12", "\u1E13");
+		b_2.put("\u1E14", "\u1E15");
+		b_2.put("\u1E16", "\u1E17");
+		b_2.put("\u1E18", "\u1E19");
+		b_2.put("\u1E1A", "\u1E1B");
+		b_2.put("\u1E1C", "\u1E1D");
+		b_2.put("\u1E1E", "\u1E1F");
+		b_2.put("\u1E20", "\u1E21");
+		b_2.put("\u1E22", "\u1E23");
+		b_2.put("\u1E24", "\u1E25");
+		b_2.put("\u1E26", "\u1E27");
+		b_2.put("\u1E28", "\u1E29");
+		b_2.put("\u1E2A", "\u1E2B");
+		b_2.put("\u1E2C", "\u1E2D");
+		b_2.put("\u1E2E", "\u1E2F");
+		b_2.put("\u1E30", "\u1E31");
+		b_2.put("\u1E32", "\u1E33");
+		b_2.put("\u1E34", "\u1E35");
+		b_2.put("\u1E36", "\u1E37");
+		b_2.put("\u1E38", "\u1E39");
+		b_2.put("\u1E3A", "\u1E3B");
+		b_2.put("\u1E3C", "\u1E3D");
+		b_2.put("\u1E3E", "\u1E3F");
+		b_2.put("\u1E40", "\u1E41");
+		b_2.put("\u1E42", "\u1E43");
+		b_2.put("\u1E44", "\u1E45");
+		b_2.put("\u1E46", "\u1E47");
+		b_2.put("\u1E48", "\u1E49");
+		b_2.put("\u1E4A", "\u1E4B");
+		b_2.put("\u1E4C", "\u1E4D");
+		b_2.put("\u1E4E", "\u1E4F");
+		b_2.put("\u1E50", "\u1E51");
+		b_2.put("\u1E52", "\u1E53");
+		b_2.put("\u1E54", "\u1E55");
+		b_2.put("\u1E56", "\u1E57");
+		b_2.put("\u1E58", "\u1E59");
+		b_2.put("\u1E5A", "\u1E5B");
+		b_2.put("\u1E5C", "\u1E5D");
+		b_2.put("\u1E5E", "\u1E5F");
+		b_2.put("\u1E60", "\u1E61");
+		b_2.put("\u1E62", "\u1E63");
+		b_2.put("\u1E64", "\u1E65");
+		b_2.put("\u1E66", "\u1E67");
+		b_2.put("\u1E68", "\u1E69");
+		b_2.put("\u1E6A", "\u1E6B");
+		b_2.put("\u1E6C", "\u1E6D");
+		b_2.put("\u1E6E", "\u1E6F");
+		b_2.put("\u1E70", "\u1E71");
+		b_2.put("\u1E72", "\u1E73");
+		b_2.put("\u1E74", "\u1E75");
+		b_2.put("\u1E76", "\u1E77");
+		b_2.put("\u1E78", "\u1E79");
+		b_2.put("\u1E7A", "\u1E7B");
+		b_2.put("\u1E7C", "\u1E7D");
+		b_2.put("\u1E7E", "\u1E7F");
+		b_2.put("\u1E80", "\u1E81");
+		b_2.put("\u1E82", "\u1E83");
+		b_2.put("\u1E84", "\u1E85");
+		b_2.put("\u1E86", "\u1E87");
+		b_2.put("\u1E88", "\u1E89");
+		b_2.put("\u1E8A", "\u1E8B");
+		b_2.put("\u1E8C", "\u1E8D");
+		b_2.put("\u1E8E", "\u1E8F");
+		b_2.put("\u1E90", "\u1E91");
+		b_2.put("\u1E92", "\u1E93");
+		b_2.put("\u1E94", "\u1E95");
+		b_2.put("\u1E96", "\u0068\u0331");
+		b_2.put("\u1E97", "\u0074\u0308");
+		b_2.put("\u1E98", "\u0077\u030A");
+		b_2.put("\u1E99", "\u0079\u030A");
+		b_2.put("\u1E9A", "\u0061\u02BE");
+		b_2.put("\u1E9B", "\u1E61");
+		b_2.put("\u1EA0", "\u1EA1");
+		b_2.put("\u1EA2", "\u1EA3");
+		b_2.put("\u1EA4", "\u1EA5");
+		b_2.put("\u1EA6", "\u1EA7");
+		b_2.put("\u1EA8", "\u1EA9");
+		b_2.put("\u1EAA", "\u1EAB");
+		b_2.put("\u1EAC", "\u1EAD");
+		b_2.put("\u1EAE", "\u1EAF");
+		b_2.put("\u1EB0", "\u1EB1");
+		b_2.put("\u1EB2", "\u1EB3");
+		b_2.put("\u1EB4", "\u1EB5");
+		b_2.put("\u1EB6", "\u1EB7");
+		b_2.put("\u1EB8", "\u1EB9");
+		b_2.put("\u1EBA", "\u1EBB");
+		b_2.put("\u1EBC", "\u1EBD");
+		b_2.put("\u1EBE", "\u1EBF");
+		b_2.put("\u1EC0", "\u1EC1");
+		b_2.put("\u1EC2", "\u1EC3");
+		b_2.put("\u1EC4", "\u1EC5");
+		b_2.put("\u1EC6", "\u1EC7");
+		b_2.put("\u1EC8", "\u1EC9");
+		b_2.put("\u1ECA", "\u1ECB");
+		b_2.put("\u1ECC", "\u1ECD");
+		b_2.put("\u1ECE", "\u1ECF");
+		b_2.put("\u1ED0", "\u1ED1");
+		b_2.put("\u1ED2", "\u1ED3");
+		b_2.put("\u1ED4", "\u1ED5");
+		b_2.put("\u1ED6", "\u1ED7");
+		b_2.put("\u1ED8", "\u1ED9");
+		b_2.put("\u1EDA", "\u1EDB");
+		b_2.put("\u1EDC", "\u1EDD");
+		b_2.put("\u1EDE", "\u1EDF");
+		b_2.put("\u1EE0", "\u1EE1");
+		b_2.put("\u1EE2", "\u1EE3");
+		b_2.put("\u1EE4", "\u1EE5");
+		b_2.put("\u1EE6", "\u1EE7");
+		b_2.put("\u1EE8", "\u1EE9");
+		b_2.put("\u1EEA", "\u1EEB");
+		b_2.put("\u1EEC", "\u1EED");
+		b_2.put("\u1EEE", "\u1EEF");
+		b_2.put("\u1EF0", "\u1EF1");
+		b_2.put("\u1EF2", "\u1EF3");
+		b_2.put("\u1EF4", "\u1EF5");
+		b_2.put("\u1EF6", "\u1EF7");
+		b_2.put("\u1EF8", "\u1EF9");
+		b_2.put("\u1F08", "\u1F00");
+		b_2.put("\u1F09", "\u1F01");
+		b_2.put("\u1F0A", "\u1F02");
+		b_2.put("\u1F0B", "\u1F03");
+		b_2.put("\u1F0C", "\u1F04");
+		b_2.put("\u1F0D", "\u1F05");
+		b_2.put("\u1F0E", "\u1F06");
+		b_2.put("\u1F0F", "\u1F07");
+		b_2.put("\u1F18", "\u1F10");
+		b_2.put("\u1F19", "\u1F11");
+		b_2.put("\u1F1A", "\u1F12");
+		b_2.put("\u1F1B", "\u1F13");
+		b_2.put("\u1F1C", "\u1F14");
+		b_2.put("\u1F1D", "\u1F15");
+		b_2.put("\u1F28", "\u1F20");
+		b_2.put("\u1F29", "\u1F21");
+		b_2.put("\u1F2A", "\u1F22");
+		b_2.put("\u1F2B", "\u1F23");
+		b_2.put("\u1F2C", "\u1F24");
+		b_2.put("\u1F2D", "\u1F25");
+		b_2.put("\u1F2E", "\u1F26");
+		b_2.put("\u1F2F", "\u1F27");
+		b_2.put("\u1F38", "\u1F30");
+		b_2.put("\u1F39", "\u1F31");
+		b_2.put("\u1F3A", "\u1F32");
+		b_2.put("\u1F3B", "\u1F33");
+		b_2.put("\u1F3C", "\u1F34");
+		b_2.put("\u1F3D", "\u1F35");
+		b_2.put("\u1F3E", "\u1F36");
+		b_2.put("\u1F3F", "\u1F37");
+		b_2.put("\u1F48", "\u1F40");
+		b_2.put("\u1F49", "\u1F41");
+		b_2.put("\u1F4A", "\u1F42");
+		b_2.put("\u1F4B", "\u1F43");
+		b_2.put("\u1F4C", "\u1F44");
+		b_2.put("\u1F4D", "\u1F45");
+		b_2.put("\u1F50", "\u03C5\u0313");
+		b_2.put("\u1F52", "\u03C5\u0313\u0300");
+		b_2.put("\u1F54", "\u03C5\u0313\u0301");
+		b_2.put("\u1F56", "\u03C5\u0313\u0342");
+		b_2.put("\u1F59", "\u1F51");
+		b_2.put("\u1F5B", "\u1F53");
+		b_2.put("\u1F5D", "\u1F55");
+		b_2.put("\u1F5F", "\u1F57");
+		b_2.put("\u1F68", "\u1F60");
+		b_2.put("\u1F69", "\u1F61");
+		b_2.put("\u1F6A", "\u1F62");
+		b_2.put("\u1F6B", "\u1F63");
+		b_2.put("\u1F6C", "\u1F64");
+		b_2.put("\u1F6D", "\u1F65");
+		b_2.put("\u1F6E", "\u1F66");
+		b_2.put("\u1F6F", "\u1F67");
+		b_2.put("\u1F80", "\u1F00\u03B9");
+		b_2.put("\u1F81", "\u1F01\u03B9");
+		b_2.put("\u1F82", "\u1F02\u03B9");
+		b_2.put("\u1F83", "\u1F03\u03B9");
+		b_2.put("\u1F84", "\u1F04\u03B9");
+		b_2.put("\u1F85", "\u1F05\u03B9");
+		b_2.put("\u1F86", "\u1F06\u03B9");
+		b_2.put("\u1F87", "\u1F07\u03B9");
+		b_2.put("\u1F88", "\u1F00\u03B9");
+		b_2.put("\u1F89", "\u1F01\u03B9");
+		b_2.put("\u1F8A", "\u1F02\u03B9");
+		b_2.put("\u1F8B", "\u1F03\u03B9");
+		b_2.put("\u1F8C", "\u1F04\u03B9");
+		b_2.put("\u1F8D", "\u1F05\u03B9");
+		b_2.put("\u1F8E", "\u1F06\u03B9");
+		b_2.put("\u1F8F", "\u1F07\u03B9");
+		b_2.put("\u1F90", "\u1F20\u03B9");
+		b_2.put("\u1F91", "\u1F21\u03B9");
+		b_2.put("\u1F92", "\u1F22\u03B9");
+		b_2.put("\u1F93", "\u1F23\u03B9");
+		b_2.put("\u1F94", "\u1F24\u03B9");
+		b_2.put("\u1F95", "\u1F25\u03B9");
+		b_2.put("\u1F96", "\u1F26\u03B9");
+		b_2.put("\u1F97", "\u1F27\u03B9");
+		b_2.put("\u1F98", "\u1F20\u03B9");
+		b_2.put("\u1F99", "\u1F21\u03B9");
+		b_2.put("\u1F9A", "\u1F22\u03B9");
+		b_2.put("\u1F9B", "\u1F23\u03B9");
+		b_2.put("\u1F9C", "\u1F24\u03B9");
+		b_2.put("\u1F9D", "\u1F25\u03B9");
+		b_2.put("\u1F9E", "\u1F26\u03B9");
+		b_2.put("\u1F9F", "\u1F27\u03B9");
+		b_2.put("\u1FA0", "\u1F60\u03B9");
+		b_2.put("\u1FA1", "\u1F61\u03B9");
+		b_2.put("\u1FA2", "\u1F62\u03B9");
+		b_2.put("\u1FA3", "\u1F63\u03B9");
+		b_2.put("\u1FA4", "\u1F64\u03B9");
+		b_2.put("\u1FA5", "\u1F65\u03B9");
+		b_2.put("\u1FA6", "\u1F66\u03B9");
+		b_2.put("\u1FA7", "\u1F67\u03B9");
+		b_2.put("\u1FA8", "\u1F60\u03B9");
+		b_2.put("\u1FA9", "\u1F61\u03B9");
+		b_2.put("\u1FAA", "\u1F62\u03B9");
+		b_2.put("\u1FAB", "\u1F63\u03B9");
+		b_2.put("\u1FAC", "\u1F64\u03B9");
+		b_2.put("\u1FAD", "\u1F65\u03B9");
+		b_2.put("\u1FAE", "\u1F66\u03B9");
+		b_2.put("\u1FAF", "\u1F67\u03B9");
+		b_2.put("\u1FB2", "\u1F70\u03B9");
+		b_2.put("\u1FB3", "\u03B1\u03B9");
+		b_2.put("\u1FB4", "\u03AC\u03B9");
+		b_2.put("\u1FB6", "\u03B1\u0342");
+		b_2.put("\u1FB7", "\u03B1\u0342\u03B9");
+		b_2.put("\u1FB8", "\u1FB0");
+		b_2.put("\u1FB9", "\u1FB1");
+		b_2.put("\u1FBA", "\u1F70");
+		b_2.put("\u1FBB", "\u1F71");
+		b_2.put("\u1FBC", "\u03B1\u03B9");
+		b_2.put("\u1FBE", "\u03B9");
+		b_2.put("\u1FC2", "\u1F74\u03B9");
+		b_2.put("\u1FC3", "\u03B7\u03B9");
+		b_2.put("\u1FC4", "\u03AE\u03B9");
+		b_2.put("\u1FC6", "\u03B7\u0342");
+		b_2.put("\u1FC7", "\u03B7\u0342\u03B9");
+		b_2.put("\u1FC8", "\u1F72");
+		b_2.put("\u1FC9", "\u1F73");
+		b_2.put("\u1FCA", "\u1F74");
+		b_2.put("\u1FCB", "\u1F75");
+		b_2.put("\u1FCC", "\u03B7\u03B9");
+		b_2.put("\u1FD2", "\u03B9\u0308\u0300");
+		b_2.put("\u1FD3", "\u03B9\u0308\u0301");
+		b_2.put("\u1FD6", "\u03B9\u0342");
+		b_2.put("\u1FD7", "\u03B9\u0308\u0342");
+		b_2.put("\u1FD8", "\u1FD0");
+		b_2.put("\u1FD9", "\u1FD1");
+		b_2.put("\u1FDA", "\u1F76");
+		b_2.put("\u1FDB", "\u1F77");
+		b_2.put("\u1FE2", "\u03C5\u0308\u0300");
+		b_2.put("\u1FE3", "\u03C5\u0308\u0301");
+		b_2.put("\u1FE4", "\u03C1\u0313");
+		b_2.put("\u1FE6", "\u03C5\u0342");
+		b_2.put("\u1FE7", "\u03C5\u0308\u0342");
+		b_2.put("\u1FE8", "\u1FE0");
+		b_2.put("\u1FE9", "\u1FE1");
+		b_2.put("\u1FEA", "\u1F7A");
+		b_2.put("\u1FEB", "\u1F7B");
+		b_2.put("\u1FEC", "\u1FE5");
+		b_2.put("\u1FF2", "\u1F7C\u03B9");
+		b_2.put("\u1FF3", "\u03C9\u03B9");
+		b_2.put("\u1FF4", "\u03CE\u03B9");
+		b_2.put("\u1FF6", "\u03C9\u0342");
+		b_2.put("\u1FF7", "\u03C9\u0342\u03B9");
+		b_2.put("\u1FF8", "\u1F78");
+		b_2.put("\u1FF9", "\u1F79");
+		b_2.put("\u1FFA", "\u1F7C");
+		b_2.put("\u1FFB", "\u1F7D");
+		b_2.put("\u1FFC", "\u03C9\u03B9");
+		b_2.put("\u20A8", "\u0072\u0073");
+		b_2.put("\u2102", "\u0063");
+		b_2.put("\u2103", "\u00B0\u0063");
+		b_2.put("\u2107", "\u025B");
+		b_2.put("\u2109", "\u00B0\u0066");
+		b_2.put("\u210B", "\u0068");
+		b_2.put("\u210C", "\u0068");
+		b_2.put("\u210D", "\u0068");
+		b_2.put("\u2110", "\u0069");
+		b_2.put("\u2111", "\u0069");
+		b_2.put("\u2112", "\u006C");
+		b_2.put("\u2115", "\u006E");
+		b_2.put("\u2116", "\u006E\u006F");
+		b_2.put("\u2119", "\u0070");
+		b_2.put("\u211A", "\u0071");
+		b_2.put("\u211B", "\u0072");
+		b_2.put("\u211C", "\u0072");
+		b_2.put("\u211D", "\u0072");
+		b_2.put("\u2120", "\u0073\u006D");
+		b_2.put("\u2121", "\u0074\u0065\u006C");
+		b_2.put("\u2122", "\u0074\u006D");
+		b_2.put("\u2124", "\u007A");
+		b_2.put("\u2126", "\u03C9");
+		b_2.put("\u2128", "\u007A");
+		b_2.put("\u212A", "\u006B");
+		b_2.put("\u212B", "\u00E5");
+		b_2.put("\u212C", "\u0062");
+		b_2.put("\u212D", "\u0063");
+		b_2.put("\u2130", "\u0065");
+		b_2.put("\u2131", "\u0066");
+		b_2.put("\u2133", "\u006D");
+		b_2.put("\u213E", "\u03B3");
+		b_2.put("\u213F", "\u03C0");
+		b_2.put("\u2145", "\u0064");
+		b_2.put("\u2160", "\u2170");
+		b_2.put("\u2161", "\u2171");
+		b_2.put("\u2162", "\u2172");
+		b_2.put("\u2163", "\u2173");
+		b_2.put("\u2164", "\u2174");
+		b_2.put("\u2165", "\u2175");
+		b_2.put("\u2166", "\u2176");
+		b_2.put("\u2167", "\u2177");
+		b_2.put("\u2168", "\u2178");
+		b_2.put("\u2169", "\u2179");
+		b_2.put("\u216A", "\u217A");
+		b_2.put("\u216B", "\u217B");
+		b_2.put("\u216C", "\u217C");
+		b_2.put("\u216D", "\u217D");
+		b_2.put("\u216E", "\u217E");
+		b_2.put("\u216F", "\u217F");
+		b_2.put("\u24B6", "\u24D0");
+		b_2.put("\u24B7", "\u24D1");
+		b_2.put("\u24B8", "\u24D2");
+		b_2.put("\u24B9", "\u24D3");
+		b_2.put("\u24BA", "\u24D4");
+		b_2.put("\u24BB", "\u24D5");
+		b_2.put("\u24BC", "\u24D6");
+		b_2.put("\u24BD", "\u24D7");
+		b_2.put("\u24BE", "\u24D8");
+		b_2.put("\u24BF", "\u24D9");
+		b_2.put("\u24C0", "\u24DA");
+		b_2.put("\u24C1", "\u24DB");
+		b_2.put("\u24C2", "\u24DC");
+		b_2.put("\u24C3", "\u24DD");
+		b_2.put("\u24C4", "\u24DE");
+		b_2.put("\u24C5", "\u24DF");
+		b_2.put("\u24C6", "\u24E0");
+		b_2.put("\u24C7", "\u24E1");
+		b_2.put("\u24C8", "\u24E2");
+		b_2.put("\u24C9", "\u24E3");
+		b_2.put("\u24CA", "\u24E4");
+		b_2.put("\u24CB", "\u24E5");
+		b_2.put("\u24CC", "\u24E6");
+		b_2.put("\u24CD", "\u24E7");
+		b_2.put("\u24CE", "\u24E8");
+		b_2.put("\u24CF", "\u24E9");
+		b_2.put("\u3371", "\u0068\u0070\u0061");
+		b_2.put("\u3373", "\u0061\u0075");
+		b_2.put("\u3375", "\u006F\u0076");
+		b_2.put("\u3380", "\u0070\u0061");
+		b_2.put("\u3381", "\u006E\u0061");
+		b_2.put("\u3382", "\u03BC\u0061");
+		b_2.put("\u3383", "\u006D\u0061");
+		b_2.put("\u3384", "\u006B\u0061");
+		b_2.put("\u3385", "\u006B\u0062");
+		b_2.put("\u3386", "\u006D\u0062");
+		b_2.put("\u3387", "\u0067\u0062");
+		b_2.put("\u338A", "\u0070\u0066");
+		b_2.put("\u338B", "\u006E\u0066");
+		b_2.put("\u338C", "\u03BC\u0066");
+		b_2.put("\u3390", "\u0068\u007A");
+		b_2.put("\u3391", "\u006B\u0068\u007A");
+		b_2.put("\u3392", "\u006D\u0068\u007A");
+		b_2.put("\u3393", "\u0067\u0068\u007A");
+		b_2.put("\u3394", "\u0074\u0068\u007A");
+		b_2.put("\u33A9", "\u0070\u0061");
+		b_2.put("\u33AA", "\u006B\u0070\u0061");
+		b_2.put("\u33AB", "\u006D\u0070\u0061");
+		b_2.put("\u33AC", "\u0067\u0070\u0061");
+		b_2.put("\u33B4", "\u0070\u0076");
+		b_2.put("\u33B5", "\u006E\u0076");
+		b_2.put("\u33B6", "\u03BC\u0076");
+		b_2.put("\u33B7", "\u006D\u0076");
+		b_2.put("\u33B8", "\u006B\u0076");
+		b_2.put("\u33B9", "\u006D\u0076");
+		b_2.put("\u33BA", "\u0070\u0077");
+		b_2.put("\u33BB", "\u006E\u0077");
+		b_2.put("\u33BC", "\u03BC\u0077");
+		b_2.put("\u33BD", "\u006D\u0077");
+		b_2.put("\u33BE", "\u006B\u0077");
+		b_2.put("\u33BF", "\u006D\u0077");
+		b_2.put("\u33C0", "\u006B\u03C9");
+		b_2.put("\u33C1", "\u006D\u03C9");
+		b_2.put("\u33C3", "\u0062\u0071");
+		b_2.put("\u33C6", "\u0063\u2215\u006B\u0067");
+		b_2.put("\u33C7", "\u0063\u006F\u002E");
+		b_2.put("\u33C8", "\u0064\u0062");
+		b_2.put("\u33C9", "\u0067\u0079");
+		b_2.put("\u33CB", "\u0068\u0070");
+		b_2.put("\u33CD", "\u006B\u006B");
+		b_2.put("\u33CE", "\u006B\u006D");
+		b_2.put("\u33D7", "\u0070\u0068");
+		b_2.put("\u33D9", "\u0070\u0070\u006D");
+		b_2.put("\u33DA", "\u0070\u0072");
+		b_2.put("\u33DC", "\u0073\u0076");
+		b_2.put("\u33DD", "\u0077\u0062");
+		b_2.put("\uFB00", "\u0066\u0066");
+		b_2.put("\uFB01", "\u0066\u0069");
+		b_2.put("\uFB02", "\u0066\u006C");
+		b_2.put("\uFB03", "\u0066\u0066\u0069");
+		b_2.put("\uFB04", "\u0066\u0066\u006C");
+		b_2.put("\uFB05", "\u0073\u0074");
+		b_2.put("\uFB06", "\u0073\u0074");
+		b_2.put("\uFB13", "\u0574\u0576");
+		b_2.put("\uFB14", "\u0574\u0565");
+		b_2.put("\uFB15", "\u0574\u056B");
+		b_2.put("\uFB16", "\u057E\u0576");
+		b_2.put("\uFB17", "\u0574\u056D");
+		b_2.put("\uFF21", "\uFF41");
+		b_2.put("\uFF22", "\uFF42");
+		b_2.put("\uFF23", "\uFF43");
+		b_2.put("\uFF24", "\uFF44");
+		b_2.put("\uFF25", "\uFF45");
+		b_2.put("\uFF26", "\uFF46");
+		b_2.put("\uFF27", "\uFF47");
+		b_2.put("\uFF28", "\uFF48");
+		b_2.put("\uFF29", "\uFF49");
+		b_2.put("\uFF2A", "\uFF4A");
+		b_2.put("\uFF2B", "\uFF4B");
+		b_2.put("\uFF2C", "\uFF4C");
+		b_2.put("\uFF2D", "\uFF4D");
+		b_2.put("\uFF2E", "\uFF4E");
+		b_2.put("\uFF2F", "\uFF4F");
+		b_2.put("\uFF30", "\uFF50");
+		b_2.put("\uFF31", "\uFF51");
+		b_2.put("\uFF32", "\uFF52");
+		b_2.put("\uFF33", "\uFF53");
+		b_2.put("\uFF34", "\uFF54");
+		b_2.put("\uFF35", "\uFF55");
+		b_2.put("\uFF36", "\uFF56");
+		b_2.put("\uFF37", "\uFF57");
+		b_2.put("\uFF38", "\uFF58");
+		b_2.put("\uFF39", "\uFF59");
+		b_2.put("\uFF3A", "\uFF5A");
+		b_2.put(codePointToString(0x10400), codePointToString(0x10428));
+		b_2.put(codePointToString(0x10401), codePointToString(0x10429));
+		b_2.put(codePointToString(0x10402), codePointToString(0x1042A));
+		b_2.put(codePointToString(0x10403), codePointToString(0x1042B));
+		b_2.put(codePointToString(0x10404), codePointToString(0x1042C));
+		b_2.put(codePointToString(0x10405), codePointToString(0x1042D));
+		b_2.put(codePointToString(0x10406), codePointToString(0x1042E));
+		b_2.put(codePointToString(0x10407), codePointToString(0x1042F));
+		b_2.put(codePointToString(0x10408), codePointToString(0x10430));
+		b_2.put(codePointToString(0x10409), codePointToString(0x10431));
+		b_2.put(codePointToString(0x1040A), codePointToString(0x10432));
+		b_2.put(codePointToString(0x1040B), codePointToString(0x10433));
+		b_2.put(codePointToString(0x1040C), codePointToString(0x10434));
+		b_2.put(codePointToString(0x1040D), codePointToString(0x10435));
+		b_2.put(codePointToString(0x1040E), codePointToString(0x10436));
+		b_2.put(codePointToString(0x1040F), codePointToString(0x10437));
+		b_2.put(codePointToString(0x10410), codePointToString(0x10438));
+		b_2.put(codePointToString(0x10411), codePointToString(0x10439));
+		b_2.put(codePointToString(0x10412), codePointToString(0x1043A));
+		b_2.put(codePointToString(0x10413), codePointToString(0x1043B));
+		b_2.put(codePointToString(0x10414), codePointToString(0x1043C));
+		b_2.put(codePointToString(0x10415), codePointToString(0x1043D));
+		b_2.put(codePointToString(0x10416), codePointToString(0x1043E));
+		b_2.put(codePointToString(0x10417), codePointToString(0x1043F));
+		b_2.put(codePointToString(0x10418), codePointToString(0x10440));
+		b_2.put(codePointToString(0x10419), codePointToString(0x10441));
+		b_2.put(codePointToString(0x1041A), codePointToString(0x10442));
+		b_2.put(codePointToString(0x1041B), codePointToString(0x10443));
+		b_2.put(codePointToString(0x1041C), codePointToString(0x10444));
+		b_2.put(codePointToString(0x1041D), codePointToString(0x10445));
+		b_2.put(codePointToString(0x1041E), codePointToString(0x10446));
+		b_2.put(codePointToString(0x1041F), codePointToString(0x10447));
+		b_2.put(codePointToString(0x10420), codePointToString(0x10448));
+		b_2.put(codePointToString(0x10421), codePointToString(0x10449));
+		b_2.put(codePointToString(0x10422), codePointToString(0x1044A));
+		b_2.put(codePointToString(0x10423), codePointToString(0x1044B));
+		b_2.put(codePointToString(0x10424), codePointToString(0x1044C));
+		b_2.put(codePointToString(0x10425), codePointToString(0x1044D));
+		b_2.put(codePointToString(0x1D400), "\u0061");
+		b_2.put(codePointToString(0x1D401), "\u0062");
+		b_2.put(codePointToString(0x1D402), "\u0063");
+		b_2.put(codePointToString(0x1D403), "\u0064");
+		b_2.put(codePointToString(0x1D404), "\u0065");
+		b_2.put(codePointToString(0x1D405), "\u0066");
+		b_2.put(codePointToString(0x1D406), "\u0067");
+		b_2.put(codePointToString(0x1D407), "\u0068");
+		b_2.put(codePointToString(0x1D408), "\u0069");
+		b_2.put(codePointToString(0x1D409), "\u006A");
+		b_2.put(codePointToString(0x1D40A), "\u006B");
+		b_2.put(codePointToString(0x1D40B), "\u006C");
+		b_2.put(codePointToString(0x1D40C), "\u006D");
+		b_2.put(codePointToString(0x1D40D), "\u006E");
+		b_2.put(codePointToString(0x1D40E), "\u006F");
+		b_2.put(codePointToString(0x1D40F), "\u0070");
+		b_2.put(codePointToString(0x1D410), "\u0071");
+		b_2.put(codePointToString(0x1D411), "\u0072");
+		b_2.put(codePointToString(0x1D412), "\u0073");
+		b_2.put(codePointToString(0x1D413), "\u0074");
+		b_2.put(codePointToString(0x1D414), "\u0075");
+		b_2.put(codePointToString(0x1D415), "\u0076");
+		b_2.put(codePointToString(0x1D416), "\u0077");
+		b_2.put(codePointToString(0x1D417), "\u0078");
+		b_2.put(codePointToString(0x1D418), "\u0079");
+		b_2.put(codePointToString(0x1D419), "\u007A");
+		b_2.put(codePointToString(0x1D434), "\u0061");
+		b_2.put(codePointToString(0x1D435), "\u0062");
+		b_2.put(codePointToString(0x1D436), "\u0063");
+		b_2.put(codePointToString(0x1D437), "\u0064");
+		b_2.put(codePointToString(0x1D438), "\u0065");
+		b_2.put(codePointToString(0x1D439), "\u0066");
+		b_2.put(codePointToString(0x1D43A), "\u0067");
+		b_2.put(codePointToString(0x1D43B), "\u0068");
+		b_2.put(codePointToString(0x1D43C), "\u0069");
+		b_2.put(codePointToString(0x1D43D), "\u006A");
+		b_2.put(codePointToString(0x1D43E), "\u006B");
+		b_2.put(codePointToString(0x1D43F), "\u006C");
+		b_2.put(codePointToString(0x1D440), "\u006D");
+		b_2.put(codePointToString(0x1D441), "\u006E");
+		b_2.put(codePointToString(0x1D442), "\u006F");
+		b_2.put(codePointToString(0x1D443), "\u0070");
+		b_2.put(codePointToString(0x1D444), "\u0071");
+		b_2.put(codePointToString(0x1D445), "\u0072");
+		b_2.put(codePointToString(0x1D446), "\u0073");
+		b_2.put(codePointToString(0x1D447), "\u0074");
+		b_2.put(codePointToString(0x1D448), "\u0075");
+		b_2.put(codePointToString(0x1D449), "\u0076");
+		b_2.put(codePointToString(0x1D44A), "\u0077");
+		b_2.put(codePointToString(0x1D44B), "\u0078");
+		b_2.put(codePointToString(0x1D44C), "\u0079");
+		b_2.put(codePointToString(0x1D44D), "\u007A");
+		b_2.put(codePointToString(0x1D468), "\u0061");
+		b_2.put(codePointToString(0x1D469), "\u0062");
+		b_2.put(codePointToString(0x1D46A), "\u0063");
+		b_2.put(codePointToString(0x1D46B), "\u0064");
+		b_2.put(codePointToString(0x1D46C), "\u0065");
+		b_2.put(codePointToString(0x1D46D), "\u0066");
+		b_2.put(codePointToString(0x1D46E), "\u0067");
+		b_2.put(codePointToString(0x1D46F), "\u0068");
+		b_2.put(codePointToString(0x1D470), "\u0069");
+		b_2.put(codePointToString(0x1D471), "\u006A");
+		b_2.put(codePointToString(0x1D472), "\u006B");
+		b_2.put(codePointToString(0x1D473), "\u006C");
+		b_2.put(codePointToString(0x1D474), "\u006D");
+		b_2.put(codePointToString(0x1D475), "\u006E");
+		b_2.put(codePointToString(0x1D476), "\u006F");
+		b_2.put(codePointToString(0x1D477), "\u0070");
+		b_2.put(codePointToString(0x1D478), "\u0071");
+		b_2.put(codePointToString(0x1D479), "\u0072");
+		b_2.put(codePointToString(0x1D47A), "\u0073");
+		b_2.put(codePointToString(0x1D47B), "\u0074");
+		b_2.put(codePointToString(0x1D47C), "\u0075");
+		b_2.put(codePointToString(0x1D47D), "\u0076");
+		b_2.put(codePointToString(0x1D47E), "\u0077");
+		b_2.put(codePointToString(0x1D47F), "\u0078");
+		b_2.put(codePointToString(0x1D480), "\u0079");
+		b_2.put(codePointToString(0x1D481), "\u007A");
+		b_2.put(codePointToString(0x1D49C), "\u0061");
+		b_2.put(codePointToString(0x1D49E), "\u0063");
+		b_2.put(codePointToString(0x1D49F), "\u0064");
+		b_2.put(codePointToString(0x1D4A2), "\u0067");
+		b_2.put(codePointToString(0x1D4A5), "\u006A");
+		b_2.put(codePointToString(0x1D4A6), "\u006B");
+		b_2.put(codePointToString(0x1D4A9), "\u006E");
+		b_2.put(codePointToString(0x1D4AA), "\u006F");
+		b_2.put(codePointToString(0x1D4AB), "\u0070");
+		b_2.put(codePointToString(0x1D4AC), "\u0071");
+		b_2.put(codePointToString(0x1D4AE), "\u0073");
+		b_2.put(codePointToString(0x1D4AF), "\u0074");
+		b_2.put(codePointToString(0x1D4B0), "\u0075");
+		b_2.put(codePointToString(0x1D4B1), "\u0076");
+		b_2.put(codePointToString(0x1D4B2), "\u0077");
+		b_2.put(codePointToString(0x1D4B3), "\u0078");
+		b_2.put(codePointToString(0x1D4B4), "\u0079");
+		b_2.put(codePointToString(0x1D4B5), "\u007A");
+		b_2.put(codePointToString(0x1D4D0), "\u0061");
+		b_2.put(codePointToString(0x1D4D1), "\u0062");
+		b_2.put(codePointToString(0x1D4D2), "\u0063");
+		b_2.put(codePointToString(0x1D4D3), "\u0064");
+		b_2.put(codePointToString(0x1D4D4), "\u0065");
+		b_2.put(codePointToString(0x1D4D5), "\u0066");
+		b_2.put(codePointToString(0x1D4D6), "\u0067");
+		b_2.put(codePointToString(0x1D4D7), "\u0068");
+		b_2.put(codePointToString(0x1D4D8), "\u0069");
+		b_2.put(codePointToString(0x1D4D9), "\u006A");
+		b_2.put(codePointToString(0x1D4DA), "\u006B");
+		b_2.put(codePointToString(0x1D4DB), "\u006C");
+		b_2.put(codePointToString(0x1D4DC), "\u006D");
+		b_2.put(codePointToString(0x1D4DD), "\u006E");
+		b_2.put(codePointToString(0x1D4DE), "\u006F");
+		b_2.put(codePointToString(0x1D4DF), "\u0070");
+		b_2.put(codePointToString(0x1D4E0), "\u0071");
+		b_2.put(codePointToString(0x1D4E1), "\u0072");
+		b_2.put(codePointToString(0x1D4E2), "\u0073");
+		b_2.put(codePointToString(0x1D4E3), "\u0074");
+		b_2.put(codePointToString(0x1D4E4), "\u0075");
+		b_2.put(codePointToString(0x1D4E5), "\u0076");
+		b_2.put(codePointToString(0x1D4E6), "\u0077");
+		b_2.put(codePointToString(0x1D4E7), "\u0078");
+		b_2.put(codePointToString(0x1D4E8), "\u0079");
+		b_2.put(codePointToString(0x1D4E9), "\u007A");
+		b_2.put(codePointToString(0x1D504), "\u0061");
+		b_2.put(codePointToString(0x1D505), "\u0062");
+		b_2.put(codePointToString(0x1D507), "\u0064");
+		b_2.put(codePointToString(0x1D508), "\u0065");
+		b_2.put(codePointToString(0x1D509), "\u0066");
+		b_2.put(codePointToString(0x1D50A), "\u0067");
+		b_2.put(codePointToString(0x1D50D), "\u006A");
+		b_2.put(codePointToString(0x1D50E), "\u006B");
+		b_2.put(codePointToString(0x1D50F), "\u006C");
+		b_2.put(codePointToString(0x1D510), "\u006D");
+		b_2.put(codePointToString(0x1D511), "\u006E");
+		b_2.put(codePointToString(0x1D512), "\u006F");
+		b_2.put(codePointToString(0x1D513), "\u0070");
+		b_2.put(codePointToString(0x1D514), "\u0071");
+		b_2.put(codePointToString(0x1D516), "\u0073");
+		b_2.put(codePointToString(0x1D517), "\u0074");
+		b_2.put(codePointToString(0x1D518), "\u0075");
+		b_2.put(codePointToString(0x1D519), "\u0076");
+		b_2.put(codePointToString(0x1D51A), "\u0077");
+		b_2.put(codePointToString(0x1D51B), "\u0078");
+		b_2.put(codePointToString(0x1D51C), "\u0079");
+		b_2.put(codePointToString(0x1D538), "\u0061");
+		b_2.put(codePointToString(0x1D539), "\u0062");
+		b_2.put(codePointToString(0x1D53B), "\u0064");
+		b_2.put(codePointToString(0x1D53C), "\u0065");
+		b_2.put(codePointToString(0x1D53D), "\u0066");
+		b_2.put(codePointToString(0x1D53E), "\u0067");
+		b_2.put(codePointToString(0x1D540), "\u0069");
+		b_2.put(codePointToString(0x1D541), "\u006A");
+		b_2.put(codePointToString(0x1D542), "\u006B");
+		b_2.put(codePointToString(0x1D543), "\u006C");
+		b_2.put(codePointToString(0x1D544), "\u006D");
+		b_2.put(codePointToString(0x1D546), "\u006F");
+		b_2.put(codePointToString(0x1D54A), "\u0073");
+		b_2.put(codePointToString(0x1D54B), "\u0074");
+		b_2.put(codePointToString(0x1D54C), "\u0075");
+		b_2.put(codePointToString(0x1D54D), "\u0076");
+		b_2.put(codePointToString(0x1D54E), "\u0077");
+		b_2.put(codePointToString(0x1D54F), "\u0078");
+		b_2.put(codePointToString(0x1D550), "\u0079");
+		b_2.put(codePointToString(0x1D56C), "\u0061");
+		b_2.put(codePointToString(0x1D56D), "\u0062");
+		b_2.put(codePointToString(0x1D56E), "\u0063");
+		b_2.put(codePointToString(0x1D56F), "\u0064");
+		b_2.put(codePointToString(0x1D570), "\u0065");
+		b_2.put(codePointToString(0x1D571), "\u0066");
+		b_2.put(codePointToString(0x1D572), "\u0067");
+		b_2.put(codePointToString(0x1D573), "\u0068");
+		b_2.put(codePointToString(0x1D574), "\u0069");
+		b_2.put(codePointToString(0x1D575), "\u006A");
+		b_2.put(codePointToString(0x1D576), "\u006B");
+		b_2.put(codePointToString(0x1D577), "\u006C");
+		b_2.put(codePointToString(0x1D578), "\u006D");
+		b_2.put(codePointToString(0x1D579), "\u006E");
+		b_2.put(codePointToString(0x1D57A), "\u006F");
+		b_2.put(codePointToString(0x1D57B), "\u0070");
+		b_2.put(codePointToString(0x1D57C), "\u0071");
+		b_2.put(codePointToString(0x1D57D), "\u0072");
+		b_2.put(codePointToString(0x1D57E), "\u0073");
+		b_2.put(codePointToString(0x1D57F), "\u0074");
+		b_2.put(codePointToString(0x1D580), "\u0075");
+		b_2.put(codePointToString(0x1D581), "\u0076");
+		b_2.put(codePointToString(0x1D582), "\u0077");
+		b_2.put(codePointToString(0x1D583), "\u0078");
+		b_2.put(codePointToString(0x1D584), "\u0079");
+		b_2.put(codePointToString(0x1D585), "\u007A");
+		b_2.put(codePointToString(0x1D5A0), "\u0061");
+		b_2.put(codePointToString(0x1D5A1), "\u0062");
+		b_2.put(codePointToString(0x1D5A2), "\u0063");
+		b_2.put(codePointToString(0x1D5A3), "\u0064");
+		b_2.put(codePointToString(0x1D5A4), "\u0065");
+		b_2.put(codePointToString(0x1D5A5), "\u0066");
+		b_2.put(codePointToString(0x1D5A6), "\u0067");
+		b_2.put(codePointToString(0x1D5A7), "\u0068");
+		b_2.put(codePointToString(0x1D5A8), "\u0069");
+		b_2.put(codePointToString(0x1D5A9), "\u006A");
+		b_2.put(codePointToString(0x1D5AA), "\u006B");
+		b_2.put(codePointToString(0x1D5AB), "\u006C");
+		b_2.put(codePointToString(0x1D5AC), "\u006D");
+		b_2.put(codePointToString(0x1D5AD), "\u006E");
+		b_2.put(codePointToString(0x1D5AE), "\u006F");
+		b_2.put(codePointToString(0x1D5AF), "\u0070");
+		b_2.put(codePointToString(0x1D5B0), "\u0071");
+		b_2.put(codePointToString(0x1D5B1), "\u0072");
+		b_2.put(codePointToString(0x1D5B2), "\u0073");
+		b_2.put(codePointToString(0x1D5B3), "\u0074");
+		b_2.put(codePointToString(0x1D5B4), "\u0075");
+		b_2.put(codePointToString(0x1D5B5), "\u0076");
+		b_2.put(codePointToString(0x1D5B6), "\u0077");
+		b_2.put(codePointToString(0x1D5B7), "\u0078");
+		b_2.put(codePointToString(0x1D5B8), "\u0079");
+		b_2.put(codePointToString(0x1D5B9), "\u007A");
+		b_2.put(codePointToString(0x1D5D4), "\u0061");
+		b_2.put(codePointToString(0x1D5D5), "\u0062");
+		b_2.put(codePointToString(0x1D5D6), "\u0063");
+		b_2.put(codePointToString(0x1D5D7), "\u0064");
+		b_2.put(codePointToString(0x1D5D8), "\u0065");
+		b_2.put(codePointToString(0x1D5D9), "\u0066");
+		b_2.put(codePointToString(0x1D5DA), "\u0067");
+		b_2.put(codePointToString(0x1D5DB), "\u0068");
+		b_2.put(codePointToString(0x1D5DC), "\u0069");
+		b_2.put(codePointToString(0x1D5DD), "\u006A");
+		b_2.put(codePointToString(0x1D5DE), "\u006B");
+		b_2.put(codePointToString(0x1D5DF), "\u006C");
+		b_2.put(codePointToString(0x1D5E0), "\u006D");
+		b_2.put(codePointToString(0x1D5E1), "\u006E");
+		b_2.put(codePointToString(0x1D5E2), "\u006F");
+		b_2.put(codePointToString(0x1D5E3), "\u0070");
+		b_2.put(codePointToString(0x1D5E4), "\u0071");
+		b_2.put(codePointToString(0x1D5E5), "\u0072");
+		b_2.put(codePointToString(0x1D5E6), "\u0073");
+		b_2.put(codePointToString(0x1D5E7), "\u0074");
+		b_2.put(codePointToString(0x1D5E8), "\u0075");
+		b_2.put(codePointToString(0x1D5E9), "\u0076");
+		b_2.put(codePointToString(0x1D5EA), "\u0077");
+		b_2.put(codePointToString(0x1D5EB), "\u0078");
+		b_2.put(codePointToString(0x1D5EC), "\u0079");
+		b_2.put(codePointToString(0x1D5ED), "\u007A");
+		b_2.put(codePointToString(0x1D608), "\u0061");
+		b_2.put(codePointToString(0x1D609), "\u0062");
+		b_2.put(codePointToString(0x1D60A), "\u0063");
+		b_2.put(codePointToString(0x1D60B), "\u0064");
+		b_2.put(codePointToString(0x1D60C), "\u0065");
+		b_2.put(codePointToString(0x1D60D), "\u0066");
+		b_2.put(codePointToString(0x1D60E), "\u0067");
+		b_2.put(codePointToString(0x1D60F), "\u0068");
+		b_2.put(codePointToString(0x1D610), "\u0069");
+		b_2.put(codePointToString(0x1D611), "\u006A");
+		b_2.put(codePointToString(0x1D612), "\u006B");
+		b_2.put(codePointToString(0x1D613), "\u006C");
+		b_2.put(codePointToString(0x1D614), "\u006D");
+		b_2.put(codePointToString(0x1D615), "\u006E");
+		b_2.put(codePointToString(0x1D616), "\u006F");
+		b_2.put(codePointToString(0x1D617), "\u0070");
+		b_2.put(codePointToString(0x1D618), "\u0071");
+		b_2.put(codePointToString(0x1D619), "\u0072");
+		b_2.put(codePointToString(0x1D61A), "\u0073");
+		b_2.put(codePointToString(0x1D61B), "\u0074");
+		b_2.put(codePointToString(0x1D61C), "\u0075");
+		b_2.put(codePointToString(0x1D61D), "\u0076");
+		b_2.put(codePointToString(0x1D61E), "\u0077");
+		b_2.put(codePointToString(0x1D61F), "\u0078");
+		b_2.put(codePointToString(0x1D620), "\u0079");
+		b_2.put(codePointToString(0x1D621), "\u007A");
+		b_2.put(codePointToString(0x1D63C), "\u0061");
+		b_2.put(codePointToString(0x1D63D), "\u0062");
+		b_2.put(codePointToString(0x1D63E), "\u0063");
+		b_2.put(codePointToString(0x1D63F), "\u0064");
+		b_2.put(codePointToString(0x1D640), "\u0065");
+		b_2.put(codePointToString(0x1D641), "\u0066");
+		b_2.put(codePointToString(0x1D642), "\u0067");
+		b_2.put(codePointToString(0x1D643), "\u0068");
+		b_2.put(codePointToString(0x1D644), "\u0069");
+		b_2.put(codePointToString(0x1D645), "\u006A");
+		b_2.put(codePointToString(0x1D646), "\u006B");
+		b_2.put(codePointToString(0x1D647), "\u006C");
+		b_2.put(codePointToString(0x1D648), "\u006D");
+		b_2.put(codePointToString(0x1D649), "\u006E");
+		b_2.put(codePointToString(0x1D64A), "\u006F");
+		b_2.put(codePointToString(0x1D64B), "\u0070");
+		b_2.put(codePointToString(0x1D64C), "\u0071");
+		b_2.put(codePointToString(0x1D64D), "\u0072");
+		b_2.put(codePointToString(0x1D64E), "\u0073");
+		b_2.put(codePointToString(0x1D64F), "\u0074");
+		b_2.put(codePointToString(0x1D650), "\u0075");
+		b_2.put(codePointToString(0x1D651), "\u0076");
+		b_2.put(codePointToString(0x1D652), "\u0077");
+		b_2.put(codePointToString(0x1D653), "\u0078");
+		b_2.put(codePointToString(0x1D654), "\u0079");
+		b_2.put(codePointToString(0x1D655), "\u007A");
+		b_2.put(codePointToString(0x1D670), "\u0061");
+		b_2.put(codePointToString(0x1D671), "\u0062");
+		b_2.put(codePointToString(0x1D672), "\u0063");
+		b_2.put(codePointToString(0x1D673), "\u0064");
+		b_2.put(codePointToString(0x1D674), "\u0065");
+		b_2.put(codePointToString(0x1D675), "\u0066");
+		b_2.put(codePointToString(0x1D676), "\u0067");
+		b_2.put(codePointToString(0x1D677), "\u0068");
+		b_2.put(codePointToString(0x1D678), "\u0069");
+		b_2.put(codePointToString(0x1D679), "\u006A");
+		b_2.put(codePointToString(0x1D67A), "\u006B");
+		b_2.put(codePointToString(0x1D67B), "\u006C");
+		b_2.put(codePointToString(0x1D67C), "\u006D");
+		b_2.put(codePointToString(0x1D67D), "\u006E");
+		b_2.put(codePointToString(0x1D67E), "\u006F");
+		b_2.put(codePointToString(0x1D67F), "\u0070");
+		b_2.put(codePointToString(0x1D680), "\u0071");
+		b_2.put(codePointToString(0x1D681), "\u0072");
+		b_2.put(codePointToString(0x1D682), "\u0073");
+		b_2.put(codePointToString(0x1D683), "\u0074");
+		b_2.put(codePointToString(0x1D684), "\u0075");
+		b_2.put(codePointToString(0x1D685), "\u0076");
+		b_2.put(codePointToString(0x1D686), "\u0077");
+		b_2.put(codePointToString(0x1D687), "\u0078");
+		b_2.put(codePointToString(0x1D688), "\u0079");
+		b_2.put(codePointToString(0x1D689), "\u007A");
+		b_2.put(codePointToString(0x1D6A8), "\u03B1");
+		b_2.put(codePointToString(0x1D6A9), "\u03B2");
+		b_2.put(codePointToString(0x1D6AA), "\u03B3");
+		b_2.put(codePointToString(0x1D6AB), "\u03B4");
+		b_2.put(codePointToString(0x1D6AC), "\u03B5");
+		b_2.put(codePointToString(0x1D6AD), "\u03B6");
+		b_2.put(codePointToString(0x1D6AE), "\u03B7");
+		b_2.put(codePointToString(0x1D6AF), "\u03B8");
+		b_2.put(codePointToString(0x1D6B0), "\u03B9");
+		b_2.put(codePointToString(0x1D6B1), "\u03BA");
+		b_2.put(codePointToString(0x1D6B2), "\u03BB");
+		b_2.put(codePointToString(0x1D6B3), "\u03BC");
+		b_2.put(codePointToString(0x1D6B4), "\u03BD");
+		b_2.put(codePointToString(0x1D6B5), "\u03BE");
+		b_2.put(codePointToString(0x1D6B6), "\u03BF");
+		b_2.put(codePointToString(0x1D6B7), "\u03C0");
+		b_2.put(codePointToString(0x1D6B8), "\u03C1");
+		b_2.put(codePointToString(0x1D6B9), "\u03B8");
+		b_2.put(codePointToString(0x1D6BA), "\u03C3");
+		b_2.put(codePointToString(0x1D6BB), "\u03C4");
+		b_2.put(codePointToString(0x1D6BC), "\u03C5");
+		b_2.put(codePointToString(0x1D6BD), "\u03C6");
+		b_2.put(codePointToString(0x1D6BE), "\u03C7");
+		b_2.put(codePointToString(0x1D6BF), "\u03C8");
+		b_2.put(codePointToString(0x1D6C0), "\u03C9");
+		b_2.put(codePointToString(0x1D6D3), "\u03C3");
+		b_2.put(codePointToString(0x1D6E2), "\u03B1");
+		b_2.put(codePointToString(0x1D6E3), "\u03B2");
+		b_2.put(codePointToString(0x1D6E4), "\u03B3");
+		b_2.put(codePointToString(0x1D6E5), "\u03B4");
+		b_2.put(codePointToString(0x1D6E6), "\u03B5");
+		b_2.put(codePointToString(0x1D6E7), "\u03B6");
+		b_2.put(codePointToString(0x1D6E8), "\u03B7");
+		b_2.put(codePointToString(0x1D6E9), "\u03B8");
+		b_2.put(codePointToString(0x1D6EA), "\u03B9");
+		b_2.put(codePointToString(0x1D6EB), "\u03BA");
+		b_2.put(codePointToString(0x1D6EC), "\u03BB");
+		b_2.put(codePointToString(0x1D6ED), "\u03BC");
+		b_2.put(codePointToString(0x1D6EE), "\u03BD");
+		b_2.put(codePointToString(0x1D6EF), "\u03BE");
+		b_2.put(codePointToString(0x1D6F0), "\u03BF");
+		b_2.put(codePointToString(0x1D6F1), "\u03C0");
+		b_2.put(codePointToString(0x1D6F2), "\u03C1");
+		b_2.put(codePointToString(0x1D6F3), "\u03B8");
+		b_2.put(codePointToString(0x1D6F4), "\u03C3");
+		b_2.put(codePointToString(0x1D6F5), "\u03C4");
+		b_2.put(codePointToString(0x1D6F6), "\u03C5");
+		b_2.put(codePointToString(0x1D6F7), "\u03C6");
+		b_2.put(codePointToString(0x1D6F8), "\u03C7");
+		b_2.put(codePointToString(0x1D6F9), "\u03C8");
+		b_2.put(codePointToString(0x1D6FA), "\u03C9");
+		b_2.put(codePointToString(0x1D70D), "\u03C3");
+		b_2.put(codePointToString(0x1D71C), "\u03B1");
+		b_2.put(codePointToString(0x1D71D), "\u03B2");
+		b_2.put(codePointToString(0x1D71E), "\u03B3");
+		b_2.put(codePointToString(0x1D71F), "\u03B4");
+		b_2.put(codePointToString(0x1D720), "\u03B5");
+		b_2.put(codePointToString(0x1D721), "\u03B6");
+		b_2.put(codePointToString(0x1D722), "\u03B7");
+		b_2.put(codePointToString(0x1D723), "\u03B8");
+		b_2.put(codePointToString(0x1D724), "\u03B9");
+		b_2.put(codePointToString(0x1D725), "\u03BA");
+		b_2.put(codePointToString(0x1D726), "\u03BB");
+		b_2.put(codePointToString(0x1D727), "\u03BC");
+		b_2.put(codePointToString(0x1D728), "\u03BD");
+		b_2.put(codePointToString(0x1D729), "\u03BE");
+		b_2.put(codePointToString(0x1D72A), "\u03BF");
+		b_2.put(codePointToString(0x1D72B), "\u03C0");
+		b_2.put(codePointToString(0x1D72C), "\u03C1");
+		b_2.put(codePointToString(0x1D72D), "\u03B8");
+		b_2.put(codePointToString(0x1D72E), "\u03C3");
+		b_2.put(codePointToString(0x1D72F), "\u03C4");
+		b_2.put(codePointToString(0x1D730), "\u03C5");
+		b_2.put(codePointToString(0x1D731), "\u03C6");
+		b_2.put(codePointToString(0x1D732), "\u03C7");
+		b_2.put(codePointToString(0x1D733), "\u03C8");
+		b_2.put(codePointToString(0x1D734), "\u03C9");
+		b_2.put(codePointToString(0x1D747), "\u03C3");
+		b_2.put(codePointToString(0x1D756), "\u03B1");
+		b_2.put(codePointToString(0x1D757), "\u03B2");
+		b_2.put(codePointToString(0x1D758), "\u03B3");
+		b_2.put(codePointToString(0x1D759), "\u03B4");
+		b_2.put(codePointToString(0x1D75A), "\u03B5");
+		b_2.put(codePointToString(0x1D75B), "\u03B6");
+		b_2.put(codePointToString(0x1D75C), "\u03B7");
+		b_2.put(codePointToString(0x1D75D), "\u03B8");
+		b_2.put(codePointToString(0x1D75E), "\u03B9");
+		b_2.put(codePointToString(0x1D75F), "\u03BA");
+		b_2.put(codePointToString(0x1D760), "\u03BB");
+		b_2.put(codePointToString(0x1D761), "\u03BC");
+		b_2.put(codePointToString(0x1D762), "\u03BD");
+		b_2.put(codePointToString(0x1D763), "\u03BE");
+		b_2.put(codePointToString(0x1D764), "\u03BF");
+		b_2.put(codePointToString(0x1D765), "\u03C0");
+		b_2.put(codePointToString(0x1D766), "\u03C1");
+		b_2.put(codePointToString(0x1D767), "\u03B8");
+		b_2.put(codePointToString(0x1D768), "\u03C3");
+		b_2.put(codePointToString(0x1D769), "\u03C4");
+		b_2.put(codePointToString(0x1D76A), "\u03C5");
+		b_2.put(codePointToString(0x1D76B), "\u03C6");
+		b_2.put(codePointToString(0x1D76C), "\u03C7");
+		b_2.put(codePointToString(0x1D76D), "\u03C8");
+		b_2.put(codePointToString(0x1D76E), "\u03C9");
+		b_2.put(codePointToString(0x1D781), "\u03C3");
+		b_2.put(codePointToString(0x1D790), "\u03B1");
+		b_2.put(codePointToString(0x1D791), "\u03B2");
+		b_2.put(codePointToString(0x1D792), "\u03B3");
+		b_2.put(codePointToString(0x1D793), "\u03B4");
+		b_2.put(codePointToString(0x1D794), "\u03B5");
+		b_2.put(codePointToString(0x1D795), "\u03B6");
+		b_2.put(codePointToString(0x1D796), "\u03B7");
+		b_2.put(codePointToString(0x1D797), "\u03B8");
+		b_2.put(codePointToString(0x1D798), "\u03B9");
+		b_2.put(codePointToString(0x1D799), "\u03BA");
+		b_2.put(codePointToString(0x1D79A), "\u03BB");
+		b_2.put(codePointToString(0x1D79B), "\u03BC");
+		b_2.put(codePointToString(0x1D79C), "\u03BD");
+		b_2.put(codePointToString(0x1D79D), "\u03BE");
+		b_2.put(codePointToString(0x1D79E), "\u03BF");
+		b_2.put(codePointToString(0x1D79F), "\u03C0");
+		b_2.put(codePointToString(0x1D7A0), "\u03C1");
+		b_2.put(codePointToString(0x1D7A1), "\u03B8");
+		b_2.put(codePointToString(0x1D7A2), "\u03C3");
+		b_2.put(codePointToString(0x1D7A3), "\u03C4");
+		b_2.put(codePointToString(0x1D7A4), "\u03C5");
+		b_2.put(codePointToString(0x1D7A5), "\u03C6");
+		b_2.put(codePointToString(0x1D7A6), "\u03C7");
+		b_2.put(codePointToString(0x1D7A7), "\u03C8");
+		b_2.put(codePointToString(0x1D7A8), "\u03C9");
+		b_2.put(codePointToString(0x1D7BB), "\u03C3");
+		return Collections.unmodifiableMap(b_2);
+	}
+
+	private static final Map<String, String> build_B_3_MappingForCaseFoldingWithNoNormalization() {
+		Map<String, String> b_3 = new HashMap<String, String>();
+		b_3.put("\u0041", "\u0061");
+		b_3.put("\u0042", "\u0062");
+		b_3.put("\u0043", "\u0063");
+		b_3.put("\u0044", "\u0064");
+		b_3.put("\u0045", "\u0065");
+		b_3.put("\u0046", "\u0066");
+		b_3.put("\u0047", "\u0067");
+		b_3.put("\u0048", "\u0068");
+		b_3.put("\u0049", "\u0069");
+		b_3.put("\u004A", "\u006A");
+		b_3.put("\u004B", "\u006B");
+		b_3.put("\u004C", "\u006C");
+		b_3.put("\u004D", "\u006D");
+		b_3.put("\u004E", "\u006E");
+		b_3.put("\u004F", "\u006F");
+		b_3.put("\u0050", "\u0070");
+		b_3.put("\u0051", "\u0071");
+		b_3.put("\u0052", "\u0072");
+		b_3.put("\u0053", "\u0073");
+		b_3.put("\u0054", "\u0074");
+		b_3.put("\u0055", "\u0075");
+		b_3.put("\u0056", "\u0076");
+		b_3.put("\u0057", "\u0077");
+		b_3.put("\u0058", "\u0078");
+		b_3.put("\u0059", "\u0079");
+		b_3.put("\u005A", "\u007A");
+		b_3.put("\u00B5", "\u03BC");
+		b_3.put("\u00C0", "\u00E0");
+		b_3.put("\u00C1", "\u00E1");
+		b_3.put("\u00C2", "\u00E2");
+		b_3.put("\u00C3", "\u00E3");
+		b_3.put("\u00C4", "\u00E4");
+		b_3.put("\u00C5", "\u00E5");
+		b_3.put("\u00C6", "\u00E6");
+		b_3.put("\u00C7", "\u00E7");
+		b_3.put("\u00C8", "\u00E8");
+		b_3.put("\u00C9", "\u00E9");
+		b_3.put("\u00CA", "\u00EA");
+		b_3.put("\u00CB", "\u00EB");
+		b_3.put("\u00CC", "\u00EC");
+		b_3.put("\u00CD", "\u00ED");
+		b_3.put("\u00CE", "\u00EE");
+		b_3.put("\u00CF", "\u00EF");
+		b_3.put("\u00D0", "\u00F0");
+		b_3.put("\u00D1", "\u00F1");
+		b_3.put("\u00D2", "\u00F2");
+		b_3.put("\u00D3", "\u00F3");
+		b_3.put("\u00D4", "\u00F4");
+		b_3.put("\u00D5", "\u00F5");
+		b_3.put("\u00D6", "\u00F6");
+		b_3.put("\u00D8", "\u00F8");
+		b_3.put("\u00D9", "\u00F9");
+		b_3.put("\u00DA", "\u00FA");
+		b_3.put("\u00DB", "\u00FB");
+		b_3.put("\u00DC", "\u00FC");
+		b_3.put("\u00DD", "\u00FD");
+		b_3.put("\u00DE", "\u00FE");
+		b_3.put("\u00DF", "\u0073\u0073");
+		b_3.put("\u0100", "\u0101");
+		b_3.put("\u0102", "\u0103");
+		b_3.put("\u0104", "\u0105");
+		b_3.put("\u0106", "\u0107");
+		b_3.put("\u0108", "\u0109");
+		b_3.put("\u010A", "\u010B");
+		b_3.put("\u010C", "\u010D");
+		b_3.put("\u010E", "\u010F");
+		b_3.put("\u0110", "\u0111");
+		b_3.put("\u0112", "\u0113");
+		b_3.put("\u0114", "\u0115");
+		b_3.put("\u0116", "\u0117");
+		b_3.put("\u0118", "\u0119");
+		b_3.put("\u011A", "\u011B");
+		b_3.put("\u011C", "\u011D");
+		b_3.put("\u011E", "\u011F");
+		b_3.put("\u0120", "\u0121");
+		b_3.put("\u0122", "\u0123");
+		b_3.put("\u0124", "\u0125");
+		b_3.put("\u0126", "\u0127");
+		b_3.put("\u0128", "\u0129");
+		b_3.put("\u012A", "\u012B");
+		b_3.put("\u012C", "\u012D");
+		b_3.put("\u012E", "\u012F");
+		b_3.put("\u0130", "\u0069\u0307");
+		b_3.put("\u0132", "\u0133");
+		b_3.put("\u0134", "\u0135");
+		b_3.put("\u0136", "\u0137");
+		b_3.put("\u0139", "\u013A");
+		b_3.put("\u013B", "\u013C");
+		b_3.put("\u013D", "\u013E");
+		b_3.put("\u013F", "\u0140");
+		b_3.put("\u0141", "\u0142");
+		b_3.put("\u0143", "\u0144");
+		b_3.put("\u0145", "\u0146");
+		b_3.put("\u0147", "\u0148");
+		b_3.put("\u0149", "\u02BC\u006E");
+		b_3.put("\u014A", "\u014B");
+		b_3.put("\u014C", "\u014D");
+		b_3.put("\u014E", "\u014F");
+		b_3.put("\u0150", "\u0151");
+		b_3.put("\u0152", "\u0153");
+		b_3.put("\u0154", "\u0155");
+		b_3.put("\u0156", "\u0157");
+		b_3.put("\u0158", "\u0159");
+		b_3.put("\u015A", "\u015B");
+		b_3.put("\u015C", "\u015D");
+		b_3.put("\u015E", "\u015F");
+		b_3.put("\u0160", "\u0161");
+		b_3.put("\u0162", "\u0163");
+		b_3.put("\u0164", "\u0165");
+		b_3.put("\u0166", "\u0167");
+		b_3.put("\u0168", "\u0169");
+		b_3.put("\u016A", "\u016B");
+		b_3.put("\u016C", "\u016D");
+		b_3.put("\u016E", "\u016F");
+		b_3.put("\u0170", "\u0171");
+		b_3.put("\u0172", "\u0173");
+		b_3.put("\u0174", "\u0175");
+		b_3.put("\u0176", "\u0177");
+		b_3.put("\u0178", "\u00FF");
+		b_3.put("\u0179", "\u017A");
+		b_3.put("\u017B", "\u017C");
+		b_3.put("\u017D", "\u017E");
+		b_3.put("\u017F", "\u0073");
+		b_3.put("\u0181", "\u0253");
+		b_3.put("\u0182", "\u0183");
+		b_3.put("\u0184", "\u0185");
+		b_3.put("\u0186", "\u0254");
+		b_3.put("\u0187", "\u0188");
+		b_3.put("\u0189", "\u0256");
+		b_3.put("\u018A", "\u0257");
+		b_3.put("\u018B", "\u018C");
+		b_3.put("\u018E", "\u01DD");
+		b_3.put("\u018F", "\u0259");
+		b_3.put("\u0190", "\u025B");
+		b_3.put("\u0191", "\u0192");
+		b_3.put("\u0193", "\u0260");
+		b_3.put("\u0194", "\u0263");
+		b_3.put("\u0196", "\u0269");
+		b_3.put("\u0197", "\u0268");
+		b_3.put("\u0198", "\u0199");
+		b_3.put("\u019C", "\u026F");
+		b_3.put("\u019D", "\u0272");
+		b_3.put("\u019F", "\u0275");
+		b_3.put("\u01A0", "\u01A1");
+		b_3.put("\u01A2", "\u01A3");
+		b_3.put("\u01A4", "\u01A5");
+		b_3.put("\u01A6", "\u0280");
+		b_3.put("\u01A7", "\u01A8");
+		b_3.put("\u01A9", "\u0283");
+		b_3.put("\u01AC", "\u01AD");
+		b_3.put("\u01AE", "\u0288");
+		b_3.put("\u01AF", "\u01B0");
+		b_3.put("\u01B1", "\u028A");
+		b_3.put("\u01B2", "\u028B");
+		b_3.put("\u01B3", "\u01B4");
+		b_3.put("\u01B5", "\u01B6");
+		b_3.put("\u01B7", "\u0292");
+		b_3.put("\u01B8", "\u01B9");
+		b_3.put("\u01BC", "\u01BD");
+		b_3.put("\u01C4", "\u01C6");
+		b_3.put("\u01C5", "\u01C6");
+		b_3.put("\u01C7", "\u01C9");
+		b_3.put("\u01C8", "\u01C9");
+		b_3.put("\u01CA", "\u01CC");
+		b_3.put("\u01CB", "\u01CC");
+		b_3.put("\u01CD", "\u01CE");
+		b_3.put("\u01CF", "\u01D0");
+		b_3.put("\u01D1", "\u01D2");
+		b_3.put("\u01D3", "\u01D4");
+		b_3.put("\u01D5", "\u01D6");
+		b_3.put("\u01D7", "\u01D8");
+		b_3.put("\u01D9", "\u01DA");
+		b_3.put("\u01DB", "\u01DC");
+		b_3.put("\u01DE", "\u01DF");
+		b_3.put("\u01E0", "\u01E1");
+		b_3.put("\u01E2", "\u01E3");
+		b_3.put("\u01E4", "\u01E5");
+		b_3.put("\u01E6", "\u01E7");
+		b_3.put("\u01E8", "\u01E9");
+		b_3.put("\u01EA", "\u01EB");
+		b_3.put("\u01EC", "\u01ED");
+		b_3.put("\u01EE", "\u01EF");
+		b_3.put("\u01F0", "\u006A\u030C");
+		b_3.put("\u01F1", "\u01F3");
+		b_3.put("\u01F2", "\u01F3");
+		b_3.put("\u01F4", "\u01F5");
+		b_3.put("\u01F6", "\u0195");
+		b_3.put("\u01F7", "\u01BF");
+		b_3.put("\u01F8", "\u01F9");
+		b_3.put("\u01FA", "\u01FB");
+		b_3.put("\u01FC", "\u01FD");
+		b_3.put("\u01FE", "\u01FF");
+		b_3.put("\u0200", "\u0201");
+		b_3.put("\u0202", "\u0203");
+		b_3.put("\u0204", "\u0205");
+		b_3.put("\u0206", "\u0207");
+		b_3.put("\u0208", "\u0209");
+		b_3.put("\u020A", "\u020B");
+		b_3.put("\u020C", "\u020D");
+		b_3.put("\u020E", "\u020F");
+		b_3.put("\u0210", "\u0211");
+		b_3.put("\u0212", "\u0213");
+		b_3.put("\u0214", "\u0215");
+		b_3.put("\u0216", "\u0217");
+		b_3.put("\u0218", "\u0219");
+		b_3.put("\u021A", "\u021B");
+		b_3.put("\u021C", "\u021D");
+		b_3.put("\u021E", "\u021F");
+		b_3.put("\u0220", "\u019E");
+		b_3.put("\u0222", "\u0223");
+		b_3.put("\u0224", "\u0225");
+		b_3.put("\u0226", "\u0227");
+		b_3.put("\u0228", "\u0229");
+		b_3.put("\u022A", "\u022B");
+		b_3.put("\u022C", "\u022D");
+		b_3.put("\u022E", "\u022F");
+		b_3.put("\u0230", "\u0231");
+		b_3.put("\u0232", "\u0233");
+		b_3.put("\u0345", "\u03B9");
+		b_3.put("\u0386", "\u03AC");
+		b_3.put("\u0388", "\u03AD");
+		b_3.put("\u0389", "\u03AE");
+		b_3.put("\u038A", "\u03AF");
+		b_3.put("\u038C", "\u03CC");
+		b_3.put("\u038E", "\u03CD");
+		b_3.put("\u038F", "\u03CE");
+		b_3.put("\u0390", "\u03B9\u0308\u0301");
+		b_3.put("\u0391", "\u03B1");
+		b_3.put("\u0392", "\u03B2");
+		b_3.put("\u0393", "\u03B3");
+		b_3.put("\u0394", "\u03B4");
+		b_3.put("\u0395", "\u03B5");
+		b_3.put("\u0396", "\u03B6");
+		b_3.put("\u0397", "\u03B7");
+		b_3.put("\u0398", "\u03B8");
+		b_3.put("\u0399", "\u03B9");
+		b_3.put("\u039A", "\u03BA");
+		b_3.put("\u039B", "\u03BB");
+		b_3.put("\u039C", "\u03BC");
+		b_3.put("\u039D", "\u03BD");
+		b_3.put("\u039E", "\u03BE");
+		b_3.put("\u039F", "\u03BF");
+		b_3.put("\u03A0", "\u03C0");
+		b_3.put("\u03A1", "\u03C1");
+		b_3.put("\u03A3", "\u03C3");
+		b_3.put("\u03A4", "\u03C4");
+		b_3.put("\u03A5", "\u03C5");
+		b_3.put("\u03A6", "\u03C6");
+		b_3.put("\u03A7", "\u03C7");
+		b_3.put("\u03A8", "\u03C8");
+		b_3.put("\u03A9", "\u03C9");
+		b_3.put("\u03AA", "\u03CA");
+		b_3.put("\u03AB", "\u03CB");
+		b_3.put("\u03B0", "\u03C5\u0308\u0301");
+		b_3.put("\u03C2", "\u03C3");
+		b_3.put("\u03D0", "\u03B2");
+		b_3.put("\u03D1", "\u03B8");
+		b_3.put("\u03D5", "\u03C6");
+		b_3.put("\u03D6", "\u03C0");
+		b_3.put("\u03D8", "\u03D9");
+		b_3.put("\u03DA", "\u03DB");
+		b_3.put("\u03DC", "\u03DD");
+		b_3.put("\u03DE", "\u03DF");
+		b_3.put("\u03E0", "\u03E1");
+		b_3.put("\u03E2", "\u03E3");
+		b_3.put("\u03E4", "\u03E5");
+		b_3.put("\u03E6", "\u03E7");
+		b_3.put("\u03E8", "\u03E9");
+		b_3.put("\u03EA", "\u03EB");
+		b_3.put("\u03EC", "\u03ED");
+		b_3.put("\u03EE", "\u03EF");
+		b_3.put("\u03F0", "\u03BA");
+		b_3.put("\u03F1", "\u03C1");
+		b_3.put("\u03F2", "\u03C3");
+		b_3.put("\u03F4", "\u03B8");
+		b_3.put("\u03F5", "\u03B5");
+		b_3.put("\u0400", "\u0450");
+		b_3.put("\u0401", "\u0451");
+		b_3.put("\u0402", "\u0452");
+		b_3.put("\u0403", "\u0453");
+		b_3.put("\u0404", "\u0454");
+		b_3.put("\u0405", "\u0455");
+		b_3.put("\u0406", "\u0456");
+		b_3.put("\u0407", "\u0457");
+		b_3.put("\u0408", "\u0458");
+		b_3.put("\u0409", "\u0459");
+		b_3.put("\u040A", "\u045A");
+		b_3.put("\u040B", "\u045B");
+		b_3.put("\u040C", "\u045C");
+		b_3.put("\u040D", "\u045D");
+		b_3.put("\u040E", "\u045E");
+		b_3.put("\u040F", "\u045F");
+		b_3.put("\u0410", "\u0430");
+		b_3.put("\u0411", "\u0431");
+		b_3.put("\u0412", "\u0432");
+		b_3.put("\u0413", "\u0433");
+		b_3.put("\u0414", "\u0434");
+		b_3.put("\u0415", "\u0435");
+		b_3.put("\u0416", "\u0436");
+		b_3.put("\u0417", "\u0437");
+		b_3.put("\u0418", "\u0438");
+		b_3.put("\u0419", "\u0439");
+		b_3.put("\u041A", "\u043A");
+		b_3.put("\u041B", "\u043B");
+		b_3.put("\u041C", "\u043C");
+		b_3.put("\u041D", "\u043D");
+		b_3.put("\u041E", "\u043E");
+		b_3.put("\u041F", "\u043F");
+		b_3.put("\u0420", "\u0440");
+		b_3.put("\u0421", "\u0441");
+		b_3.put("\u0422", "\u0442");
+		b_3.put("\u0423", "\u0443");
+		b_3.put("\u0424", "\u0444");
+		b_3.put("\u0425", "\u0445");
+		b_3.put("\u0426", "\u0446");
+		b_3.put("\u0427", "\u0447");
+		b_3.put("\u0428", "\u0448");
+		b_3.put("\u0429", "\u0449");
+		b_3.put("\u042A", "\u044A");
+		b_3.put("\u042B", "\u044B");
+		b_3.put("\u042C", "\u044C");
+		b_3.put("\u042D", "\u044D");
+		b_3.put("\u042E", "\u044E");
+		b_3.put("\u042F", "\u044F");
+		b_3.put("\u0460", "\u0461");
+		b_3.put("\u0462", "\u0463");
+		b_3.put("\u0464", "\u0465");
+		b_3.put("\u0466", "\u0467");
+		b_3.put("\u0468", "\u0469");
+		b_3.put("\u046A", "\u046B");
+		b_3.put("\u046C", "\u046D");
+		b_3.put("\u046E", "\u046F");
+		b_3.put("\u0470", "\u0471");
+		b_3.put("\u0472", "\u0473");
+		b_3.put("\u0474", "\u0475");
+		b_3.put("\u0476", "\u0477");
+		b_3.put("\u0478", "\u0479");
+		b_3.put("\u047A", "\u047B");
+		b_3.put("\u047C", "\u047D");
+		b_3.put("\u047E", "\u047F");
+		b_3.put("\u0480", "\u0481");
+		b_3.put("\u048A", "\u048B");
+		b_3.put("\u048C", "\u048D");
+		b_3.put("\u048E", "\u048F");
+		b_3.put("\u0490", "\u0491");
+		b_3.put("\u0492", "\u0493");
+		b_3.put("\u0494", "\u0495");
+		b_3.put("\u0496", "\u0497");
+		b_3.put("\u0498", "\u0499");
+		b_3.put("\u049A", "\u049B");
+		b_3.put("\u049C", "\u049D");
+		b_3.put("\u049E", "\u049F");
+		b_3.put("\u04A0", "\u04A1");
+		b_3.put("\u04A2", "\u04A3");
+		b_3.put("\u04A4", "\u04A5");
+		b_3.put("\u04A6", "\u04A7");
+		b_3.put("\u04A8", "\u04A9");
+		b_3.put("\u04AA", "\u04AB");
+		b_3.put("\u04AC", "\u04AD");
+		b_3.put("\u04AE", "\u04AF");
+		b_3.put("\u04B0", "\u04B1");
+		b_3.put("\u04B2", "\u04B3");
+		b_3.put("\u04B4", "\u04B5");
+		b_3.put("\u04B6", "\u04B7");
+		b_3.put("\u04B8", "\u04B9");
+		b_3.put("\u04BA", "\u04BB");
+		b_3.put("\u04BC", "\u04BD");
+		b_3.put("\u04BE", "\u04BF");
+		b_3.put("\u04C1", "\u04C2");
+		b_3.put("\u04C3", "\u04C4");
+		b_3.put("\u04C5", "\u04C6");
+		b_3.put("\u04C7", "\u04C8");
+		b_3.put("\u04C9", "\u04CA");
+		b_3.put("\u04CB", "\u04CC");
+		b_3.put("\u04CD", "\u04CE");
+		b_3.put("\u04D0", "\u04D1");
+		b_3.put("\u04D2", "\u04D3");
+		b_3.put("\u04D4", "\u04D5");
+		b_3.put("\u04D6", "\u04D7");
+		b_3.put("\u04D8", "\u04D9");
+		b_3.put("\u04DA", "\u04DB");
+		b_3.put("\u04DC", "\u04DD");
+		b_3.put("\u04DE", "\u04DF");
+		b_3.put("\u04E0", "\u04E1");
+		b_3.put("\u04E2", "\u04E3");
+		b_3.put("\u04E4", "\u04E5");
+		b_3.put("\u04E6", "\u04E7");
+		b_3.put("\u04E8", "\u04E9");
+		b_3.put("\u04EA", "\u04EB");
+		b_3.put("\u04EC", "\u04ED");
+		b_3.put("\u04EE", "\u04EF");
+		b_3.put("\u04F0", "\u04F1");
+		b_3.put("\u04F2", "\u04F3");
+		b_3.put("\u04F4", "\u04F5");
+		b_3.put("\u04F8", "\u04F9");
+		b_3.put("\u0500", "\u0501");
+		b_3.put("\u0502", "\u0503");
+		b_3.put("\u0504", "\u0505");
+		b_3.put("\u0506", "\u0507");
+		b_3.put("\u0508", "\u0509");
+		b_3.put("\u050A", "\u050B");
+		b_3.put("\u050C", "\u050D");
+		b_3.put("\u050E", "\u050F");
+		b_3.put("\u0531", "\u0561");
+		b_3.put("\u0532", "\u0562");
+		b_3.put("\u0533", "\u0563");
+		b_3.put("\u0534", "\u0564");
+		b_3.put("\u0535", "\u0565");
+		b_3.put("\u0536", "\u0566");
+		b_3.put("\u0537", "\u0567");
+		b_3.put("\u0538", "\u0568");
+		b_3.put("\u0539", "\u0569");
+		b_3.put("\u053A", "\u056A");
+		b_3.put("\u053B", "\u056B");
+		b_3.put("\u053C", "\u056C");
+		b_3.put("\u053D", "\u056D");
+		b_3.put("\u053E", "\u056E");
+		b_3.put("\u053F", "\u056F");
+		b_3.put("\u0540", "\u0570");
+		b_3.put("\u0541", "\u0571");
+		b_3.put("\u0542", "\u0572");
+		b_3.put("\u0543", "\u0573");
+		b_3.put("\u0544", "\u0574");
+		b_3.put("\u0545", "\u0575");
+		b_3.put("\u0546", "\u0576");
+		b_3.put("\u0547", "\u0577");
+		b_3.put("\u0548", "\u0578");
+		b_3.put("\u0549", "\u0579");
+		b_3.put("\u054A", "\u057A");
+		b_3.put("\u054B", "\u057B");
+		b_3.put("\u054C", "\u057C");
+		b_3.put("\u054D", "\u057D");
+		b_3.put("\u054E", "\u057E");
+		b_3.put("\u054F", "\u057F");
+		b_3.put("\u0550", "\u0580");
+		b_3.put("\u0551", "\u0581");
+		b_3.put("\u0552", "\u0582");
+		b_3.put("\u0553", "\u0583");
+		b_3.put("\u0554", "\u0584");
+		b_3.put("\u0555", "\u0585");
+		b_3.put("\u0556", "\u0586");
+		b_3.put("\u0587", "\u0565\u0582");
+		b_3.put("\u1E00", "\u1E01");
+		b_3.put("\u1E02", "\u1E03");
+		b_3.put("\u1E04", "\u1E05");
+		b_3.put("\u1E06", "\u1E07");
+		b_3.put("\u1E08", "\u1E09");
+		b_3.put("\u1E0A", "\u1E0B");
+		b_3.put("\u1E0C", "\u1E0D");
+		b_3.put("\u1E0E", "\u1E0F");
+		b_3.put("\u1E10", "\u1E11");
+		b_3.put("\u1E12", "\u1E13");
+		b_3.put("\u1E14", "\u1E15");
+		b_3.put("\u1E16", "\u1E17");
+		b_3.put("\u1E18", "\u1E19");
+		b_3.put("\u1E1A", "\u1E1B");
+		b_3.put("\u1E1C", "\u1E1D");
+		b_3.put("\u1E1E", "\u1E1F");
+		b_3.put("\u1E20", "\u1E21");
+		b_3.put("\u1E22", "\u1E23");
+		b_3.put("\u1E24", "\u1E25");
+		b_3.put("\u1E26", "\u1E27");
+		b_3.put("\u1E28", "\u1E29");
+		b_3.put("\u1E2A", "\u1E2B");
+		b_3.put("\u1E2C", "\u1E2D");
+		b_3.put("\u1E2E", "\u1E2F");
+		b_3.put("\u1E30", "\u1E31");
+		b_3.put("\u1E32", "\u1E33");
+		b_3.put("\u1E34", "\u1E35");
+		b_3.put("\u1E36", "\u1E37");
+		b_3.put("\u1E38", "\u1E39");
+		b_3.put("\u1E3A", "\u1E3B");
+		b_3.put("\u1E3C", "\u1E3D");
+		b_3.put("\u1E3E", "\u1E3F");
+		b_3.put("\u1E40", "\u1E41");
+		b_3.put("\u1E42", "\u1E43");
+		b_3.put("\u1E44", "\u1E45");
+		b_3.put("\u1E46", "\u1E47");
+		b_3.put("\u1E48", "\u1E49");
+		b_3.put("\u1E4A", "\u1E4B");
+		b_3.put("\u1E4C", "\u1E4D");
+		b_3.put("\u1E4E", "\u1E4F");
+		b_3.put("\u1E50", "\u1E51");
+		b_3.put("\u1E52", "\u1E53");
+		b_3.put("\u1E54", "\u1E55");
+		b_3.put("\u1E56", "\u1E57");
+		b_3.put("\u1E58", "\u1E59");
+		b_3.put("\u1E5A", "\u1E5B");
+		b_3.put("\u1E5C", "\u1E5D");
+		b_3.put("\u1E5E", "\u1E5F");
+		b_3.put("\u1E60", "\u1E61");
+		b_3.put("\u1E62", "\u1E63");
+		b_3.put("\u1E64", "\u1E65");
+		b_3.put("\u1E66", "\u1E67");
+		b_3.put("\u1E68", "\u1E69");
+		b_3.put("\u1E6A", "\u1E6B");
+		b_3.put("\u1E6C", "\u1E6D");
+		b_3.put("\u1E6E", "\u1E6F");
+		b_3.put("\u1E70", "\u1E71");
+		b_3.put("\u1E72", "\u1E73");
+		b_3.put("\u1E74", "\u1E75");
+		b_3.put("\u1E76", "\u1E77");
+		b_3.put("\u1E78", "\u1E79");
+		b_3.put("\u1E7A", "\u1E7B");
+		b_3.put("\u1E7C", "\u1E7D");
+		b_3.put("\u1E7E", "\u1E7F");
+		b_3.put("\u1E80", "\u1E81");
+		b_3.put("\u1E82", "\u1E83");
+		b_3.put("\u1E84", "\u1E85");
+		b_3.put("\u1E86", "\u1E87");
+		b_3.put("\u1E88", "\u1E89");
+		b_3.put("\u1E8A", "\u1E8B");
+		b_3.put("\u1E8C", "\u1E8D");
+		b_3.put("\u1E8E", "\u1E8F");
+		b_3.put("\u1E90", "\u1E91");
+		b_3.put("\u1E92", "\u1E93");
+		b_3.put("\u1E94", "\u1E95");
+		b_3.put("\u1E96", "\u0068\u0331");
+		b_3.put("\u1E97", "\u0074\u0308");
+		b_3.put("\u1E98", "\u0077\u030A");
+		b_3.put("\u1E99", "\u0079\u030A");
+		b_3.put("\u1E9A", "\u0061\u02BE");
+		b_3.put("\u1E9B", "\u1E61");
+		b_3.put("\u1EA0", "\u1EA1");
+		b_3.put("\u1EA2", "\u1EA3");
+		b_3.put("\u1EA4", "\u1EA5");
+		b_3.put("\u1EA6", "\u1EA7");
+		b_3.put("\u1EA8", "\u1EA9");
+		b_3.put("\u1EAA", "\u1EAB");
+		b_3.put("\u1EAC", "\u1EAD");
+		b_3.put("\u1EAE", "\u1EAF");
+		b_3.put("\u1EB0", "\u1EB1");
+		b_3.put("\u1EB2", "\u1EB3");
+		b_3.put("\u1EB4", "\u1EB5");
+		b_3.put("\u1EB6", "\u1EB7");
+		b_3.put("\u1EB8", "\u1EB9");
+		b_3.put("\u1EBA", "\u1EBB");
+		b_3.put("\u1EBC", "\u1EBD");
+		b_3.put("\u1EBE", "\u1EBF");
+		b_3.put("\u1EC0", "\u1EC1");
+		b_3.put("\u1EC2", "\u1EC3");
+		b_3.put("\u1EC4", "\u1EC5");
+		b_3.put("\u1EC6", "\u1EC7");
+		b_3.put("\u1EC8", "\u1EC9");
+		b_3.put("\u1ECA", "\u1ECB");
+		b_3.put("\u1ECC", "\u1ECD");
+		b_3.put("\u1ECE", "\u1ECF");
+		b_3.put("\u1ED0", "\u1ED1");
+		b_3.put("\u1ED2", "\u1ED3");
+		b_3.put("\u1ED4", "\u1ED5");
+		b_3.put("\u1ED6", "\u1ED7");
+		b_3.put("\u1ED8", "\u1ED9");
+		b_3.put("\u1EDA", "\u1EDB");
+		b_3.put("\u1EDC", "\u1EDD");
+		b_3.put("\u1EDE", "\u1EDF");
+		b_3.put("\u1EE0", "\u1EE1");
+		b_3.put("\u1EE2", "\u1EE3");
+		b_3.put("\u1EE4", "\u1EE5");
+		b_3.put("\u1EE6", "\u1EE7");
+		b_3.put("\u1EE8", "\u1EE9");
+		b_3.put("\u1EEA", "\u1EEB");
+		b_3.put("\u1EEC", "\u1EED");
+		b_3.put("\u1EEE", "\u1EEF");
+		b_3.put("\u1EF0", "\u1EF1");
+		b_3.put("\u1EF2", "\u1EF3");
+		b_3.put("\u1EF4", "\u1EF5");
+		b_3.put("\u1EF6", "\u1EF7");
+		b_3.put("\u1EF8", "\u1EF9");
+		b_3.put("\u1F08", "\u1F00");
+		b_3.put("\u1F09", "\u1F01");
+		b_3.put("\u1F0A", "\u1F02");
+		b_3.put("\u1F0B", "\u1F03");
+		b_3.put("\u1F0C", "\u1F04");
+		b_3.put("\u1F0D", "\u1F05");
+		b_3.put("\u1F0E", "\u1F06");
+		b_3.put("\u1F0F", "\u1F07");
+		b_3.put("\u1F18", "\u1F10");
+		b_3.put("\u1F19", "\u1F11");
+		b_3.put("\u1F1A", "\u1F12");
+		b_3.put("\u1F1B", "\u1F13");
+		b_3.put("\u1F1C", "\u1F14");
+		b_3.put("\u1F1D", "\u1F15");
+		b_3.put("\u1F28", "\u1F20");
+		b_3.put("\u1F29", "\u1F21");
+		b_3.put("\u1F2A", "\u1F22");
+		b_3.put("\u1F2B", "\u1F23");
+		b_3.put("\u1F2C", "\u1F24");
+		b_3.put("\u1F2D", "\u1F25");
+		b_3.put("\u1F2E", "\u1F26");
+		b_3.put("\u1F2F", "\u1F27");
+		b_3.put("\u1F38", "\u1F30");
+		b_3.put("\u1F39", "\u1F31");
+		b_3.put("\u1F3A", "\u1F32");
+		b_3.put("\u1F3B", "\u1F33");
+		b_3.put("\u1F3C", "\u1F34");
+		b_3.put("\u1F3D", "\u1F35");
+		b_3.put("\u1F3E", "\u1F36");
+		b_3.put("\u1F3F", "\u1F37");
+		b_3.put("\u1F48", "\u1F40");
+		b_3.put("\u1F49", "\u1F41");
+		b_3.put("\u1F4A", "\u1F42");
+		b_3.put("\u1F4B", "\u1F43");
+		b_3.put("\u1F4C", "\u1F44");
+		b_3.put("\u1F4D", "\u1F45");
+		b_3.put("\u1F50", "\u03C5\u0313");
+		b_3.put("\u1F52", "\u03C5\u0313\u0300");
+		b_3.put("\u1F54", "\u03C5\u0313\u0301");
+		b_3.put("\u1F56", "\u03C5\u0313\u0342");
+		b_3.put("\u1F59", "\u1F51");
+		b_3.put("\u1F5B", "\u1F53");
+		b_3.put("\u1F5D", "\u1F55");
+		b_3.put("\u1F5F", "\u1F57");
+		b_3.put("\u1F68", "\u1F60");
+		b_3.put("\u1F69", "\u1F61");
+		b_3.put("\u1F6A", "\u1F62");
+		b_3.put("\u1F6B", "\u1F63");
+		b_3.put("\u1F6C", "\u1F64");
+		b_3.put("\u1F6D", "\u1F65");
+		b_3.put("\u1F6E", "\u1F66");
+		b_3.put("\u1F6F", "\u1F67");
+		b_3.put("\u1F80", "\u1F00\u03B9");
+		b_3.put("\u1F81", "\u1F01\u03B9");
+		b_3.put("\u1F82", "\u1F02\u03B9");
+		b_3.put("\u1F83", "\u1F03\u03B9");
+		b_3.put("\u1F84", "\u1F04\u03B9");
+		b_3.put("\u1F85", "\u1F05\u03B9");
+		b_3.put("\u1F86", "\u1F06\u03B9");
+		b_3.put("\u1F87", "\u1F07\u03B9");
+		b_3.put("\u1F88", "\u1F00\u03B9");
+		b_3.put("\u1F89", "\u1F01\u03B9");
+		b_3.put("\u1F8A", "\u1F02\u03B9");
+		b_3.put("\u1F8B", "\u1F03\u03B9");
+		b_3.put("\u1F8C", "\u1F04\u03B9");
+		b_3.put("\u1F8D", "\u1F05\u03B9");
+		b_3.put("\u1F8E", "\u1F06\u03B9");
+		b_3.put("\u1F8F", "\u1F07\u03B9");
+		b_3.put("\u1F90", "\u1F20\u03B9");
+		b_3.put("\u1F91", "\u1F21\u03B9");
+		b_3.put("\u1F92", "\u1F22\u03B9");
+		b_3.put("\u1F93", "\u1F23\u03B9");
+		b_3.put("\u1F94", "\u1F24\u03B9");
+		b_3.put("\u1F95", "\u1F25\u03B9");
+		b_3.put("\u1F96", "\u1F26\u03B9");
+		b_3.put("\u1F97", "\u1F27\u03B9");
+		b_3.put("\u1F98", "\u1F20\u03B9");
+		b_3.put("\u1F99", "\u1F21\u03B9");
+		b_3.put("\u1F9A", "\u1F22\u03B9");
+		b_3.put("\u1F9B", "\u1F23\u03B9");
+		b_3.put("\u1F9C", "\u1F24\u03B9");
+		b_3.put("\u1F9D", "\u1F25\u03B9");
+		b_3.put("\u1F9E", "\u1F26\u03B9");
+		b_3.put("\u1F9F", "\u1F27\u03B9");
+		b_3.put("\u1FA0", "\u1F60\u03B9");
+		b_3.put("\u1FA1", "\u1F61\u03B9");
+		b_3.put("\u1FA2", "\u1F62\u03B9");
+		b_3.put("\u1FA3", "\u1F63\u03B9");
+		b_3.put("\u1FA4", "\u1F64\u03B9");
+		b_3.put("\u1FA5", "\u1F65\u03B9");
+		b_3.put("\u1FA6", "\u1F66\u03B9");
+		b_3.put("\u1FA7", "\u1F67\u03B9");
+		b_3.put("\u1FA8", "\u1F60\u03B9");
+		b_3.put("\u1FA9", "\u1F61\u03B9");
+		b_3.put("\u1FAA", "\u1F62\u03B9");
+		b_3.put("\u1FAB", "\u1F63\u03B9");
+		b_3.put("\u1FAC", "\u1F64\u03B9");
+		b_3.put("\u1FAD", "\u1F65\u03B9");
+		b_3.put("\u1FAE", "\u1F66\u03B9");
+		b_3.put("\u1FAF", "\u1F67\u03B9");
+		b_3.put("\u1FB2", "\u1F70\u03B9");
+		b_3.put("\u1FB3", "\u03B1\u03B9");
+		b_3.put("\u1FB4", "\u03AC\u03B9");
+		b_3.put("\u1FB6", "\u03B1\u0342");
+		b_3.put("\u1FB7", "\u03B1\u0342\u03B9");
+		b_3.put("\u1FB8", "\u1FB0");
+		b_3.put("\u1FB9", "\u1FB1");
+		b_3.put("\u1FBA", "\u1F70");
+		b_3.put("\u1FBB", "\u1F71");
+		b_3.put("\u1FBC", "\u03B1\u03B9");
+		b_3.put("\u1FBE", "\u03B9");
+		b_3.put("\u1FC2", "\u1F74\u03B9");
+		b_3.put("\u1FC3", "\u03B7\u03B9");
+		b_3.put("\u1FC4", "\u03AE\u03B9");
+		b_3.put("\u1FC6", "\u03B7\u0342");
+		b_3.put("\u1FC7", "\u03B7\u0342\u03B9");
+		b_3.put("\u1FC8", "\u1F72");
+		b_3.put("\u1FC9", "\u1F73");
+		b_3.put("\u1FCA", "\u1F74");
+		b_3.put("\u1FCB", "\u1F75");
+		b_3.put("\u1FCC", "\u03B7\u03B9");
+		b_3.put("\u1FD2", "\u03B9\u0308\u0300");
+		b_3.put("\u1FD3", "\u03B9\u0308\u0301");
+		b_3.put("\u1FD6", "\u03B9\u0342");
+		b_3.put("\u1FD7", "\u03B9\u0308\u0342");
+		b_3.put("\u1FD8", "\u1FD0");
+		b_3.put("\u1FD9", "\u1FD1");
+		b_3.put("\u1FDA", "\u1F76");
+		b_3.put("\u1FDB", "\u1F77");
+		b_3.put("\u1FE2", "\u03C5\u0308\u0300");
+		b_3.put("\u1FE3", "\u03C5\u0308\u0301");
+		b_3.put("\u1FE4", "\u03C1\u0313");
+		b_3.put("\u1FE6", "\u03C5\u0342");
+		b_3.put("\u1FE7", "\u03C5\u0308\u0342");
+		b_3.put("\u1FE8", "\u1FE0");
+		b_3.put("\u1FE9", "\u1FE1");
+		b_3.put("\u1FEA", "\u1F7A");
+		b_3.put("\u1FEB", "\u1F7B");
+		b_3.put("\u1FEC", "\u1FE5");
+		b_3.put("\u1FF2", "\u1F7C\u03B9");
+		b_3.put("\u1FF3", "\u03C9\u03B9");
+		b_3.put("\u1FF4", "\u03CE\u03B9");
+		b_3.put("\u1FF6", "\u03C9\u0342");
+		b_3.put("\u1FF7", "\u03C9\u0342\u03B9");
+		b_3.put("\u1FF8", "\u1F78");
+		b_3.put("\u1FF9", "\u1F79");
+		b_3.put("\u1FFA", "\u1F7C");
+		b_3.put("\u1FFB", "\u1F7D");
+		b_3.put("\u1FFC", "\u03C9\u03B9");
+		b_3.put("\u2126", "\u03C9");
+		b_3.put("\u212A", "\u006B");
+		b_3.put("\u212B", "\u00E5");
+		b_3.put("\u2160", "\u2170");
+		b_3.put("\u2161", "\u2171");
+		b_3.put("\u2162", "\u2172");
+		b_3.put("\u2163", "\u2173");
+		b_3.put("\u2164", "\u2174");
+		b_3.put("\u2165", "\u2175");
+		b_3.put("\u2166", "\u2176");
+		b_3.put("\u2167", "\u2177");
+		b_3.put("\u2168", "\u2178");
+		b_3.put("\u2169", "\u2179");
+		b_3.put("\u216A", "\u217A");
+		b_3.put("\u216B", "\u217B");
+		b_3.put("\u216C", "\u217C");
+		b_3.put("\u216D", "\u217D");
+		b_3.put("\u216E", "\u217E");
+		b_3.put("\u216F", "\u217F");
+		b_3.put("\u24B6", "\u24D0");
+		b_3.put("\u24B7", "\u24D1");
+		b_3.put("\u24B8", "\u24D2");
+		b_3.put("\u24B9", "\u24D3");
+		b_3.put("\u24BA", "\u24D4");
+		b_3.put("\u24BB", "\u24D5");
+		b_3.put("\u24BC", "\u24D6");
+		b_3.put("\u24BD", "\u24D7");
+		b_3.put("\u24BE", "\u24D8");
+		b_3.put("\u24BF", "\u24D9");
+		b_3.put("\u24C0", "\u24DA");
+		b_3.put("\u24C1", "\u24DB");
+		b_3.put("\u24C2", "\u24DC");
+		b_3.put("\u24C3", "\u24DD");
+		b_3.put("\u24C4", "\u24DE");
+		b_3.put("\u24C5", "\u24DF");
+		b_3.put("\u24C6", "\u24E0");
+		b_3.put("\u24C7", "\u24E1");
+		b_3.put("\u24C8", "\u24E2");
+		b_3.put("\u24C9", "\u24E3");
+		b_3.put("\u24CA", "\u24E4");
+		b_3.put("\u24CB", "\u24E5");
+		b_3.put("\u24CC", "\u24E6");
+		b_3.put("\u24CD", "\u24E7");
+		b_3.put("\u24CE", "\u24E8");
+		b_3.put("\u24CF", "\u24E9");
+		b_3.put("\uFB00", "\u0066\u0066");
+		b_3.put("\uFB01", "\u0066\u0069");
+		b_3.put("\uFB02", "\u0066\u006C");
+		b_3.put("\uFB03", "\u0066\u0066\u0069");
+		b_3.put("\uFB04", "\u0066\u0066\u006C");
+		b_3.put("\uFB05", "\u0073\u0074");
+		b_3.put("\uFB06", "\u0073\u0074");
+		b_3.put("\uFB13", "\u0574\u0576");
+		b_3.put("\uFB14", "\u0574\u0565");
+		b_3.put("\uFB15", "\u0574\u056B");
+		b_3.put("\uFB16", "\u057E\u0576");
+		b_3.put("\uFB17", "\u0574\u056D");
+		b_3.put("\uFF21", "\uFF41");
+		b_3.put("\uFF22", "\uFF42");
+		b_3.put("\uFF23", "\uFF43");
+		b_3.put("\uFF24", "\uFF44");
+		b_3.put("\uFF25", "\uFF45");
+		b_3.put("\uFF26", "\uFF46");
+		b_3.put("\uFF27", "\uFF47");
+		b_3.put("\uFF28", "\uFF48");
+		b_3.put("\uFF29", "\uFF49");
+		b_3.put("\uFF2A", "\uFF4A");
+		b_3.put("\uFF2B", "\uFF4B");
+		b_3.put("\uFF2C", "\uFF4C");
+		b_3.put("\uFF2D", "\uFF4D");
+		b_3.put("\uFF2E", "\uFF4E");
+		b_3.put("\uFF2F", "\uFF4F");
+		b_3.put("\uFF30", "\uFF50");
+		b_3.put("\uFF31", "\uFF51");
+		b_3.put("\uFF32", "\uFF52");
+		b_3.put("\uFF33", "\uFF53");
+		b_3.put("\uFF34", "\uFF54");
+		b_3.put("\uFF35", "\uFF55");
+		b_3.put("\uFF36", "\uFF56");
+		b_3.put("\uFF37", "\uFF57");
+		b_3.put("\uFF38", "\uFF58");
+		b_3.put("\uFF39", "\uFF59");
+		b_3.put("\uFF3A", "\uFF5A");
+		b_3.put(codePointToString(0x10400), codePointToString(0x10428));
+		b_3.put(codePointToString(0x10401), codePointToString(0x10429));
+		b_3.put(codePointToString(0x10402), codePointToString(0x1042A));
+		b_3.put(codePointToString(0x10403), codePointToString(0x1042B));
+		b_3.put(codePointToString(0x10404), codePointToString(0x1042C));
+		b_3.put(codePointToString(0x10405), codePointToString(0x1042D));
+		b_3.put(codePointToString(0x10406), codePointToString(0x1042E));
+		b_3.put(codePointToString(0x10407), codePointToString(0x1042F));
+		b_3.put(codePointToString(0x10408), codePointToString(0x10430));
+		b_3.put(codePointToString(0x10409), codePointToString(0x10431));
+		b_3.put(codePointToString(0x1040A), codePointToString(0x10432));
+		b_3.put(codePointToString(0x1040B), codePointToString(0x10433));
+		b_3.put(codePointToString(0x1040C), codePointToString(0x10434));
+		b_3.put(codePointToString(0x1040D), codePointToString(0x10435));
+		b_3.put(codePointToString(0x1040E), codePointToString(0x10436));
+		b_3.put(codePointToString(0x1040F), codePointToString(0x10437));

[... 562 lines stripped ...]


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org