You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2006/12/26 09:37:25 UTC
svn commit: r490270 [2/4] - in
/directory/sandbox/elecharny/trunks/shared/ldap/src/main:
java/org/apache/directory/shared/ldap/schema/
java/org/apache/directory/shared/ldap/util/unicode/ resources/
resources/org/ resources/org/apache/ resources/org/apa...
Added: directory/sandbox/elecharny/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/schema/PrepareString.java
URL: http://svn.apache.org/viewvc/directory/sandbox/elecharny/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/schema/PrepareString.java?view=auto&rev=490270
==============================================================================
--- directory/sandbox/elecharny/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/schema/PrepareString.java (added)
+++ directory/sandbox/elecharny/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/schema/PrepareString.java Tue Dec 26 00:37:23 2006
@@ -0,0 +1,3992 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.directory.shared.ldap.schema;
+
+import java.io.IOException;
+
+import org.apache.directory.shared.ldap.util.unicode.Normalizer;
+
+public class PrepareString
+{
+
+ public static StringBuilder normalize( String str ) throws IOException
+ {
+ return Normalizer.normalize( str, Normalizer.Form.KC );
+ }
+
+ /**
+ * Execute the mapping step of the string preparation :
+ * - suppress useless chars
+ * - transform to spaces
+ * - lowercase
+ *
+ * @param str The string to transform
+ * @return The transformed string
+ */
+ public static StringBuilder map( String str )
+ {
+ StringBuilder sb = new StringBuilder( str.length() );
+
+ for ( char c:str.toCharArray() )
+ {
+ // First, eliminate surrogates, and replace them by FFFD char
+ if ( ( c >= 0xD800 ) && ( c <= 0xDFFF ) )
+ {
+ sb.append( (char)0xFFFD );
+ continue;
+ }
+
+ switch ( c )
+ {
+ case 0x0000:
+ case 0x0001:
+ case 0x0002:
+ case 0x0003:
+ case 0x0004:
+ case 0x0005:
+ case 0x0006:
+ case 0x0007:
+ case 0x0008:
+ break;
+
+ case 0x0009:
+ case 0x000A:
+ case 0x000B:
+ case 0x000C:
+ case 0x000D:
+ sb.append( (char)0x20 );
+ break;
+
+ case 0x000E:
+ case 0x000F:
+ case 0x0010:
+ case 0x0011:
+ case 0x0012:
+ case 0x0013:
+ case 0x0014:
+ case 0x0015:
+ case 0x0016:
+ case 0x0017:
+ case 0x0018:
+ case 0x0019:
+ case 0x001A:
+ case 0x001B:
+ case 0x001C:
+ case 0x001D:
+ case 0x001E:
+ case 0x001F:
+ break;
+
+ case 0x0041 :
+ sb.append( (char)0x0061 );
+ break;
+
+ case 0x0042 :
+ sb.append( (char)0x0062 );
+ break;
+
+ case 0x0043 :
+ sb.append( (char)0x0063 );
+ break;
+
+ case 0x0044 :
+ sb.append( (char)0x0064 );
+ break;
+
+ case 0x0045 :
+ sb.append( (char)0x0065 );
+ break;
+
+ case 0x0046 :
+ sb.append( (char)0x0066 );
+ break;
+
+ case 0x0047 :
+ sb.append( (char)0x0067 );
+ break;
+
+ case 0x0048 :
+ sb.append( (char)0x0068 );
+ break;
+
+ case 0x0049 :
+ sb.append( (char)0x0069 );
+ break;
+
+ case 0x004A :
+ sb.append( (char)0x006A );
+ break;
+
+ case 0x004B :
+ sb.append( (char)0x006B );
+ break;
+
+ case 0x004C :
+ sb.append( (char)0x006C );
+ break;
+
+ case 0x004D :
+ sb.append( (char)0x006D );
+ break;
+
+ case 0x004E :
+ sb.append( (char)0x006E );
+ break;
+
+ case 0x004F :
+ sb.append( (char)0x006F );
+ break;
+
+ case 0x0050 :
+ sb.append( (char)0x0070 );
+ break;
+
+ case 0x0051 :
+ sb.append( (char)0x0071 );
+ break;
+
+ case 0x0052 :
+ sb.append( (char)0x0072 );
+ break;
+
+ case 0x0053 :
+ sb.append( (char)0x0073 );
+ break;
+
+ case 0x0054 :
+ sb.append( (char)0x0074 );
+ break;
+
+ case 0x0055 :
+ sb.append( (char)0x0075 );
+ break;
+
+ case 0x0056 :
+ sb.append( (char)0x0076 );
+ break;
+
+ case 0x0057 :
+ sb.append( (char)0x0077 );
+ break;
+
+ case 0x0058 :
+ sb.append( (char)0x0078 );
+ break;
+
+ case 0x0059 :
+ sb.append( (char)0x0079 );
+ break;
+
+ case 0x005A :
+ sb.append( (char)0x007A );
+ break;
+
+ case 0x007F:
+ case 0x0080:
+ case 0x0081:
+ case 0x0082:
+ case 0x0083:
+ case 0x0084:
+ break;
+
+ case 0x0085:
+ sb.append( (char)0x20 );
+ break;
+
+ case 0x0086:
+ case 0x0087:
+ case 0x0088:
+ case 0x0089:
+ case 0x008A:
+ case 0x008B:
+ case 0x008C:
+ case 0x008D:
+ case 0x008E:
+ case 0x008F:
+ case 0x0090:
+ case 0x0091:
+ case 0x0092:
+ case 0x0093:
+ case 0x0094:
+ case 0x0095:
+ case 0x0096:
+ case 0x0097:
+ case 0x0098:
+ case 0x0099:
+ case 0x009A:
+ case 0x009B:
+ case 0x009C:
+ case 0x009D:
+ case 0x009E:
+ case 0x009F:
+ break;
+
+ case 0x00A0:
+ sb.append( (char)0x20 );
+ break;
+
+ case 0x00AD:
+ break;
+
+
+ case 0x00B5 :
+ sb.append( (char)0x03BC );
+ break;
+
+ case 0x00C0 :
+ sb.append( (char)0x00E0 );
+ break;
+
+ case 0x00C1 :
+ sb.append( (char)0x00E1 );
+ break;
+
+ case 0x00C2 :
+ sb.append( (char)0x00E2 );
+ break;
+
+ case 0x00C3 :
+ sb.append( (char)0x00E3 );
+ break;
+
+ case 0x00C4 :
+ sb.append( (char)0x00E4 );
+ break;
+
+ case 0x00C5 :
+ sb.append( (char)0x00E5 );
+ break;
+
+ case 0x00C6 :
+ sb.append( (char)0x00E6 );
+ break;
+
+ case 0x00C7 :
+ sb.append( (char)0x00E7 );
+ break;
+
+ case 0x00C8 :
+ sb.append( (char)0x00E8 );
+ break;
+
+ case 0x00C9 :
+ sb.append( (char)0x00E9 );
+ break;
+
+ case 0x00CA :
+ sb.append( (char)0x00EA );
+ break;
+
+ case 0x00CB :
+ sb.append( (char)0x00EB );
+ break;
+
+ case 0x00CC :
+ sb.append( (char)0x00EC );
+ break;
+
+ case 0x00CD :
+ sb.append( (char)0x00ED );
+ break;
+
+ case 0x00CE :
+ sb.append( (char)0x00EE );
+ break;
+
+ case 0x00CF :
+ sb.append( (char)0x00EF );
+ break;
+
+ case 0x00D0 :
+ sb.append( (char)0x00F0 );
+ break;
+
+ case 0x00D1 :
+ sb.append( (char)0x00F1 );
+ break;
+
+ case 0x00D2 :
+ sb.append( (char)0x00F2 );
+ break;
+
+ case 0x00D3 :
+ sb.append( (char)0x00F3 );
+ break;
+
+ case 0x00D4 :
+ sb.append( (char)0x00F4 );
+ break;
+
+ case 0x00D5 :
+ sb.append( (char)0x00F5 );
+ break;
+
+ case 0x00D6 :
+ sb.append( (char)0x00F6 );
+ break;
+
+ case 0x00D8 :
+ sb.append( (char)0x00F8 );
+ break;
+
+ case 0x00D9 :
+ sb.append( (char)0x00F9 );
+ break;
+
+ case 0x00DA :
+ sb.append( (char)0x00FA );
+ break;
+
+ case 0x00DB :
+ sb.append( (char)0x00FB );
+ break;
+
+ case 0x00DC :
+ sb.append( (char)0x00FC );
+ break;
+
+ case 0x00DD :
+ sb.append( (char)0x00FD );
+ break;
+
+ case 0x00DE :
+ sb.append( (char)0x00FE );
+ break;
+
+ case 0x00DF :
+ sb.append( (char)0x0073 );
+ sb.append( (char)0x0073 );
+ break;
+
+ case 0x0100 :
+ sb.append( (char)0x0101 );
+ break;
+
+ case 0x0102 :
+ sb.append( (char)0x0103 );
+ break;
+
+ case 0x0104 :
+ sb.append( (char)0x0105 );
+ break;
+
+ case 0x0106 :
+ sb.append( (char)0x0107 );
+ break;
+
+ case 0x0108 :
+ sb.append( (char)0x0109 );
+ break;
+
+ case 0x010A :
+ sb.append( (char)0x010B );
+ break;
+
+ case 0x010C :
+ sb.append( (char)0x010D );
+ break;
+
+ case 0x010E :
+ sb.append( (char)0x010F );
+ break;
+
+ case 0x0110 :
+ sb.append( (char)0x0111 );
+ break;
+
+ case 0x0112 :
+ sb.append( (char)0x0113 );
+ break;
+
+ case 0x0114 :
+ sb.append( (char)0x0115 );
+ break;
+
+ case 0x0116 :
+ sb.append( (char)0x0117 );
+ break;
+
+ case 0x0118 :
+ sb.append( (char)0x0119 );
+ break;
+
+ case 0x011A :
+ sb.append( (char)0x011B );
+ break;
+
+ case 0x011C :
+ sb.append( (char)0x011D );
+ break;
+
+ case 0x011E :
+ sb.append( (char)0x011F );
+ break;
+
+ case 0x0120 :
+ sb.append( (char)0x0121 );
+ break;
+
+ case 0x0122 :
+ sb.append( (char)0x0123 );
+ break;
+
+ case 0x0124 :
+ sb.append( (char)0x0125 );
+ break;
+
+ case 0x0126 :
+ sb.append( (char)0x0127 );
+ break;
+
+ case 0x0128 :
+ sb.append( (char)0x0129 );
+ break;
+
+ case 0x012A :
+ sb.append( (char)0x012B );
+ break;
+
+ case 0x012C :
+ sb.append( (char)0x012D );
+ break;
+
+ case 0x012E :
+ sb.append( (char)0x012F );
+ break;
+
+ case 0x0130 :
+ sb.append( (char)0x0069 );
+ sb.append( (char)0x0307 );
+ break;
+
+ case 0x0132 :
+ sb.append( (char)0x0133 );
+ break;
+
+ case 0x0134 :
+ sb.append( (char)0x0135 );
+ break;
+
+ case 0x0136 :
+ sb.append( (char)0x0137 );
+ break;
+
+ case 0x0139 :
+ sb.append( (char)0x013A );
+ break;
+
+ case 0x013B :
+ sb.append( (char)0x013C );
+ break;
+
+ case 0x013D :
+ sb.append( (char)0x013E );
+ break;
+
+ case 0x013F :
+ sb.append( (char)0x0140 );
+ break;
+
+ case 0x0141 :
+ sb.append( (char)0x0142 );
+ break;
+
+ case 0x0143 :
+ sb.append( (char)0x0144 );
+ break;
+
+ case 0x0145 :
+ sb.append( (char)0x0146 );
+ break;
+
+ case 0x0147 :
+ sb.append( (char)0x0148 );
+ break;
+
+ case 0x0149 :
+ sb.append( (char)0x02BC );
+ sb.append( (char)0x006E );
+ break;
+
+ case 0x014A :
+ sb.append( (char)0x014B );
+ break;
+
+ case 0x014C :
+ sb.append( (char)0x014D );
+ break;
+
+ case 0x014E :
+ sb.append( (char)0x014F );
+ break;
+
+ case 0x0150 :
+ sb.append( (char)0x0151 );
+ break;
+
+ case 0x0152 :
+ sb.append( (char)0x0153 );
+ break;
+
+ case 0x0154 :
+ sb.append( (char)0x0155 );
+ break;
+
+ case 0x0156 :
+ sb.append( (char)0x0157 );
+ break;
+
+ case 0x0158 :
+ sb.append( (char)0x0159 );
+ break;
+
+ case 0x015A :
+ sb.append( (char)0x015B );
+ break;
+
+ case 0x015C :
+ sb.append( (char)0x015D );
+ break;
+
+ case 0x015E :
+ sb.append( (char)0x015F );
+ break;
+
+ case 0x0160 :
+ sb.append( (char)0x0161 );
+ break;
+
+ case 0x0162 :
+ sb.append( (char)0x0163 );
+ break;
+
+ case 0x0164 :
+ sb.append( (char)0x0165 );
+ break;
+
+ case 0x0166 :
+ sb.append( (char)0x0167 );
+ break;
+
+ case 0x0168 :
+ sb.append( (char)0x0169 );
+ break;
+
+ case 0x016A :
+ sb.append( (char)0x016B );
+ break;
+
+ case 0x016C :
+ sb.append( (char)0x016D );
+ break;
+
+ case 0x016E :
+ sb.append( (char)0x016F );
+ break;
+
+ case 0x0170 :
+ sb.append( (char)0x0171 );
+ break;
+
+ case 0x0172 :
+ sb.append( (char)0x0173 );
+ break;
+
+ case 0x0174 :
+ sb.append( (char)0x0175 );
+ break;
+
+ case 0x0176 :
+ sb.append( (char)0x0177 );
+ break;
+
+ case 0x0178 :
+ sb.append( (char)0x00FF );
+ break;
+
+ case 0x0179 :
+ sb.append( (char)0x017A );
+ break;
+
+ case 0x017B :
+ sb.append( (char)0x017C );
+ break;
+
+ case 0x017D :
+ sb.append( (char)0x017E );
+ break;
+
+ case 0x017F :
+ sb.append( (char)0x0073 );
+ break;
+
+ case 0x0181 :
+ sb.append( (char)0x0253 );
+ break;
+
+ case 0x0182 :
+ sb.append( (char)0x0183 );
+ break;
+
+ case 0x0184 :
+ sb.append( (char)0x0185 );
+ break;
+
+ case 0x0186 :
+ sb.append( (char)0x0254 );
+ break;
+
+ case 0x0187 :
+ sb.append( (char)0x0188 );
+ break;
+
+ case 0x0189 :
+ sb.append( (char)0x0256 );
+ break;
+
+ case 0x018A :
+ sb.append( (char)0x0257 );
+ break;
+
+ case 0x018B :
+ sb.append( (char)0x018C );
+ break;
+
+ case 0x018E :
+ sb.append( (char)0x01DD );
+ break;
+
+ case 0x018F :
+ sb.append( (char)0x0259 );
+ break;
+
+ case 0x0190 :
+ sb.append( (char)0x025B );
+ break;
+
+ case 0x0191 :
+ sb.append( (char)0x0192 );
+ break;
+
+ case 0x0193 :
+ sb.append( (char)0x0260 );
+ break;
+
+ case 0x0194 :
+ sb.append( (char)0x0263 );
+ break;
+
+ case 0x0196 :
+ sb.append( (char)0x0269 );
+ break;
+
+ case 0x0197 :
+ sb.append( (char)0x0268 );
+ break;
+
+ case 0x0198 :
+ sb.append( (char)0x0199 );
+ break;
+
+ case 0x019C :
+ sb.append( (char)0x026F );
+ break;
+
+ case 0x019D :
+ sb.append( (char)0x0272 );
+ break;
+
+ case 0x019F :
+ sb.append( (char)0x0275 );
+ break;
+
+ case 0x01A0 :
+ sb.append( (char)0x01A1 );
+ break;
+
+ case 0x01A2 :
+ sb.append( (char)0x01A3 );
+ break;
+
+ case 0x01A4 :
+ sb.append( (char)0x01A5 );
+ break;
+
+ case 0x01A6 :
+ sb.append( (char)0x0280 );
+ break;
+
+ case 0x01A7 :
+ sb.append( (char)0x01A8 );
+ break;
+
+ case 0x01A9 :
+ sb.append( (char)0x0283 );
+ break;
+
+ case 0x01AC :
+ sb.append( (char)0x01AD );
+ break;
+
+ case 0x01AE :
+ sb.append( (char)0x0288 );
+ break;
+
+ case 0x01AF :
+ sb.append( (char)0x01B0 );
+ break;
+
+ case 0x01B1 :
+ sb.append( (char)0x028A );
+ break;
+
+ case 0x01B2 :
+ sb.append( (char)0x028B );
+ break;
+
+ case 0x01B3 :
+ sb.append( (char)0x01B4 );
+ break;
+
+ case 0x01B5 :
+ sb.append( (char)0x01B6 );
+ break;
+
+ case 0x01B7 :
+ sb.append( (char)0x0292 );
+ break;
+
+ case 0x01B8 :
+ sb.append( (char)0x01B9 );
+ break;
+
+ case 0x01BC :
+ sb.append( (char)0x01BD );
+ break;
+
+ case 0x01C4 :
+ sb.append( (char)0x01C6 );
+ break;
+
+ case 0x01C5 :
+ sb.append( (char)0x01C6 );
+ break;
+
+ case 0x01C7 :
+ sb.append( (char)0x01C9 );
+ break;
+
+ case 0x01C8 :
+ sb.append( (char)0x01C9 );
+ break;
+
+ case 0x01CA :
+ sb.append( (char)0x01CC );
+ break;
+
+ case 0x01CB :
+ sb.append( (char)0x01CC );
+ break;
+
+ case 0x01CD :
+ sb.append( (char)0x01CE );
+ break;
+
+ case 0x01CF :
+ sb.append( (char)0x01D0 );
+ break;
+
+ case 0x01D1 :
+ sb.append( (char)0x01D2 );
+ break;
+
+ case 0x01D3 :
+ sb.append( (char)0x01D4 );
+ break;
+
+ case 0x01D5 :
+ sb.append( (char)0x01D6 );
+ break;
+
+ case 0x01D7 :
+ sb.append( (char)0x01D8 );
+ break;
+
+ case 0x01D9 :
+ sb.append( (char)0x01DA );
+ break;
+
+ case 0x01DB :
+ sb.append( (char)0x01DC );
+ break;
+
+ case 0x01DE :
+ sb.append( (char)0x01DF );
+ break;
+
+ case 0x01E0 :
+ sb.append( (char)0x01E1 );
+ break;
+
+ case 0x01E2 :
+ sb.append( (char)0x01E3 );
+ break;
+
+ case 0x01E4 :
+ sb.append( (char)0x01E5 );
+ break;
+
+ case 0x01E6 :
+ sb.append( (char)0x01E7 );
+ break;
+
+ case 0x01E8 :
+ sb.append( (char)0x01E9 );
+ break;
+
+ case 0x01EA :
+ sb.append( (char)0x01EB );
+ break;
+
+ case 0x01EC :
+ sb.append( (char)0x01ED );
+ break;
+
+ case 0x01EE :
+ sb.append( (char)0x01EF );
+ break;
+
+ case 0x01F0 :
+ sb.append( (char)0x006A );
+ sb.append( (char)0x030C );
+ break;
+
+ case 0x01F1 :
+ sb.append( (char)0x01F3 );
+ break;
+
+ case 0x01F2 :
+ sb.append( (char)0x01F3 );
+ break;
+
+ case 0x01F4 :
+ sb.append( (char)0x01F5 );
+ break;
+
+ case 0x01F6 :
+ sb.append( (char)0x0195 );
+ break;
+
+ case 0x01F7 :
+ sb.append( (char)0x01BF );
+ break;
+
+ case 0x01F8 :
+ sb.append( (char)0x01F9 );
+ break;
+
+ case 0x01FA :
+ sb.append( (char)0x01FB );
+ break;
+
+ case 0x01FC :
+ sb.append( (char)0x01FD );
+ break;
+
+ case 0x01FE :
+ sb.append( (char)0x01FF );
+ break;
+
+ case 0x0200 :
+ sb.append( (char)0x0201 );
+ break;
+
+ case 0x0202 :
+ sb.append( (char)0x0203 );
+ break;
+
+ case 0x0204 :
+ sb.append( (char)0x0205 );
+ break;
+
+ case 0x0206 :
+ sb.append( (char)0x0207 );
+ break;
+
+ case 0x0208 :
+ sb.append( (char)0x0209 );
+ break;
+
+ case 0x020A :
+ sb.append( (char)0x020B );
+ break;
+
+ case 0x020C :
+ sb.append( (char)0x020D );
+ break;
+
+ case 0x020E :
+ sb.append( (char)0x020F );
+ break;
+
+ case 0x0210 :
+ sb.append( (char)0x0211 );
+ break;
+
+ case 0x0212 :
+ sb.append( (char)0x0213 );
+ break;
+
+ case 0x0214 :
+ sb.append( (char)0x0215 );
+ break;
+
+ case 0x0216 :
+ sb.append( (char)0x0217 );
+ break;
+
+ case 0x0218 :
+ sb.append( (char)0x0219 );
+ break;
+
+ case 0x021A :
+ sb.append( (char)0x021B );
+ break;
+
+ case 0x021C :
+ sb.append( (char)0x021D );
+ break;
+
+ case 0x021E :
+ sb.append( (char)0x021F );
+ break;
+
+ case 0x0220 :
+ sb.append( (char)0x019E );
+ break;
+
+ case 0x0222 :
+ sb.append( (char)0x0223 );
+ break;
+
+ case 0x0224 :
+ sb.append( (char)0x0225 );
+ break;
+
+ case 0x0226 :
+ sb.append( (char)0x0227 );
+ break;
+
+ case 0x0228 :
+ sb.append( (char)0x0229 );
+ break;
+
+ case 0x022A :
+ sb.append( (char)0x022B );
+ break;
+
+ case 0x022C :
+ sb.append( (char)0x022D );
+ break;
+
+ case 0x022E :
+ sb.append( (char)0x022F );
+ break;
+
+ case 0x0230 :
+ sb.append( (char)0x0231 );
+ break;
+
+ case 0x0232 :
+ sb.append( (char)0x0233 );
+ break;
+
+ case 0x0345 :
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x034F :
+ break;
+
+ case 0x037A :
+ sb.append( (char)0x0020 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x0386 :
+ sb.append( (char)0x03AC );
+ break;
+
+ case 0x0388 :
+ sb.append( (char)0x03AD );
+ break;
+
+ case 0x0389 :
+ sb.append( (char)0x03AE );
+ break;
+
+ case 0x038A :
+ sb.append( (char)0x03AF );
+ break;
+
+ case 0x038C :
+ sb.append( (char)0x03CC );
+ break;
+
+ case 0x038E :
+ sb.append( (char)0x03CD );
+ break;
+
+ case 0x038F :
+ sb.append( (char)0x03CE );
+ break;
+
+ case 0x0390 :
+ sb.append( (char)0x03B9 );
+ sb.append( (char)0x0308 );
+ sb.append( (char)0x0301 );
+ break;
+
+ case 0x0391 :
+ sb.append( (char)0x03B1 );
+ break;
+
+ case 0x0392 :
+ sb.append( (char)0x03B2 );
+ break;
+
+ case 0x0393 :
+ sb.append( (char)0x03B3 );
+ break;
+
+ case 0x0394 :
+ sb.append( (char)0x03B4 );
+ break;
+
+ case 0x0395 :
+ sb.append( (char)0x03B5 );
+ break;
+
+ case 0x0396 :
+ sb.append( (char)0x03B6 );
+ break;
+
+ case 0x0397 :
+ sb.append( (char)0x03B7 );
+ break;
+
+ case 0x0398 :
+ sb.append( (char)0x03B8 );
+ break;
+
+ case 0x0399 :
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x039A :
+ sb.append( (char)0x03BA );
+ break;
+
+ case 0x039B :
+ sb.append( (char)0x03BB );
+ break;
+
+ case 0x039C :
+ sb.append( (char)0x03BC );
+ break;
+
+ case 0x039D :
+ sb.append( (char)0x03BD );
+ break;
+
+ case 0x039E :
+ sb.append( (char)0x03BE );
+ break;
+
+ case 0x039F :
+ sb.append( (char)0x03BF );
+ break;
+
+ case 0x03A0 :
+ sb.append( (char)0x03C0 );
+ break;
+
+ case 0x03A1 :
+ sb.append( (char)0x03C1 );
+ break;
+
+ case 0x03A3 :
+ sb.append( (char)0x03C3 );
+ break;
+
+ case 0x03A4 :
+ sb.append( (char)0x03C4 );
+ break;
+
+ case 0x03A5 :
+ sb.append( (char)0x03C5 );
+ break;
+
+ case 0x03A6 :
+ sb.append( (char)0x03C6 );
+ break;
+
+ case 0x03A7 :
+ sb.append( (char)0x03C7 );
+ break;
+
+ case 0x03A8 :
+ sb.append( (char)0x03C8 );
+ break;
+
+ case 0x03A9 :
+ sb.append( (char)0x03C9 );
+ break;
+
+ case 0x03AA :
+ sb.append( (char)0x03CA );
+ break;
+
+ case 0x03AB :
+ sb.append( (char)0x03CB );
+ break;
+
+ case 0x03B0 :
+ sb.append( (char)0x03C5 );
+ sb.append( (char)0x0308 );
+ sb.append( (char)0x0301 );
+ break;
+
+ case 0x03C2 :
+ sb.append( (char)0x03C3 );
+ break;
+
+ case 0x03D0 :
+ sb.append( (char)0x03B2 );
+ break;
+
+ case 0x03D1 :
+ sb.append( (char)0x03B8 );
+ break;
+
+ case 0x03D2 :
+ sb.append( (char)0x03C5 );
+ break;
+
+ case 0x03D3 :
+ sb.append( (char)0x03CD );
+ break;
+
+ case 0x03D4 :
+ sb.append( (char)0x03CB );
+ break;
+
+ case 0x03D5 :
+ sb.append( (char)0x03C6 );
+ break;
+
+ case 0x03D6 :
+ sb.append( (char)0x03C0 );
+ break;
+
+ case 0x03D8 :
+ sb.append( (char)0x03D9 );
+ break;
+
+ case 0x03DA :
+ sb.append( (char)0x03DB );
+ break;
+
+ case 0x03DC :
+ sb.append( (char)0x03DD );
+ break;
+
+ case 0x03DE :
+ sb.append( (char)0x03DF );
+ break;
+
+ case 0x03E0 :
+ sb.append( (char)0x03E1 );
+ break;
+
+ case 0x03E2 :
+ sb.append( (char)0x03E3 );
+ break;
+
+ case 0x03E4 :
+ sb.append( (char)0x03E5 );
+ break;
+
+ case 0x03E6 :
+ sb.append( (char)0x03E7 );
+ break;
+
+ case 0x03E8 :
+ sb.append( (char)0x03E9 );
+ break;
+
+ case 0x03EA :
+ sb.append( (char)0x03EB );
+ break;
+
+ case 0x03EC :
+ sb.append( (char)0x03ED );
+ break;
+
+ case 0x03EE :
+ sb.append( (char)0x03EF );
+ break;
+
+ case 0x03F0 :
+ sb.append( (char)0x03BA );
+ break;
+
+ case 0x03F1 :
+ sb.append( (char)0x03C1 );
+ break;
+
+ case 0x03F2 :
+ sb.append( (char)0x03C3 );
+ break;
+
+ case 0x03F4 :
+ sb.append( (char)0x03B8 );
+ break;
+
+ case 0x03F5 :
+ sb.append( (char)0x03B5 );
+ break;
+
+ case 0x0400 :
+ sb.append( (char)0x0450 );
+ break;
+
+ case 0x0401 :
+ sb.append( (char)0x0451 );
+ break;
+
+ case 0x0402 :
+ sb.append( (char)0x0452 );
+ break;
+
+ case 0x0403 :
+ sb.append( (char)0x0453 );
+ break;
+
+ case 0x0404 :
+ sb.append( (char)0x0454 );
+ break;
+
+ case 0x0405 :
+ sb.append( (char)0x0455 );
+ break;
+
+ case 0x0406 :
+ sb.append( (char)0x0456 );
+ break;
+
+ case 0x0407 :
+ sb.append( (char)0x0457 );
+ break;
+
+ case 0x0408 :
+ sb.append( (char)0x0458 );
+ break;
+
+ case 0x0409 :
+ sb.append( (char)0x0459 );
+ break;
+
+ case 0x040A :
+ sb.append( (char)0x045A );
+ break;
+
+ case 0x040B :
+ sb.append( (char)0x045B );
+ break;
+
+ case 0x040C :
+ sb.append( (char)0x045C );
+ break;
+
+ case 0x040D :
+ sb.append( (char)0x045D );
+ break;
+
+ case 0x040E :
+ sb.append( (char)0x045E );
+ break;
+
+ case 0x040F :
+ sb.append( (char)0x045F );
+ break;
+
+ case 0x0410 :
+ sb.append( (char)0x0430 );
+ break;
+
+ case 0x0411 :
+ sb.append( (char)0x0431 );
+ break;
+
+ case 0x0412 :
+ sb.append( (char)0x0432 );
+ break;
+
+ case 0x0413 :
+ sb.append( (char)0x0433 );
+ break;
+
+ case 0x0414 :
+ sb.append( (char)0x0434 );
+ break;
+
+ case 0x0415 :
+ sb.append( (char)0x0435 );
+ break;
+
+ case 0x0416 :
+ sb.append( (char)0x0436 );
+ break;
+
+ case 0x0417 :
+ sb.append( (char)0x0437 );
+ break;
+
+ case 0x0418 :
+ sb.append( (char)0x0438 );
+ break;
+
+ case 0x0419 :
+ sb.append( (char)0x0439 );
+ break;
+
+ case 0x041A :
+ sb.append( (char)0x043A );
+ break;
+
+ case 0x041B :
+ sb.append( (char)0x043B );
+ break;
+
+ case 0x041C :
+ sb.append( (char)0x043C );
+ break;
+
+ case 0x041D :
+ sb.append( (char)0x043D );
+ break;
+
+ case 0x041E :
+ sb.append( (char)0x043E );
+ break;
+
+ case 0x041F :
+ sb.append( (char)0x043F );
+ break;
+
+ case 0x0420 :
+ sb.append( (char)0x0440 );
+ break;
+
+ case 0x0421 :
+ sb.append( (char)0x0441 );
+ break;
+
+ case 0x0422 :
+ sb.append( (char)0x0442 );
+ break;
+
+ case 0x0423 :
+ sb.append( (char)0x0443 );
+ break;
+
+ case 0x0424 :
+ sb.append( (char)0x0444 );
+ break;
+
+ case 0x0425 :
+ sb.append( (char)0x0445 );
+ break;
+
+ case 0x0426 :
+ sb.append( (char)0x0446 );
+ break;
+
+ case 0x0427 :
+ sb.append( (char)0x0447 );
+ break;
+
+ case 0x0428 :
+ sb.append( (char)0x0448 );
+ break;
+
+ case 0x0429 :
+ sb.append( (char)0x0449 );
+ break;
+
+ case 0x042A :
+ sb.append( (char)0x044A );
+ break;
+
+ case 0x042B :
+ sb.append( (char)0x044B );
+ break;
+
+ case 0x042C :
+ sb.append( (char)0x044C );
+ break;
+
+ case 0x042D :
+ sb.append( (char)0x044D );
+ break;
+
+ case 0x042E :
+ sb.append( (char)0x044E );
+ break;
+
+ case 0x042F :
+ sb.append( (char)0x044F );
+ break;
+
+ case 0x0460 :
+ sb.append( (char)0x0461 );
+ break;
+
+ case 0x0462 :
+ sb.append( (char)0x0463 );
+ break;
+
+ case 0x0464 :
+ sb.append( (char)0x0465 );
+ break;
+
+ case 0x0466 :
+ sb.append( (char)0x0467 );
+ break;
+
+ case 0x0468 :
+ sb.append( (char)0x0469 );
+ break;
+
+ case 0x046A :
+ sb.append( (char)0x046B );
+ break;
+
+ case 0x046C :
+ sb.append( (char)0x046D );
+ break;
+
+ case 0x046E :
+ sb.append( (char)0x046F );
+ break;
+
+ case 0x0470 :
+ sb.append( (char)0x0471 );
+ break;
+
+ case 0x0472 :
+ sb.append( (char)0x0473 );
+ break;
+
+ case 0x0474 :
+ sb.append( (char)0x0475 );
+ break;
+
+ case 0x0476 :
+ sb.append( (char)0x0477 );
+ break;
+
+ case 0x0478 :
+ sb.append( (char)0x0479 );
+ break;
+
+ case 0x047A :
+ sb.append( (char)0x047B );
+ break;
+
+ case 0x047C :
+ sb.append( (char)0x047D );
+ break;
+
+ case 0x047E :
+ sb.append( (char)0x047F );
+ break;
+
+ case 0x0480 :
+ sb.append( (char)0x0481 );
+ break;
+
+ case 0x048A :
+ sb.append( (char)0x048B );
+ break;
+
+ case 0x048C :
+ sb.append( (char)0x048D );
+ break;
+
+ case 0x048E :
+ sb.append( (char)0x048F );
+ break;
+
+ case 0x0490 :
+ sb.append( (char)0x0491 );
+ break;
+
+ case 0x0492 :
+ sb.append( (char)0x0493 );
+ break;
+
+ case 0x0494 :
+ sb.append( (char)0x0495 );
+ break;
+
+ case 0x0496 :
+ sb.append( (char)0x0497 );
+ break;
+
+ case 0x0498 :
+ sb.append( (char)0x0499 );
+ break;
+
+ case 0x049A :
+ sb.append( (char)0x049B );
+ break;
+
+ case 0x049C :
+ sb.append( (char)0x049D );
+ break;
+
+ case 0x049E :
+ sb.append( (char)0x049F );
+ break;
+
+ case 0x04A0 :
+ sb.append( (char)0x04A1 );
+ break;
+
+ case 0x04A2 :
+ sb.append( (char)0x04A3 );
+ break;
+
+ case 0x04A4 :
+ sb.append( (char)0x04A5 );
+ break;
+
+ case 0x04A6 :
+ sb.append( (char)0x04A7 );
+ break;
+
+ case 0x04A8 :
+ sb.append( (char)0x04A9 );
+ break;
+
+ case 0x04AA :
+ sb.append( (char)0x04AB );
+ break;
+
+ case 0x04AC :
+ sb.append( (char)0x04AD );
+ break;
+
+ case 0x04AE :
+ sb.append( (char)0x04AF );
+ break;
+
+ case 0x04B0 :
+ sb.append( (char)0x04B1 );
+ break;
+
+ case 0x04B2 :
+ sb.append( (char)0x04B3 );
+ break;
+
+ case 0x04B4 :
+ sb.append( (char)0x04B5 );
+ break;
+
+ case 0x04B6 :
+ sb.append( (char)0x04B7 );
+ break;
+
+ case 0x04B8 :
+ sb.append( (char)0x04B9 );
+ break;
+
+ case 0x04BA :
+ sb.append( (char)0x04BB );
+ break;
+
+ case 0x04BC :
+ sb.append( (char)0x04BD );
+ break;
+
+ case 0x04BE :
+ sb.append( (char)0x04BF );
+ break;
+
+ case 0x04C1 :
+ sb.append( (char)0x04C2 );
+ break;
+
+ case 0x04C3 :
+ sb.append( (char)0x04C4 );
+ break;
+
+ case 0x04C5 :
+ sb.append( (char)0x04C6 );
+ break;
+
+ case 0x04C7 :
+ sb.append( (char)0x04C8 );
+ break;
+
+ case 0x04C9 :
+ sb.append( (char)0x04CA );
+ break;
+
+ case 0x04CB :
+ sb.append( (char)0x04CC );
+ break;
+
+ case 0x04CD :
+ sb.append( (char)0x04CE );
+ break;
+
+ case 0x04D0 :
+ sb.append( (char)0x04D1 );
+ break;
+
+ case 0x04D2 :
+ sb.append( (char)0x04D3 );
+ break;
+
+ case 0x04D4 :
+ sb.append( (char)0x04D5 );
+ break;
+
+ case 0x04D6 :
+ sb.append( (char)0x04D7 );
+ break;
+
+ case 0x04D8 :
+ sb.append( (char)0x04D9 );
+ break;
+
+ case 0x04DA :
+ sb.append( (char)0x04DB );
+ break;
+
+ case 0x04DC :
+ sb.append( (char)0x04DD );
+ break;
+
+ case 0x04DE :
+ sb.append( (char)0x04DF );
+ break;
+
+ case 0x04E0 :
+ sb.append( (char)0x04E1 );
+ break;
+
+ case 0x04E2 :
+ sb.append( (char)0x04E3 );
+ break;
+
+ case 0x04E4 :
+ sb.append( (char)0x04E5 );
+ break;
+
+ case 0x04E6 :
+ sb.append( (char)0x04E7 );
+ break;
+
+ case 0x04E8 :
+ sb.append( (char)0x04E9 );
+ break;
+
+ case 0x04EA :
+ sb.append( (char)0x04EB );
+ break;
+
+ case 0x04EC :
+ sb.append( (char)0x04ED );
+ break;
+
+ case 0x04EE :
+ sb.append( (char)0x04EF );
+ break;
+
+ case 0x04F0 :
+ sb.append( (char)0x04F1 );
+ break;
+
+ case 0x04F2 :
+ sb.append( (char)0x04F3 );
+ break;
+
+ case 0x04F4 :
+ sb.append( (char)0x04F5 );
+ break;
+
+ case 0x04F8 :
+ sb.append( (char)0x04F9 );
+ break;
+
+ case 0x0500 :
+ sb.append( (char)0x0501 );
+ break;
+
+ case 0x0502 :
+ sb.append( (char)0x0503 );
+ break;
+
+ case 0x0504 :
+ sb.append( (char)0x0505 );
+ break;
+
+ case 0x0506 :
+ sb.append( (char)0x0507 );
+ break;
+
+ case 0x0508 :
+ sb.append( (char)0x0509 );
+ break;
+
+ case 0x050A :
+ sb.append( (char)0x050B );
+ break;
+
+ case 0x050C :
+ sb.append( (char)0x050D );
+ break;
+
+ case 0x050E :
+ sb.append( (char)0x050F );
+ break;
+
+ case 0x0531 :
+ sb.append( (char)0x0561 );
+ break;
+
+ case 0x0532 :
+ sb.append( (char)0x0562 );
+ break;
+
+ case 0x0533 :
+ sb.append( (char)0x0563 );
+ break;
+
+ case 0x0534 :
+ sb.append( (char)0x0564 );
+ break;
+
+ case 0x0535 :
+ sb.append( (char)0x0565 );
+ break;
+
+ case 0x0536 :
+ sb.append( (char)0x0566 );
+ break;
+
+ case 0x0537 :
+ sb.append( (char)0x0567 );
+ break;
+
+ case 0x0538 :
+ sb.append( (char)0x0568 );
+ break;
+
+ case 0x0539 :
+ sb.append( (char)0x0569 );
+ break;
+
+ case 0x053A :
+ sb.append( (char)0x056A );
+ break;
+
+ case 0x053B :
+ sb.append( (char)0x056B );
+ break;
+
+ case 0x053C :
+ sb.append( (char)0x056C );
+ break;
+
+ case 0x053D :
+ sb.append( (char)0x056D );
+ break;
+
+ case 0x053E :
+ sb.append( (char)0x056E );
+ break;
+
+ case 0x053F :
+ sb.append( (char)0x056F );
+ break;
+
+ case 0x0540 :
+ sb.append( (char)0x0570 );
+ break;
+
+ case 0x0541 :
+ sb.append( (char)0x0571 );
+ break;
+
+ case 0x0542 :
+ sb.append( (char)0x0572 );
+ break;
+
+ case 0x0543 :
+ sb.append( (char)0x0573 );
+ break;
+
+ case 0x0544 :
+ sb.append( (char)0x0574 );
+ break;
+
+ case 0x0545 :
+ sb.append( (char)0x0575 );
+ break;
+
+ case 0x0546 :
+ sb.append( (char)0x0576 );
+ break;
+
+ case 0x0547 :
+ sb.append( (char)0x0577 );
+ break;
+
+ case 0x0548 :
+ sb.append( (char)0x0578 );
+ break;
+
+ case 0x0549 :
+ sb.append( (char)0x0579 );
+ break;
+
+ case 0x054A :
+ sb.append( (char)0x057A );
+ break;
+
+ case 0x054B :
+ sb.append( (char)0x057B );
+ break;
+
+ case 0x054C :
+ sb.append( (char)0x057C );
+ break;
+
+ case 0x054D :
+ sb.append( (char)0x057D );
+ break;
+
+ case 0x054E :
+ sb.append( (char)0x057E );
+ break;
+
+ case 0x054F :
+ sb.append( (char)0x057F );
+ break;
+
+ case 0x0550 :
+ sb.append( (char)0x0580 );
+ break;
+
+ case 0x0551 :
+ sb.append( (char)0x0581 );
+ break;
+
+ case 0x0552 :
+ sb.append( (char)0x0582 );
+ break;
+
+ case 0x0553 :
+ sb.append( (char)0x0583 );
+ break;
+
+ case 0x0554 :
+ sb.append( (char)0x0584 );
+ break;
+
+ case 0x0555 :
+ sb.append( (char)0x0585 );
+ break;
+
+ case 0x0556 :
+ sb.append( (char)0x0586 );
+ break;
+
+ case 0x0587 :
+ sb.append( (char)0x0565 );
+ sb.append( (char)0x0582 );
+ break;
+
+ case 0x06DD :
+ break;
+
+ case 0x070F :
+ break;
+
+ case 0x1680 :
+ sb.append( (char)0x0020 );
+ break;
+
+ case 0x1806 :
+ break;
+
+ case 0x180B :
+ case 0x180C :
+ case 0x180D :
+ case 0x180E :
+ break;
+
+
+ case 0x1E00 :
+ sb.append( (char)0x1E01 );
+ break;
+
+ case 0x1E02 :
+ sb.append( (char)0x1E03 );
+ break;
+
+ case 0x1E04 :
+ sb.append( (char)0x1E05 );
+ break;
+
+ case 0x1E06 :
+ sb.append( (char)0x1E07 );
+ break;
+
+ case 0x1E08 :
+ sb.append( (char)0x1E09 );
+ break;
+
+ case 0x1E0A :
+ sb.append( (char)0x1E0B );
+ break;
+
+ case 0x1E0C :
+ sb.append( (char)0x1E0D );
+ break;
+
+ case 0x1E0E :
+ sb.append( (char)0x1E0F );
+ break;
+
+ case 0x1E10 :
+ sb.append( (char)0x1E11 );
+ break;
+
+ case 0x1E12 :
+ sb.append( (char)0x1E13 );
+ break;
+
+ case 0x1E14 :
+ sb.append( (char)0x1E15 );
+ break;
+
+ case 0x1E16 :
+ sb.append( (char)0x1E17 );
+ break;
+
+ case 0x1E18 :
+ sb.append( (char)0x1E19 );
+ break;
+
+ case 0x1E1A :
+ sb.append( (char)0x1E1B );
+ break;
+
+ case 0x1E1C :
+ sb.append( (char)0x1E1D );
+ break;
+
+ case 0x1E1E :
+ sb.append( (char)0x1E1F );
+ break;
+
+ case 0x1E20 :
+ sb.append( (char)0x1E21 );
+ break;
+
+ case 0x1E22 :
+ sb.append( (char)0x1E23 );
+ break;
+
+ case 0x1E24 :
+ sb.append( (char)0x1E25 );
+ break;
+
+ case 0x1E26 :
+ sb.append( (char)0x1E27 );
+ break;
+
+ case 0x1E28 :
+ sb.append( (char)0x1E29 );
+ break;
+
+ case 0x1E2A :
+ sb.append( (char)0x1E2B );
+ break;
+
+ case 0x1E2C :
+ sb.append( (char)0x1E2D );
+ break;
+
+ case 0x1E2E :
+ sb.append( (char)0x1E2F );
+ break;
+
+ case 0x1E30 :
+ sb.append( (char)0x1E31 );
+ break;
+
+ case 0x1E32 :
+ sb.append( (char)0x1E33 );
+ break;
+
+ case 0x1E34 :
+ sb.append( (char)0x1E35 );
+ break;
+
+ case 0x1E36 :
+ sb.append( (char)0x1E37 );
+ break;
+
+ case 0x1E38 :
+ sb.append( (char)0x1E39 );
+ break;
+
+ case 0x1E3A :
+ sb.append( (char)0x1E3B );
+ break;
+
+ case 0x1E3C :
+ sb.append( (char)0x1E3D );
+ break;
+
+ case 0x1E3E :
+ sb.append( (char)0x1E3F );
+ break;
+
+ case 0x1E40 :
+ sb.append( (char)0x1E41 );
+ break;
+
+ case 0x1E42 :
+ sb.append( (char)0x1E43 );
+ break;
+
+ case 0x1E44 :
+ sb.append( (char)0x1E45 );
+ break;
+
+ case 0x1E46 :
+ sb.append( (char)0x1E47 );
+ break;
+
+ case 0x1E48 :
+ sb.append( (char)0x1E49 );
+ break;
+
+ case 0x1E4A :
+ sb.append( (char)0x1E4B );
+ break;
+
+ case 0x1E4C :
+ sb.append( (char)0x1E4D );
+ break;
+
+ case 0x1E4E :
+ sb.append( (char)0x1E4F );
+ break;
+
+ case 0x1E50 :
+ sb.append( (char)0x1E51 );
+ break;
+
+ case 0x1E52 :
+ sb.append( (char)0x1E53 );
+ break;
+
+ case 0x1E54 :
+ sb.append( (char)0x1E55 );
+ break;
+
+ case 0x1E56 :
+ sb.append( (char)0x1E57 );
+ break;
+
+ case 0x1E58 :
+ sb.append( (char)0x1E59 );
+ break;
+
+ case 0x1E5A :
+ sb.append( (char)0x1E5B );
+ break;
+
+ case 0x1E5C :
+ sb.append( (char)0x1E5D );
+ break;
+
+ case 0x1E5E :
+ sb.append( (char)0x1E5F );
+ break;
+
+ case 0x1E60 :
+ sb.append( (char)0x1E61 );
+ break;
+
+ case 0x1E62 :
+ sb.append( (char)0x1E63 );
+ break;
+
+ case 0x1E64 :
+ sb.append( (char)0x1E65 );
+ break;
+
+ case 0x1E66 :
+ sb.append( (char)0x1E67 );
+ break;
+
+ case 0x1E68 :
+ sb.append( (char)0x1E69 );
+ break;
+
+ case 0x1E6A :
+ sb.append( (char)0x1E6B );
+ break;
+
+ case 0x1E6C :
+ sb.append( (char)0x1E6D );
+ break;
+
+ case 0x1E6E :
+ sb.append( (char)0x1E6F );
+ break;
+
+ case 0x1E70 :
+ sb.append( (char)0x1E71 );
+ break;
+
+ case 0x1E72 :
+ sb.append( (char)0x1E73 );
+ break;
+
+ case 0x1E74 :
+ sb.append( (char)0x1E75 );
+ break;
+
+ case 0x1E76 :
+ sb.append( (char)0x1E77 );
+ break;
+
+ case 0x1E78 :
+ sb.append( (char)0x1E79 );
+ break;
+
+ case 0x1E7A :
+ sb.append( (char)0x1E7B );
+ break;
+
+ case 0x1E7C :
+ sb.append( (char)0x1E7D );
+ break;
+
+ case 0x1E7E :
+ sb.append( (char)0x1E7F );
+ break;
+
+ case 0x1E80 :
+ sb.append( (char)0x1E81 );
+ break;
+
+ case 0x1E82 :
+ sb.append( (char)0x1E83 );
+ break;
+
+ case 0x1E84 :
+ sb.append( (char)0x1E85 );
+ break;
+
+ case 0x1E86 :
+ sb.append( (char)0x1E87 );
+ break;
+
+ case 0x1E88 :
+ sb.append( (char)0x1E89 );
+ break;
+
+ case 0x1E8A :
+ sb.append( (char)0x1E8B );
+ break;
+
+ case 0x1E8C :
+ sb.append( (char)0x1E8D );
+ break;
+
+ case 0x1E8E :
+ sb.append( (char)0x1E8F );
+ break;
+
+ case 0x1E90 :
+ sb.append( (char)0x1E91 );
+ break;
+
+ case 0x1E92 :
+ sb.append( (char)0x1E93 );
+ break;
+
+ case 0x1E94 :
+ sb.append( (char)0x1E95 );
+ break;
+
+ case 0x1E96 :
+ sb.append( (char)0x0068 );
+ sb.append( (char)0x0331 );
+ break;
+
+ case 0x1E97 :
+ sb.append( (char)0x0074 );
+ sb.append( (char)0x0308 );
+ break;
+
+ case 0x1E98 :
+ sb.append( (char)0x0077 );
+ sb.append( (char)0x030A );
+ break;
+
+ case 0x1E99 :
+ sb.append( (char)0x0079 );
+ sb.append( (char)0x030A );
+ break;
+
+ case 0x1E9A :
+ sb.append( (char)0x0061 );
+ sb.append( (char)0x02BE );
+ break;
+
+ case 0x1E9B :
+ sb.append( (char)0x1E61 );
+ break;
+
+ case 0x1EA0 :
+ sb.append( (char)0x1EA1 );
+ break;
+
+ case 0x1EA2 :
+ sb.append( (char)0x1EA3 );
+ break;
+
+ case 0x1EA4 :
+ sb.append( (char)0x1EA5 );
+ break;
+
+ case 0x1EA6 :
+ sb.append( (char)0x1EA7 );
+ break;
+
+ case 0x1EA8 :
+ sb.append( (char)0x1EA9 );
+ break;
+
+ case 0x1EAA :
+ sb.append( (char)0x1EAB );
+ break;
+
+ case 0x1EAC :
+ sb.append( (char)0x1EAD );
+ break;
+
+ case 0x1EAE :
+ sb.append( (char)0x1EAF );
+ break;
+
+ case 0x1EB0 :
+ sb.append( (char)0x1EB1 );
+ break;
+
+ case 0x1EB2 :
+ sb.append( (char)0x1EB3 );
+ break;
+
+ case 0x1EB4 :
+ sb.append( (char)0x1EB5 );
+ break;
+
+ case 0x1EB6 :
+ sb.append( (char)0x1EB7 );
+ break;
+
+ case 0x1EB8 :
+ sb.append( (char)0x1EB9 );
+ break;
+
+ case 0x1EBA :
+ sb.append( (char)0x1EBB );
+ break;
+
+ case 0x1EBC :
+ sb.append( (char)0x1EBD );
+ break;
+
+ case 0x1EBE :
+ sb.append( (char)0x1EBF );
+ break;
+
+ case 0x1EC0 :
+ sb.append( (char)0x1EC1 );
+ break;
+
+ case 0x1EC2 :
+ sb.append( (char)0x1EC3 );
+ break;
+
+ case 0x1EC4 :
+ sb.append( (char)0x1EC5 );
+ break;
+
+ case 0x1EC6 :
+ sb.append( (char)0x1EC7 );
+ break;
+
+ case 0x1EC8 :
+ sb.append( (char)0x1EC9 );
+ break;
+
+ case 0x1ECA :
+ sb.append( (char)0x1ECB );
+ break;
+
+ case 0x1ECC :
+ sb.append( (char)0x1ECD );
+ break;
+
+ case 0x1ECE :
+ sb.append( (char)0x1ECF );
+ break;
+
+ case 0x1ED0 :
+ sb.append( (char)0x1ED1 );
+ break;
+
+ case 0x1ED2 :
+ sb.append( (char)0x1ED3 );
+ break;
+
+ case 0x1ED4 :
+ sb.append( (char)0x1ED5 );
+ break;
+
+ case 0x1ED6 :
+ sb.append( (char)0x1ED7 );
+ break;
+
+ case 0x1ED8 :
+ sb.append( (char)0x1ED9 );
+ break;
+
+ case 0x1EDA :
+ sb.append( (char)0x1EDB );
+ break;
+
+ case 0x1EDC :
+ sb.append( (char)0x1EDD );
+ break;
+
+ case 0x1EDE :
+ sb.append( (char)0x1EDF );
+ break;
+
+ case 0x1EE0 :
+ sb.append( (char)0x1EE1 );
+ break;
+
+ case 0x1EE2 :
+ sb.append( (char)0x1EE3 );
+ break;
+
+ case 0x1EE4 :
+ sb.append( (char)0x1EE5 );
+ break;
+
+ case 0x1EE6 :
+ sb.append( (char)0x1EE7 );
+ break;
+
+ case 0x1EE8 :
+ sb.append( (char)0x1EE9 );
+ break;
+
+ case 0x1EEA :
+ sb.append( (char)0x1EEB );
+ break;
+
+ case 0x1EEC :
+ sb.append( (char)0x1EED );
+ break;
+
+ case 0x1EEE :
+ sb.append( (char)0x1EEF );
+ break;
+
+ case 0x1EF0 :
+ sb.append( (char)0x1EF1 );
+ break;
+
+ case 0x1EF2 :
+ sb.append( (char)0x1EF3 );
+ break;
+
+ case 0x1EF4 :
+ sb.append( (char)0x1EF5 );
+ break;
+
+ case 0x1EF6 :
+ sb.append( (char)0x1EF7 );
+ break;
+
+ case 0x1EF8 :
+ sb.append( (char)0x1EF9 );
+ break;
+
+ case 0x1F08 :
+ sb.append( (char)0x1F00 );
+ break;
+
+ case 0x1F09 :
+ sb.append( (char)0x1F01 );
+ break;
+
+ case 0x1F0A :
+ sb.append( (char)0x1F02 );
+ break;
+
+ case 0x1F0B :
+ sb.append( (char)0x1F03 );
+ break;
+
+ case 0x1F0C :
+ sb.append( (char)0x1F04 );
+ break;
+
+ case 0x1F0D :
+ sb.append( (char)0x1F05 );
+ break;
+
+ case 0x1F0E :
+ sb.append( (char)0x1F06 );
+ break;
+
+ case 0x1F0F :
+ sb.append( (char)0x1F07 );
+ break;
+
+ case 0x1F18 :
+ sb.append( (char)0x1F10 );
+ break;
+
+ case 0x1F19 :
+ sb.append( (char)0x1F11 );
+ break;
+
+ case 0x1F1A :
+ sb.append( (char)0x1F12 );
+ break;
+
+ case 0x1F1B :
+ sb.append( (char)0x1F13 );
+ break;
+
+ case 0x1F1C :
+ sb.append( (char)0x1F14 );
+ break;
+
+ case 0x1F1D :
+ sb.append( (char)0x1F15 );
+ break;
+
+ case 0x1F28 :
+ sb.append( (char)0x1F20 );
+ break;
+
+ case 0x1F29 :
+ sb.append( (char)0x1F21 );
+ break;
+
+ case 0x1F2A :
+ sb.append( (char)0x1F22 );
+ break;
+
+ case 0x1F2B :
+ sb.append( (char)0x1F23 );
+ break;
+
+ case 0x1F2C :
+ sb.append( (char)0x1F24 );
+ break;
+
+ case 0x1F2D :
+ sb.append( (char)0x1F25 );
+ break;
+
+ case 0x1F2E :
+ sb.append( (char)0x1F26 );
+ break;
+
+ case 0x1F2F :
+ sb.append( (char)0x1F27 );
+ break;
+
+ case 0x1F38 :
+ sb.append( (char)0x1F30 );
+ break;
+
+ case 0x1F39 :
+ sb.append( (char)0x1F31 );
+ break;
+
+ case 0x1F3A :
+ sb.append( (char)0x1F32 );
+ break;
+
+ case 0x1F3B :
+ sb.append( (char)0x1F33 );
+ break;
+
+ case 0x1F3C :
+ sb.append( (char)0x1F34 );
+ break;
+
+ case 0x1F3D :
+ sb.append( (char)0x1F35 );
+ break;
+
+ case 0x1F3E :
+ sb.append( (char)0x1F36 );
+ break;
+
+ case 0x1F3F :
+ sb.append( (char)0x1F37 );
+ break;
+
+ case 0x1F48 :
+ sb.append( (char)0x1F40 );
+ break;
+
+ case 0x1F49 :
+ sb.append( (char)0x1F41 );
+ break;
+
+ case 0x1F4A :
+ sb.append( (char)0x1F42 );
+ break;
+
+ case 0x1F4B :
+ sb.append( (char)0x1F43 );
+ break;
+
+ case 0x1F4C :
+ sb.append( (char)0x1F44 );
+ break;
+
+ case 0x1F4D :
+ sb.append( (char)0x1F45 );
+ break;
+
+ case 0x1F50 :
+ sb.append( (char)0x03C5 );
+ sb.append( (char)0x0313 );
+ break;
+
+ case 0x1F52 :
+ sb.append( (char)0x03C5 );
+ sb.append( (char)0x0313 );
+ sb.append( (char)0x0300 );
+ break;
+
+ case 0x1F54 :
+ sb.append( (char)0x03C5 );
+ sb.append( (char)0x0313 );
+ sb.append( (char)0x0301 );
+ break;
+
+ case 0x1F56 :
+ sb.append( (char)0x03C5 );
+ sb.append( (char)0x0313 );
+ sb.append( (char)0x0342 );
+ break;
+
+ case 0x1F59 :
+ sb.append( (char)0x1F51 );
+ break;
+
+ case 0x1F5B :
+ sb.append( (char)0x1F53 );
+ break;
+
+ case 0x1F5D :
+ sb.append( (char)0x1F55 );
+ break;
+
+ case 0x1F5F :
+ sb.append( (char)0x1F57 );
+ break;
+
+ case 0x1F68 :
+ sb.append( (char)0x1F60 );
+ break;
+
+ case 0x1F69 :
+ sb.append( (char)0x1F61 );
+ break;
+
+ case 0x1F6A :
+ sb.append( (char)0x1F62 );
+ break;
+
+ case 0x1F6B :
+ sb.append( (char)0x1F63 );
+ break;
+
+ case 0x1F6C :
+ sb.append( (char)0x1F64 );
+ break;
+
+ case 0x1F6D :
+ sb.append( (char)0x1F65 );
+ break;
+
+ case 0x1F6E :
+ sb.append( (char)0x1F66 );
+ break;
+
+ case 0x1F6F :
+ sb.append( (char)0x1F67 );
+ break;
+
+ case 0x1F80 :
+ sb.append( (char)0x1F00 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1F81 :
+ sb.append( (char)0x1F01 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1F82 :
+ sb.append( (char)0x1F02 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1F83 :
+ sb.append( (char)0x1F03 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1F84 :
+ sb.append( (char)0x1F04 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1F85 :
+ sb.append( (char)0x1F05 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1F86 :
+ sb.append( (char)0x1F06 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1F87 :
+ sb.append( (char)0x1F07 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1F88 :
+ sb.append( (char)0x1F00 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1F89 :
+ sb.append( (char)0x1F01 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1F8A :
+ sb.append( (char)0x1F02 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1F8B :
+ sb.append( (char)0x1F03 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1F8C :
+ sb.append( (char)0x1F04 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1F8D :
+ sb.append( (char)0x1F05 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1F8E :
+ sb.append( (char)0x1F06 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1F8F :
+ sb.append( (char)0x1F07 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1F90 :
+ sb.append( (char)0x1F20 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1F91 :
+ sb.append( (char)0x1F21 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1F92 :
+ sb.append( (char)0x1F22 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1F93 :
+ sb.append( (char)0x1F23 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1F94 :
+ sb.append( (char)0x1F24 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1F95 :
+ sb.append( (char)0x1F25 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1F96 :
+ sb.append( (char)0x1F26 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1F97 :
+ sb.append( (char)0x1F27 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1F98 :
+ sb.append( (char)0x1F20 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1F99 :
+ sb.append( (char)0x1F21 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1F9A :
+ sb.append( (char)0x1F22 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1F9B :
+ sb.append( (char)0x1F23 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1F9C :
+ sb.append( (char)0x1F24 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1F9D :
+ sb.append( (char)0x1F25 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1F9E :
+ sb.append( (char)0x1F26 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1F9F :
+ sb.append( (char)0x1F27 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1FA0 :
+ sb.append( (char)0x1F60 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1FA1 :
+ sb.append( (char)0x1F61 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1FA2 :
+ sb.append( (char)0x1F62 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1FA3 :
+ sb.append( (char)0x1F63 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1FA4 :
+ sb.append( (char)0x1F64 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1FA5 :
+ sb.append( (char)0x1F65 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1FA6 :
+ sb.append( (char)0x1F66 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1FA7 :
+ sb.append( (char)0x1F67 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1FA8 :
+ sb.append( (char)0x1F60 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1FA9 :
+ sb.append( (char)0x1F61 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1FAA :
+ sb.append( (char)0x1F62 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1FAB :
+ sb.append( (char)0x1F63 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1FAC :
+ sb.append( (char)0x1F64 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1FAD :
+ sb.append( (char)0x1F65 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1FAE :
+ sb.append( (char)0x1F66 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1FAF :
+ sb.append( (char)0x1F67 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1FB2 :
+ sb.append( (char)0x1F70 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1FB3 :
+ sb.append( (char)0x03B1 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1FB4 :
+ sb.append( (char)0x03AC );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1FB6 :
+ sb.append( (char)0x03B1 );
+ sb.append( (char)0x0342 );
+ break;
+
+ case 0x1FB7 :
+ sb.append( (char)0x03B1 );
+ sb.append( (char)0x0342 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1FB8 :
+ sb.append( (char)0x1FB0 );
+ break;
+
+ case 0x1FB9 :
+ sb.append( (char)0x1FB1 );
+ break;
+
+ case 0x1FBA :
+ sb.append( (char)0x1F70 );
+ break;
+
+ case 0x1FBB :
+ sb.append( (char)0x1F71 );
+ break;
+
+ case 0x1FBC :
+ sb.append( (char)0x03B1 );
+ sb.append( (char)0x03B9 );
+ break;
+
+ case 0x1FBE :
+ sb.append( (char)0x03B9 );
+ break;
+
[... 1016 lines stripped ...]