changeset 12525:72058a0c1a3a

Merge
author ddehaven
date Mon, 03 Aug 2015 16:33:06 -0700
parents e2853ff537da 022d45d94d0a
children d400f76e5c48
files src/jdk.charsets/share/classes/sun/nio/cs/ext/GB18030.java
diffstat 127 files changed, 15653 insertions(+), 13176 deletions(-) [+]
line wrap: on
line diff
--- a/.hgtags	Mon Aug 03 15:48:33 2015 -0500
+++ b/.hgtags	Mon Aug 03 16:33:06 2015 -0700
@@ -317,3 +317,4 @@
 f376824d4940f45719d91838f3f6249f873440db jdk9-b72
 1c8bca2ebba13948199de33a1b71e2d6f1c7a8a6 jdk9-b73
 6dd82d2e4a104f4d204b2890f33ef11ec3e3f8d0 jdk9-b74
+4dd09cb5f7c2a2a23a9958ea7a602dd74d5709b2 jdk9-b75
--- a/make/data/charsetmapping/charsets	Mon Aug 03 15:48:33 2015 -0500
+++ b/make/data/charsetmapping/charsets	Mon Aug 03 16:33:06 2015 -0700
@@ -547,7 +547,7 @@
 
 charset GB18030 GB18030
     package sun.nio.cs.ext
-    type    source
+    type    template
     alias   gb18030-2000
 
 charset GB2312 EUC_CN
--- a/make/data/charsetmapping/stdcs-linux	Mon Aug 03 15:48:33 2015 -0500
+++ b/make/data/charsetmapping/stdcs-linux	Mon Aug 03 16:33:06 2015 -0700
@@ -9,9 +9,16 @@
 EUC_JP
 EUC_JP_LINUX
 EUC_JP_Open
+EUC_TW
 GBK
+GB18030
+ISO_8859_11
+ISO_8859_3
+ISO_8859_6
+ISO_8859_8
 Johab
 PCK
+TIS_620
 JIS_X_0201
 JIS_X_0208
 JIS_X_0212
--- a/make/data/charsetmapping/stdcs-solaris	Mon Aug 03 15:48:33 2015 -0500
+++ b/make/data/charsetmapping/stdcs-solaris	Mon Aug 03 16:33:06 2015 -0700
@@ -11,12 +11,14 @@
 EUC_JP_Open
 EUC_TW
 GBK
+GB18030
 ISO_8859_11
 ISO_8859_3
 ISO_8859_6
 ISO_8859_8
 Johab
 PCK
+TIS_620
 JIS_X_0201
 JIS_X_0208
 JIS_X_0212
--- a/make/data/currency/CurrencyData.properties	Mon Aug 03 15:48:33 2015 -0500
+++ b/make/data/currency/CurrencyData.properties	Mon Aug 03 16:33:06 2015 -0700
@@ -31,7 +31,7 @@
 # Version of the currency code information in this class.
 # It is a serial number that accompanies with each amendment.
 
-dataVersion=159
+dataVersion=160
 
 # List of all valid ISO 4217 currency codes.
 # To ensure compatibility, do not remove codes.
@@ -109,7 +109,7 @@
 AT=EUR
 # AZERBAIJAN
 AZ=AZN
-# BAHAMAS
+# BAHAMAS (THE)
 BS=BSD
 # BAHRAIN
 BH=BHD
@@ -131,7 +131,7 @@
 BQ=USD
 # BHUTAN
 BT=BTN
-# BOLIVIA
+# BOLIVIA (PLURINATIONAL STATE OF)
 BO=BOB
 # BOSNIA AND HERZEGOVINA
 BA=BAM
@@ -141,7 +141,7 @@
 BV=NOK
 # BRAZIL
 BR=BRL
-# BRITISH INDIAN OCEAN TERRITORY
+# BRITISH INDIAN OCEAN TERRITORY (THE)
 IO=USD
 # BRUNEI DARUSSALAM
 BN=BND
@@ -159,9 +159,9 @@
 CA=CAD
 # CAPE VERDE
 CV=CVE
-# CAYMAN ISLANDS
+# CAYMAN ISLANDS (THE)
 KY=KYD
-# CENTRAL AFRICAN REPUBLIC
+# CENTRAL AFRICAN REPUBLIC (THE)
 CF=XAF
 # CHAD
 TD=XAF
@@ -171,17 +171,17 @@
 CN=CNY
 # CHRISTMAS ISLAND
 CX=AUD
-# COCOS (KEELING) ISLANDS
+# COCOS (KEELING) ISLANDS (THE)
 CC=AUD
 # COLOMBIA
 CO=COP
-# COMOROS
+# COMOROS (THE)
 KM=KMF
-# CONGO
+# CONGO (THE)
 CG=XAF
-# CONGO, THE DEMOCRATIC REPUBLIC OF THE
+# CONGO (THE DEMOCRATIC REPUBLIC OF THE)
 CD=CDF
-# COOK ISLANDS
+# COOK ISLANDS (THE)
 CK=NZD
 # COSTA RICA
 CR=CRC
@@ -195,7 +195,7 @@
 CW=ANG
 # CYPRUS
 CY=EUR
-# CZECH REPUBLIC
+# CZECH REPUBLIC (THE)
 CZ=CZK
 # DENMARK
 DK=DKK
@@ -203,7 +203,7 @@
 DJ=DJF
 # DOMINICA
 DM=XCD
-# DOMINICAN REPUBLIC
+# DOMINICAN REPUBLIC (THE)
 DO=DOP
 # ECUADOR
 EC=USD
@@ -220,9 +220,9 @@
 EE=EUR
 # ETHIOPIA
 ET=ETB
-# FALKLAND ISLANDS (MALVINAS)
+# FALKLAND ISLANDS (THE) [MALVINAS]
 FK=FKP
-# FAROE ISLANDS
+# FAROE ISLANDS (THE)
 FO=DKK
 # FIJI
 FJ=FJD
@@ -234,11 +234,11 @@
 GF=EUR
 # FRENCH POLYNESIA
 PF=XPF
-# FRENCH SOUTHERN TERRITORIES
+# FRENCH SOUTHERN TERRITORIES (THE)
 TF=EUR
 # GABON
 GA=XAF
-# GAMBIA
+# GAMBIA (THE)
 GM=GMD
 # GEORGIA
 GE=GEL
@@ -272,7 +272,7 @@
 HT=HTG
 # HEARD ISLAND AND MCDONALD ISLANDS
 HM=AUD
-# HOLY SEE (VATICAN CITY STATE)
+# HOLY SEE (THE)
 VA=EUR
 # HONDURAS
 HN=HNL
@@ -286,7 +286,7 @@
 IN=INR
 # INDONESIA
 ID=IDR
-# IRAN, ISLAMIC REPUBLIC OF
+# IRAN (ISLAMIC REPUBLIC OF)
 IR=IRR
 # IRAQ
 IQ=IQD
@@ -312,15 +312,15 @@
 KE=KES
 # KIRIBATI
 KI=AUD
-# KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF
+# KOREA (THE DEMOCRATIC PEOPLE'S REPUBLIC OF)
 KP=KPW
-# KOREA, REPUBLIC OF
+# KOREA (THE REPUBLIC OF)
 KR=KRW
 # KUWAIT
 KW=KWD
 # KYRGYZSTAN
 KG=KGS
-# LAO PEOPLE'S DEMOCRATIC REPUBLIC
+# LAO PEOPLE'S DEMOCRATIC REPUBLIC (THE)
 LA=LAK
 # LATVIA
 LV=LVL;2013-12-31-22-00-00;EUR
@@ -340,7 +340,7 @@
 LU=EUR
 # MACAU
 MO=MOP
-# MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF
+# MACEDONIA (THE FORMER YUGOSLAV REPUBLIC OF)
 MK=MKD
 # MADAGASCAR
 MG=MGA
@@ -354,7 +354,7 @@
 ML=XOF
 # MALTA
 MT=EUR
-# MARSHALL ISLANDS
+# MARSHALL ISLANDS (THE)
 MH=USD
 # MARTINIQUE
 MQ=EUR
@@ -366,9 +366,9 @@
 YT=EUR
 # MEXICO
 MX=MXN
-# MICRONESIA, FEDERATED STATES OF
+# MICRONESIA (FEDERATED STATES OF)
 FM=USD
-# MOLDOVA, REPUBLIC OF
+# MOLDOVA (THE REPUBLIC OF)
 MD=MDL
 # MONACO
 MC=EUR
@@ -390,7 +390,7 @@
 NR=AUD
 # NEPAL
 NP=NPR
-# NETHERLANDS
+# NETHERLANDS (THE)
 NL=EUR
 # NETHERLANDS ANTILLES
 AN=ANG
@@ -400,7 +400,7 @@
 NZ=NZD
 # NICARAGUA
 NI=NIO
-# NIGER
+# NIGER (THE)
 NE=XOF
 # NIGERIA
 NG=NGN
@@ -408,7 +408,7 @@
 NU=NZD
 # NORFOLK ISLAND
 NF=AUD
-# NORTHERN MARIANA ISLANDS
+# NORTHERN MARIANA ISLANDS (THE)
 MP=USD
 # NORWAY
 NO=NOK
@@ -428,7 +428,7 @@
 PY=PYG
 # PERU
 PE=PEN
-# PHILIPPINES
+# PHILIPPINES (THE)
 PH=PHP
 # PITCAIRN
 PN=NZD
@@ -444,7 +444,7 @@
 RE=EUR
 # ROMANIA
 RO=RON
-# RUSSIAN FEDERATION
+# RUSSIAN FEDERATION (THE)
 RU=RUB
 # RWANDA
 RW=RWF
@@ -500,7 +500,7 @@
 ES=EUR
 # SRI LANKA
 LK=LKR
-# SUDAN
+# SUDAN (THE)
 SD=SDG
 # SURINAME
 SR=SRD
@@ -516,7 +516,7 @@
 CH=CHF
 # SYRIAN ARAB REPUBLIC
 SY=SYP
-# TAIWAN
+# TAIWAN (PROVINCE OF CHINA)
 TW=TWD
 # TAJIKISTAN
 TJ=TJS
@@ -540,7 +540,7 @@
 TR=TRY
 # TURKMENISTAN
 TM=TMT
-# TURKS AND CAICOS ISLANDS
+# TURKS AND CAICOS ISLANDS (THE)
 TC=USD
 # TUVALU
 TV=AUD
@@ -548,13 +548,13 @@
 UG=UGX
 # UKRAINE
 UA=UAH
-# UNITED ARAB EMIRATES
+# UNITED ARAB EMIRATES (THE)
 AE=AED
-# UNITED KINGDOM
+# UNITED KINGDOM OF GREAT BRITAIN AND NORTHERN IRELAND (THE)
 GB=GBP
-# UNITED STATES
+# UNITED STATES OF AMERICA (THE)
 US=USD
-# UNITED STATES MINOR OUTLYING ISLANDS
+# UNITED STATES MINOR OUTLYING ISLANDS (THE)
 UM=USD
 # URUGUAY
 UY=UYU
@@ -562,7 +562,7 @@
 UZ=UZS
 # VANUATU
 VU=VUV
-# VENEZUELA
+# VENEZUELA (BOLIVARIAN REPUBLIC OF)
 VE=VEF
 # VIET NAM
 VN=VND
--- a/src/java.base/share/classes/com/sun/crypto/provider/BlowfishCipher.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.base/share/classes/com/sun/crypto/provider/BlowfishCipher.java	Mon Aug 03 16:33:06 2015 -0700
@@ -82,7 +82,7 @@
     /**
      * Sets the padding mechanism of this cipher.
      *
-     * @param padding the padding mechanism
+     * @param paddingScheme the padding mechanism
      *
      * @exception NoSuchPaddingException if the requested padding mechanism
      * does not exist
--- a/src/java.base/share/classes/com/sun/crypto/provider/DESCipher.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.base/share/classes/com/sun/crypto/provider/DESCipher.java	Mon Aug 03 16:33:06 2015 -0700
@@ -77,7 +77,7 @@
     /**
      * Sets the padding mechanism of this cipher.
      *
-     * @param padding the padding mechanism
+     * @param paddingScheme the padding mechanism
      *
      * @exception NoSuchPaddingException if the requested padding mechanism
      * does not exist
--- a/src/java.base/share/classes/com/sun/crypto/provider/DESedeCipher.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.base/share/classes/com/sun/crypto/provider/DESedeCipher.java	Mon Aug 03 16:33:06 2015 -0700
@@ -74,7 +74,7 @@
     /**
      * Sets the padding mechanism of this cipher.
      *
-     * @param padding the padding mechanism
+     * @param paddingScheme the padding mechanism
      *
      * @exception NoSuchPaddingException if the requested padding mechanism
      * does not exist
--- a/src/java.base/share/classes/com/sun/crypto/provider/DESedeWrapCipher.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.base/share/classes/com/sun/crypto/provider/DESedeWrapCipher.java	Mon Aug 03 16:33:06 2015 -0700
@@ -32,7 +32,7 @@
 
 /**
  * This class implements the CMS DESede KeyWrap algorithm as defined
- * in <a href=http://www.w3.org/TR/xmlenc-core/#sec-Alg-SymmetricKeyWrap>
+ * in <a href=http://www.w3.org/TR/xmlenc-core/#sec-Alg-SymmetricKeyWrap></a>
  * "XML Encryption Syntax and Processing" section 5.6.2
  * "CMS Triple DES Key Wrap".
  * Note: only <code>CBC</code> mode and <code>NoPadding</code> padding
@@ -159,9 +159,8 @@
     /**
      * Initializes this cipher with a key and a source of randomness.
      *
-     * <p>The cipher only supports the following two operation modes:<b>
-     * Cipher.WRAP_MODE, and <b>
-     * Cipher.UNWRAP_MODE.
+     * <p>The cipher only supports the following two operation modes:
+     * {@code Cipher.WRAP_MODE}, and {@code Cipher.UNWRAP_MODE}.
      * <p>For modes other than the above two, UnsupportedOperationException
      * will be thrown.
      * <p>If this cipher requires an initialization vector (IV), it will get
@@ -192,9 +191,8 @@
      * Initializes this cipher with a key, a set of algorithm parameters,
      * and a source of randomness.
      *
-     * <p>The cipher only supports the following two operation modes:<b>
-     * Cipher.WRAP_MODE, and <b>
-     * Cipher.UNWRAP_MODE.
+     * <p>The cipher only supports the following two operation modes:
+     * {@code Cipher.WRAP_MODE}, and {@code Cipher.UNWRAP_MODE}.
      * <p>For modes other than the above two, UnsupportedOperationException
      * will be thrown.
      * <p>If this cipher requires an initialization vector (IV), it will get
@@ -252,9 +250,8 @@
      * Initializes this cipher with a key, a set of algorithm parameters,
      * and a source of randomness.
      *
-     * <p>The cipher only supports the following two operation modes:<b>
-     * Cipher.WRAP_MODE, and <b>
-     * Cipher.UNWRAP_MODE.
+     * <p>The cipher only supports the following two operation modes:
+     * {@code Cipher.WRAP_MODE}, and {@code Cipher.UNWRAP_MODE}.
      * <p>For modes other than the above two, UnsupportedOperationException
      * will be thrown.
      * <p>If this cipher requires an initialization vector (IV), it will get
@@ -360,15 +357,15 @@
      * current Cipher.engineInit(...) implementation,
      * IllegalStateException will always be thrown upon invocation.
      *
-     * @param in the input buffer.
-     * @param inOffset the offset in <code>in</code> where the input
+     * @param input the input buffer.
+     * @param inputOffset the offset in {@code input} where the input
      * starts.
-     * @param inLen the input length.
-     * @param out the buffer for the result.
-     * @param outOffset the ofset in <code>out</code> where the result
+     * @param inputLen the input length.
+     * @param output the buffer for the result.
+     * @param outputOffset the ofset in {@code output} where the result
      * is stored.
      *
-     * @return the number of bytes stored in <code>out</code>.
+     * @return the number of bytes stored in {@code out}.
      *
      * @exception IllegalStateException upon invocation of this method.
      */
--- a/src/java.base/share/classes/com/sun/crypto/provider/DHKeyPairGenerator.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.base/share/classes/com/sun/crypto/provider/DHKeyPairGenerator.java	Mon Aug 03 16:33:06 2015 -0700
@@ -100,7 +100,7 @@
      * generator, and optionally the requested size in bits of the random
      * exponent (private value).
      *
-     * @param params the parameter set used to generate the key pair
+     * @param algParams the parameter set used to generate the key pair
      * @param random the source of randomness
      *
      * @exception InvalidAlgorithmParameterException if the given parameters
--- a/src/java.base/share/classes/com/sun/crypto/provider/DHParameterGenerator.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.base/share/classes/com/sun/crypto/provider/DHParameterGenerator.java	Mon Aug 03 16:33:06 2015 -0700
@@ -92,7 +92,7 @@
      * generation values, which specify the size of the prime modulus and
      * the size of the random exponent, both in bits.
      *
-     * @param params the set of parameter generation values
+     * @param genParamSpec the set of parameter generation values
      * @param random the source of randomness
      *
      * @exception InvalidAlgorithmParameterException if the given parameter
--- a/src/java.base/share/classes/com/sun/crypto/provider/PBEWithMD5AndDESCipher.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.base/share/classes/com/sun/crypto/provider/PBEWithMD5AndDESCipher.java	Mon Aug 03 16:33:06 2015 -0700
@@ -80,7 +80,7 @@
      * Sets the padding mechanism of this cipher. This algorithm only uses
      * PKCS #5 padding.
      *
-     * @param padding the padding mechanism
+     * @param paddingScheme the padding mechanism
      *
      * @exception NoSuchPaddingException if the requested padding mechanism
      * is invalid
--- a/src/java.base/share/classes/com/sun/crypto/provider/PBEWithMD5AndTripleDESCipher.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.base/share/classes/com/sun/crypto/provider/PBEWithMD5AndTripleDESCipher.java	Mon Aug 03 16:33:06 2015 -0700
@@ -92,7 +92,7 @@
      * Sets the padding mechanism of this cipher. This algorithm only uses
      * PKCS #5 padding.
      *
-     * @param padding the padding mechanism
+     * @param paddingScheme the padding mechanism
      *
      * @exception NoSuchPaddingException if the requested padding mechanism
      * is invalid
--- a/src/java.base/share/classes/com/sun/crypto/provider/PBKDF2HmacSHA1Factory.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.base/share/classes/com/sun/crypto/provider/PBKDF2HmacSHA1Factory.java	Mon Aug 03 16:33:06 2015 -0700
@@ -75,7 +75,7 @@
      *
      * @param key the key
      *
-     * @param keySpec the requested format in which the key material shall be
+     * @param keySpecCl the requested format in which the key material shall be
      * returned
      *
      * @return the underlying key specification (key material) in the
--- a/src/java.base/share/classes/java/lang/Object.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.base/share/classes/java/lang/Object.java	Mon Aug 03 16:33:06 2015 -0700
@@ -278,6 +278,7 @@
      * @see        java.lang.Object#notifyAll()
      * @see        java.lang.Object#wait()
      */
+    @HotSpotIntrinsicCandidate
     public final native void notify();
 
     /**
@@ -302,6 +303,7 @@
      * @see        java.lang.Object#notify()
      * @see        java.lang.Object#wait()
      */
+    @HotSpotIntrinsicCandidate
     public final native void notifyAll();
 
     /**
--- a/src/java.base/share/classes/java/net/InetAddress.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.base/share/classes/java/net/InetAddress.java	Mon Aug 03 16:33:06 2015 -0700
@@ -297,6 +297,13 @@
                     return null;
                 }
             });
+        sun.misc.SharedSecrets.setJavaNetInetAddressAccess(
+                new sun.misc.JavaNetInetAddressAccess() {
+                    public String getOriginalHostName(InetAddress ia) {
+                        return ia.holder.getOriginalHostName();
+                    }
+                }
+        );
         init();
     }
 
--- a/src/java.base/share/classes/java/net/URLClassLoader.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.base/share/classes/java/net/URLClassLoader.java	Mon Aug 03 16:33:06 2015 -0700
@@ -774,10 +774,6 @@
                 public URLClassPath getURLClassPath (URLClassLoader u) {
                     return u.ucp;
                 }
-
-                public String getOriginalHostName(InetAddress ia) {
-                    return ia.holder.getOriginalHostName();
-                }
             }
         );
         ClassLoader.registerAsParallelCapable();
--- a/src/java.base/share/classes/java/security/KeyStoreSpi.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.base/share/classes/java/security/KeyStoreSpi.java	Mon Aug 03 16:33:06 2015 -0700
@@ -360,6 +360,22 @@
      *          that specifies how to load the keystore,
      *          which may be {@code null}
      *
+     * @implSpec
+     * The default implementation examines {@code KeyStore.LoadStoreParameter}
+     * to extract its password and pass it to
+     * {@link KeyStoreSpi#engineLoad(InputStream, char[])} along with a
+     * {@code null} {@code InputStream}.
+     * <p>
+     * If {@code KeyStore.LoadStoreParameter} is {@code null} then
+     * the password parameter will also be {@code null}.
+     * Otherwise the {@code KeyStore.ProtectionParameter} of
+     * {@code KeyStore.LoadStoreParameter} must be either a
+     * {@code KeyStore.PasswordProtection} or a
+     * {@code KeyStore.CallbackHandlerProtection} that supports
+     * {@code PasswordCallback} so that the password parameter can be
+     * extracted. If the {@code KeyStore.ProtectionParameter} is neither
+     * of those classes then a {@code NoSuchAlgorithmException} is thrown.
+     *
      * @exception IllegalArgumentException if the given
      *          {@code KeyStore.LoadStoreParameter}
      *          input is not recognized
@@ -385,37 +401,32 @@
             return;
         }
 
-        if (param instanceof KeyStore.SimpleLoadStoreParameter) {
-            ProtectionParameter protection = param.getProtectionParameter();
-            char[] password;
-            if (protection instanceof PasswordProtection) {
-                password = ((PasswordProtection)protection).getPassword();
-            } else if (protection instanceof CallbackHandlerProtection) {
-                CallbackHandler handler =
-                    ((CallbackHandlerProtection)protection).getCallbackHandler();
-                PasswordCallback callback =
-                    new PasswordCallback("Password: ", false);
-                try {
-                    handler.handle(new Callback[] {callback});
-                } catch (UnsupportedCallbackException e) {
-                    throw new NoSuchAlgorithmException
-                        ("Could not obtain password", e);
-                }
-                password = callback.getPassword();
-                callback.clearPassword();
-                if (password == null) {
-                    throw new NoSuchAlgorithmException
-                        ("No password provided");
-                }
-            } else {
-                throw new NoSuchAlgorithmException("ProtectionParameter must"
-                    + " be PasswordProtection or CallbackHandlerProtection");
+        ProtectionParameter protection = param.getProtectionParameter();
+        char[] password;
+        if (protection instanceof PasswordProtection) {
+            password = ((PasswordProtection)protection).getPassword();
+        } else if (protection instanceof CallbackHandlerProtection) {
+            CallbackHandler handler =
+                ((CallbackHandlerProtection)protection).getCallbackHandler();
+            PasswordCallback callback =
+                new PasswordCallback("Password: ", false);
+            try {
+                handler.handle(new Callback[] {callback});
+            } catch (UnsupportedCallbackException e) {
+                throw new NoSuchAlgorithmException
+                    ("Could not obtain password", e);
             }
-            engineLoad(null, password);
-            return;
+            password = callback.getPassword();
+            callback.clearPassword();
+            if (password == null) {
+                throw new NoSuchAlgorithmException("No password provided");
+            }
+        } else {
+            throw new NoSuchAlgorithmException("ProtectionParameter must"
+                + " be PasswordProtection or CallbackHandlerProtection");
         }
-
-        throw new UnsupportedOperationException();
+        engineLoad(null, password);
+        return;
     }
 
     /**
--- a/src/java.base/share/classes/java/util/EnumMap.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.base/share/classes/java/util/EnumMap.java	Mon Aug 03 16:33:06 2015 -0700
@@ -681,8 +681,11 @@
     }
 
     private boolean equals(EnumMap<?,?> em) {
+        if (em.size != size)
+            return false;
+
         if (em.keyType != keyType)
-            return size == 0 && em.size == 0;
+            return size == 0;
 
         // Key types match, compare each value
         for (int i = 0; i < keyUniverse.length; i++) {
--- a/src/java.base/share/classes/java/util/PropertyResourceBundle.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.base/share/classes/java/util/PropertyResourceBundle.java	Mon Aug 03 16:33:06 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -40,8 +40,17 @@
 package java.util;
 
 import java.io.InputStream;
+import java.io.InputStreamReader;
 import java.io.Reader;
 import java.io.IOException;
+import java.nio.charset.Charset;
+import java.nio.charset.MalformedInputException;
+import java.nio.charset.StandardCharsets;
+import java.nio.charset.UnmappableCharacterException;
+import java.security.AccessController;
+import java.util.Locale;
+import sun.security.action.GetPropertyAction;
+import sun.util.PropertyResourceBundleCharset;
 import sun.util.ResourceBundleEnumeration;
 
 /**
@@ -108,11 +117,20 @@
  * <strong>Note:</strong> PropertyResourceBundle can be constructed either
  * from an InputStream or a Reader, which represents a property file.
  * Constructing a PropertyResourceBundle instance from an InputStream requires
- * that the input stream be encoded in ISO-8859-1.  In that case, characters
- * that cannot be represented in ISO-8859-1 encoding must be represented by Unicode Escapes
- * as defined in section 3.3 of
- * <cite>The Java&trade; Language Specification</cite>
+ * that the input stream be encoded in UTF-8. By default, if a
+ * {@link java.nio.charset.MalformedInputException} or an
+ * {@link java.nio.charset.UnmappableCharacterException} occurs on reading the
+ * input stream, then the PropertyResourceBundle instance resets to the state
+ * before the exception, re-reads the input stream in {@code ISO-8859-1}, and
+ * continues reading. If the system property
+ * {@code java.util.PropertyResourceBundle.encoding} is set to either
+ * "ISO-8859-1" or "UTF-8", the input stream is solely read in that encoding,
+ * and throws the exception if it encounters an invalid sequence.
+ * If "ISO-8859-1" is specified, characters that cannot be represented in
+ * ISO-8859-1 encoding must be represented by Unicode Escapes as defined in section
+ * 3.3 of <cite>The Java&trade; Language Specification</cite>
  * whereas the other constructor which takes a Reader does not have that limitation.
+ * Other encoding values are ignored for this system property.
  *
  * @see ResourceBundle
  * @see ListResourceBundle
@@ -120,10 +138,26 @@
  * @since 1.1
  */
 public class PropertyResourceBundle extends ResourceBundle {
+
+    // Check whether the strict encoding is specified.
+    // The possible encoding is either "ISO-8859-1" or "UTF-8".
+    private static final String encoding =
+        AccessController.doPrivileged(
+            new GetPropertyAction("java.util.PropertyResourceBundle.encoding", ""))
+        .toUpperCase(Locale.ROOT);
+
     /**
      * Creates a property resource bundle from an {@link java.io.InputStream
-     * InputStream}.  The property file read with this constructor
-     * must be encoded in ISO-8859-1.
+    * InputStream}. This constructor reads the property file in UTF-8 by default.
+    * If a {@link java.nio.charset.MalformedInputException} or an
+    * {@link java.nio.charset.UnmappableCharacterException} occurs on reading the
+    * input stream, then the PropertyResourceBundle instance resets to the state
+    * before the exception, re-reads the input stream in {@code ISO-8859-1} and
+    * continues reading. If the system property
+    * {@code java.util.PropertyResourceBundle.encoding} is set to either
+    * "ISO-8859-1" or "UTF-8", the input stream is solely read in that encoding,
+    * and throws the exception if it encounters an invalid sequence. Other
+    * encoding values are ignored for this system property.
      *
      * @param stream an InputStream that represents a property file
      *        to read from.
@@ -131,12 +165,19 @@
      * @throws NullPointerException if <code>stream</code> is null
      * @throws IllegalArgumentException if {@code stream} contains a
      *     malformed Unicode escape sequence.
+     * @throws MalformedInputException if the system property
+     *     {@code java.util.PropertyResourceBundle.encoding} is set to "UTF-8"
+     *     and {@code stream} contains an invalid UTF-8 byte sequence.
+     * @throws UnmappableCharacterException if the system property
+     *     {@code java.util.PropertyResourceBundle.encoding} is set to "UTF-8"
+     *     and {@code stream} contains an unmappable UTF-8 byte sequence.
      */
     @SuppressWarnings({"unchecked", "rawtypes"})
     public PropertyResourceBundle (InputStream stream) throws IOException {
-        Properties properties = new Properties();
-        properties.load(stream);
-        lookup = new HashMap(properties);
+        this(new InputStreamReader(stream,
+            "ISO-8859-1".equals(encoding) ?
+                StandardCharsets.ISO_8859_1.newDecoder() :
+                new PropertyResourceBundleCharset("UTF-8".equals(encoding)).newDecoder()));
     }
 
     /**
--- a/src/java.base/share/classes/java/util/regex/Matcher.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.base/share/classes/java/util/regex/Matcher.java	Mon Aug 03 16:33:06 2015 -0700
@@ -63,7 +63,7 @@
  *
  * <p> A matcher finds matches in a subset of its input called the
  * <i>region</i>. By default, the region contains all of the matcher's input.
- * The region can be modified via the{@link #region region} method and queried
+ * The region can be modified via the {@link #region region} method and queried
  * via the {@link #regionStart regionStart} and {@link #regionEnd regionEnd}
  * methods. The way that the region boundaries interact with some pattern
  * constructs can be changed. See {@link #useAnchoringBounds
@@ -1639,15 +1639,15 @@
      */
     public String toString() {
         StringBuilder sb = new StringBuilder();
-        sb.append("java.util.regex.Matcher");
-        sb.append("[pattern=" + pattern());
-        sb.append(" region=");
-        sb.append(regionStart() + "," + regionEnd());
-        sb.append(" lastmatch=");
+        sb.append("java.util.regex.Matcher")
+                .append("[pattern=").append(pattern())
+                .append(" region=")
+                .append(regionStart()).append(',').append(regionEnd())
+                .append(" lastmatch=");
         if ((first >= 0) && (group() != null)) {
             sb.append(group());
         }
-        sb.append("]");
+        sb.append(']');
         return sb.toString();
     }
 
--- a/src/java.base/share/classes/java/util/regex/Pattern.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.base/share/classes/java/util/regex/Pattern.java	Mon Aug 03 16:33:06 2015 -0700
@@ -565,7 +565,7 @@
  * <p>
  * <b><a name="usc">Scripts</a></b> are specified either with the prefix {@code Is}, as in
  * {@code IsHiragana}, or by using  the {@code script} keyword (or its short
- * form {@code sc})as in {@code script=Hiragana} or {@code sc=Hiragana}.
+ * form {@code sc}) as in {@code script=Hiragana} or {@code sc=Hiragana}.
  * <p>
  * The script names supported by <code>Pattern</code> are the valid script names
  * accepted and defined by
@@ -1299,18 +1299,22 @@
         if (slashEIndex == -1)
             return "\\Q" + s + "\\E";
 
-        StringBuilder sb = new StringBuilder(s.length() * 2);
+        int lenHint = s.length();
+        lenHint = (lenHint < Integer.MAX_VALUE - 8 - lenHint) ?
+                (lenHint << 1) : (Integer.MAX_VALUE - 8);
+
+        StringBuilder sb = new StringBuilder(lenHint);
         sb.append("\\Q");
-        slashEIndex = 0;
         int current = 0;
-        while ((slashEIndex = s.indexOf("\\E", current)) != -1) {
-            sb.append(s.substring(current, slashEIndex));
+        do {
+            sb.append(s, current, slashEIndex)
+                    .append("\\E\\\\E\\Q");
             current = slashEIndex + 2;
-            sb.append("\\E\\\\E\\Q");
-        }
-        sb.append(s.substring(current, s.length()));
-        sb.append("\\E");
-        return sb.toString();
+        } while ((slashEIndex = s.indexOf("\\E", current)) != -1);
+
+        return sb.append(s, current, s.length())
+                .append("\\E")
+                .toString();
     }
 
     /**
@@ -1367,14 +1371,16 @@
     }
 
     /**
-     * The pattern is converted to normalizedD form and then a pure group
-     * is constructed to match canonical equivalences of the characters.
+     * The pattern is converted to normalized form ({@linkplain
+     * java.text.Normalizer.Form.NFD NFD}, canonical decomposition)
+     * and then a pure group is constructed to match canonical
+     * equivalences of the characters.
      */
     private void normalize() {
         boolean inCharClass = false;
         int lastCodePoint = -1;
 
-        // Convert pattern into normalizedD form
+        // Convert pattern into normalized form
         normalizedPattern = Normalizer.normalize(pattern, Normalizer.Form.NFD);
         patternLength = normalizedPattern.length();
 
--- a/src/java.base/share/classes/java/util/stream/Collector.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.base/share/classes/java/util/stream/Collector.java	Mon Aug 03 16:33:06 2015 -0700
@@ -223,7 +223,7 @@
      * Perform the final transformation from the intermediate accumulation type
      * {@code A} to the final result type {@code R}.
      *
-     * <p>If the characteristic {@code IDENTITY_TRANSFORM} is
+     * <p>If the characteristic {@code IDENTITY_FINISH} is
      * set, this function may be presumed to be an identity transform with an
      * unchecked cast from {@code A} to {@code R}.
      *
--- a/src/java.base/share/classes/java/util/stream/DoubleStream.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.base/share/classes/java/util/stream/DoubleStream.java	Mon Aug 03 16:33:06 2015 -0700
@@ -293,7 +293,7 @@
      *
      * <p>Independent of whether this stream is ordered or unordered if all
      * elements of this stream match the given predicate then this operation
-     * takes all elements (the result is the same is the input), or if no
+     * takes all elements (the result is the same as the input), or if no
      * elements of the stream match the given predicate then no elements are
      * taken (the result is an empty stream).
      *
@@ -329,6 +329,7 @@
      *                  predicate to apply to elements to determine the longest
      *                  prefix of elements.
      * @return the new stream
+     * @since 1.9
      */
     default DoubleStream takeWhile(DoublePredicate predicate) {
         Objects.requireNonNull(predicate);
@@ -361,7 +362,7 @@
      * elements of this stream match the given predicate then this operation
      * drops all elements (the result is an empty stream), or if no elements of
      * the stream match the given predicate then no elements are dropped (the
-     * result is the same is the input).
+     * result is the same as the input).
      *
      * <p>This is a <a href="package-summary.html#StreamOps">stateful
      * intermediate operation</a>.
@@ -395,6 +396,7 @@
      *                  predicate to apply to elements to determine the longest
      *                  prefix of elements.
      * @return the new stream
+     * @since 1.9
      */
     default DoubleStream dropWhile(DoublePredicate predicate) {
         Objects.requireNonNull(predicate);
--- a/src/java.base/share/classes/java/util/stream/IntStream.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.base/share/classes/java/util/stream/IntStream.java	Mon Aug 03 16:33:06 2015 -0700
@@ -291,7 +291,7 @@
      *
      * <p>Independent of whether this stream is ordered or unordered if all
      * elements of this stream match the given predicate then this operation
-     * takes all elements (the result is the same is the input), or if no
+     * takes all elements (the result is the same as the input), or if no
      * elements of the stream match the given predicate then no elements are
      * taken (the result is an empty stream).
      *
@@ -326,6 +326,7 @@
      *                  predicate to apply to elements to determine the longest
      *                  prefix of elements.
      * @return the new stream
+     * @since 1.9
      */
     default IntStream takeWhile(IntPredicate predicate) {
         Objects.requireNonNull(predicate);
@@ -358,7 +359,7 @@
      * elements of this stream match the given predicate then this operation
      * drops all elements (the result is an empty stream), or if no elements of
      * the stream match the given predicate then no elements are dropped (the
-     * result is the same is the input).
+     * result is the same as the input).
      *
      * <p>This is a <a href="package-summary.html#StreamOps">stateful
      * intermediate operation</a>.
@@ -391,6 +392,7 @@
      *                  predicate to apply to elements to determine the longest
      *                  prefix of elements.
      * @return the new stream
+     * @since 1.9
      */
     default IntStream dropWhile(IntPredicate predicate) {
         Objects.requireNonNull(predicate);
--- a/src/java.base/share/classes/java/util/stream/LongStream.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.base/share/classes/java/util/stream/LongStream.java	Mon Aug 03 16:33:06 2015 -0700
@@ -291,7 +291,7 @@
      *
      * <p>Independent of whether this stream is ordered or unordered if all
      * elements of this stream match the given predicate then this operation
-     * takes all elements (the result is the same is the input), or if no
+     * takes all elements (the result is the same as the input), or if no
      * elements of the stream match the given predicate then no elements are
      * taken (the result is an empty stream).
      *
@@ -327,6 +327,7 @@
      *                  predicate to apply to elements to determine the longest
      *                  prefix of elements.
      * @return the new stream
+     * @since 1.9
      */
     default LongStream takeWhile(LongPredicate predicate) {
         Objects.requireNonNull(predicate);
@@ -359,7 +360,7 @@
      * elements of this stream match the given predicate then this operation
      * drops all elements (the result is an empty stream), or if no elements of
      * the stream match the given predicate then no elements are dropped (the
-     * result is the same is the input).
+     * result is the same as the input).
      *
      * <p>This is a <a href="package-summary.html#StreamOps">stateful
      * intermediate operation</a>.
@@ -393,6 +394,7 @@
      *                  predicate to apply to elements to determine the longest
      *                  prefix of elements.
      * @return the new stream
+     * @since 1.9
      */
     default LongStream dropWhile(LongPredicate predicate) {
         Objects.requireNonNull(predicate);
--- a/src/java.base/share/classes/java/util/stream/SliceOps.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.base/share/classes/java/util/stream/SliceOps.java	Mon Aug 03 16:33:06 2015 -0700
@@ -138,7 +138,7 @@
                             skip, limit, size);
                 }
                 else {
-                    // @@@ OOMEs will occur for LongStream.longs().filter(i -> true).limit(n)
+                    // @@@ OOMEs will occur for LongStream.range(0, Long.MAX_VALUE).filter(i -> true).limit(n)
                     //     regardless of the value of n
                     //     Need to adjust the target size of splitting for the
                     //     SliceTask from say (size / k) to say min(size / k, 1 << 14)
--- a/src/java.base/share/classes/java/util/stream/Stream.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.base/share/classes/java/util/stream/Stream.java	Mon Aug 03 16:33:06 2015 -0700
@@ -498,7 +498,7 @@
      *
      * <p>Independent of whether this stream is ordered or unordered if all
      * elements of this stream match the given predicate then this operation
-     * takes all elements (the result is the same is the input), or if no
+     * takes all elements (the result is the same as the input), or if no
      * elements of the stream match the given predicate then no elements are
      * taken (the result is an empty stream).
      *
@@ -533,6 +533,7 @@
      *                  predicate to apply to elements to determine the longest
      *                  prefix of elements.
      * @return the new stream
+     * @since 1.9
      */
     default Stream<T> takeWhile(Predicate<? super T> predicate) {
         Objects.requireNonNull(predicate);
@@ -565,7 +566,7 @@
      * elements of this stream match the given predicate then this operation
      * drops all elements (the result is an empty stream), or if no elements of
      * the stream match the given predicate then no elements are dropped (the
-     * result is the same is the input).
+     * result is the same as the input).
      *
      * <p>This is a <a href="package-summary.html#StreamOps">stateful
      * intermediate operation</a>.
@@ -598,6 +599,7 @@
      *                  predicate to apply to elements to determine the longest
      *                  prefix of elements.
      * @return the new stream
+     * @since 1.9
      */
     default Stream<T> dropWhile(Predicate<? super T> predicate) {
         Objects.requireNonNull(predicate);
--- a/src/java.base/share/classes/java/util/stream/Streams.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.base/share/classes/java/util/stream/Streams.java	Mon Aug 03 16:33:06 2015 -0700
@@ -156,10 +156,9 @@
          * than a balanced tree at the expense of a higher-depth for the right
          * side of the range.
          *
-         * <p>This is optimized for cases such as IntStream.ints() that is
-         * implemented as range of 0 to Integer.MAX_VALUE but is likely to be
-         * augmented with a limit operation that limits the number of elements
-         * to a count lower than this threshold.
+         * <p>This is optimized for cases such as IntStream.range(0, Integer.MAX_VALUE)
+         * that is likely to be augmented with a limit operation that limits the
+         * number of elements to a count lower than this threshold.
          */
         private static final int BALANCED_SPLIT_THRESHOLD = 1 << 24;
 
@@ -280,10 +279,9 @@
          * than a balanced tree at the expense of a higher-depth for the right
          * side of the range.
          *
-         * <p>This is optimized for cases such as LongStream.longs() that is
-         * implemented as range of 0 to Long.MAX_VALUE but is likely to be
-         * augmented with a limit operation that limits the number of elements
-         * to a count lower than this threshold.
+         * <p>This is optimized for cases such as LongStream.range(0, Long.MAX_VALUE)
+         * that is likely to be augmented with a limit operation that limits the
+         * number of elements to a count lower than this threshold.
          */
         private static final long BALANCED_SPLIT_THRESHOLD = 1 << 24;
 
--- a/src/java.base/share/classes/jdk/internal/jimage/ExternalFilesWriter.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.base/share/classes/jdk/internal/jimage/ExternalFilesWriter.java	Mon Aug 03 16:33:06 2015 -0700
@@ -58,7 +58,7 @@
                     case NATIVE_CMD:
                         Path path = destFile("bin", filename);
                         writeEntry(in, path);
-                        path.toFile().setExecutable(true);
+                        path.toFile().setExecutable(true, false);
                         break;
                     case CONFIG:
                         writeEntry(in, destFile("conf", filename));
--- a/src/java.base/share/classes/sun/misc/JavaNetAccess.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.base/share/classes/sun/misc/JavaNetAccess.java	Mon Aug 03 16:33:06 2015 -0700
@@ -26,17 +26,10 @@
 package sun.misc;
 
 import java.net.URLClassLoader;
-import java.net.InetAddress;
 
 public interface JavaNetAccess {
     /**
      * return the URLClassPath belonging to the given loader
      */
     URLClassPath getURLClassPath (URLClassLoader u);
-
-    /**
-     * Return the original application specified hostname of
-     * the given InetAddress object.
-     */
-    String getOriginalHostName(InetAddress ia);
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/java.base/share/classes/sun/misc/JavaNetInetAddressAccess.java	Mon Aug 03 16:33:06 2015 -0700
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package sun.misc;
+
+import java.net.InetAddress;
+
+public interface JavaNetInetAddressAccess {
+    /**
+     * Return the original application specified hostname of
+     * the given InetAddress object.
+     */
+    String getOriginalHostName(InetAddress ia);
+}
--- a/src/java.base/share/classes/sun/misc/SharedSecrets.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.base/share/classes/sun/misc/SharedSecrets.java	Mon Aug 03 16:33:06 2015 -0700
@@ -48,6 +48,7 @@
     private static JavaLangRefAccess javaLangRefAccess;
     private static JavaIOAccess javaIOAccess;
     private static JavaNetAccess javaNetAccess;
+    private static JavaNetInetAddressAccess javaNetInetAddressAccess;
     private static JavaNetHttpCookieAccess javaNetHttpCookieAccess;
     private static JavaNioAccess javaNioAccess;
     private static JavaIOFileDescriptorAccess javaIOFileDescriptorAccess;
@@ -92,9 +93,19 @@
     }
 
     public static JavaNetAccess getJavaNetAccess() {
+        if (javaNetAccess == null)
+            unsafe.ensureClassInitialized(java.net.URLClassLoader.class);
         return javaNetAccess;
     }
 
+    public static void setJavaNetInetAddressAccess(JavaNetInetAddressAccess jna) {
+        javaNetInetAddressAccess = jna;
+    }
+
+    public static JavaNetInetAddressAccess getJavaNetInetAddressAccess() {
+        return javaNetInetAddressAccess;
+    }
+
     public static void setJavaNetHttpCookieAccess(JavaNetHttpCookieAccess a) {
         javaNetHttpCookieAccess = a;
     }
--- a/src/java.base/share/classes/sun/security/ssl/SSLSocketImpl.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.base/share/classes/sun/security/ssl/SSLSocketImpl.java	Mon Aug 03 16:33:06 2015 -0700
@@ -42,7 +42,7 @@
 import javax.net.ssl.*;
 import sun.misc.ManagedLocalsThread;
 
-import sun.misc.JavaNetAccess;
+import sun.misc.JavaNetInetAddressAccess;
 import sun.misc.SharedSecrets;
 
 /**
@@ -2096,7 +2096,7 @@
         /*
          * Get the original hostname via sun.misc.SharedSecrets.
          */
-        JavaNetAccess jna = SharedSecrets.getJavaNetAccess();
+        JavaNetInetAddressAccess jna = SharedSecrets.getJavaNetInetAddressAccess();
         String originalHostname = jna.getOriginalHostName(inetAddress);
 
         /*
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/java.base/share/classes/sun/util/PropertyResourceBundleCharset.java	Mon Aug 03 16:33:06 2015 -0700
@@ -0,0 +1,107 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package sun.util;
+
+import java.nio.ByteBuffer;
+import java.nio.CharBuffer;
+import java.nio.charset.Charset;
+import java.nio.charset.CharsetDecoder;
+import java.nio.charset.CharsetEncoder;
+import java.nio.charset.CoderResult;
+import java.nio.charset.CodingErrorAction;
+import java.nio.charset.StandardCharsets;
+import java.util.Objects;
+import sun.util.logging.PlatformLogger;
+
+/**
+ * A Charset implementation for reading PropertyResourceBundle, in order
+ * for loading properties files. This first tries to load the properties
+ * file with UTF-8 encoding). If it fails, then load the file with ISO-8859-1
+ */
+public class PropertyResourceBundleCharset extends Charset {
+
+    private boolean strictUTF8 = false;
+
+    public PropertyResourceBundleCharset(boolean strictUTF8) {
+        this(PropertyResourceBundleCharset.class.getCanonicalName(), null);
+        this.strictUTF8 = strictUTF8;
+    }
+
+    public PropertyResourceBundleCharset(String canonicalName, String[] aliases) {
+        super(canonicalName, aliases);
+    }
+
+    @Override
+    public boolean contains(Charset cs) {
+        return false;
+    }
+
+    @Override
+    public CharsetDecoder newDecoder() {
+        return new PropertiesFileDecoder(this, 1.0f, 1.0f);
+    }
+
+    @Override
+    public CharsetEncoder newEncoder() {
+        throw new UnsupportedOperationException("Encoding is not supported");
+    }
+
+    private final class PropertiesFileDecoder extends CharsetDecoder {
+
+        private CharsetDecoder cdUTF_8 = StandardCharsets.UTF_8.newDecoder()
+                                .onMalformedInput(CodingErrorAction.REPORT)
+                                .onUnmappableCharacter(CodingErrorAction.REPORT);
+        private CharsetDecoder cdISO_8859_1 = null;
+
+        protected PropertiesFileDecoder(Charset cs,
+                float averageCharsPerByte, float maxCharsPerByte) {
+            super(cs, averageCharsPerByte, maxCharsPerByte);
+        }
+
+        protected CoderResult decodeLoop(ByteBuffer in, CharBuffer out) {
+            if (Objects.nonNull(cdISO_8859_1)) {
+                return cdISO_8859_1.decode(in, out, false);
+            }
+            in.mark();
+            out.mark();
+
+            CoderResult cr = cdUTF_8.decode(in, out, false);
+            if (cr.isUnderflow() || cr.isOverflow() ||
+                PropertyResourceBundleCharset.this.strictUTF8) {
+                return cr;
+            }
+
+            in.reset();
+            out.reset();
+
+            PlatformLogger.getLogger(getClass().getCanonicalName()).info(
+                "Invalid or unmappable UTF-8 sequence detected. " +
+                "Switching encoding from UTF-8 to ISO-8859-1");
+            cdISO_8859_1 = StandardCharsets.ISO_8859_1.newDecoder();
+            return cdISO_8859_1.decode(in, out, false);
+        }
+    }
+}
--- a/src/java.base/share/classes/sun/util/resources/CurrencyNames.properties	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.base/share/classes/sun/util/resources/CurrencyNames.properties	Mon Aug 03 16:33:06 2015 -0700
@@ -60,9 +60,6 @@
 # or other dealings in these Data Files or Software without prior
 # written authorization of the copyright holder.
 
-#
-# Generated automatically from the Common Locale Data Repository. DO NOT EDIT!
-#
 ADP=ADP
 AED=AED
 AFA=AFA
@@ -358,7 +355,7 @@
 gyd=Guyanaese Dollar
 hkd=Hong Kong Dollar
 hnl=Honduran Lempira
-hrk=Croatian Kuna
+hrk=Kuna
 htg=Haitian Gourde
 huf=Hungarian Forint
 idr=Indonesian Rupiah
--- a/src/java.base/unix/classes/sun/nio/fs/UnixFileStore.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.base/unix/classes/sun/nio/fs/UnixFileStore.java	Mon Aug 03 16:33:06 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -186,7 +186,8 @@
             return false;
         UnixFileStore other = (UnixFileStore)ob;
         return (this.dev == other.dev) &&
-               Arrays.equals(this.entry.dir(), other.entry.dir());
+               Arrays.equals(this.entry.dir(), other.entry.dir()) &&
+               this.entry.name().equals(other.entry.name());
     }
 
     @Override
--- a/src/java.base/unix/native/libnio/ch/Net.c	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.base/unix/native/libnio/ch/Net.c	Mon Aug 03 16:33:06 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -29,6 +29,7 @@
 #include <string.h>
 #include <netinet/in.h>
 #include <netinet/tcp.h>
+#include <limits.h>
 
 #include "jni.h"
 #include "jni_util.h"
@@ -186,7 +187,7 @@
 #endif
 }
 
-JNIEXPORT int JNICALL
+JNIEXPORT jint JNICALL
 Java_sun_nio_ch_Net_socket0(JNIEnv *env, jclass cl, jboolean preferIPv6,
                             jboolean stream, jboolean reuse, jboolean ignored)
 {
@@ -709,7 +710,12 @@
     int rv;
     pfd.fd = fdval(env, fdo);
     pfd.events = events;
-    rv = poll(&pfd, 1, timeout);
+    if (timeout < -1) {
+        timeout = -1;
+    } else if (timeout > INT_MAX) {
+        timeout = INT_MAX;
+    }
+    rv = poll(&pfd, 1, (int)timeout);
 
     if (rv >= 0) {
         return pfd.revents;
--- a/src/java.desktop/share/classes/sun/java2d/SunGraphicsEnvironment.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.desktop/share/classes/sun/java2d/SunGraphicsEnvironment.java	Mon Aug 03 16:33:06 2015 -0700
@@ -84,6 +84,8 @@
         java.security.AccessController.doPrivileged(
                                     new java.security.PrivilegedAction<Object>() {
             public Object run() {
+                String osName = System.getProperty("os.name");
+                if ("SunOS".equals(osName)) {
                     String version = System.getProperty("os.version", "0.0");
                     try {
                         float ver = Float.parseFloat(version);
@@ -117,7 +119,7 @@
                         }
                     } catch (Exception e) {
                     }
-
+                }
                 /* Establish the default font to be used by SG2D etc */
                 defaultFont = new Font(Font.DIALOG, Font.PLAIN, 12);
 
--- a/src/java.prefs/macosx/classes/java/util/prefs/MacOSXPreferences.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.prefs/macosx/classes/java/util/prefs/MacOSXPreferences.java	Mon Aug 03 16:33:06 2015 -0700
@@ -37,9 +37,6 @@
     // true if this node is a child of userRoot or is userRoot
     private final boolean isUser;
 
-    // true if this node is userRoot or systemRoot
-    private final boolean isRoot;
-
     // CF's storage location for this node and its keys
     private final MacOSXPreferencesFile file;
 
@@ -94,7 +91,6 @@
                               boolean isNew, boolean isRoot, boolean isUser)
     {
         super(parent, name);
-        this.isRoot = isRoot;
         if (isRoot)
             this.isUser = isUser;
         else
@@ -115,7 +111,6 @@
         // /one/two/three/four/five/
         // The fourth slash is the end of the first three components.
         // If there is no fourth slash, the name has fewer than 3 components
-        int componentCount = 0;
         int pos = -1;
         for (int i = 0; i < 4; i++) {
             pos = name.indexOf('/', pos+1);
--- a/src/java.security.jgss/share/classes/sun/security/jgss/GSSCredentialImpl.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/jgss/GSSCredentialImpl.java	Mon Aug 03 16:33:06 2015 -0700
@@ -547,8 +547,8 @@
     /**
      * Returns the specified mechanism's credential-element.
      *
-     * @param mechOid - the oid for mechanism to retrieve
-     * @param throwExcep - boolean indicating if the function is
+     * @param mechOid the oid for mechanism to retrieve
+     * @param initiate boolean indicating if the function is
      *    to throw exception or return null when element is not
      *    found.
      * @return mechanism credential object
--- a/src/java.security.jgss/share/classes/sun/security/jgss/GSSToken.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/jgss/GSSToken.java	Mon Aug 03 16:33:06 2015 -0700
@@ -84,7 +84,7 @@
      *
      * @param data the array containing the bytes of the integer value
      * @param pos the offset in the array
-     * @size the number of bytes to read from the array.
+     * @param size the number of bytes to read from the array.
      * @return the integer value
      */
     public static final int readLittleEndian(byte[] data, int pos, int size) {
@@ -141,7 +141,7 @@
      * Reads a two byte integer value from an InputStream.
      *
      * @param is the InputStream to read from
-     * @returns the integer value
+     * @return the integer value
      * @throws IOException if some errors occurs while reading the integer
      * bytes.
      */
@@ -155,7 +155,7 @@
      *
      * @param src the byte arra to read from
      * @param pos the offset to start reading from
-     * @returns the integer value
+     * @return the integer value
      */
     public static final int readInt(byte[] src, int pos) {
         return ((0xFF & src[pos])<<8 | (0xFF & src[pos+1]));
@@ -167,8 +167,8 @@
      *
      * @param is the InputStream to read from
      * @param buffer the buffer to store the bytes into
-     * @param throws EOFException if EOF is reached before all bytes are
-     * read.
+     * @throws EOFException if EOF is reached before all bytes are
+     *         read.
      * @throws IOException is an error occurs while reading
      */
     public static final void readFully(InputStream is, byte[] buffer)
@@ -184,8 +184,8 @@
      * @param buffer the buffer to store the bytes into
      * @param offset the offset to start storing at
      * @param len the number of bytes to read
-     * @param throws EOFException if EOF is reached before all bytes are
-     * read.
+     * @throws EOFException if EOF is reached before all bytes are
+     *         read.
      * @throws IOException is an error occurs while reading
      */
     public static final void readFully(InputStream is,
--- a/src/java.security.jgss/share/classes/sun/security/jgss/LoginConfigImpl.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/jgss/LoginConfigImpl.java	Mon Aug 03 16:33:06 2015 -0700
@@ -48,7 +48,7 @@
      * A new instance of LoginConfigImpl must be created for each login request
      * since it's only used by a single (caller, mech) pair
      * @param caller defined in GSSUtil as CALLER_XXX final fields
-     * @param oid defined in GSSUtil as XXX_MECH_OID final fields
+     * @param mech defined in GSSUtil as XXX_MECH_OID final fields
      */
     public LoginConfigImpl(GSSCaller caller, Oid mech) {
 
--- a/src/java.security.jgss/share/classes/sun/security/jgss/ProviderList.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/jgss/ProviderList.java	Mon Aug 03 16:33:06 2015 -0700
@@ -46,7 +46,7 @@
  * queries this class whenever it needs a mechanism's factory.<p>
  *
  * This class stores an ordered list of pairs of the form
- * <provider, oid>. When it attempts to instantiate a mechanism
+ * {@code <provider, oid>}. When it attempts to instantiate a mechanism
  * defined by oid o, it steps through the list looking for an entry
  * with oid=o, or with oid=null. (An entry with oid=null matches all
  * mechanisms.) When it finds such an entry, the corresponding
@@ -74,12 +74,12 @@
  * the system ones don't suffice.<p>
  *
  * If a mechanism's factory is being obtained from a provider as a
- * result of encountering a entryof the form <provider, oid> where
+ * result of encountering a entryof the form {@code <provider, oid>} where
  * oid is non-null, then the assumption is that the application added
  * this entry and it wants this mechanism to be obtained from this
  * provider. Thus is the provider does not actually contain the
  * requested mechanism, an exception will be thrown. However, if the
- * entry were of the form <provider, null>, then it is viewed more
+ * entry were of the form {@code <provider, null>}, then it is viewed more
  * liberally and is simply skipped over if the provider does not claim to
  * support the requested mechanism.
  */
--- a/src/java.security.jgss/share/classes/sun/security/jgss/krb5/Krb5NameElement.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/jgss/krb5/Krb5NameElement.java	Mon Aug 03 16:33:06 2015 -0700
@@ -198,8 +198,8 @@
      * If either name denotes an anonymous principal, the call should
      * return false.
      *
-     * @param name to be compared with
-     * @returns true if they both refer to the same entity, else false
+     * @param other to be compared with
+     * @return true if they both refer to the same entity, else false
      * @exception GSSException with major codes of BAD_NAMETYPE,
      *  BAD_NAME, FAILURE
      */
@@ -224,7 +224,7 @@
      * situation where an error occurs.
      *
      * @param another the object to be compared to
-     * @returns true if they both refer to the same entity, else false
+     * @return true if they both refer to the same entity, else false
      * @see #equals(GSSNameSpi)
      */
     public boolean equals(Object another) {
--- a/src/java.security.jgss/share/classes/sun/security/jgss/spi/GSSContextSpi.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/jgss/spi/GSSContextSpi.java	Mon Aug 03 16:33:06 2015 -0700
@@ -51,14 +51,14 @@
  * and the context flags before the context is fully established. The
  * isProtReady method is used to indicate that these services are
  * available.
- *<p>
+ * <p>
  * <strong>
  * Context establishment tokens are defined in a mechanism independent
  * format in section 3.1 of RFC 2743. The GSS-Framework will add
  * and remove the mechanism independent header portion of this token format
  * depending on whether a token is received or is being sent. The mechanism
- * should only generate or expect to read the inner-context token portion..
- * <p>
+ * should only generate or expect to read the inner-context token portion.
+ * <br>
  * On the other hands, tokens used for per-message calls are generated
  * entirely by the mechanism. It is possible that the mechanism chooses to
  * encase inner-level per-message tokens in a header similar to that used
@@ -239,7 +239,7 @@
      *    asked to provide.
      * @param confReq a flag indicating whether confidentiality will be
      *    requested or not
-     * @param outputSize the maximum size of the output token
+     * @param maxTokSize the maximum size of the output token
      * @return the maximum size for the input message that can be
      *    provided to the wrap() method in order to guarantee that these
      *    requirements are met.
@@ -254,7 +254,7 @@
      * @param is the user-provided message to be protected
      * @param os the token to be sent to the peer. It includes
      *    the message from <i>is</i> with the requested protection.
-     * @param msgPro on input it contains the requested qop and
+     * @param msgProp on input it contains the requested qop and
      *    confidentiality state, on output, the applied values
      * @exception GSSException may be thrown
      * @see unwrap
@@ -365,7 +365,7 @@
      *
      * @param is token generated by getMIC
      * @param msgStr the message to check integrity for
-     * @param msgProp will contain the applied QOP and confidentiality
+     * @param mProp will contain the applied QOP and confidentiality
      *    states of the token as well as any informatory status codes
      * @exception GSSException may be thrown
      */
--- a/src/java.security.jgss/share/classes/sun/security/jgss/spi/GSSNameSpi.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/jgss/spi/GSSNameSpi.java	Mon Aug 03 16:33:06 2015 -0700
@@ -46,7 +46,7 @@
      * return false.
      *
      * @param name to be compared with
-     * @returns true if they both refer to the same entity, else false
+     * @return true if they both refer to the same entity, else false
      * @exception GSSException with major codes of BAD_NAMETYPE,
      *    BAD_NAME, FAILURE
      */
@@ -60,7 +60,7 @@
      * situation where an error occurs.
      *
      * @param another the object to be compared to
-     * @returns true if they both refer to the same entity, else false
+     * @return true if they both refer to the same entity, else false
      * @see #equals(GSSNameSpi)
      */
     public boolean equals(Object another);
--- a/src/java.security.jgss/share/classes/sun/security/jgss/spi/MechanismFactory.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/jgss/spi/MechanismFactory.java	Mon Aug 03 16:33:06 2015 -0700
@@ -147,7 +147,7 @@
      * <p>
      * An exported name will generally be passed in using this method.
      *
-     * @param nameBytes the bytes describing this entity to the mechanism
+     * @param name the bytes describing this entity to the mechanism
      * @param nameType an Oid serving as a clue as to how the mechanism should
      * interpret the nameStr
      * @throws GSSException if any of the errors described in RFC 2743 for
--- a/src/java.security.jgss/share/classes/sun/security/krb5/Checksum.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/Checksum.java	Mon Aug 03 16:33:06 2015 -0700
@@ -128,8 +128,8 @@
 
     /**
      * Constructs a new Checksum using the raw data and type.
-     * @data the byte array of checksum.
-     * @new_cksumType the type of checksum.
+     * @param data the byte array of checksum.
+     * @param new_cksumType the type of checksum.
      *
      */
          // used in InitialToken
@@ -141,8 +141,8 @@
     /**
      * Constructs a new Checksum by calculating the checksum over the data
      * using specified checksum type.
-     * @new_cksumType the type of checksum.
-     * @data the data that needs to be performed a checksum calculation on.
+     * @param new_cksumType the type of checksum.
+     * @param data the data that needs to be performed a checksum calculation on.
      */
     public Checksum(int new_cksumType, byte[] data)
         throws KdcErrException, KrbCryptoException {
@@ -159,8 +159,8 @@
     /**
      * Constructs a new Checksum by calculating the keyed checksum
      * over the data using specified checksum type.
-     * @new_cksumType the type of checksum.
-     * @data the data that needs to be performed a checksum calculation on.
+     * @param new_cksumType the type of checksum.
+     * @param data the data that needs to be performed a checksum calculation on.
      */
          // KrbSafe, KrbTgsReq
     public Checksum(int new_cksumType, byte[] data,
@@ -238,12 +238,12 @@
 
     /**
      * Encodes a Checksum object.
-     * <xmp>
+     * <pre>{@code
      * Checksum    ::= SEQUENCE {
      *         cksumtype   [0] Int32,
      *         checksum    [1] OCTET STRING
      * }
-     * </xmp>
+     * }</pre>
      *
      * <p>
      * This definition reflects the Network Working Group RFC 4120
--- a/src/java.security.jgss/share/classes/sun/security/krb5/Config.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/Config.java	Mon Aug 03 16:33:06 2015 -0700
@@ -330,7 +330,7 @@
      *
      * @param s the string duration
      * @return time in seconds
-     * @throw KrbException if format is illegal
+     * @throws KrbException if format is illegal
      */
     public static int duration(String s) throws KrbException {
 
@@ -392,7 +392,7 @@
      * @param keys the keys
      * @return the int value, Integer.MIN_VALUE is returned if it cannot be
      * found or the value is not a legal integer.
-     * @throw IllegalArgumentException if any of the keys is illegal
+     * @throws IllegalArgumentException if any of the keys is illegal
      * @see #get(java.lang.String[])
      */
     public int getIntValue(String... keys) {
--- a/src/java.security.jgss/share/classes/sun/security/krb5/Credentials.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/Credentials.java	Mon Aug 03 16:33:06 2015 -0700
@@ -279,7 +279,7 @@
      * @param ticketCache the path to the tickets file. A value
      * of null will be accepted to indicate that the default
      * path should be searched
-     * @returns the TGT credentials or null if none were found. If the tgt
+     * @return the TGT credentials or null if none were found. If the tgt
      * expired, it is the responsibility of the caller to determine this.
      */
     public static Credentials acquireTGTFromCache(PrincipalName princ,
--- a/src/java.security.jgss/share/classes/sun/security/krb5/EncryptedData.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/EncryptedData.java	Mon Aug 03 16:33:06 2015 -0700
@@ -259,20 +259,20 @@
     /**
      * Returns an ASN.1 encoded EncryptedData type.
      *
-     * <xmp>
+     * <pre>{@code
      * EncryptedData   ::= SEQUENCE {
      *     etype   [0] Int32 -- EncryptionType --,
      *     kvno    [1] UInt32 OPTIONAL,
      *     cipher  [2] OCTET STRING -- ciphertext
      * }
-     * </xmp>
+     * }</pre>
      *
      * <p>
      * This definition reflects the Network Working Group RFC 4120
      * specification available at
      * <a href="http://www.ietf.org/rfc/rfc4120.txt">
      * http://www.ietf.org/rfc/rfc4120.txt</a>.
-     * <p>
+     *
      * @return byte array of encoded EncryptedData object.
      * @exception Asn1Exception if an error occurs while decoding an
      * ASN1 encoded data.
--- a/src/java.security.jgss/share/classes/sun/security/krb5/EncryptionKey.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/EncryptionKey.java	Mon Aug 03 16:33:06 2015 -0700
@@ -101,11 +101,11 @@
      * Obtains all versions of the secret key of the principal from a
      * keytab.
      *
-     * @Param princ the principal whose secret key is desired
+     * @param princ the principal whose secret key is desired
      * @param keytab the path to the keytab file. A value of null
      * will be accepted to indicate that the default path should be
      * searched.
-     * @returns an array of secret keys or null if none were found.
+     * @return an array of secret keys or null if none were found.
      */
     public static EncryptionKey[] acquireSecretKeys(PrincipalName princ,
                                                     String keytab) {
@@ -127,7 +127,7 @@
      * @param password NOT null
      * @param etype
      * @param snp can be NULL
-     * @returns never null
+     * @return never null
      */
     public static EncryptionKey acquireSecretKey(PrincipalName cname,
             char[] password, int etype, PAData.SaltAndParams snp)
@@ -150,7 +150,7 @@
      * @param salt NOT null
      * @param etype
      * @param s2kparams can be NULL
-     * @returns never null
+     * @return never null
      */
     public static EncryptionKey acquireSecretKey(char[] password,
             String salt, int etype, byte[] s2kparams)
@@ -388,11 +388,11 @@
     /**
      * Returns the ASN.1 encoding of this EncryptionKey.
      *
-     * <xmp>
+     * <pre>{@code
      * EncryptionKey ::=   SEQUENCE {
      *                             keytype[0]    INTEGER,
      *                             keyvalue[1]   OCTET STRING }
-     * </xmp>
+     * }</pre>
      *
      * <p>
      * This definition reflects the Network Working Group RFC 4120
--- a/src/java.security.jgss/share/classes/sun/security/krb5/KrbAsReqBuilder.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/KrbAsReqBuilder.java	Mon Aug 03 16:33:06 2015 -0700
@@ -110,7 +110,7 @@
      * realm, where default realm will be used. This realm will be the target
      * realm for AS-REQ. I believe a client should only get initial TGT from
      * its own realm.
-     * @param keys must not be null. if empty, might be quite useless.
+     * @param ktab must not be null. If empty, might be quite useless.
      * This argument will neither be modified nor stored by the method.
      * @throws KrbException
      */
--- a/src/java.security.jgss/share/classes/sun/security/krb5/KrbCred.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/KrbCred.java	Mon Aug 03 16:33:06 2015 -0700
@@ -34,8 +34,6 @@
 import sun.security.krb5.internal.*;
 import sun.security.krb5.internal.crypto.KeyUsage;
 import java.io.IOException;
-import java.net.InetAddress;
-import java.net.UnknownHostException;
 
 import sun.security.util.DerValue;
 
@@ -65,7 +63,6 @@
 
         PrincipalName client = tgt.getClient();
         PrincipalName tgService = tgt.getServer();
-        PrincipalName server = serviceTicket.getServer();
         if (!serviceTicket.getClient().equals(client))
             throw new KrbException(Krb5.KRB_ERR_GENERIC,
                                 "Client principal does not match");
@@ -78,28 +75,10 @@
         options.set(KDCOptions.FORWARDED, true);
         options.set(KDCOptions.FORWARDABLE, true);
 
-        HostAddresses sAddrs = null;
-
-        // GSSName.NT_HOSTBASED_SERVICE should display with KRB_NT_SRV_HST
-        if (server.getNameType() == PrincipalName.KRB_NT_SRV_HST) {
-            sAddrs = new HostAddresses(server);
-        } else if (server.getNameType() == PrincipalName.KRB_NT_UNKNOWN) {
-            // Sometimes this is also a server
-            if (server.getNameStrings().length >= 2) {
-                String host = server.getNameStrings()[1];
-                try {
-                    InetAddress[] addr = InetAddress.getAllByName(host);
-                    if (addr != null && addr.length > 0) {
-                        sAddrs = new HostAddresses(addr);
-                    }
-                } catch (UnknownHostException ioe) {
-                    // maybe we guessed wrong, let sAddrs be null
-                }
-            }
-        }
-
         KrbTgsReq tgsReq = new KrbTgsReq(options, tgt, tgService,
-                                         null, null, null, null, sAddrs, null, null, null);
+                null, null, null, null,
+                null,   // No easy way to get addresses right
+                null, null, null);
         credMessg = createMessage(tgsReq.sendAndGetCreds(), key);
 
         obuf = credMessg.asn1Encode();
@@ -111,7 +90,6 @@
         EncryptionKey sessionKey
             = delegatedCreds.getSessionKey();
         PrincipalName princ = delegatedCreds.getClient();
-        Realm realm = princ.getRealm();
         PrincipalName tgService = delegatedCreds.getServer();
 
         KrbCredInfo credInfo = new KrbCredInfo(sessionKey,
--- a/src/java.security.jgss/share/classes/sun/security/krb5/PrincipalName.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/PrincipalName.java	Mon Aug 03 16:33:06 2015 -0700
@@ -45,14 +45,14 @@
 
 /**
  * Implements the ASN.1 PrincipalName type and its realm in a single class.
- * <xmp>
+ * <pre>{@code
  *    Realm           ::= KerberosString
  *
  *    PrincipalName   ::= SEQUENCE {
  *            name-type       [0] Int32,
  *            name-string     [1] SEQUENCE OF KerberosString
  *    }
- * </xmp>
+ * }</pre>
  * This class is immutable.
  * @see Realm
  */
@@ -211,14 +211,14 @@
 
     /**
      * Returns the ASN.1 encoding of the
-     * <xmp>
+     * <pre>{@code
      * PrincipalName    ::= SEQUENCE {
      *          name-type       [0] Int32,
      *          name-string     [1] SEQUENCE OF KerberosString
      * }
      *
      * KerberosString   ::= GeneralString (IA5String)
-     * </xmp>
+     * }</pre>
      *
      * <p>
      * This definition reflects the Network Working Group RFC 4120
@@ -638,7 +638,8 @@
      * name, the second component is returned.
      * Null is returned if there are not two or more
      * components in the name.
-     * @returns instance component of a multi-component name.
+     *
+     * @return instance component of a multi-component name.
      */
     public String getInstanceComponent()
     {
--- a/src/java.security.jgss/share/classes/sun/security/krb5/Realm.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/Realm.java	Mon Aug 03 16:33:06 2015 -0700
@@ -41,9 +41,8 @@
 /**
  * Implements the ASN.1 Realm type.
  *
- * <xmp>
- * Realm ::= GeneralString
- * </xmp>
+ * {@code Realm ::= GeneralString}
+ *
  * This class is immutable.
  */
 public class Realm implements Cloneable {
@@ -244,8 +243,8 @@
      *
      * @param cRealm the initiating realm, not null
      * @param sRealm the target realm, not null, not equals to cRealm
-     * @returns array of realms including at least cRealm as the first
-     *          element
+     * @return array of realms including at least cRealm as the first
+     *         element
      */
     public static String[] getRealmsList(String cRealm, String sRealm) {
         try {
--- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/APOptions.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/APOptions.java	Mon Aug 03 16:33:06 2015 -0700
@@ -38,17 +38,17 @@
 /**
  * Implements the ASN.1 APOptions type.
  *
- * <xmp>
+ * <pre>{@code
  * APOptions    ::= KerberosFlags
  *      -- reserved(0),
  *      -- use-session-key(1),
  *      -- mutual-required(2)
- * </xmp>
  *
  * KerberosFlags   ::= BIT STRING (SIZE (32..MAX))
  *              -- minimum number of bits shall be sent,
  *              -- but no fewer than 32
  *
+ * }</pre>
  * <p>
  * This definition reflects the Network Working Group RFC4120
  * specification available at
--- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/APRep.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/APRep.java	Mon Aug 03 16:33:06 2015 -0700
@@ -39,13 +39,13 @@
 /**
  * Implements the ASN.1 AP-REP type.
  *
- * <xmp>
+ * <pre>{@code
  * AP-REP          ::= [APPLICATION 15] SEQUENCE {
  *         pvno            [0] INTEGER (5),
  *         msg-type        [1] INTEGER (15),
  *         enc-part        [2] EncryptedData -- EncAPRepPart
  * }
- * </xmp>
+ * }</pre>
  *
  * <p>
  * This definition reflects the Network Working Group RFC 4120
--- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/APReq.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/APReq.java	Mon Aug 03 16:33:06 2015 -0700
@@ -38,7 +38,7 @@
 /**
  * Implements the ASN.1 AP-REQ type.
  *
- * <xmp>
+ * <pre>{@code
  * AP-REQ               ::= [APPLICATION 14] SEQUENCE {
  *      pvno            [0] INTEGER (5),
  *      msg-type        [1] INTEGER (14),
@@ -46,7 +46,7 @@
  *      ticket          [3] Ticket,
  *      authenticator   [4] EncryptedData -- Authenticator
  * }
- * </xmp>
+ * }</pre>
  *
  * <p>
  * This definition reflects the Network Working Group RFC 4120
--- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/Authenticator.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/Authenticator.java	Mon Aug 03 16:33:06 2015 -0700
@@ -38,7 +38,7 @@
 /**
  * Implements the ASN.1 Authenticator type.
  *
- * <xmp>
+ * <pre>{@code
  * Authenticator   ::= [APPLICATION 2] SEQUENCE  {
  *         authenticator-vno       [0] INTEGER (5),
  *         crealm                  [1] Realm,
@@ -50,7 +50,7 @@
  *         seq-number              [7] UInt32 OPTIONAL,
  *         authorization-data      [8] AuthorizationData OPTIONAL
  * }
- * </xmp>
+ * }</pre>
  *
  * <p>
  * This definition reflects the Network Working Group RFC 4120
--- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/EncAPRepPart.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/EncAPRepPart.java	Mon Aug 03 16:33:06 2015 -0700
@@ -39,14 +39,14 @@
 /**
  * Implements the ASN.1 EncAPRepPart type.
  *
- * <xmp>
+ * <pre>{@code
  * EncAPRepPart ::= [APPLICATION 27] SEQUENCE {
  *      ctime           [0] KerberosTime,
  *      cusec           [1] Microseconds,
  *      subkey          [2] EncryptionKey OPTIONAL,
  *      seq-number      [3] UInt32 OPTIONAL
  * }
- * </xmp>
+ * }</pre>
  *
  * <p>
  * This definition reflects the Network Working Group RFC 4120
--- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/EncKDCRepPart.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/EncKDCRepPart.java	Mon Aug 03 16:33:06 2015 -0700
@@ -40,7 +40,7 @@
 /**
  * Implements the ASN.1 EncKDCRepPart type.
  *
- * <xmp>
+ * <pre>{@code
  * EncKDCRepPart        ::= SEQUENCE {
  *      key             [0] EncryptionKey,
  *      last-req        [1] LastReq,
@@ -55,7 +55,7 @@
  *      sname           [10] PrincipalName,
  *      caddr           [11] HostAddresses OPTIONAL
  * }
- * </xmp>
+ * }</pre>
  *
  * <p>
  * This definition reflects the Network Working Group RFC 4120
--- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/EncKrbCredPart.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/EncKrbCredPart.java	Mon Aug 03 16:33:06 2015 -0700
@@ -40,7 +40,7 @@
 /**
  * Implements the ASN.1 EncKrbCredPart type.
  *
- * <xmp>
+ * <pre>{@code
  * EncKrbCredPart  ::= [APPLICATION 29] SEQUENCE {
  *         ticket-info     [0] SEQUENCE OF KrbCredInfo,
  *         nonce           [1] UInt32 OPTIONAL,
@@ -49,7 +49,7 @@
  *         s-address       [4] HostAddress OPTIONAL,
  *         r-address       [5] HostAddress OPTIONAL
  *   }
- * </xmp>
+ * }</pre>
  *
  * <p>
  * This definition reflects the Network Working Group RFC 4120
--- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/EncKrbPrivPart.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/EncKrbPrivPart.java	Mon Aug 03 16:33:06 2015 -0700
@@ -38,7 +38,7 @@
 /**
  * Implements the ASN.1 EncKrbPrivPart type.
  *
- * <xmp>
+ * <pre>{@code
  * EncKrbPrivPart  ::= [APPLICATION 28] SEQUENCE {
  *         user-data       [0] OCTET STRING,
  *         timestamp       [1] KerberosTime OPTIONAL,
@@ -47,7 +47,7 @@
  *         s-address       [4] HostAddress -- sender's addr --,
  *         r-address       [5] HostAddress OPTIONAL -- recip's addr
  * }
- * </xmp>
+ * }</pre>
  *
  * <p>
  * This definition reflects the Network Working Group RFC 4120
--- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/EncTicketPart.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/EncTicketPart.java	Mon Aug 03 16:33:06 2015 -0700
@@ -39,7 +39,7 @@
 /**
  * Implements the ASN.1 EncTicketPart type.
  *
- * <xmp>
+ * <pre>{@code
  * EncTicketPart   ::= [APPLICATION 3] SEQUENCE {
  *         flags                   [0] TicketFlags,
  *         key                     [1] EncryptionKey,
@@ -53,7 +53,7 @@
  *         caddr                   [9] HostAddresses OPTIONAL,
  *         authorization-data      [10] AuthorizationData OPTIONAL
  * }
- * </xmp>
+ * }</pre>
  *
  * <p>
  * This definition reflects the Network Working Group RFC 4120
--- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/HostAddress.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/HostAddress.java	Mon Aug 03 16:33:06 2015 -0700
@@ -39,16 +39,17 @@
 import java.net.Inet6Address;
 import java.net.UnknownHostException;
 import java.io.IOException;
+import java.util.Arrays;
 
 /**
  * Implements the ASN.1 HostAddress type.
  *
- * <xmp>
+ * <pre>{@code
  * HostAddress     ::= SEQUENCE  {
  *         addr-type       [0] Int32,
  *         address         [1] OCTET STRING
  * }
- * </xmp>
+ * }</pre>
  *
  * <p>
  * This definition reflects the Network Working Group RFC 4120
@@ -131,7 +132,7 @@
     /**
      * Gets the InetAddress of this HostAddress.
      * @return the IP address for this specified host.
-     * @exception if no IP address for the host could be found.
+     * @exception UnknownHostException if no IP address for the host could be found.
      *
      */
     public InetAddress getInetAddress() throws UnknownHostException {
@@ -295,4 +296,11 @@
         }
     }
 
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(Arrays.toString(address));
+        sb.append('(').append(addrType).append(')');
+        return sb.toString();
+    }
 }
--- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/HostAddresses.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/HostAddresses.java	Mon Aug 03 16:33:06 2015 -0700
@@ -45,7 +45,7 @@
 /**
  * Implements the ASN.1 HostAddresses type.
  *
- * <xmp>
+ * <pre>{@code
  * HostAddresses   -- NOTE: subtly different from rfc1510,
  *                 -- but has a value mapping and encodes the same
  *         ::= SEQUENCE OF HostAddress
@@ -54,7 +54,7 @@
  *         addr-type       [0] Int32,
  *         address         [1] OCTET STRING
  * }
- * </xmp>
+ * }</pre>
  *
  * <p>
  * This definition reflects the Network Working Group RFC 4120
@@ -338,4 +338,9 @@
         for (int i = 0; i < inetAddresses.length; i++)
             addresses[i] = new HostAddress(inetAddresses[i]);
     }
+
+    @Override
+    public String toString() {
+        return Arrays.toString(addresses);
+    }
 }
--- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/KDCOptions.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/KDCOptions.java	Mon Aug 03 16:33:06 2015 -0700
@@ -40,7 +40,7 @@
 /**
  * Implements the ASN.1 KDCOptions type.
  *
- * <xmp>
+ * <pre>{@code
  * KDCOptions   ::= KerberosFlags
  *      -- reserved(0),
  *      -- forwardable(1),
@@ -69,7 +69,7 @@
  *                      -- minimum number of bits shall be sent,
  *                      -- but no fewer than 32
  *
- * </xmp>
+ * }</pre>
  *
  * <p>
  * This definition reflects the Network Working Group RFC 4120
@@ -115,7 +115,7 @@
  * in the addresses field of the request.
  * <li>FORWARDED, PROXY, ENC_TKT_IN_SKEY, RENEW, VALIDATE are used only in
  * subsequent requests.
- * </ol><p>
+ * </ol>
  */
 
 public class KDCOptions extends KerberosFlags {
--- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/KDCRep.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/KDCRep.java	Mon Aug 03 16:33:06 2015 -0700
@@ -38,7 +38,7 @@
 /**
  * Implements the ASN.1 KDC-REP type.
  *
- * <xmp>
+ * <pre>{@code
  * KDC-REP         ::= SEQUENCE {
  *         pvno            [0] INTEGER (5),
  *         msg-type        [1] INTEGER (11 -- AS -- | 13 -- TGS --),
@@ -51,7 +51,7 @@
  *                                   -- EncASRepPart or EncTGSRepPart,
  *                                   -- as appropriate
  * }
- * </xmp>
+ * }</pre>
  *
  * <p>
  * This definition reflects the Network Working Group RFC 4120
--- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/KDCReq.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/KDCReq.java	Mon Aug 03 16:33:06 2015 -0700
@@ -39,7 +39,7 @@
 /**
  * Implements the ASN.1 KRB_KDC_REQ type.
  *
- * <xmp>
+ * <pre>{@code
  * KDC-REQ              ::= SEQUENCE {
  *      -- NOTE: first tag is [1], not [0]
  *      pvno            [1] INTEGER (5) ,
@@ -48,7 +48,7 @@
  *                            -- NOTE: not empty --,
  *      req-body        [4] KDC-REQ-BODY
  * }
- * </xmp>
+ * }</pre>
  *
  * <p>
  * This definition reflects the Network Working Group RFC 4120
@@ -95,7 +95,7 @@
      * @param req_type a encoded asn1 type value.
      * @exception Asn1Exception if an error occurs while decoding an ASN1 encoded data.
      * @exception IOException if an I/O error occurs while reading encoded data.
-     * @exceptoin KrbErrException
+     * @exception KrbErrException
      */
     public KDCReq(DerValue der, int req_type) throws Asn1Exception,
             IOException, KrbException {
--- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/KDCReqBody.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/KDCReqBody.java	Mon Aug 03 16:33:06 2015 -0700
@@ -39,7 +39,7 @@
 /**
  * Implements the ASN.1 KDC-REQ-BODY type.
  *
- * <xmp>
+ * <pre>{@code
  * KDC-REQ-BODY ::= SEQUENCE {
  *      kdc-options             [0] KDCOptions,
  *      cname                   [1] PrincipalName OPTIONAL
@@ -60,7 +60,7 @@
  *      additional-tickets      [11] SEQUENCE OF Ticket OPTIONAL
  *                                       -- NOTE: not empty
  * }
- * </xmp>
+ * }</pre>
  *
  * <p>
  * This definition reflects the Network Working Group RFC 4120
--- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/KRBCred.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/KRBCred.java	Mon Aug 03 16:33:06 2015 -0700
@@ -41,14 +41,14 @@
 /**
  * Implements the ASN.1 Authenticator type.
  *
- * <xmp>
+ * <pre>{@code
  * KRB-CRED     ::= [APPLICATION 22] SEQUENCE {
  *      pvno            [0] INTEGER (5),
  *      msg-type        [1] INTEGER (22),
  *      tickets         [2] SEQUENCE OF Ticket,
  *      enc-part        [3] EncryptedData -- EncKrbCredPart
  * }
- * </xmp>
+ * }</pre>
  *
  * <p>
  * This definition reflects the Network Working Group RFC 4120
--- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/KRBError.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/KRBError.java	Mon Aug 03 16:33:06 2015 -0700
@@ -48,7 +48,7 @@
 /**
  * Implements the ASN.1 KRBError type.
  *
- * <xmp>
+ * <pre>{@code
  * KRB-ERROR       ::= [APPLICATION 30] SEQUENCE {
  *         pvno            [0] INTEGER (5),
  *         msg-type        [1] INTEGER (30),
@@ -71,7 +71,7 @@
  *         data-type       [0] Int32,
  *         data-value      [1] OCTET STRING OPTIONAL
  * }
- * </xmp>
+ * }</pre>
  *
  * <p>
  * This definition reflects the Network Working Group RFC 4120
--- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/KRBPriv.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/KRBPriv.java	Mon Aug 03 16:33:06 2015 -0700
@@ -39,14 +39,14 @@
 /**
  * Implements the ASN.1 KRB-PRIV type.
  *
- * <xmp>
+ * <pre>{@code
  * KRB-PRIV        ::= [APPLICATION 21] SEQUENCE {
  *         pvno            [0] INTEGER (5),
  *         msg-type        [1] INTEGER (21),
  *                           -- NOTE: there is no [2] tag
  *         enc-part        [3] EncryptedData -- EncKrbPrivPart
  * }
- * </xmp>
+ * }</pre>
  *
  * <p>
  * This definition reflects the Network Working Group RFC 4120
--- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/KRBSafe.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/KRBSafe.java	Mon Aug 03 16:33:06 2015 -0700
@@ -40,14 +40,14 @@
 /**
  * Implements the ASN.1 KRBSafe type.
  *
- * <xmp>
+ * <pre>{@code
  * KRB-SAFE        ::= [APPLICATION 20] SEQUENCE {
  *         pvno            [0] INTEGER (5),
  *         msg-type        [1] INTEGER (20),
  *         safe-body       [2] KRB-SAFE-BODY,
  *         cksum           [3] Checksum
  * }
- * </xmp>
+ * }</pre>
  *
  * <p>
  * This definition reflects the Network Working Group RFC 4120
--- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/KRBSafeBody.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/KRBSafeBody.java	Mon Aug 03 16:33:06 2015 -0700
@@ -39,7 +39,7 @@
 /**
  * Implements the ASN.1 KRBSafeBody type.
  *
- * <xmp>
+ * <pre>{@code
  * KRB-SAFE-BODY   ::= SEQUENCE {
  *         user-data       [0] OCTET STRING,
  *         timestamp       [1] KerberosTime OPTIONAL,
@@ -48,7 +48,7 @@
  *         s-address       [4] HostAddress,
  *         r-address       [5] HostAddress OPTIONAL
  * }
- * </xmp>
+ * }</pre>
  *
  * <p>
  * This definition reflects the Network Working Group RFC 4120
--- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/KerberosTime.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/KerberosTime.java	Mon Aug 03 16:33:06 2015 -0700
@@ -46,9 +46,7 @@
 /**
  * Implements the ASN.1 KerberosTime type. This is an immutable class.
  *
- * <xmp>
- * KerberosTime    ::= GeneralizedTime -- with no fractional seconds
- * </xmp>
+ * {@code KerberosTime ::= GeneralizedTime} -- with no fractional seconds
  *
  * The timestamps used in Kerberos are encoded as GeneralizedTimes. A
  * KerberosTime value shall not include any fractional portions of the
--- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/KrbCredInfo.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/KrbCredInfo.java	Mon Aug 03 16:33:06 2015 -0700
@@ -38,7 +38,7 @@
 /**
  * Implements the ASN.1 KrbCredInfo type.
  *
- * <xmp>
+ * <pre>{@code
  * KrbCredInfo  ::= SEQUENCE {
  *      key             [0] EncryptionKey,
  *      prealm          [1] Realm OPTIONAL,
@@ -52,7 +52,7 @@
  *      sname           [9] PrincipalName OPTIONAL,
  *      caddr           [10] HostAddresses OPTIONAL
  * }
- * </xmp>
+ * }</pre>
  *
  * <p>
  * This definition reflects the Network Working Group RFC 4120
--- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/LastReq.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/LastReq.java	Mon Aug 03 16:33:06 2015 -0700
@@ -38,12 +38,12 @@
 /**
  * Implements the ASN.1 LastReq type.
  *
- * <xmp>
+ * <pre>{@code
  * LastReq         ::=     SEQUENCE OF SEQUENCE {
  *         lr-type         [0] Int32,
  *         lr-value        [1] KerberosTime
  * }
- * </xmp>
+ * }</pre>
  *
  * <p>
  * This definition reflects the Network Working Group RFC 4120
--- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/LoginOptions.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/LoginOptions.java	Mon Aug 03 16:33:06 2015 -0700
@@ -36,7 +36,7 @@
 /**
  * Implements the ASN.1 KDCOptions type.
  *
- * <xmp>
+ * <pre>{@code
  * KDCOptions   ::= KerberosFlags
  *      -- reserved(0),
  *      -- forwardable(1),
@@ -64,7 +64,7 @@
  * KerberosFlags ::= BIT STRING (SIZE (32..MAX))
  *                   -- minimum number of bits shall be sent,
  *                   -- but no fewer than 32
- * </xmp>
+ * }</pre>
  *
  * <p>
  * This definition reflects the Network Working Group RFC 4120
--- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/MethodData.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/MethodData.java	Mon Aug 03 16:33:06 2015 -0700
@@ -38,12 +38,12 @@
 /**
  * Implements the ASN.1 EncKrbPrivPart type.
  *
- * <xmp>
+ * <pre>{@code
  *     METHOD-DATA ::=    SEQUENCE {
  *                        method-type[0]   INTEGER,
  *                        method-data[1]   OCTET STRING OPTIONAL
  *  }
- * </xmp>
+ * }</pre>
  */
 public class MethodData {
     private int methodType;
--- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/PAData.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/PAData.java	Mon Aug 03 16:33:06 2015 -0700
@@ -39,13 +39,13 @@
 /**
  * Implements the ASN.1 PA-DATA type.
  *
- * <xmp>
+ * <pre>{@code
  * PA-DATA         ::= SEQUENCE {
  *         -- NOTE: first tag is [1], not [0]
  *         padata-type     [1] Int32,
  *         padata-value    [2] OCTET STRING -- might be encoded AP-REQ
  * }
- * </xmp>
+ * }</pre>
  *
  * <p>
  * This definition reflects the Network Working Group RFC 4120
@@ -140,11 +140,14 @@
 
     /**
      * Gets the preferred etype from the PAData array.
-     * 1. ETYPE-INFO2-ENTRY with unknown s2kparams ignored
-     * 2. ETYPE-INFO2 preferred to ETYPE-INFO
-     * 3. multiple entries for same etype in one PA-DATA, use the first one.
-     * 4. Multiple PA-DATA with same type, choose the last one
+     * <ol>
+     * <li>ETYPE-INFO2-ENTRY with unknown s2kparams ignored</li>
+     * <li>ETYPE-INFO2 preferred to ETYPE-INFO</li>
+     * <li>Multiple entries for same etype in one PA-DATA, use the first one.</li>
+     * <li>Multiple PA-DATA with same type, choose the last one.</li>
+     * </ol>
      * (This is useful when PA-DATAs from KRB-ERROR and AS-REP are combined).
+     *
      * @return the etype, or defaultEType if not enough info
      * @throws Asn1Exception|IOException if there is an encoding error
      */
--- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/PAEncTSEnc.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/PAEncTSEnc.java	Mon Aug 03 16:33:06 2015 -0700
@@ -38,12 +38,12 @@
 /**
  * Implements the ASN.1 PAEncTSEnc type.
  *
- * <xmp>
+ * <pre>{@code
  * PA-ENC-TS-ENC                ::= SEQUENCE {
  *      patimestamp     [0] KerberosTime -- client's time --,
  *      pausec          [1] Microseconds OPTIONAL
  * }
- * </xmp>
+ * }</pre>
  *
  * <p>
  * This definition reflects the Network Working Group RFC 4120
--- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/PAForUserEnc.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/PAForUserEnc.java	Mon Aug 03 16:33:06 2015 -0700
@@ -36,7 +36,7 @@
 /**
  * Implements the ASN.1 PA-FOR-USER type.
  *
- * <xmp>
+ * <pre>{@code
  * padata-type  ::= PA-FOR-USER
  *                  -- value 129
  * padata-value ::= EncryptedData
@@ -47,7 +47,7 @@
  *     cksum[2] Checksum,
  *     auth-package[3] KerberosString
  * }
- * </xmp>
+ * }</pre>
  *
  * <p>
  * This definition reflects MS-SFU.
--- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/Ticket.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/Ticket.java	Mon Aug 03 16:33:06 2015 -0700
@@ -42,14 +42,14 @@
 /**
  * Implements the ASN.1 Ticket type.
  *
- * <xmp>
+ * <pre>{@code
  * Ticket               ::= [APPLICATION 1] SEQUENCE {
  *      tkt-vno         [0] INTEGER (5),
  *      realm           [1] Realm,
  *      sname           [2] PrincipalName,
  *      enc-part        [3] EncryptedData -- EncTicketPart
  * }
- * </xmp>
+ * }</pre>
  *
  * <p>
  * This definition reflects the Network Working Group RFC 4120
--- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/TransitedEncoding.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/TransitedEncoding.java	Mon Aug 03 16:33:06 2015 -0700
@@ -38,12 +38,12 @@
 /**
  * Implements the ASN.1 TransitedEncoding type.
  *
- * <xmp>
+ * <pre>{@code
  *  TransitedEncoding      ::= SEQUENCE {
  *         tr-type         [0] Int32 -- must be registered --,
  *         contents        [1] OCTET STRING
  *  }
- * </xmp>
+ * }</pre>
  *
  * <p>
  * This definition reflects the Network Working Group RFC 4120
--- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/crypto/Des.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/crypto/Des.java	Mon Aug 03 16:33:06 2015 -0700
@@ -226,7 +226,7 @@
 
     /**
      * Generates DES key from the password.
-     * @param password a char[] used to create the key.
+     * @param passwdChars a char[] used to create the key.
      * @return DES key.
      *
      * @modified by Yanni Zhang, Dec 6, 99
--- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/crypto/DesMacCksumType.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/crypto/DesMacCksumType.java	Mon Aug 03 16:33:06 2015 -0700
@@ -125,7 +125,7 @@
      * @param data the data.
      * @param size the length of data.
      * @param key the key used to encrypt the checksum.
-     * @param checksum
+     * @param checksum the checksum.
      * @return true if verification is successful.
      *
      * @modified by Yanni Zhang, 12/08/99.
--- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/crypto/HmacMd5ArcFourCksumType.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/crypto/HmacMd5ArcFourCksumType.java	Mon Aug 03 16:33:06 2015 -0700
@@ -95,7 +95,7 @@
      * @param data the data.
      * @param size the length of data.
      * @param key the key used to encrypt the checksum.
-     * @param checksum
+     * @param checksum the checksum.
      * @return true if verification is successful.
      */
     public boolean verifyKeyedChecksum(byte[] data, int size,
--- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/crypto/HmacSha1Aes128CksumType.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/crypto/HmacSha1Aes128CksumType.java	Mon Aug 03 16:33:06 2015 -0700
@@ -95,7 +95,7 @@
      * @param data the data.
      * @param size the length of data.
      * @param key the key used to encrypt the checksum.
-     * @param checksum
+     * @param checksum the checksum.
      * @return true if verification is successful.
      */
     public boolean verifyKeyedChecksum(byte[] data, int size,
--- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/crypto/HmacSha1Aes256CksumType.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/crypto/HmacSha1Aes256CksumType.java	Mon Aug 03 16:33:06 2015 -0700
@@ -95,7 +95,7 @@
      * @param data the data.
      * @param size the length of data.
      * @param key the key used to encrypt the checksum.
-     * @param checksum
+     * @param checksum the checksum.
      * @return true if verification is successful.
      */
     public boolean verifyKeyedChecksum(byte[] data, int size,
--- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/crypto/HmacSha1Des3KdCksumType.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/crypto/HmacSha1Des3KdCksumType.java	Mon Aug 03 16:33:06 2015 -0700
@@ -89,7 +89,7 @@
      * @param data the data.
      * @param size the length of data.
      * @param key the key used to encrypt the checksum.
-     * @param checksum
+     * @param checksum the checksum.
      * @return true if verification is successful.
      */
     public boolean verifyKeyedChecksum(byte[] data, int size,
--- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/crypto/RsaMd5DesCksumType.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/crypto/RsaMd5DesCksumType.java	Mon Aug 03 16:33:06 2015 -0700
@@ -120,7 +120,7 @@
      * @param data the data.
      * @param size the length of data.
      * @param key the key used to encrypt the checksum.
-     * @param checksum
+     * @param checksum the checksum.
      * @return true if verification is successful.
      *
      * @modified by Yanni Zhang, 12/08/99.
--- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/ktab/KeyTab.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/ktab/KeyTab.java	Mon Aug 03 16:33:06 2015 -0700
@@ -513,7 +513,7 @@
     /**
      * Creates key table file version.
      * @param file the key table file.
-     * @exception IOException.
+     * @exception IOException
      */
     public synchronized void createVersion(File file) throws IOException {
         try (KeyTabOutputStream kos =
--- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/rcache/AuthList.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/rcache/AuthList.java	Mon Aug 03 16:33:06 2015 -0700
@@ -45,7 +45,7 @@
  * self-cleanup of expired items in the cache.
  *
  * AuthTimeWithHash objects inside a cache are always sorted from big (new) to
- * small (old) as determined by {@see AuthTimeWithHash#compareTo}. In the most
+ * small (old) as determined by {@link AuthTimeWithHash#compareTo}. In the most
  * common case a newcomer should be newer than the first element.
  *
  * @author Yanni Zhang
--- a/src/java.security.jgss/windows/classes/sun/security/krb5/internal/tools/Kinit.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/windows/classes/sun/security/krb5/internal/tools/Kinit.java	Mon Aug 03 16:33:06 2015 -0700
@@ -59,26 +59,25 @@
      * We currently support only file-based credentials cache to
      * store the tickets obtained from the KDC.
      * By default, for all Unix platforms a cache file named
-     * /tmp/krb5cc_&lt;uid&gt will be generated. The &lt;uid&gt is the
+     * {@code /tmp/krb5cc_<uid>} will be generated. The {@code <uid>} is the
      * numeric user identifier.
      * For all other platforms, a cache file named
-     * &lt;USER_HOME&gt/krb5cc_&lt;USER_NAME&gt would be generated.
+     * {@code <USER_HOME>/krb5cc_<USER_NAME>} would be generated.
      * <p>
-     * &lt;USER_HOME&gt is obtained from <code>java.lang.System</code>
+     * {@code <USER_HOME>} is obtained from {@code java.lang.System}
      * property <i>user.home</i>.
-     * &lt;USER_NAME&gt is obtained from <code>java.lang.System</code>
+     * {@code <USER_NAME>} is obtained from {@code java.lang.System}
      * property <i>user.name</i>.
-     * If &lt;USER_HOME&gt is null the cache file would be stored in
+     * If {@code <USER_HOME>} is null the cache file would be stored in
      * the current directory that the program is running from.
-     * &lt;USER_NAME&gt is operating system's login username.
+     * {@code <USER_NAME>} is operating system's login username.
      * It could be different from user's principal name.
-     *</p>
-     *<p>
+     * <p>
      * For instance, on Windows NT, it could be
-     * c:\winnt\profiles\duke\krb5cc_duke, in
-     * which duke is the &lt;USER_NAME&gt, and c:\winnt\profile\duke is the
-     * &lt;USER_HOME&gt.
-     *<p>
+     * {@code c:\winnt\profiles\duke\krb5cc_duke}, in
+     * which duke is the {@code <USER_NAME>} and {@code c:\winnt\profile\duke} is the
+     * {@code <USER_HOME>}.
+     * <p>
      * A single user could have multiple principal names,
      * but the primary principal of the credentials cache could only be one,
      * which means one cache file could only store tickets for one
@@ -88,10 +87,8 @@
      * To avoid overwriting, you need to specify
      * a different cache file name when you request a
      * new ticket.
-     *</p>
-     *<p>
+     * <p>
      * You can specify the location of the cache file by using the -c option
-     *
      */
 
     public static void main(String[] args) {
--- a/src/java.security.jgss/windows/classes/sun/security/krb5/internal/tools/Klist.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.jgss/windows/classes/sun/security/krb5/internal/tools/Klist.java	Mon Aug 03 16:33:06 2015 -0700
@@ -69,8 +69,10 @@
      * <li><b>-n</b>  do not reverse-resolve addresses
      * </ul>
      * available options for keytabs:
+     * <ul>
      * <li><b>-t</b> shows keytab entry timestamps
      * <li><b>-K</b> shows keytab entry DES keys
+     * </ul>
      */
     public static void main(String[] args) {
         Klist klist = new Klist();
--- a/src/java.security.sasl/share/classes/com/sun/security/sasl/digest/FactoryImpl.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.sasl/share/classes/com/sun/security/sasl/digest/FactoryImpl.java	Mon Aug 03 16:33:06 2015 -0700
@@ -60,7 +60,7 @@
      *
      * @throws SaslException If there is an error creating the DigestMD5
      * SASL client.
-     * @returns a new SaslClient ; otherwise null if unsuccessful.
+     * @return a new SaslClient; otherwise null if unsuccessful.
      */
     public SaslClient createSaslClient(String[] mechs,
          String authorizationId, String protocol, String serverName,
@@ -90,7 +90,7 @@
      *
      * @throws SaslException If there is an error creating the DigestMD5
      * SASL server.
-     * @returns a new SaslServer ; otherwise null if unsuccessful.
+     * @return a new SaslServer; otherwise null if unsuccessful.
      */
     public SaslServer createSaslServer(String mech,
          String protocol, String serverName, Map<String,?> props, CallbackHandler cbh)
@@ -114,7 +114,7 @@
     /**
       * Returns the authentication mechanisms that this factory can produce.
       *
-      * @returns String[] {"DigestMD5"} if policies in env match those of this
+      * @return String[] {"DigestMD5"} if policies in env match those of this
       * factory.
       */
     public String[] getMechanismNames(Map<String,?> env) {
--- a/src/java.security.sasl/share/classes/com/sun/security/sasl/ntlm/FactoryImpl.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.security.sasl/share/classes/com/sun/security/sasl/ntlm/FactoryImpl.java	Mon Aug 03 16:33:06 2015 -0700
@@ -57,7 +57,7 @@
     /**
      * Returns a new instance of the NTLM SASL client mechanism.
      * Argument checks are performed in SaslClient's constructor.
-     * @returns a new SaslClient ; otherwise null if unsuccessful.
+     * @return a new SaslClient; otherwise null if unsuccessful.
      * @throws SaslException If there is an error creating the NTLM
      * SASL client.
      */
@@ -86,7 +86,7 @@
     /**
      * Returns a new instance of the NTLM SASL server mechanism.
      * Argument checks are performed in SaslServer's constructor.
-     * @returns a new SaslServer ; otherwise null if unsuccessful.
+     * @return a new SaslServer; otherwise null if unsuccessful.
      * @throws SaslException If there is an error creating the NTLM
      * SASL server.
      */
@@ -116,7 +116,7 @@
     /**
       * Returns the authentication mechanisms that this factory can produce.
       *
-      * @returns String[] {"NTLM"} if policies in env match those of this
+      * @return String[] {"NTLM"} if policies in env match those of this
       * factory.
       */
     public String[] getMechanismNames(Map<String,?> env) {
--- a/src/java.sql/share/classes/javax/sql/RowSet.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.sql/share/classes/javax/sql/RowSet.java	Mon Aug 03 16:33:06 2015 -0700
@@ -1477,7 +1477,7 @@
 
   /**
      * Sets the designated parameter to a <code>InputStream</code> object.
-     * The "{@code InputStream} must contain  the number
+     * The {@code InputStream} must contain  the number
      * of characters specified by length, otherwise a <code>SQLException</code> will be
      * generated when the <code>CallableStatement</code> is executed.
      * This method differs from the <code>setBinaryStream (int, InputStream, int)</code>
--- a/src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMCryptoBinary.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMCryptoBinary.java	Mon Aug 03 16:33:06 2015 -0700
@@ -41,12 +41,12 @@
  * as defined in the W3C specification for XML-Signature Syntax and Processing.
  * The XML Schema Definition is defined as:
  *
- * <xmp>
+ * <pre>{@code
  * <simpleType name="CryptoBinary">
  *   <restriction base = "base64Binary">
  *   </restriction>
  * </simpleType>
- * </xmp>
+ * }</pre>
  *
  * @author Sean Mullan
  */
--- a/src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMPGPData.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMPGPData.java	Mon Aug 03 16:33:06 2015 -0700
@@ -57,7 +57,7 @@
      * and optional list of external elements.
      *
      * @param keyPacket a PGP Key Material Packet as defined in section 5.5 of
-     *    <a href="http://www.ietf.org/rfc/rfc2440.txt"/>RFC 2440</a>. The
+     *    <a href="http://www.ietf.org/rfc/rfc2440.txt">RFC 2440</a>. The
      *    array is cloned to prevent subsequent modification.
      * @param other a list of {@link XMLStructure}s representing elements from
      *    an external namespace. The list is defensively copied to prevent
@@ -90,10 +90,10 @@
      * optional key packet and list of external elements.
      *
      * @param keyId a PGP public key id as defined in section 11.2 of
-     *    <a href="http://www.ietf.org/rfc/rfc2440.txt"/>RFC 2440</a>. The
+     *    <a href="http://www.ietf.org/rfc/rfc2440.txt">RFC 2440</a>. The
      *    array is cloned to prevent subsequent modification.
      * @param keyPacket a PGP Key Material Packet as defined in section 5.5 of
-     *    <a href="http://www.ietf.org/rfc/rfc2440.txt"/>RFC 2440</a> (may
+     *    <a href="http://www.ietf.org/rfc/rfc2440.txt">RFC 2440</a> (may
      *    be <code>null</code>). The array is cloned to prevent subsequent
      *    modification.
      * @param other a list of {@link XMLStructure}s representing elements from
--- a/src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMReference.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMReference.java	Mon Aug 03 16:33:06 2015 -0700
@@ -118,7 +118,6 @@
      *    is defensively copied to protect against subsequent modification.
      *    May be <code>null</code> or empty.
      * @param id the reference ID (may be <code>null</code>)
-     * @return a <code>Reference</code>
      * @throws NullPointerException if <code>dm</code> is <code>null</code>
      * @throws ClassCastException if any of the <code>transforms</code> are
      *    not of type <code>Transform</code>
--- a/src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMSignatureProperties.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMSignatureProperties.java	Mon Aug 03 16:33:06 2015 -0700
@@ -58,7 +58,6 @@
      * @param properties a list of one or more {@link SignatureProperty}s. The
      *    list is defensively copied to protect against subsequent modification.
      * @param id the Id (may be <code>null</code>)
-     * @return a <code>DOMSignatureProperties</code>
      * @throws ClassCastException if <code>properties</code> contains any
      *    entries that are not of type {@link SignatureProperty}
      * @throws IllegalArgumentException if <code>properties</code> is empty
--- a/src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMSignatureProperty.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMSignatureProperty.java	Mon Aug 03 16:33:06 2015 -0700
@@ -59,7 +59,6 @@
      *    is defensively copied to protect against subsequent modification.
      * @param target the target URI
      * @param id the Id (may be <code>null</code>)
-     * @return a <code>SignatureProperty</code>
      * @throws ClassCastException if <code>content</code> contains any
      *    entries that are not of type {@link XMLStructure}
      * @throws IllegalArgumentException if <code>content</code> is empty
--- a/src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMTransform.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMTransform.java	Mon Aug 03 16:33:06 2015 -0700
@@ -53,7 +53,7 @@
     protected TransformService spi;
 
     /**
-     * Creates a <code>DOMTransform</code>.
+     * Creates a {@code DOMTransform}.
      *
      * @param spi the TransformService
      */
@@ -62,7 +62,7 @@
     }
 
     /**
-     * Creates a <code>DOMTransform</code> from an element. This constructor
+     * Creates a {@code DOMTransform} from an element. This constructor
      * invokes the abstract {@link #unmarshalParams unmarshalParams} method to
      * unmarshal any algorithm-specific input parameters.
      *
@@ -138,12 +138,12 @@
      * Transforms the specified data using the underlying transform algorithm.
      *
      * @param data the data to be transformed
-     * @param sc the <code>XMLCryptoContext</code> containing
-     *    additional context (may be <code>null</code> if not applicable)
+     * @param xc the {@code XMLCryptoContext} containing
+     *     additional context (may be {@code null} if not applicable)
      * @return the transformed data
-     * @throws NullPointerException if <code>data</code> is <code>null</code>
+     * @throws NullPointerException if {@code data} is {@code null}
      * @throws XMLSignatureException if an unexpected error occurs while
-     *    executing the transform
+     *     executing the transform
      */
     public Data transform(Data data, XMLCryptoContext xc)
         throws TransformException
@@ -155,14 +155,14 @@
      * Transforms the specified data using the underlying transform algorithm.
      *
      * @param data the data to be transformed
-     * @param sc the <code>XMLCryptoContext</code> containing
-     *    additional context (may be <code>null</code> if not applicable)
-     * @param os the <code>OutputStream</code> that should be used to write
-     *    the transformed data to
+     * @param xc the {@code XMLCryptoContext} containing
+     *     additional context (may be {@code null} if not applicable)
+     * @param os the {@code OutputStream} that should be used to write
+     *     the transformed data to
      * @return the transformed data
-     * @throws NullPointerException if <code>data</code> is <code>null</code>
+     * @throws NullPointerException if {@code data} is {@code null}
      * @throws XMLSignatureException if an unexpected error occurs while
-     *    executing the transform
+     *     executing the transform
      */
     public Data transform(Data data, XMLCryptoContext xc, OutputStream os)
         throws TransformException
@@ -201,16 +201,16 @@
     /**
      * Transforms the specified data using the underlying transform algorithm.
      * This method invokes the {@link #marshal marshal} method and passes it
-     * the specified <code>DOMSignContext</code> before transforming the data.
+     * the specified {@code DOMSignContext} before transforming the data.
      *
      * @param data the data to be transformed
-     * @param sc the <code>XMLCryptoContext</code> containing
-     *    additional context (may be <code>null</code> if not applicable)
+     * @param sc the {@code XMLCryptoContext} containing
+     *    additional context (may be {@code null} if not applicable)
      * @param context the marshalling context
      * @return the transformed data
      * @throws MarshalException if an exception occurs while marshalling
-     * @throws NullPointerException if <code>data</code> or <code>context</code>
-     *    is <code>null</code>
+     * @throws NullPointerException if {@code data} or {@code context}
+     *    is {@code null}
      * @throws XMLSignatureException if an unexpected error occurs while
      *    executing the transform
      */
--- a/src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMX509Data.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMX509Data.java	Mon Aug 03 16:33:06 2015 -0700
@@ -65,7 +65,6 @@
      *    or {@link javax.xml.dsig.XMLStructure} ({@link X509IssuerSerial}
      *    objects or elements from an external namespace). The list is
      *    defensively copied to protect against subsequent modification.
-     * @return a <code>X509Data</code>
      * @throws NullPointerException if <code>content</code> is <code>null</code>
      * @throws IllegalArgumentException if <code>content</code> is empty
      * @throws ClassCastException if <code>content</code> contains any entries
--- a/src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMXMLObject.java	Mon Aug 03 15:48:33 2015 -0500
+++ b/src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMXMLObject.java	Mon Aug 03 16:33:06 2015 -0700
@@ -63,7 +63,6 @@
      * @param id the Id (may be <code>null</code>)
      * @param mimeType the mime type (may be <code>null</code>)
      * @param encoding the encoding (may be <code>null</code>)
-     * @return an <code>XMLObject</code>
      * @throws ClassCastException if <code>content</code> contains any
      *    entries that are not of type {@link XMLStructure}
      */
--- a/src/jdk.charsets/share/classes/sun/nio/cs/ext/GB18030.java	Mon Aug 03 15:48:33 2015 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12778 +0,0 @@
-/*
- * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-/*
- */
-
-package sun.nio.cs.ext;
-
-import java.nio.ByteBuffer;
-import java.nio.CharBuffer;
-import java.nio.charset.Charset;
-import java.nio.charset.CharsetDecoder;
-import java.nio.charset.CharsetEncoder;
-import java.nio.charset.CoderResult;
-import sun.nio.cs.Surrogate;
-
-public class GB18030
-    extends Charset
-{
-    private static final int GB18030_SINGLE_BYTE = 1;
-    private static final int GB18030_DOUBLE_BYTE = 2;
-    private static final int GB18030_FOUR_BYTE = 3;
-
-    public GB18030() {
-        super("GB18030", ExtendedCharsets.aliasesFor("GB18030"));
-    }
-
-    public boolean contains(Charset cs) {
-        return ((cs.name().equals("US-ASCII"))
-                || (cs.name().equals("GBK"))
-                || (cs.name().equals("ISO-8859-1"))
-                || (cs.name().equals("ISO-8859-2"))
-                || (cs.name().equals("ISO-8859-3"))
-                || (cs.name().equals("ISO-8859-4"))
-                || (cs.name().equals("ISO-8859-5"))
-                || (cs.name().equals("ISO-8859-6"))
-                || (cs.name().equals("ISO-8859-7"))
-                || (cs.name().equals("ISO-8859-8"))
-                || (cs.name().equals("ISO-8859-9"))
-                || (cs.name().equals("ISO-8859-13"))
-                || (cs.name().equals("UTF-8"))
-                || (cs.name().equals("UTF-16"))
-                || (cs.name().equals("UTF-16LE"))
-                || (cs.name().equals("UTF-16BE"))
-                || (cs.name().equals("ISO-8859-15"))
-                || (cs.name().equals("windows-1251"))
-                || (cs.name().equals("windows-1252"))
-                || (cs.name().equals("windows-1253"))
-                || (cs.name().equals("windows-1254"))
-                || (cs.name().equals("windows-1255"))
-                || (cs.name().equals("windows-1256"))
-                || (cs.name().equals("windows-1257"))
-                || (cs.name().equals("windows-1258"))
-                || (cs.name().equals("windows-932"))
-                || (cs.name().equals("x-mswin-936"))
-                || (cs.name().equals("x-windows-949"))
-                || (cs.name().equals("x-windows-950"))
-                || (cs.name().equals("windows-31j"))
-                || (cs.name().equals("JIS_X0201"))
-                || (cs.name().equals("JIS_X0208-1990"))
-                || (cs.name().equals("JIS_X0212"))
-                || (cs.name().equals("Shift_JIS"))
-                || (cs.name().equals("GB2312"))
-                || (cs.name().equals("EUC-KR"))
-                || (cs.name().equals("x-EUC-TW"))
-                || (cs.name().equals("EUC-JP"))
-                || (cs.name().equals("euc-jp-linux"))
-                || (cs.name().equals("KOI8-R"))
-                || (cs.name().equals("TIS-620"))
-                || (cs.name().equals("x-ISCII91"))
-                || (cs.name().equals("Big5"))
-                || (cs.name().equals("Big5-HKSCS"))
-                || (cs.name().equals("x-MS950-HKSCS"))
-                || (cs.name().equals("ISO-2022-JP"))
-                || (cs.name().equals("ISO-2022-KR"))
-                || (cs.name().equals("x-ISO-2022-CN-CNS"))
-                || (cs.name().equals("x-ISO-2022-CN-GB"))
-                || (cs.name().equals("x-Johab"))
-                || (cs instanceof GB18030));
-    }
-
-    public CharsetDecoder newDecoder() {
-        return new Decoder(this);
-    }
-
-    public CharsetEncoder newEncoder() {
-        return new Encoder(this);
-    }
-
-    private final static String innerDecoderIndex0=
-        "\u0080"+
-        "\u0081\u0082\u0083\u0084\u0085\u0086\u0087\u0088"+
-        "\u0089\u008A\u008B\u008C\u008D\u008E\u008F\u0090"+
-        "\u0091\u0092\u0093\u0094\u0095\u0096\u0097\u0098"+
-        "\u0099\u009A\u009B\u009C\u009D\u009E\u009F\u00A0"+
-        "\u00A1\u00A2\u00A3\u00A5\u00A6\u00A9\u00AA\u00AB"+
-        "\u00AC\u00AD\u00AE\u00AF\u00B2\u00B3\u00B4\u00B5"+
-        "\u00B6\u00B8\u00B9\u00BA\u00BB\u00BC\u00BD\u00BE"+
-        "\u00BF\u00C0\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6"+
-        "\u00C7\u00C8\u00C9\u00CA\u00CB\u00CC\u00CD\u00CE"+
-        "\u00CF\u00D0\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6"+
-        "\u00D8\u00D9\u00DA\u00DB\u00DC\u00DD\u00DE\u00DF"+
-        "\u00E2\u00E3\u00E4\u00E5\u00E6\u00E7\u00EB\u00EE"+
-        "\u00EF\u00F0\u00F1\u00F4\u00F5\u00F6\u00F8\u00FB"+
-        "\u00FD\u00FE\u00FF\u0100\u0102\u0103\u0104\u0105"+
-        "\u0106\u0107\u0108\u0109\u010A\u010B\u010C\u010D"+
-        "\u010E\u010F\u0110\u0111\u0112\u0114\u0115\u0116"+
-        "\u0117\u0118\u0119\u011A\u011C\u011D\u011E\u011F"+
-        "\u0120\u0121\u0122\u0123\u0124\u0125\u0126\u0127"+
-        "\u0128\u0129\u012A\u012C\u012D\u012E\u012F\u0130"+
-        "\u0131\u0132\u0133\u0134\u0135\u0136\u0137\u0138"+
-        "\u0139\u013A\u013B\u013C\u013D\u013E\u013F\u0140"+
-        "\u0141\u0142\u0143\u0145\u0146\u0147\u0149\u014A"+
-        "\u014B\u014C\u014E\u014F\u0150\u0151\u0152\u0153"+
-        "\u0154\u0155\u0156\u0157\u0158\u0159\u015A\u015B"+
-        "\u015C\u015D\u015E\u015F\u0160\u0161\u0162\u0163"+
-        "\u0164\u0165\u0166\u0167\u0168\u0169\u016A\u016C"+
-        "\u016D\u016E\u016F\u0170\u0171\u0172\u0173\u0174"+
-        "\u0175\u0176\u0177\u0178\u0179\u017A\u017B\u017C"+
-        "\u017D\u017E\u017F\u0180\u0181\u0182\u0183\u0184"+
-        "\u0185\u0186\u0187\u0188\u0189\u018A\u018B\u018C"+
-        "\u018D\u018E\u018F\u0190\u0191\u0192\u0193\u0194"+
-        "\u0195\u0196\u0197\u0198\u0199\u019A\u019B"+
-        "\u019C\u019D\u019E\u019F\u01A0\u01A1\u01A2\u01A3"+
-        "\u01A4\u01A5\u01A6\u01A7\u01A8\u01A9\u01AA\u01AB"+
-        "\u01AC\u01AD\u01AE\u01AF\u01B0\u01B1\u01B2\u01B3"+
-        "\u01B4\u01B5\u01B6\u01B7\u01B8\u01B9\u01BA\u01BB"+
-        "\u01BC\u01BD\u01BE\u01BF\u01C0\u01C1\u01C2\u01C3"+
-        "\u01C4\u01C5\u01C6\u01C7\u01C8\u01C9\u01CA\u01CB"+
-        "\u01CC\u01CD\u01CF\u01D1\u01D3\u01D5\u01D7\u01D9"+
-        "\u01DB\u01DD\u01DE\u01DF\u01E0\u01E1\u01E2\u01E3"+
-        "\u01E4\u01E5\u01E6\u01E7\u01E8\u01E9\u01EA\u01EB"+
-        "\u01EC\u01ED\u01EE\u01EF\u01F0\u01F1\u01F2\u01F3"+
-        "\u01F4\u01F5\u01F6\u01F7\u01F8\u01FA\u01FB\u01FC"+
-        "\u01FD\u01FE\u01FF\u0200\u0201\u0202\u0203\u0204"+
-        "\u0205\u0206\u0207\u0208\u0209\u020A\u020B\u020C"+
-        "\u020D\u020E\u020F\u0210\u0211\u0212\u0213\u0214"+
-        "\u0215\u0216\u0217\u0218\u0219\u021A\u021B\u021C"+
-        "\u021D\u021E\u021F\u0220\u0221\u0222\u0223\u0224"+
-        "\u0225\u0226\u0227\u0228\u0229\u022A\u022B\u022C"+
-        "\u022D\u022E\u022F\u0230\u0231\u0232\u0233\u0234"+
-        "\u0235\u0236\u0237\u0238\u0239\u023A\u023B\u023C"+
-        "\u023D\u023E\u023F\u0240\u0241\u0242\u0243\u0244"+
-        "\u0245\u0246\u0247\u0248\u0249\u024A\u024B\u024C"+
-        "\u024D\u024E\u024F\u0250\u0252\u0253\u0254\u0255"+
-        "\u0256\u0257\u0258\u0259\u025A\u025B\u025C\u025D"+
-        "\u025E\u025F\u0260\u0262\u0263\u0264\u0265\u0266"+
-        "\u0267\u0268\u0269\u026A\u026B\u026C\u026D\u026E"+
-        "\u026F\u0270\u0271\u0272\u0273\u0274\u0275\u0276"+
-        "\u0277\u0278\u0279\u027A\u027B\u027C\u027D\u027E"+
-        "\u027F\u0280\u0281\u0282\u0283\u0284\u0285\u0286"+
-        "\u0287\u0288\u0289\u028A\u028B\u028C\u028D\u028E"+
-        "\u028F\u0290\u0291\u0292\u0293\u0294\u0295\u0296"+
-        "\u0297\u0298\u0299\u029A\u029B\u029C\u029D\u029E"+
-        "\u029F\u02A0\u02A1\u02A2\u02A3\u02A4\u02A5\u02A6"+
-        "\u02A7\u02A8\u02A9\u02AA\u02AB\u02AC\u02AD\u02AE"+
-        "\u02AF\u02B0\u02B1\u02B2\u02B3\u02B4\u02B5\u02B6"+
-        "\u02B7\u02B8\u02B9\u02BA\u02BB\u02BC\u02BD\u02BE"+
-        "\u02BF\u02C0\u02C1\u02C2\u02C3\u02C4\u02C5\u02C6"+
-        "\u02C8\u02CC\u02CD\u02CE\u02CF\u02D0\u02D1\u02D2"+
-        "\u02D3\u02D4\u02D5\u02D6\u02D7\u02D8\u02DA\u02DB"+
-        "\u02DC\u02DD\u02DE\u02DF\u02E0\u02E1\u02E2\u02E3"+
-        "\u02E4\u02E5\u02E6\u02E7\u02E8\u02E9\u02EA\u02EB"+
-        "\u02EC\u02ED\u02EE\u02EF\u02F0\u02F1\u02F2\u02F3"+
-        "\u02F4\u02F5\u02F6\u02F7\u02F8\u02F9\u02FA\u02FB"+
-        "\u02FC\u02FD\u02FE\u02FF\u0300\u0301\u0302\u0303"+
-        "\u0304\u0305\u0306\u0307\u0308\u0309\u030A\u030B"+
-        "\u030C\u030D\u030E\u030F\u0310\u0311\u0312\u0313"+
-        "\u0314\u0315\u0316\u0317\u0318\u0319\u031A\u031B"+
-        "\u031C\u031D\u031E\u031F\u0320\u0321\u0322\u0323"+
-        "\u0324\u0325\u0326\u0327\u0328\u0329\u032A\u032B"+
-        "\u032C\u032D\u032E\u032F\u0330\u0331\u0332\u0333"+
-        "\u0334\u0335\u0336\u0337\u0338\u0339\u033A\u033B"+
-        "\u033C\u033D\u033E\u033F\u0340\u0341\u0342\u0343"+
-        "\u0344\u0345\u0346\u0347\u0348\u0349\u034A\u034B"+
-        "\u034C\u034D\u034E\u034F\u0350\u0351\u0352\u0353"+
-        "\u0354\u0355\u0356\u0357\u0358\u0359\u035A\u035B"+
-        "\u035C\u035D\u035E\u035F\u0360\u0361\u0362\u0363"+
-        "\u0364\u0365\u0366\u0367\u0368\u0369\u036A\u036B"+
-        "\u036C\u036D\u036E\u036F\u0370\u0371\u0372\u0373"+
-        "\u0374\u0375\u0376\u0377\u0378\u0379\u037A\u037B"+
-        "\u037C\u037D\u037E\u037F\u0380\u0381\u0382\u0383"+
-        "\u0384\u0385\u0386\u0387\u0388\u0389\u038A\u038B"+
-        "\u038C\u038D\u038E\u038F\u0390\u03A2\u03AA\u03AB"+
-        "\u03AC\u03AD\u03AE\u03AF\u03B0\u03C2\u03CA\u03CB"+
-        "\u03CC\u03CD\u03CE\u03CF\u03D0\u03D1\u03D2\u03D3"+
-        "\u03D4\u03D5\u03D6\u03D7\u03D8\u03D9\u03DA\u03DB"+
-        "\u03DC\u03DD\u03DE\u03DF\u03E0\u03E1\u03E2\u03E3"+
-        "\u03E4\u03E5\u03E6\u03E7\u03E8\u03E9\u03EA\u03EB"+
-        "\u03EC\u03ED\u03EE\u03EF\u03F0\u03F1\u03F2\u03F3"+
-        "\u03F4\u03F5\u03F6\u03F7\u03F8\u03F9\u03FA\u03FB"+
-        "\u03FC\u03FD\u03FE\u03FF\u0400\u0402\u0403\u0404"+
-        "\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C"+
-        "\u040D\u040E\u040F\u0450\u0452\u0453\u0454\u0455"+
-        "\u0456\u0457\u0458\u0459\u045A\u045B\u045C\u045D"+
-        "\u045E\u045F\u0460\u0461\u0462\u0463\u0464\u0465"+
-        "\u0466\u0467\u0468\u0469\u046A\u046B\u046C\u046D"+
-        "\u046E\u046F\u0470\u0471\u0472\u0473\u0474\u0475"+
-        "\u0476\u0477\u0478\u0479\u047A\u047B\u047C\u047D"+
-        "\u047E\u047F\u0480\u0481\u0482\u0483\u0484\u0485"+
-        "\u0486\u0487\u0488\u0489\u048A\u048B\u048C\u048D"+
-        "\u048E\u048F\u0490\u0491\u0492\u0493\u0494\u0495"+
-        "\u0496\u0497\u0498\u0499\u049A\u049B\u049C\u049D"+
-        "\u049E\u049F\u04A0\u04A1\u04A2\u04A3\u04A4\u04A5"+
-        "\u04A6\u04A7\u04A8\u04A9\u04AA\u04AB\u04AC\u04AD"+
-        "\u04AE\u04AF\u04B0\u04B1\u04B2\u04B3\u04B4\u04B5"+
-        "\u04B6\u04B7\u04B8\u04B9\u04BA\u04BB\u04BC\u04BD"+
-        "\u04BE\u04BF\u04C0\u04C1\u04C2\u04C3\u04C4\u04C5"+
-        "\u04C6\u04C7\u04C8\u04C9\u04CA\u04CB\u04CC\u04CD"+
-        "\u04CE\u04CF\u04D0\u04D1\u04D2\u04D3\u04D4\u04D5"+
-        "\u04D6\u04D7\u04D8\u04D9\u04DA\u04DB\u04DC\u04DD"+
-        "\u04DE\u04DF\u04E0\u04E1\u04E2\u04E3\u04E4\u04E5"+
-        "\u04E6\u04E7\u04E8\u04E9\u04EA\u04EB\u04EC\u04ED"+
-        "\u04EE\u04EF\u04F0\u04F1\u04F2\u04F3\u04F4\u04F5"+
-        "\u04F6\u04F7\u04F8\u04F9\u04FA\u04FB\u04FC\u04FD"+
-        "\u04FE\u04FF\u0500\u0501\u0502\u0503\u0504\u0505"+
-        "\u0506\u0507\u0508\u0509\u050A\u050B\u050C\u050D"+
-        "\u050E\u050F\u0510\u0511\u0512\u0513\u0514\u0515"+
-        "\u0516\u0517\u0518\u0519\u051A\u051B\u051C\u051D"+
-        "\u051E\u051F\u0520\u0521\u0522\u0523\u0524\u0525"+
-        "\u0526\u0527\u0528\u0529\u052A\u052B\u052C\u052D"+
-        "\u052E\u052F\u0530\u0531\u0532\u0533\u0534\u0535"+
-        "\u0536\u0537\u0538\u0539\u053A\u053B\u053C\u053D"+
-        "\u053E\u053F\u0540\u0541\u0542\u0543\u0544\u0545"+
-        "\u0546\u0547\u0548\u0549\u054A\u054B\u054C\u054D"+
-        "\u054E\u054F\u0550\u0551\u0552\u0553\u0554\u0555"+
-        "\u0556\u0557\u0558\u0559\u055A\u055B\u055C\u055D"+
-        "\u055E\u055F\u0560\u0561\u0562\u0563\u0564\u0565"+
-        "\u0566\u0567\u0568\u0569\u056A\u056B\u056C\u056D"+
-        "\u056E\u056F\u0570\u0571\u0572\u0573\u0574\u0575"+
-        "\u0576\u0577\u0578\u0579\u057A\u057B\u057C\u057D"+
-        "\u057E\u057F\u0580\u0581\u0582\u0583\u0584\u0585"+
-        "\u0586\u0587\u0588\u0589\u058A\u058B\u058C\u058D"+
-        "\u058E\u058F\u0590\u0591\u0592\u0593\u0594\u0595"+
-        "\u0596\u0597\u0598\u0599\u059A\u059B\u059C\u059D"+
-        "\u059E\u059F\u05A0\u05A1\u05A2\u05A3\u05A4\u05A5"+
-        "\u05A6\u05A7\u05A8\u05A9\u05AA\u05AB\u05AC\u05AD"+
-        "\u05AE\u05AF\u05B0\u05B1\u05B2\u05B3\u05B4\u05B5"+
-        "\u05B6\u05B7\u05B8\u05B9\u05BA\u05BB\u05BC\u05BD"+
-        "\u05BE\u05BF\u05C0\u05C1\u05C2\u05C3\u05C4\u05C5"+
-        "\u05C6\u05C7\u05C8\u05C9\u05CA\u05CB\u05CC\u05CD"+
-        "\u05CE\u05CF\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5"+
-        "\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD"+
-        "\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5"+
-        "\u05E6\u05E7\u05E8\u05E9\u05EA\u05EB\u05EC\u05ED"+
-        "\u05EE\u05EF\u05F0\u05F1\u05F2\u05F3\u05F4\u05F5"+
-        "\u05F6\u05F7\u05F8\u05F9\u05FA\u05FB\u05FC\u05FD"+
-        "\u05FE\u05FF\u0600\u0601\u0602\u0603\u0604\u0605"+
-        "\u0606\u0607\u0608\u0609\u060A\u060B\u060C\u060D"+
-        "\u060E\u060F\u0610\u0611\u0612\u0613\u0614\u0615"+
-        "\u0616\u0617\u0618\u0619\u061A\u061B\u061C\u061D"+
-        "\u061E\u061F\u0620\u0621\u0622\u0623\u0624\u0625"+
-        "\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D"+
-        "\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635"+
-        "\u0636\u0637\u0638\u0639\u063A\u063B\u063C\u063D"+
-        "\u063E\u063F\u0640\u0641\u0642\u0643\u0644\u0645"+
-        "\u0646\u0647\u0648\u0649\u064A\u064B\u064C\u064D"+
-        "\u064E\u064F\u0650\u0651\u0652\u0653\u0654\u0655"+
-        "\u0656\u0657\u0658\u0659\u065A\u065B\u065C\u065D"+
-        "\u065E\u065F\u0660\u0661\u0662\u0663\u0664\u0665"+
-        "\u0666\u0667\u0668\u0669\u066A\u066B\u066C\u066D"+
-        "\u066E\u066F\u0670\u0671\u0672\u0673\u0674\u0675"+
-        "\u0676\u0677\u0678\u0679\u067A\u067B\u067C\u067D"+
-        "\u067E\u067F\u0680\u0681\u0682\u0683\u0684\u0685"+
-        "\u0686\u0687\u0688\u0689\u068A\u068B\u068C\u068D"+
-        "\u068E\u068F\u0690\u0691\u0692\u0693\u0694\u0695"+
-        "\u0696\u0697\u0698\u0699\u069A\u069B\u069C\u069D"+
-        "\u069E\u069F\u06A0\u06A1\u06A2\u06A3\u06A4\u06A5"+
-        "\u06A6\u06A7\u06A8\u06A9\u06AA\u06AB\u06AC\u06AD"+
-        "\u06AE\u06AF\u06B0\u06B1\u06B2\u06B3\u06B4\u06B5"+
-        "\u06B6\u06B7\u06B8\u06B9\u06BA\u06BB\u06BC\u06BD"+
-        "\u06BE\u06BF\u06C0\u06C1\u06C2\u06C3\u06C4\u06C5"+
-        "\u06C6\u06C7\u06C8\u06C9\u06CA\u06CB\u06CC\u06CD"+
-        "\u06CE\u06CF\u06D0\u06D1\u06D2\u06D3\u06D4\u06D5"+
-        "\u06D6\u06D7\u06D8\u06D9\u06DA\u06DB\u06DC\u06DD"+
-        "\u06DE\u06DF\u06E0\u06E1\u06E2\u06E3\u06E4\u06E5"+
-        "\u06E6\u06E7\u06E8\u06E9\u06EA\u06EB\u06EC\u06ED"+
-        "\u06EE\u06EF\u06F0\u06F1\u06F2\u06F3\u06F4\u06F5"+
-        "\u06F6\u06F7\u06F8\u06F9\u06FA\u06FB\u06FC\u06FD"+
-        "\u06FE\u06FF\u0700\u0701\u0702\u0703\u0704\u0705"+
-        "\u0706\u0707\u0708\u0709\u070A\u070B\u070C\u070D"+
-        "\u070E\u070F\u0710\u0711\u0712\u0713\u0714\u0715"+
-        "\u0716\u0717\u0718\u0719\u071A\u071B\u071C\u071D"+
-        "\u071E\u071F\u0720\u0721\u0722\u0723\u0724\u0725"+
-        "\u0726\u0727\u0728\u0729\u072A\u072B\u072C\u072D"+
-        "\u072E\u072F\u0730\u0731\u0732\u0733\u0734\u0735"+
-        "\u0736\u0737\u0738\u0739\u073A\u073B\u073C\u073D"+
-        "\u073E\u073F\u0740\u0741\u0742\u0743\u0744\u0745"+
-        "\u0746\u0747\u0748\u0749\u074A\u074B\u074C\u074D"+
-        "\u074E\u074F\u0750\u0751\u0752\u0753\u0754\u0755"+
-        "\u0756\u0757\u0758\u0759\u075A\u075B\u075C\u075D"+
-        "\u075E\u075F\u0760\u0761\u0762\u0763\u0764\u0765"+
-        "\u0766\u0767\u0768\u0769\u076A\u076B\u076C\u076D"+
-        "\u076E\u076F\u0770\u0771\u0772\u0773\u0774\u0775"+
-        "\u0776\u0777\u0778\u0779\u077A\u077B\u077C\u077D"+
-        "\u077E\u077F\u0780\u0781\u0782\u0783\u0784\u0785"+
-        "\u0786\u0787\u0788\u0789\u078A\u078B\u078C\u078D"+
-        "\u078E\u078F\u0790\u0791\u0792\u0793\u0794\u0795"+
-        "\u0796\u0797\u0798\u0799\u079A\u079B\u079C\u079D"+
-        "\u079E\u079F\u07A0\u07A1\u07A2\u07A3\u07A4\u07A5"+
-        "\u07A6\u07A7\u07A8\u07A9\u07AA\u07AB\u07AC\u07AD"+
-        "\u07AE\u07AF\u07B0\u07B1\u07B2\u07B3\u07B4\u07B5"+
-        "\u07B6\u07B7\u07B8\u07B9\u07BA\u07BB\u07BC\u07BD"+
-        "\u07BE\u07BF\u07C0\u07C1\u07C2\u07C3\u07C4\u07C5"+
-        "\u07C6\u07C7\u07C8\u07C9\u07CA\u07CB\u07CC\u07CD"+
-        "\u07CE\u07CF\u07D0\u07D1\u07D2\u07D3\u07D4\u07D5"+
-        "\u07D6\u07D7\u07D8\u07D9\u07DA\u07DB\u07DC\u07DD"+
-        "\u07DE\u07DF\u07E0\u07E1\u07E2\u07E3\u07E4\u07E5"+
-        "\u07E6\u07E7\u07E8\u07E9\u07EA\u07EB\u07EC\u07ED"+
-        "\u07EE\u07EF\u07F0\u07F1\u07F2\u07F3\u07F4\u07F5"+
-        "\u07F6\u07F7\u07F8\u07F9\u07FA\u07FB\u07FC\u07FD"+
-        "\u07FE\u07FF\u0800\u0801\u0802\u0803\u0804\u0805"+
-        "\u0806\u0807\u0808\u0809\u080A\u080B\u080C\u080D"+
-        "\u080E\u080F\u0810\u0811\u0812\u0813\u0814\u0815"+
-        "\u0816\u0817\u0818\u0819\u081A\u081B\u081C\u081D"+
-        "\u081E\u081F\u0820\u0821\u0822\u0823\u0824\u0825"+
-        "\u0826\u0827\u0828\u0829\u082A\u082B\u082C\u082D"+
-        "\u082E\u082F\u0830\u0831\u0832\u0833\u0834\u0835"+
-        "\u0836\u0837\u0838\u0839\u083A\u083B\u083C\u083D"+
-        "\u083E\u083F\u0840\u0841\u0842\u0843\u0844\u0845"+
-        "\u0846\u0847\u0848\u0849\u084A\u084B\u084C\u084D"+
-        "\u084E\u084F\u0850\u0851\u0852\u0853\u0854\u0855"+
-        "\u0856\u0857\u0858\u0859\u085A\u085B\u085C\u085D"+
-        "\u085E\u085F\u0860\u0861\u0862\u0863\u0864\u0865"+
-        "\u0866\u0867\u0868\u0869\u086A\u086B\u086C\u086D"+
-        "\u086E\u086F\u0870\u0871\u0872\u0873\u0874\u0875"+
-        "\u0876\u0877\u0878\u0879\u087A\u087B\u087C\u087D"+
-        "\u087E\u087F\u0880\u0881\u0882\u0883\u0884\u0885"+
-        "\u0886\u0887\u0888\u0889\u088A\u088B\u088C\u088D"+
-        "\u088E\u088F\u0890\u0891\u0892\u0893\u0894\u0895"+
-        "\u0896\u0897\u0898\u0899\u089A\u089B\u089C\u089D"+
-        "\u089E\u089F\u08A0\u08A1\u08A2\u08A3\u08A4\u08A5"+
-        "\u08A6\u08A7\u08A8\u08A9\u08AA\u08AB\u08AC\u08AD"+
-        "\u08AE\u08AF\u08B0\u08B1\u08B2\u08B3\u08B4\u08B5"+
-        "\u08B6\u08B7\u08B8\u08B9\u08BA\u08BB\u08BC\u08BD"+
-        "\u08BE\u08BF\u08C0\u08C1\u08C2\u08C3\u08C4\u08C5"+
-        "\u08C6\u08C7\u08C8\u08C9\u08CA\u08CB\u08CC\u08CD"+
-        "\u08CE\u08CF\u08D0\u08D1\u08D2\u08D3\u08D4\u08D5"+
-        "\u08D6\u08D7\u08D8\u08D9\u08DA\u08DB\u08DC\u08DD"+
-        "\u08DE\u08DF\u08E0\u08E1\u08E2\u08E3\u08E4\u08E5"+
-        "\u08E6\u08E7\u08E8\u08E9\u08EA\u08EB\u08EC\u08ED"+
-        "\u08EE\u08EF\u08F0\u08F1\u08F2\u08F3\u08F4\u08F5"+
-        "\u08F6\u08F7\u08F8\u08F9\u08FA\u08FB\u08FC\u08FD"+
-        "\u08FE\u08FF\u0900\u0901\u0902\u0903\u0904\u0905"+
-        "\u0906\u0907\u0908\u0909\u090A\u090B\u090C\u090D"+
-        "\u090E\u090F\u0910\u0911\u0912\u0913\u0914\u0915"+
-        "\u0916\u0917\u0918\u0919\u091A\u091B\u091C\u091D"+
-        "\u091E\u091F\u0920\u0921\u0922\u0923\u0924\u0925"+
-        "\u0926\u0927\u0928\u0929\u092A\u092B\u092C\u092D"+
-        "\u092E\u092F\u0930\u0931\u0932\u0933\u0934\u0935"+
-        "\u0936\u0937\u0938\u0939\u093A\u093B\u093C\u093D"+
-        "\u093E\u093F\u0940\u0941\u0942\u0943\u0944\u0945"+
-        "\u0946\u0947\u0948\u0949\u094A\u094B\u094C\u094D"+
-        "\u094E\u094F\u0950\u0951\u0952\u0953\u0954\u0955"+
-        "\u0956\u0957\u0958\u0959\u095A\u095B\u095C\u095D"+
-        "\u095E\u095F\u0960\u0961\u0962\u0963\u0964\u0965"+
-        "\u0966\u0967\u0968\u0969\u096A\u096B\u096C\u096D"+
-        "\u096E\u096F\u0970\u0971\u0972\u0973\u0974\u0975"+
-        "\u0976\u0977\u0978\u0979\u097A\u097B\u097C\u097D"+
-        "\u097E\u097F\u0980\u0981\u0982\u0983\u0984\u0985"+
-        "\u0986\u0987\u0988\u0989\u098A\u098B\u098C\u098D"+
-        "\u098E\u098F\u0990\u0991\u0992\u0993\u0994\u0995"+
-        "\u0996\u0997\u0998\u0999\u099A\u099B\u099C\u099D"+
-        "\u099E\u099F\u09A0\u09A1\u09A2\u09A3\u09A4\u09A5"+
-        "\u09A6\u09A7\u09A8\u09A9\u09AA\u09AB\u09AC\u09AD"+
-        "\u09AE\u09AF\u09B0\u09B1\u09B2\u09B3\u09B4\u09B5"+
-        "\u09B6\u09B7\u09B8\u09B9\u09BA\u09BB\u09BC\u09BD"+
-        "\u09BE\u09BF\u09C0\u09C1\u09C2\u09C3\u09C4\u09C5"+
-        "\u09C6\u09C7\u09C8\u09C9\u09CA\u09CB\u09CC\u09CD"+
-        "\u09CE\u09CF\u09D0\u09D1\u09D2\u09D3\u09D4\u09D5"+
-        "\u09D6\u09D7\u09D8\u09D9\u09DA\u09DB\u09DC\u09DD"+
-        "\u09DE\u09DF\u09E0\u09E1\u09E2\u09E3\u09E4\u09E5"+
-        "\u09E6\u09E7\u09E8\u09E9\u09EA\u09EB\u09EC\u09ED"+
-        "\u09EE\u09EF\u09F0\u09F1\u09F2\u09F3\u09F4\u09F5"+
-        "\u09F6\u09F7\u09F8\u09F9\u09FA\u09FB\u09FC\u09FD"+
-        "\u09FE\u09FF\u0A00\u0A01\u0A02\u0A03\u0A04\u0A05"+
-        "\u0A06\u0A07\u0A08\u0A09\u0A0A\u0A0B\u0A0C\u0A0D"+
-        "\u0A0E\u0A0F\u0A10\u0A11\u0A12\u0A13\u0A14\u0A15"+
-        "\u0A16\u0A17\u0A18\u0A19\u0A1A\u0A1B\u0A1C\u0A1D"+
-        "\u0A1E\u0A1F\u0A20\u0A21\u0A22\u0A23\u0A24\u0A25"+
-        "\u0A26\u0A27\u0A28\u0A29\u0A2A\u0A2B\u0A2C\u0A2D"+
-        "\u0A2E\u0A2F\u0A30\u0A31\u0A32\u0A33\u0A34\u0A35"+
-        "\u0A36\u0A37\u0A38\u0A39\u0A3A\u0A3B\u0A3C\u0A3D"+
-        "\u0A3E\u0A3F\u0A40\u0A41\u0A42\u0A43\u0A44\u0A45"+
-        "\u0A46\u0A47\u0A48\u0A49\u0A4A\u0A4B\u0A4C\u0A4D"+
-        "\u0A4E\u0A4F\u0A50\u0A51\u0A52\u0A53\u0A54\u0A55"+
-        "\u0A56\u0A57\u0A58\u0A59\u0A5A\u0A5B\u0A5C\u0A5D"+
-        "\u0A5E\u0A5F\u0A60\u0A61\u0A62\u0A63\u0A64\u0A65"+
-        "\u0A66\u0A67\u0A68\u0A69\u0A6A\u0A6B\u0A6C\u0A6D"+
-        "\u0A6E\u0A6F\u0A70\u0A71\u0A72\u0A73\u0A74\u0A75"+
-        "\u0A76\u0A77\u0A78\u0A79\u0A7A\u0A7B\u0A7C\u0A7D"+
-        "\u0A7E\u0A7F\u0A80\u0A81\u0A82\u0A83\u0A84\u0A85"+
-        "\u0A86\u0A87\u0A88\u0A89\u0A8A\u0A8B\u0A8C\u0A8D"+
-        "\u0A8E\u0A8F\u0A90\u0A91\u0A92\u0A93\u0A94\u0A95"+
-        "\u0A96\u0A97\u0A98\u0A99\u0A9A\u0A9B\u0A9C\u0A9D"+
-        "\u0A9E\u0A9F\u0AA0\u0AA1\u0AA2\u0AA3\u0AA4\u0AA5"+
-        "\u0AA6\u0AA7\u0AA8\u0AA9\u0AAA\u0AAB\u0AAC\u0AAD"+
-        "\u0AAE\u0AAF\u0AB0\u0AB1\u0AB2\u0AB3\u0AB4\u0AB5"+
-        "\u0AB6\u0AB7\u0AB8\u0AB9\u0ABA\u0ABB\u0ABC\u0ABD"+
-        "\u0ABE\u0ABF\u0AC0\u0AC1\u0AC2\u0AC3\u0AC4\u0AC5"+
-        "\u0AC6\u0AC7\u0AC8\u0AC9\u0ACA\u0ACB\u0ACC\u0ACD"+
-        "\u0ACE\u0ACF\u0AD0\u0AD1\u0AD2\u0AD3\u0AD4\u0AD5"+
-        "\u0AD6\u0AD7\u0AD8\u0AD9\u0ADA\u0ADB\u0ADC\u0ADD"+
-        "\u0ADE\u0ADF\u0AE0\u0AE1\u0AE2\u0AE3\u0AE4\u0AE5"+
-        "\u0AE6\u0AE7\u0AE8\u0AE9\u0AEA\u0AEB\u0AEC\u0AED"+
-        "\u0AEE\u0AEF\u0AF0\u0AF1\u0AF2\u0AF3\u0AF4\u0AF5"+
-        "\u0AF6\u0AF7\u0AF8\u0AF9\u0AFA\u0AFB\u0AFC\u0AFD"+
-        "\u0AFE\u0AFF\u0B00\u0B01\u0B02\u0B03\u0B04\u0B05"+
-        "\u0B06\u0B07\u0B08\u0B09\u0B0A\u0B0B\u0B0C\u0B0D"+
-        "\u0B0E\u0B0F\u0B10\u0B11\u0B12\u0B13\u0B14\u0B15"+
-        "\u0B16\u0B17\u0B18\u0B19\u0B1A\u0B1B\u0B1C\u0B1D"+
-        "\u0B1E\u0B1F\u0B20\u0B21\u0B22\u0B23\u0B24\u0B25"+
-        "\u0B26\u0B27\u0B28\u0B29\u0B2A\u0B2B\u0B2C\u0B2D"+
-        "\u0B2E\u0B2F\u0B30\u0B31\u0B32\u0B33\u0B34\u0B35"+
-        "\u0B36\u0B37\u0B38\u0B39\u0B3A\u0B3B\u0B3C\u0B3D"+
-        "\u0B3E\u0B3F\u0B40\u0B41\u0B42\u0B43\u0B44\u0B45"+
-        "\u0B46\u0B47\u0B48\u0B49\u0B4A\u0B4B\u0B4C\u0B4D"+
-        "\u0B4E\u0B4F\u0B50\u0B51\u0B52\u0B53\u0B54\u0B55"+
-        "\u0B56\u0B57\u0B58\u0B59\u0B5A\u0B5B\u0B5C\u0B5D"+
-        "\u0B5E\u0B5F\u0B60\u0B61\u0B62\u0B63\u0B64\u0B65"+
-        "\u0B66\u0B67\u0B68\u0B69\u0B6A\u0B6B\u0B6C\u0B6D"+
-        "\u0B6E\u0B6F\u0B70\u0B71\u0B72\u0B73\u0B74\u0B75"+
-        "\u0B76\u0B77\u0B78\u0B79\u0B7A\u0B7B\u0B7C\u0B7D"+
-        "\u0B7E\u0B7F\u0B80\u0B81\u0B82\u0B83\u0B84\u0B85"+
-        "\u0B86\u0B87\u0B88\u0B89\u0B8A\u0B8B\u0B8C\u0B8D"+
-        "\u0B8E\u0B8F\u0B90\u0B91\u0B92\u0B93\u0B94\u0B95"+
-        "\u0B96\u0B97\u0B98\u0B99\u0B9A\u0B9B\u0B9C\u0B9D"+
-        "\u0B9E\u0B9F\u0BA0\u0BA1\u0BA2\u0BA3\u0BA4\u0BA5"+
-        "\u0BA6\u0BA7\u0BA8\u0BA9\u0BAA\u0BAB\u0BAC\u0BAD"+
-        "\u0BAE\u0BAF\u0BB0\u0BB1\u0BB2\u0BB3\u0BB4\u0BB5"+
-        "\u0BB6\u0BB7\u0BB8\u0BB9\u0BBA\u0BBB\u0BBC\u0BBD"+
-        "\u0BBE\u0BBF\u0BC0\u0BC1\u0BC2\u0BC3\u0BC4\u0BC5"+
-        "\u0BC6\u0BC7\u0BC8\u0BC9\u0BCA\u0BCB\u0BCC\u0BCD"+
-        "\u0BCE\u0BCF\u0BD0\u0BD1\u0BD2\u0BD3\u0BD4\u0BD5"+
-        "\u0BD6\u0BD7\u0BD8\u0BD9\u0BDA\u0BDB\u0BDC\u0BDD"+
-        "\u0BDE\u0BDF\u0BE0\u0BE1\u0BE2\u0BE3\u0BE4\u0BE5"+
-        "\u0BE6\u0BE7\u0BE8\u0BE9\u0BEA\u0BEB\u0BEC\u0BED"+
-        "\u0BEE\u0BEF\u0BF0\u0BF1\u0BF2\u0BF3\u0BF4\u0BF5"+
-        "\u0BF6\u0BF7\u0BF8\u0BF9\u0BFA\u0BFB\u0BFC\u0BFD"+
-        "\u0BFE\u0BFF\u0C00\u0C01\u0C02\u0C03\u0C04\u0C05"+
-        "\u0C06\u0C07\u0C08\u0C09\u0C0A\u0C0B\u0C0C\u0C0D"+
-        "\u0C0E\u0C0F\u0C10\u0C11\u0C12\u0C13\u0C14\u0C15"+
-        "\u0C16\u0C17\u0C18\u0C19\u0C1A\u0C1B\u0C1C\u0C1D"+
-        "\u0C1E\u0C1F\u0C20\u0C21\u0C22\u0C23\u0C24\u0C25"+
-        "\u0C26\u0C27\u0C28\u0C29\u0C2A\u0C2B\u0C2C\u0C2D"+
-        "\u0C2E\u0C2F\u0C30\u0C31\u0C32\u0C33\u0C34\u0C35"+
-        "\u0C36\u0C37\u0C38\u0C39\u0C3A\u0C3B\u0C3C\u0C3D"+
-        "\u0C3E\u0C3F\u0C40\u0C41\u0C42\u0C43\u0C44\u0C45"+
-        "\u0C46\u0C47\u0C48\u0C49\u0C4A\u0C4B\u0C4C\u0C4D"+
-        "\u0C4E\u0C4F\u0C50\u0C51\u0C52\u0C53\u0C54\u0C55"+
-        "\u0C56\u0C57\u0C58\u0C59\u0C5A\u0C5B\u0C5C\u0C5D"+
-        "\u0C5E\u0C5F\u0C60\u0C61\u0C62\u0C63\u0C64\u0C65"+
-        "\u0C66\u0C67\u0C68\u0C69\u0C6A\u0C6B\u0C6C\u0C6D"+
-        "\u0C6E\u0C6F\u0C70\u0C71\u0C72\u0C73\u0C74\u0C75"+
-        "\u0C76\u0C77\u0C78\u0C79\u0C7A\u0C7B\u0C7C\u0C7D"+
-        "\u0C7E\u0C7F\u0C80\u0C81\u0C82\u0C83\u0C84\u0C85"+
-        "\u0C86\u0C87\u0C88\u0C89\u0C8A\u0C8B\u0C8C\u0C8D"+
-        "\u0C8E\u0C8F\u0C90\u0C91\u0C92\u0C93\u0C94\u0C95"+
-        "\u0C96\u0C97\u0C98\u0C99\u0C9A\u0C9B\u0C9C\u0C9D"+
-        "\u0C9E\u0C9F\u0CA0\u0CA1\u0CA2\u0CA3\u0CA4\u0CA5"+
-        "\u0CA6\u0CA7\u0CA8\u0CA9\u0CAA\u0CAB\u0CAC\u0CAD"+
-        "\u0CAE\u0CAF\u0CB0\u0CB1\u0CB2\u0CB3\u0CB4\u0CB5"+
-        "\u0CB6\u0CB7\u0CB8\u0CB9\u0CBA\u0CBB\u0CBC\u0CBD"+
-        "\u0CBE\u0CBF\u0CC0\u0CC1\u0CC2\u0CC3\u0CC4\u0CC5"+
-        "\u0CC6\u0CC7\u0CC8\u0CC9\u0CCA\u0CCB\u0CCC\u0CCD"+
-        "\u0CCE\u0CCF\u0CD0\u0CD1\u0CD2\u0CD3\u0CD4\u0CD5"+
-        "\u0CD6\u0CD7\u0CD8\u0CD9\u0CDA\u0CDB\u0CDC\u0CDD"+
-        "\u0CDE\u0CDF\u0CE0\u0CE1\u0CE2\u0CE3\u0CE4\u0CE5"+
-        "\u0CE6\u0CE7\u0CE8\u0CE9\u0CEA\u0CEB\u0CEC\u0CED"+
-        "\u0CEE\u0CEF\u0CF0\u0CF1\u0CF2\u0CF3\u0CF4\u0CF5"+
-        "\u0CF6\u0CF7\u0CF8\u0CF9\u0CFA\u0CFB\u0CFC\u0CFD"+
-        "\u0CFE\u0CFF\u0D00\u0D01\u0D02\u0D03\u0D04\u0D05"+
-        "\u0D06\u0D07\u0D08\u0D09\u0D0A\u0D0B\u0D0C\u0D0D"+
-        "\u0D0E\u0D0F\u0D10\u0D11\u0D12\u0D13\u0D14\u0D15"+
-        "\u0D16\u0D17\u0D18\u0D19\u0D1A\u0D1B\u0D1C\u0D1D"+
-        "\u0D1E\u0D1F\u0D20\u0D21\u0D22\u0D23\u0D24\u0D25"+
-        "\u0D26\u0D27\u0D28\u0D29\u0D2A\u0D2B\u0D2C\u0D2D"+
-        "\u0D2E\u0D2F\u0D30\u0D31\u0D32\u0D33\u0D34\u0D35"+
-        "\u0D36\u0D37\u0D38\u0D39\u0D3A\u0D3B\u0D3C\u0D3D"+
-        "\u0D3E\u0D3F\u0D40\u0D41\u0D42\u0D43\u0D44\u0D45"+
-        "\u0D46\u0D47\u0D48\u0D49\u0D4A\u0D4B\u0D4C\u0D4D"+
-        "\u0D4E\u0D4F\u0D50\u0D51\u0D52\u0D53\u0D54\u0D55"+
-        "\u0D56\u0D57\u0D58\u0D59\u0D5A\u0D5B\u0D5C\u0D5D"+
-        "\u0D5E\u0D5F\u0D60\u0D61\u0D62\u0D63\u0D64\u0D65"+
-        "\u0D66\u0D67\u0D68\u0D69\u0D6A\u0D6B\u0D6C\u0D6D"+
-        "\u0D6E\u0D6F\u0D70\u0D71\u0D72\u0D73\u0D74\u0D75"+
-        "\u0D76\u0D77\u0D78\u0D79\u0D7A\u0D7B\u0D7C\u0D7D"+
-        "\u0D7E\u0D7F\u0D80\u0D81\u0D82\u0D83\u0D84\u0D85"+
-        "\u0D86\u0D87\u0D88\u0D89\u0D8A\u0D8B\u0D8C\u0D8D"+
-        "\u0D8E\u0D8F\u0D90\u0D91\u0D92\u0D93\u0D94\u0D95"+
-        "\u0D96\u0D97\u0D98\u0D99\u0D9A\u0D9B\u0D9C\u0D9D"+
-        "\u0D9E\u0D9F\u0DA0\u0DA1\u0DA2\u0DA3\u0DA4\u0DA5"+
-        "\u0DA6\u0DA7\u0DA8\u0DA9\u0DAA\u0DAB\u0DAC\u0DAD"+
-        "\u0DAE\u0DAF\u0DB0\u0DB1\u0DB2\u0DB3\u0DB4\u0DB5"+
-        "\u0DB6\u0DB7\u0DB8\u0DB9\u0DBA\u0DBB\u0DBC\u0DBD"+
-        "\u0DBE\u0DBF\u0DC0\u0DC1\u0DC2\u0DC3\u0DC4\u0DC5"+
-        "\u0DC6\u0DC7\u0DC8\u0DC9\u0DCA\u0DCB\u0DCC\u0DCD"+
-        "\u0DCE\u0DCF\u0DD0\u0DD1\u0DD2\u0DD3\u0DD4\u0DD5"+
-        "\u0DD6\u0DD7\u0DD8\u0DD9\u0DDA\u0DDB\u0DDC\u0DDD"+
-        "\u0DDE\u0DDF\u0DE0\u0DE1\u0DE2\u0DE3\u0DE4\u0DE5"+
-        "\u0DE6\u0DE7\u0DE8\u0DE9\u0DEA\u0DEB\u0DEC\u0DED"+
-        "\u0DEE\u0DEF\u0DF0\u0DF1\u0DF2\u0DF3\u0DF4\u0DF5"+
-        "\u0DF6\u0DF7\u0DF8\u0DF9\u0DFA\u0DFB\u0DFC\u0DFD"+
-        "\u0DFE\u0DFF\u0E00\u0E01\u0E02\u0E03\u0E04\u0E05"+
-        "\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D"+
-        "\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15"+
-        "\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D"+
-        "\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25"+
-        "\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D"+
-        "\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35"+
-        "\u0E36\u0E37\u0E38\u0E39\u0E3A\u0E3B\u0E3C\u0E3D"+
-        "\u0E3E\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45"+
-        "\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D"+
-        "\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55"+
-        "\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\u0E5C\u0E5D"+
-        "\u0E5E\u0E5F\u0E60\u0E61\u0E62\u0E63\u0E64\u0E65"+
-        "\u0E66\u0E67\u0E68\u0E69\u0E6A\u0E6B\u0E6C\u0E6D"+
-        "\u0E6E\u0E6F\u0E70\u0E71\u0E72\u0E73\u0E74\u0E75"+
-        "\u0E76\u0E77\u0E78\u0E79\u0E7A\u0E7B\u0E7C\u0E7D"+
-        "\u0E7E\u0E7F\u0E80\u0E81\u0E82\u0E83\u0E84\u0E85"+
-        "\u0E86\u0E87\u0E88\u0E89\u0E8A\u0E8B\u0E8C\u0E8D"+
-        "\u0E8E\u0E8F\u0E90\u0E91\u0E92\u0E93\u0E94\u0E95"+
-        "\u0E96\u0E97\u0E98\u0E99\u0E9A\u0E9B\u0E9C\u0E9D"+
-        "\u0E9E\u0E9F\u0EA0\u0EA1\u0EA2\u0EA3\u0EA4\u0EA5"+
-        "\u0EA6\u0EA7\u0EA8\u0EA9\u0EAA\u0EAB\u0EAC\u0EAD"+
-        "\u0EAE\u0EAF\u0EB0\u0EB1\u0EB2\u0EB3\u0EB4\u0EB5"+
-        "\u0EB6\u0EB7\u0EB8\u0EB9\u0EBA\u0EBB\u0EBC\u0EBD"+
-        "\u0EBE\u0EBF\u0EC0\u0EC1\u0EC2\u0EC3\u0EC4\u0EC5"+
-        "\u0EC6\u0EC7\u0EC8\u0EC9\u0ECA\u0ECB\u0ECC\u0ECD"+
-        "\u0ECE\u0ECF\u0ED0\u0ED1\u0ED2\u0ED3\u0ED4\u0ED5"+
-        "\u0ED6\u0ED7\u0ED8\u0ED9\u0EDA\u0EDB\u0EDC\u0EDD"+
-        "\u0EDE\u0EDF\u0EE0\u0EE1\u0EE2\u0EE3\u0EE4\u0EE5"+
-        "\u0EE6\u0EE7\u0EE8\u0EE9\u0EEA\u0EEB\u0EEC\u0EED"+
-        "\u0EEE\u0EEF\u0EF0\u0EF1\u0EF2\u0EF3\u0EF4\u0EF5"+
-        "\u0EF6\u0EF7\u0EF8\u0EF9\u0EFA\u0EFB\u0EFC\u0EFD"+
-        "\u0EFE\u0EFF\u0F00\u0F01\u0F02\u0F03\u0F04\u0F05"+
-        "\u0F06\u0F07\u0F08\u0F09\u0F0A\u0F0B\u0F0C\u0F0D"+
-        "\u0F0E\u0F0F\u0F10\u0F11\u0F12\u0F13\u0F14\u0F15"+
-        "\u0F16\u0F17\u0F18\u0F19\u0F1A\u0F1B\u0F1C\u0F1D"+
-        "\u0F1E\u0F1F\u0F20\u0F21\u0F22\u0F23\u0F24\u0F25"+
-        "\u0F26\u0F27\u0F28\u0F29\u0F2A\u0F2B\u0F2C\u0F2D"+
-        "\u0F2E\u0F2F\u0F30\u0F31\u0F32\u0F33\u0F34\u0F35"+
-        "\u0F36\u0F37\u0F38\u0F39\u0F3A\u0F3B\u0F3C\u0F3D"+
-        "\u0F3E\u0F3F\u0F40\u0F41\u0F42\u0F43\u0F44\u0F45"+
-        "\u0F46\u0F47\u0F48\u0F49\u0F4A\u0F4B\u0F4C\u0F4D"+
-        "\u0F4E\u0F4F\u0F50\u0F51\u0F52\u0F53\u0F54\u0F55"+
-        "\u0F56\u0F57\u0F58\u0F59\u0F5A\u0F5B\u0F5C\u0F5D"+
-        "\u0F5E\u0F5F\u0F60\u0F61\u0F62\u0F63\u0F64\u0F65"+
-        "\u0F66\u0F67\u0F68\u0F69\u0F6A\u0F6B\u0F6C\u0F6D"+
-        "\u0F6E\u0F6F\u0F70\u0F71\u0F72\u0F73\u0F74\u0F75"+
-        "\u0F76\u0F77\u0F78\u0F79\u0F7A\u0F7B\u0F7C\u0F7D"+
-        "\u0F7E\u0F7F\u0F80\u0F81\u0F82\u0F83\u0F84\u0F85"+
-        "\u0F86\u0F87\u0F88\u0F89\u0F8A\u0F8B\u0F8C\u0F8D"+
-        "\u0F8E\u0F8F\u0F90\u0F91\u0F92\u0F93\u0F94\u0F95"+
-        "\u0F96\u0F97\u0F98\u0F99\u0F9A\u0F9B\u0F9C\u0F9D"+
-        "\u0F9E\u0F9F\u0FA0\u0FA1\u0FA2\u0FA3\u0FA4\u0FA5"+
-        "\u0FA6\u0FA7\u0FA8\u0FA9\u0FAA\u0FAB\u0FAC\u0FAD"+
-        "\u0FAE\u0FAF\u0FB0\u0FB1\u0FB2\u0FB3\u0FB4\u0FB5"+
-        "\u0FB6\u0FB7\u0FB8\u0FB9\u0FBA\u0FBB\u0FBC\u0FBD"+
-        "\u0FBE\u0FBF\u0FC0\u0FC1\u0FC2\u0FC3\u0FC4\u0FC5"+
-        "\u0FC6\u0FC7\u0FC8\u0FC9\u0FCA\u0FCB\u0FCC\u0FCD"+
-        "\u0FCE\u0FCF\u0FD0\u0FD1\u0FD2\u0FD3\u0FD4\u0FD5"+
-        "\u0FD6\u0FD7\u0FD8\u0FD9\u0FDA\u0FDB\u0FDC\u0FDD"+
-        "\u0FDE\u0FDF\u0FE0\u0FE1\u0FE2\u0FE3\u0FE4\u0FE5"+
-        "\u0FE6\u0FE7\u0FE8\u0FE9\u0FEA\u0FEB\u0FEC\u0FED"+
-        "\u0FEE\u0FEF\u0FF0\u0FF1\u0FF2\u0FF3\u0FF4\u0FF5"+
-        "\u0FF6\u0FF7\u0FF8\u0FF9\u0FFA\u0FFB\u0FFC\u0FFD"+
-        "\u0FFE\u0FFF\u1000\u1001\u1002\u1003\u1004\u1005"+
-        "\u1006\u1007\u1008\u1009\u100A\u100B\u100C\u100D"+
-        "\u100E\u100F\u1010\u1011\u1012\u1013\u1014\u1015"+
-        "\u1016\u1017\u1018\u1019\u101A\u101B\u101C\u101D"+
-        "\u101E\u101F\u1020\u1021\u1022\u1023\u1024\u1025"+
-        "\u1026\u1027\u1028\u1029\u102A\u102B\u102C\u102D"+
-        "\u102E\u102F\u1030\u1031\u1032\u1033\u1034\u1035"+
-        "\u1036\u1037\u1038\u1039\u103A\u103B\u103C\u103D"+
-        "\u103E\u103F\u1040\u1041\u1042\u1043\u1044\u1045"+
-        "\u1046\u1047\u1048\u1049\u104A\u104B\u104C\u104D"+
-        "\u104E\u104F\u1050\u1051\u1052\u1053\u1054\u1055"+
-        "\u1056\u1057\u1058\u1059\u105A\u105B\u105C\u105D"+
-        "\u105E\u105F\u1060\u1061\u1062\u1063\u1064\u1065"+
-        "\u1066\u1067\u1068\u1069\u106A\u106B\u106C\u106D"+
-        "\u106E\u106F\u1070\u1071\u1072\u1073\u1074\u1075"+
-        "\u1076\u1077\u1078\u1079\u107A\u107B\u107C\u107D"+
-        "\u107E\u107F\u1080\u1081\u1082\u1083\u1084\u1085"+
-        "\u1086\u1087\u1088\u1089\u108A\u108B\u108C\u108D"+
-        "\u108E\u108F\u1090\u1091\u1092\u1093\u1094\u1095"+
-        "\u1096\u1097\u1098\u1099\u109A\u109B\u109C\u109D"+
-        "\u109E\u109F\u10A0\u10A1\u10A2\u10A3\u10A4\u10A5"+
-        "\u10A6\u10A7\u10A8\u10A9\u10AA\u10AB\u10AC\u10AD"+
-        "\u10AE\u10AF\u10B0\u10B1\u10B2\u10B3\u10B4\u10B5"+
-        "\u10B6\u10B7\u10B8\u10B9\u10BA\u10BB\u10BC\u10BD"+
-        "\u10BE\u10BF\u10C0\u10C1\u10C2\u10C3\u10C4\u10C5"+
-        "\u10C6\u10C7\u10C8\u10C9\u10CA\u10CB\u10CC\u10CD"+
-        "\u10CE\u10CF\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5"+
-        "\u10D6\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10DD"+
-        "\u10DE\u10DF\u10E0\u10E1\u10E2\u10E3\u10E4\u10E5"+
-        "\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED"+
-        "\u10EE\u10EF\u10F0\u10F1\u10F2\u10F3\u10F4\u10F5"+
-        "\u10F6\u10F7\u10F8\u10F9\u10FA\u10FB\u10FC\u10FD"+
-        "\u10FE\u10FF\u1100\u1101\u1102\u1103\u1104\u1105"+
-        "\u1106\u1107\u1108\u1109\u110A\u110B\u110C\u110D"+
-        "\u110E\u110F\u1110\u1111\u1112\u1113\u1114\u1115"+
-        "\u1116\u1117\u1118\u1119\u111A\u111B\u111C\u111D";
-
-    private final static String innerDecoderIndex1=
-        "\u111E\u111F\u1120\u1121\u1122\u1123\u1124\u1125"+
-        "\u1126\u1127\u1128\u1129\u112A\u112B\u112C\u112D"+
-        "\u112E\u112F\u1130\u1131\u1132\u1133\u1134\u1135"+
-        "\u1136\u1137\u1138\u1139\u113A\u113B\u113C\u113D"+
-        "\u113E\u113F\u1140\u1141\u1142\u1143\u1144\u1145"+
-        "\u1146\u1147\u1148\u1149\u114A\u114B\u114C\u114D"+
-        "\u114E\u114F\u1150\u1151\u1152\u1153\u1154\u1155"+
-        "\u1156\u1157\u1158\u1159\u115A\u115B\u115C\u115D"+
-        "\u115E\u115F\u1160\u1161\u1162\u1163\u1164\u1165"+
-        "\u1166\u1167\u1168\u1169\u116A\u116B\u116C\u116D"+
-        "\u116E\u116F\u1170\u1171\u1172\u1173\u1174\u1175"+
-        "\u1176\u1177\u1178\u1179\u117A\u117B\u117C\u117D"+
-        "\u117E\u117F\u1180\u1181\u1182\u1183\u1184\u1185"+
-        "\u1186\u1187\u1188\u1189\u118A\u118B\u118C\u118D"+
-        "\u118E\u118F\u1190\u1191\u1192\u1193\u1194\u1195"+
-        "\u1196\u1197\u1198\u1199\u119A\u119B\u119C\u119D"+
-        "\u119E\u119F\u11A0\u11A1\u11A2\u11A3\u11A4\u11A5"+
-        "\u11A6\u11A7\u11A8\u11A9\u11AA\u11AB\u11AC\u11AD"+
-        "\u11AE\u11AF\u11B0\u11B1\u11B2\u11B3\u11B4\u11B5"+
-        "\u11B6\u11B7\u11B8\u11B9\u11BA\u11BB\u11BC\u11BD"+
-        "\u11BE\u11BF\u11C0\u11C1\u11C2\u11C3\u11C4\u11C5"+
-        "\u11C6\u11C7\u11C8\u11C9\u11CA\u11CB\u11CC\u11CD"+
-        "\u11CE\u11CF\u11D0\u11D1\u11D2\u11D3\u11D4\u11D5"+
-        "\u11D6\u11D7\u11D8\u11D9\u11DA\u11DB\u11DC\u11DD"+
-        "\u11DE\u11DF\u11E0\u11E1\u11E2\u11E3\u11E4\u11E5"+
-        "\u11E6\u11E7\u11E8\u11E9\u11EA\u11EB\u11EC\u11ED"+
-        "\u11EE\u11EF\u11F0\u11F1\u11F2\u11F3\u11F4\u11F5"+
-        "\u11F6\u11F7\u11F8\u11F9\u11FA\u11FB\u11FC\u11FD"+
-        "\u11FE\u11FF\u1200\u1201\u1202\u1203\u1204\u1205"+
-        "\u1206\u1207\u1208\u1209\u120A\u120B\u120C\u120D"+
-        "\u120E\u120F\u1210\u1211\u1212\u1213\u1214\u1215"+
-        "\u1216\u1217\u1218\u1219\u121A\u121B\u121C\u121D"+
-        "\u121E\u121F\u1220\u1221\u1222\u1223\u1224\u1225"+
-        "\u1226\u1227\u1228\u1229\u122A\u122B\u122C\u122D"+
-        "\u122E\u122F\u1230\u1231\u1232\u1233\u1234\u1235"+
-        "\u1236\u1237\u1238\u1239\u123A\u123B\u123C\u123D"+
-        "\u123E\u123F\u1240\u1241\u1242\u1243\u1244\u1245"+
-        "\u1246\u1247\u1248\u1249\u124A\u124B\u124C\u124D"+
-        "\u124E\u124F\u1250\u1251\u1252\u1253\u1254\u1255"+
-        "\u1256\u1257\u1258\u1259\u125A\u125B\u125C\u125D"+
-        "\u125E\u125F\u1260\u1261\u1262\u1263\u1264\u1265"+
-        "\u1266\u1267\u1268\u1269\u126A\u126B\u126C\u126D"+
-        "\u126E\u126F\u1270\u1271\u1272\u1273\u1274\u1275"+
-        "\u1276\u1277\u1278\u1279\u127A\u127B\u127C\u127D"+
-        "\u127E\u127F\u1280\u1281\u1282\u1283\u1284\u1285"+
-        "\u1286\u1287\u1288\u1289\u128A\u128B\u128C\u128D"+
-        "\u128E\u128F\u1290\u1291\u1292\u1293\u1294\u1295"+
-        "\u1296\u1297\u1298\u1299\u129A\u129B\u129C\u129D"+
-        "\u129E\u129F\u12A0\u12A1\u12A2\u12A3\u12A4\u12A5"+
-        "\u12A6\u12A7\u12A8\u12A9\u12AA\u12AB\u12AC\u12AD"+
-        "\u12AE\u12AF\u12B0\u12B1\u12B2\u12B3\u12B4\u12B5"+
-        "\u12B6\u12B7\u12B8\u12B9\u12BA\u12BB\u12BC\u12BD"+
-        "\u12BE\u12BF\u12C0\u12C1\u12C2\u12C3\u12C4\u12C5"+
-        "\u12C6\u12C7\u12C8\u12C9\u12CA\u12CB\u12CC\u12CD"+
-        "\u12CE\u12CF\u12D0\u12D1\u12D2\u12D3\u12D4\u12D5"+
-        "\u12D6\u12D7\u12D8\u12D9\u12DA\u12DB\u12DC\u12DD"+
-        "\u12DE\u12DF\u12E0\u12E1\u12E2\u12E3\u12E4\u12E5"+
-        "\u12E6\u12E7\u12E8\u12E9\u12EA\u12EB\u12EC\u12ED"+
-        "\u12EE\u12EF\u12F0\u12F1\u12F2\u12F3\u12F4\u12F5"+
-        "\u12F6\u12F7\u12F8\u12F9\u12FA\u12FB\u12FC\u12FD"+
-        "\u12FE\u12FF\u1300\u1301\u1302\u1303\u1304\u1305"+
-        "\u1306\u1307\u1308\u1309\u130A\u130B\u130C\u130D"+
-        "\u130E\u130F\u1310\u1311\u1312\u1313\u1314\u1315"+
-        "\u1316\u1317\u1318\u1319\u131A\u131B\u131C\u131D"+
-        "\u131E\u131F\u1320\u1321\u1322\u1323\u1324\u1325"+
-        "\u1326\u1327\u1328\u1329\u132A\u132B\u132C\u132D"+
-        "\u132E\u132F\u1330\u1331\u1332\u1333\u1334\u1335"+
-        "\u1336\u1337\u1338\u1339\u133A\u133B\u133C\u133D"+
-        "\u133E\u133F\u1340\u1341\u1342\u1343\u1344\u1345"+
-        "\u1346\u1347\u1348\u1349\u134A\u134B\u134C\u134D"+
-        "\u134E\u134F\u1350\u1351\u1352\u1353\u1354\u1355"+
-        "\u1356\u1357\u1358\u1359\u135A\u135B\u135C\u135D"+
-        "\u135E\u135F\u1360\u1361\u1362\u1363\u1364\u1365"+
-        "\u1366\u1367\u1368\u1369\u136A\u136B\u136C\u136D"+
-        "\u136E\u136F\u1370\u1371\u1372\u1373\u1374\u1375"+
-        "\u1376\u1377\u1378\u1379\u137A\u137B\u137C\u137D"+
-        "\u137E\u137F\u1380\u1381\u1382\u1383\u1384\u1385"+
-        "\u1386\u1387\u1388\u1389\u138A\u138B\u138C\u138D"+
-        "\u138E\u138F\u1390\u1391\u1392\u1393\u1394\u1395"+
-        "\u1396\u1397\u1398\u1399\u139A\u139B\u139C\u139D"+
-        "\u139E\u139F\u13A0\u13A1\u13A2\u13A3\u13A4\u13A5"+
-        "\u13A6\u13A7\u13A8\u13A9\u13AA\u13AB\u13AC\u13AD"+
-        "\u13AE\u13AF\u13B0\u13B1\u13B2\u13B3\u13B4\u13B5"+
-        "\u13B6\u13B7\u13B8\u13B9\u13BA\u13BB\u13BC\u13BD"+
-        "\u13BE\u13BF\u13C0\u13C1\u13C2\u13C3\u13C4\u13C5"+
-        "\u13C6\u13C7\u13C8\u13C9\u13CA\u13CB\u13CC\u13CD"+
-        "\u13CE\u13CF\u13D0\u13D1\u13D2\u13D3\u13D4\u13D5"+
-        "\u13D6\u13D7\u13D8\u13D9\u13DA\u13DB\u13DC\u13DD"+
-        "\u13DE\u13DF\u13E0\u13E1\u13E2\u13E3\u13E4\u13E5"+
-        "\u13E6\u13E7\u13E8\u13E9\u13EA\u13EB\u13EC\u13ED"+
-        "\u13EE\u13EF\u13F0\u13F1\u13F2\u13F3\u13F4\u13F5"+
-        "\u13F6\u13F7\u13F8\u13F9\u13FA\u13FB\u13FC\u13FD"+
-        "\u13FE\u13FF\u1400\u1401\u1402\u1403\u1404\u1405"+
-        "\u1406\u1407\u1408\u1409\u140A\u140B\u140C\u140D"+
-        "\u140E\u140F\u1410\u1411\u1412\u1413\u1414\u1415"+
-        "\u1416\u1417\u1418\u1419\u141A\u141B\u141C\u141D"+
-        "\u141E\u141F\u1420\u1421\u1422\u1423\u1424\u1425"+
-        "\u1426\u1427\u1428\u1429\u142A\u142B\u142C\u142D"+
-        "\u142E\u142F\u1430\u1431\u1432\u1433\u1434\u1435"+
-        "\u1436\u1437\u1438\u1439\u143A\u143B\u143C\u143D"+
-        "\u143E\u143F\u1440\u1441\u1442\u1443\u1444\u1445"+
-        "\u1446\u1447\u1448\u1449\u144A\u144B\u144C\u144D"+
-        "\u144E\u144F\u1450\u1451\u1452\u1453\u1454\u1455"+
-        "\u1456\u1457\u1458\u1459\u145A\u145B\u145C\u145D"+
-        "\u145E\u145F\u1460\u1461\u1462\u1463\u1464\u1465"+
-        "\u1466\u1467\u1468\u1469\u146A\u146B\u146C\u146D"+
-        "\u146E\u146F\u1470\u1471\u1472\u1473\u1474\u1475"+
-        "\u1476\u1477\u1478\u1479\u147A\u147B\u147C\u147D"+
-        "\u147E\u147F\u1480\u1481\u1482\u1483\u1484\u1485"+
-        "\u1486\u1487\u1488\u1489\u148A\u148B\u148C\u148D"+
-        "\u148E\u148F\u1490\u1491\u1492\u1493\u1494\u1495"+
-        "\u1496\u1497\u1498\u1499\u149A\u149B\u149C\u149D"+
-        "\u149E\u149F\u14A0\u14A1\u14A2\u14A3\u14A4\u14A5"+
-        "\u14A6\u14A7\u14A8\u14A9\u14AA\u14AB\u14AC\u14AD"+
-        "\u14AE\u14AF\u14B0\u14B1\u14B2\u14B3\u14B4\u14B5"+
-        "\u14B6\u14B7\u14B8\u14B9\u14BA\u14BB\u14BC\u14BD"+
-        "\u14BE\u14BF\u14C0\u14C1\u14C2\u14C3\u14C4\u14C5"+
-        "\u14C6\u14C7\u14C8\u14C9\u14CA\u14CB\u14CC\u14CD"+
-        "\u14CE\u14CF\u14D0\u14D1\u14D2\u14D3\u14D4\u14D5"+
-        "\u14D6\u14D7\u14D8\u14D9\u14DA\u14DB\u14DC\u14DD"+
-        "\u14DE\u14DF\u14E0\u14E1\u14E2\u14E3\u14E4\u14E5"+
-        "\u14E6\u14E7\u14E8\u14E9\u14EA\u14EB\u14EC\u14ED"+
-        "\u14EE\u14EF\u14F0\u14F1\u14F2\u14F3\u14F4\u14F5"+
-        "\u14F6\u14F7\u14F8\u14F9\u14FA\u14FB\u14FC\u14FD"+
-        "\u14FE\u14FF\u1500\u1501\u1502\u1503\u1504\u1505"+
-        "\u1506\u1507\u1508\u1509\u150A\u150B\u150C\u150D"+
-        "\u150E\u150F\u1510\u1511\u1512\u1513\u1514\u1515"+
-        "\u1516\u1517\u1518\u1519\u151A\u151B\u151C\u151D"+
-        "\u151E\u151F\u1520\u1521\u1522\u1523\u1524\u1525"+
-        "\u1526\u1527\u1528\u1529\u152A\u152B\u152C\u152D"+
-        "\u152E\u152F\u1530\u1531\u1532\u1533\u1534\u1535"+
-        "\u1536\u1537\u1538\u1539\u153A\u153B\u153C\u153D"+
-        "\u153E\u153F\u1540\u1541\u1542\u1543\u1544\u1545"+
-        "\u1546\u1547\u1548\u1549\u154A\u154B\u154C\u154D"+
-        "\u154E\u154F\u1550\u1551\u1552\u1553\u1554\u1555"+
-        "\u1556\u1557\u1558\u1559\u155A\u155B\u155C\u155D"+
-        "\u155E\u155F\u1560\u1561\u1562\u1563\u1564\u1565"+
-        "\u1566\u1567\u1568\u1569\u156A\u156B\u156C\u156D"+
-        "\u156E\u156F\u1570\u1571\u1572\u1573\u1574\u1575"+
-        "\u1576\u1577\u1578\u1579\u157A\u157B\u157C\u157D"+
-        "\u157E\u157F\u1580\u1581\u1582\u1583\u1584\u1585"+
-        "\u1586\u1587\u1588\u1589\u158A\u158B\u158C\u158D"+
-        "\u158E\u158F\u1590\u1591\u1592\u1593\u1594\u1595"+
-        "\u1596\u1597\u1598\u1599\u159A\u159B\u159C\u159D"+
-        "\u159E\u159F\u15A0\u15A1\u15A2\u15A3\u15A4\u15A5"+
-        "\u15A6\u15A7\u15A8\u15A9\u15AA\u15AB\u15AC\u15AD"+
-        "\u15AE\u15AF\u15B0\u15B1\u15B2\u15B3\u15B4\u15B5"+
-        "\u15B6\u15B7\u15B8\u15B9\u15BA\u15BB\u15BC\u15BD"+
-        "\u15BE\u15BF\u15C0\u15C1\u15C2\u15C3\u15C4\u15C5"+
-        "\u15C6\u15C7\u15C8\u15C9\u15CA\u15CB\u15CC\u15CD"+
-        "\u15CE\u15CF\u15D0\u15D1\u15D2\u15D3\u15D4\u15D5"+
-        "\u15D6\u15D7\u15D8\u15D9\u15DA\u15DB\u15DC\u15DD"+
-        "\u15DE\u15DF\u15E0\u15E1\u15E2\u15E3\u15E4\u15E5"+
-        "\u15E6\u15E7\u15E8\u15E9\u15EA\u15EB\u15EC\u15ED"+
-        "\u15EE\u15EF\u15F0\u15F1\u15F2\u15F3\u15F4\u15F5"+
-        "\u15F6\u15F7\u15F8\u15F9\u15FA\u15FB\u15FC\u15FD"+
-        "\u15FE\u15FF\u1600\u1601\u1602\u1603\u1604\u1605"+
-        "\u1606\u1607\u1608\u1609\u160A\u160B\u160C\u160D"+
-        "\u160E\u160F\u1610\u1611\u1612\u1613\u1614\u1615"+
-        "\u1616\u1617\u1618\u1619\u161A\u161B\u161C\u161D"+
-        "\u161E\u161F\u1620\u1621\u1622\u1623\u1624\u1625"+
-        "\u1626\u1627\u1628\u1629\u162A\u162B\u162C\u162D"+
-        "\u162E\u162F\u1630\u1631\u1632\u1633\u1634\u1635"+
-        "\u1636\u1637\u1638\u1639\u163A\u163B\u163C\u163D"+
-        "\u163E\u163F\u1640\u1641\u1642\u1643\u1644\u1645"+
-        "\u1646\u1647\u1648\u1649\u164A\u164B\u164C\u164D"+
-        "\u164E\u164F\u1650\u1651\u1652\u1653\u1654\u1655"+
-        "\u1656\u1657\u1658\u1659\u165A\u165B\u165C\u165D"+
-        "\u165E\u165F\u1660\u1661\u1662\u1663\u1664\u1665"+
-        "\u1666\u1667\u1668\u1669\u166A\u166B\u166C\u166D"+
-        "\u166E\u166F\u1670\u1671\u1672\u1673\u1674\u1675"+
-        "\u1676\u1677\u1678\u1679\u167A\u167B\u167C\u167D"+
-        "\u167E\u167F\u1680\u1681\u1682\u1683\u1684\u1685"+
-        "\u1686\u1687\u1688\u1689\u168A\u168B\u168C\u168D"+
-        "\u168E\u168F\u1690\u1691\u1692\u1693\u1694\u1695"+
-        "\u1696\u1697\u1698\u1699\u169A\u169B\u169C\u169D"+
-        "\u169E\u169F\u16A0\u16A1\u16A2\u16A3\u16A4\u16A5"+
-        "\u16A6\u16A7\u16A8\u16A9\u16AA\u16AB\u16AC\u16AD"+
-        "\u16AE\u16AF\u16B0\u16B1\u16B2\u16B3\u16B4\u16B5"+
-        "\u16B6\u16B7\u16B8\u16B9\u16BA\u16BB\u16BC\u16BD"+
-        "\u16BE\u16BF\u16C0\u16C1\u16C2\u16C3\u16C4\u16C5"+
-        "\u16C6\u16C7\u16C8\u16C9\u16CA\u16CB\u16CC\u16CD"+
-        "\u16CE\u16CF\u16D0\u16D1\u16D2\u16D3\u16D4\u16D5"+
-        "\u16D6\u16D7\u16D8\u16D9\u16DA\u16DB\u16DC\u16DD"+
-        "\u16DE\u16DF\u16E0\u16E1\u16E2\u16E3\u16E4\u16E5"+
-        "\u16E6\u16E7\u16E8\u16E9\u16EA\u16EB\u16EC\u16ED"+
-        "\u16EE\u16EF\u16F0\u16F1\u16F2\u16F3\u16F4\u16F5"+
-        "\u16F6\u16F7\u16F8\u16F9\u16FA\u16FB\u16FC\u16FD"+
-        "\u16FE\u16FF\u1700\u1701\u1702\u1703\u1704\u1705"+
-        "\u1706\u1707\u1708\u1709\u170A\u170B\u170C\u170D"+
-        "\u170E\u170F\u1710\u1711\u1712\u1713\u1714\u1715"+
-        "\u1716\u1717\u1718\u1719\u171A\u171B\u171C\u171D"+
-        "\u171E\u171F\u1720\u1721\u1722\u1723\u1724\u1725"+
-        "\u1726\u1727\u1728\u1729\u172A\u172B\u172C\u172D"+
-        "\u172E\u172F\u1730\u1731\u1732\u1733\u1734\u1735"+
-        "\u1736\u1737\u1738\u1739\u173A\u173B\u173C\u173D"+
-        "\u173E\u173F\u1740\u1741\u1742\u1743\u1744\u1745"+
-        "\u1746\u1747\u1748\u1749\u174A\u174B\u174C\u174D"+
-        "\u174E\u174F\u1750\u1751\u1752\u1753\u1754\u1755"+
-        "\u1756\u1757\u1758\u1759\u175A\u175B\u175C\u175D"+
-        "\u175E\u175F\u1760\u1761\u1762\u1763\u1764\u1765"+
-        "\u1766\u1767\u1768\u1769\u176A\u176B\u176C\u176D"+
-        "\u176E\u176F\u1770\u1771\u1772\u1773\u1774\u1775"+
-        "\u1776\u1777\u1778\u1779\u177A\u177B\u177C\u177D"+
-        "\u177E\u177F\u1780\u1781\u1782\u1783\u1784\u1785"+
-        "\u1786\u1787\u1788\u1789\u178A\u178B\u178C\u178D"+
-        "\u178E\u178F\u1790\u1791\u1792\u1793\u1794\u1795"+
-        "\u1796\u1797\u1798\u1799\u179A\u179B\u179C\u179D"+
-        "\u179E\u179F\u17A0\u17A1\u17A2\u17A3\u17A4\u17A5"+
-        "\u17A6\u17A7\u17A8\u17A9\u17AA\u17AB\u17AC\u17AD"+
-        "\u17AE\u17AF\u17B0\u17B1\u17B2\u17B3\u17B4\u17B5"+
-        "\u17B6\u17B7\u17B8\u17B9\u17BA\u17BB\u17BC\u17BD"+
-        "\u17BE\u17BF\u17C0\u17C1\u17C2\u17C3\u17C4\u17C5"+
-        "\u17C6\u17C7\u17C8\u17C9\u17CA\u17CB\u17CC\u17CD"+
-        "\u17CE\u17CF\u17D0\u17D1\u17D2\u17D3\u17D4\u17D5"+
-        "\u17D6\u17D7\u17D8\u17D9\u17DA\u17DB\u17DC\u17DD"+
-        "\u17DE\u17DF\u17E0\u17E1\u17E2\u17E3\u17E4\u17E5"+
-        "\u17E6\u17E7\u17E8\u17E9\u17EA\u17EB\u17EC\u17ED"+
-        "\u17EE\u17EF\u17F0\u17F1\u17F2\u17F3\u17F4\u17F5"+
-        "\u17F6\u17F7\u17F8\u17F9\u17FA\u17FB\u17FC\u17FD"+
-        "\u17FE\u17FF\u1800\u1801\u1802\u1803\u1804\u1805"+
-        "\u1806\u1807\u1808\u1809\u180A\u180B\u180C\u180D"+
-        "\u180E\u180F\u1810\u1811\u1812\u1813\u1814\u1815"+
-        "\u1816\u1817\u1818\u1819\u181A\u181B\u181C\u181D"+
-        "\u181E\u181F\u1820\u1821\u1822\u1823\u1824\u1825"+
-        "\u1826\u1827\u1828\u1829\u182A\u182B\u182C\u182D"+
-        "\u182E\u182F\u1830\u1831\u1832\u1833\u1834\u1835"+
-        "\u1836\u1837\u1838\u1839\u183A\u183B\u183C\u183D"+
-        "\u183E\u183F\u1840\u1841\u1842\u1843\u1844\u1845"+
-        "\u1846\u1847\u1848\u1849\u184A\u184B\u184C\u184D"+
-        "\u184E\u184F\u1850\u1851\u1852\u1853\u1854\u1855"+
-        "\u1856\u1857\u1858\u1859\u185A\u185B\u185C\u185D"+
-        "\u185E\u185F\u1860\u1861\u1862\u1863\u1864\u1865"+
-        "\u1866\u1867\u1868\u1869\u186A\u186B\u186C\u186D"+
-        "\u186E\u186F\u1870\u1871\u1872\u1873\u1874\u1875"+
-        "\u1876\u1877\u1878\u1879\u187A\u187B\u187C\u187D"+
-        "\u187E\u187F\u1880\u1881\u1882\u1883\u1884\u1885"+
-        "\u1886\u1887\u1888\u1889\u188A\u188B\u188C\u188D"+
-        "\u188E\u188F\u1890\u1891\u1892\u1893\u1894\u1895"+
-        "\u1896\u1897\u1898\u1899\u189A\u189B\u189C\u189D"+
-        "\u189E\u189F\u18A0\u18A1\u18A2\u18A3\u18A4\u18A5"+
-        "\u18A6\u18A7\u18A8\u18A9\u18AA\u18AB\u18AC\u18AD"+
-        "\u18AE\u18AF\u18B0\u18B1\u18B2\u18B3\u18B4\u18B5"+
-        "\u18B6\u18B7\u18B8\u18B9\u18BA\u18BB\u18BC\u18BD"+
-        "\u18BE\u18BF\u18C0\u18C1\u18C2\u18C3\u18C4\u18C5"+
-        "\u18C6\u18C7\u18C8\u18C9\u18CA\u18CB\u18CC\u18CD"+
-        "\u18CE\u18CF\u18D0\u18D1\u18D2\u18D3\u18D4\u18D5"+
-        "\u18D6\u18D7\u18D8\u18D9\u18DA\u18DB\u18DC\u18DD"+
-        "\u18DE\u18DF\u18E0\u18E1\u18E2\u18E3\u18E4\u18E5"+
-        "\u18E6\u18E7\u18E8\u18E9\u18EA\u18EB\u18EC\u18ED"+
-        "\u18EE\u18EF\u18F0\u18F1\u18F2\u18F3\u18F4\u18F5"+
-        "\u18F6\u18F7\u18F8\u18F9\u18FA\u18FB\u18FC\u18FD"+
-        "\u18FE\u18FF\u1900\u1901\u1902\u1903\u1904\u1905"+
-        "\u1906\u1907\u1908\u1909\u190A\u190B\u190C\u190D"+
-        "\u190E\u190F\u1910\u1911\u1912\u1913\u1914\u1915"+
-        "\u1916\u1917\u1918\u1919\u191A\u191B\u191C\u191D"+
-        "\u191E\u191F\u1920\u1921\u1922\u1923\u1924\u1925"+
-        "\u1926\u1927\u1928\u1929\u192A\u192B\u192C\u192D"+
-        "\u192E\u192F\u1930\u1931\u1932\u1933\u1934\u1935"+
-        "\u1936\u1937\u1938\u1939\u193A\u193B\u193C\u193D"+
-        "\u193E\u193F\u1940\u1941\u1942\u1943\u1944\u1945"+
-        "\u1946\u1947\u1948\u1949\u194A\u194B\u194C\u194D"+
-        "\u194E\u194F\u1950\u1951\u1952\u1953\u1954\u1955"+
-        "\u1956\u1957\u1958\u1959\u195A\u195B\u195C\u195D"+
-        "\u195E\u195F\u1960\u1961\u1962\u1963\u1964\u1965"+
-        "\u1966\u1967\u1968\u1969\u196A\u196B\u196C\u196D"+
-        "\u196E\u196F\u1970\u1971\u1972\u1973\u1974\u1975"+
-        "\u1976\u1977\u1978\u1979\u197A\u197B\u197C\u197D"+
-        "\u197E\u197F\u1980\u1981\u1982\u1983\u1984\u1985"+
-        "\u1986\u1987\u1988\u1989\u198A\u198B\u198C\u198D"+
-        "\u198E\u198F\u1990\u1991\u1992\u1993\u1994\u1995"+
-        "\u1996\u1997\u1998\u1999\u199A\u199B\u199C\u199D"+
-        "\u199E\u199F\u19A0\u19A1\u19A2\u19A3\u19A4\u19A5"+
-        "\u19A6\u19A7\u19A8\u19A9\u19AA\u19AB\u19AC\u19AD"+
-        "\u19AE\u19AF\u19B0\u19B1\u19B2\u19B3\u19B4\u19B5"+
-        "\u19B6\u19B7\u19B8\u19B9\u19BA\u19BB\u19BC\u19BD"+
-        "\u19BE\u19BF\u19C0\u19C1\u19C2\u19C3\u19C4\u19C5"+
-        "\u19C6\u19C7\u19C8\u19C9\u19CA\u19CB\u19CC\u19CD"+
-        "\u19CE\u19CF\u19D0\u19D1\u19D2\u19D3\u19D4\u19D5"+
-        "\u19D6\u19D7\u19D8\u19D9\u19DA\u19DB\u19DC\u19DD"+
-        "\u19DE\u19DF\u19E0\u19E1\u19E2\u19E3\u19E4\u19E5"+
-        "\u19E6\u19E7\u19E8\u19E9\u19EA\u19EB\u19EC\u19ED"+
-        "\u19EE\u19EF\u19F0\u19F1\u19F2\u19F3\u19F4\u19F5"+
-        "\u19F6\u19F7\u19F8\u19F9\u19FA\u19FB\u19FC\u19FD"+
-        "\u19FE\u19FF\u1A00\u1A01\u1A02\u1A03\u1A04\u1A05"+
-        "\u1A06\u1A07\u1A08\u1A09\u1A0A\u1A0B\u1A0C\u1A0D"+
-        "\u1A0E\u1A0F\u1A10\u1A11\u1A12\u1A13\u1A14\u1A15"+
-        "\u1A16\u1A17\u1A18\u1A19\u1A1A\u1A1B\u1A1C\u1A1D"+
-        "\u1A1E\u1A1F\u1A20\u1A21\u1A22\u1A23\u1A24\u1A25"+
-        "\u1A26\u1A27\u1A28\u1A29\u1A2A\u1A2B\u1A2C\u1A2D"+
-        "\u1A2E\u1A2F\u1A30\u1A31\u1A32\u1A33\u1A34\u1A35"+
-        "\u1A36\u1A37\u1A38\u1A39\u1A3A\u1A3B\u1A3C\u1A3D"+
-        "\u1A3E\u1A3F\u1A40\u1A41\u1A42\u1A43\u1A44\u1A45"+
-        "\u1A46\u1A47\u1A48\u1A49\u1A4A\u1A4B\u1A4C\u1A4D"+
-        "\u1A4E\u1A4F\u1A50\u1A51\u1A52\u1A53\u1A54\u1A55"+
-        "\u1A56\u1A57\u1A58\u1A59\u1A5A\u1A5B\u1A5C\u1A5D"+
-        "\u1A5E\u1A5F\u1A60\u1A61\u1A62\u1A63\u1A64\u1A65"+
-        "\u1A66\u1A67\u1A68\u1A69\u1A6A\u1A6B\u1A6C\u1A6D"+
-        "\u1A6E\u1A6F\u1A70\u1A71\u1A72\u1A73\u1A74\u1A75"+
-        "\u1A76\u1A77\u1A78\u1A79\u1A7A\u1A7B\u1A7C\u1A7D"+
-        "\u1A7E\u1A7F\u1A80\u1A81\u1A82\u1A83\u1A84\u1A85"+
-        "\u1A86\u1A87\u1A88\u1A89\u1A8A\u1A8B\u1A8C\u1A8D"+
-        "\u1A8E\u1A8F\u1A90\u1A91\u1A92\u1A93\u1A94\u1A95"+
-        "\u1A96\u1A97\u1A98\u1A99\u1A9A\u1A9B\u1A9C\u1A9D"+
-        "\u1A9E\u1A9F\u1AA0\u1AA1\u1AA2\u1AA3\u1AA4\u1AA5"+
-        "\u1AA6\u1AA7\u1AA8\u1AA9\u1AAA\u1AAB\u1AAC\u1AAD"+
-        "\u1AAE\u1AAF\u1AB0\u1AB1\u1AB2\u1AB3\u1AB4\u1AB5"+
-        "\u1AB6\u1AB7\u1AB8\u1AB9\u1ABA\u1ABB\u1ABC\u1ABD"+
-        "\u1ABE\u1ABF\u1AC0\u1AC1\u1AC2\u1AC3\u1AC4\u1AC5"+
-        "\u1AC6\u1AC7\u1AC8\u1AC9\u1ACA\u1ACB\u1ACC\u1ACD"+
-        "\u1ACE\u1ACF\u1AD0\u1AD1\u1AD2\u1AD3\u1AD4\u1AD5"+
-        "\u1AD6\u1AD7\u1AD8\u1AD9\u1ADA\u1ADB\u1ADC\u1ADD"+
-        "\u1ADE\u1ADF\u1AE0\u1AE1\u1AE2\u1AE3\u1AE4\u1AE5"+
-        "\u1AE6\u1AE7\u1AE8\u1AE9\u1AEA\u1AEB\u1AEC\u1AED"+
-        "\u1AEE\u1AEF\u1AF0\u1AF1\u1AF2\u1AF3\u1AF4\u1AF5"+
-        "\u1AF6\u1AF7\u1AF8\u1AF9\u1AFA\u1AFB\u1AFC\u1AFD"+
-        "\u1AFE\u1AFF\u1B00\u1B01\u1B02\u1B03\u1B04\u1B05"+
-        "\u1B06\u1B07\u1B08\u1B09\u1B0A\u1B0B\u1B0C\u1B0D"+
-        "\u1B0E\u1B0F\u1B10\u1B11\u1B12\u1B13\u1B14\u1B15"+
-        "\u1B16\u1B17\u1B18\u1B19\u1B1A\u1B1B\u1B1C\u1B1D"+
-        "\u1B1E\u1B1F\u1B20\u1B21\u1B22\u1B23\u1B24\u1B25"+
-        "\u1B26\u1B27\u1B28\u1B29\u1B2A\u1B2B\u1B2C\u1B2D"+
-        "\u1B2E\u1B2F\u1B30\u1B31\u1B32\u1B33\u1B34\u1B35"+
-        "\u1B36\u1B37\u1B38\u1B39\u1B3A\u1B3B\u1B3C\u1B3D"+
-        "\u1B3E\u1B3F\u1B40\u1B41\u1B42\u1B43\u1B44\u1B45"+
-        "\u1B46\u1B47\u1B48\u1B49\u1B4A\u1B4B\u1B4C\u1B4D"+
-        "\u1B4E\u1B4F\u1B50\u1B51\u1B52\u1B53\u1B54\u1B55"+
-        "\u1B56\u1B57\u1B58\u1B59\u1B5A\u1B5B\u1B5C\u1B5D"+
-        "\u1B5E\u1B5F\u1B60\u1B61\u1B62\u1B63\u1B64\u1B65"+
-        "\u1B66\u1B67\u1B68\u1B69\u1B6A\u1B6B\u1B6C\u1B6D"+
-        "\u1B6E\u1B6F\u1B70\u1B71\u1B72\u1B73\u1B74\u1B75"+
-        "\u1B76\u1B77\u1B78\u1B79\u1B7A\u1B7B\u1B7C\u1B7D"+
-        "\u1B7E\u1B7F\u1B80\u1B81\u1B82\u1B83\u1B84\u1B85"+
-        "\u1B86\u1B87\u1B88\u1B89\u1B8A\u1B8B\u1B8C\u1B8D"+
-        "\u1B8E\u1B8F\u1B90\u1B91\u1B92\u1B93\u1B94\u1B95"+
-        "\u1B96\u1B97\u1B98\u1B99\u1B9A\u1B9B\u1B9C\u1B9D"+
-        "\u1B9E\u1B9F\u1BA0\u1BA1\u1BA2\u1BA3\u1BA4\u1BA5"+
-        "\u1BA6\u1BA7\u1BA8\u1BA9\u1BAA\u1BAB\u1BAC\u1BAD"+
-        "\u1BAE\u1BAF\u1BB0\u1BB1\u1BB2\u1BB3\u1BB4\u1BB5"+
-        "\u1BB6\u1BB7\u1BB8\u1BB9\u1BBA\u1BBB\u1BBC\u1BBD"+
-        "\u1BBE\u1BBF\u1BC0\u1BC1\u1BC2\u1BC3\u1BC4\u1BC5"+
-        "\u1BC6\u1BC7\u1BC8\u1BC9\u1BCA\u1BCB\u1BCC\u1BCD"+
-        "\u1BCE\u1BCF\u1BD0\u1BD1\u1BD2\u1BD3\u1BD4\u1BD5"+
-        "\u1BD6\u1BD7\u1BD8\u1BD9\u1BDA\u1BDB\u1BDC\u1BDD"+
-        "\u1BDE\u1BDF\u1BE0\u1BE1\u1BE2\u1BE3\u1BE4\u1BE5"+
-        "\u1BE6\u1BE7\u1BE8\u1BE9\u1BEA\u1BEB\u1BEC\u1BED"+
-        "\u1BEE\u1BEF\u1BF0\u1BF1\u1BF2\u1BF3\u1BF4\u1BF5"+
-        "\u1BF6\u1BF7\u1BF8\u1BF9\u1BFA\u1BFB\u1BFC\u1BFD"+
-        "\u1BFE\u1BFF\u1C00\u1C01\u1C02\u1C03\u1C04\u1C05"+
-        "\u1C06\u1C07\u1C08\u1C09\u1C0A\u1C0B\u1C0C\u1C0D"+
-        "\u1C0E\u1C0F\u1C10\u1C11\u1C12\u1C13\u1C14\u1C15"+
-        "\u1C16\u1C17\u1C18\u1C19\u1C1A\u1C1B\u1C1C\u1C1D"+
-        "\u1C1E\u1C1F\u1C20\u1C21\u1C22\u1C23\u1C24\u1C25"+
-        "\u1C26\u1C27\u1C28\u1C29\u1C2A\u1C2B\u1C2C\u1C2D"+
-        "\u1C2E\u1C2F\u1C30\u1C31\u1C32\u1C33\u1C34\u1C35"+
-        "\u1C36\u1C37\u1C38\u1C39\u1C3A\u1C3B\u1C3C\u1C3D"+
-        "\u1C3E\u1C3F\u1C40\u1C41\u1C42\u1C43\u1C44\u1C45"+
-        "\u1C46\u1C47\u1C48\u1C49\u1C4A\u1C4B\u1C4C\u1C4D"+
-        "\u1C4E\u1C4F\u1C50\u1C51\u1C52\u1C53\u1C54\u1C55"+
-        "\u1C56\u1C57\u1C58\u1C59\u1C5A\u1C5B\u1C5C\u1C5D"+
-        "\u1C5E\u1C5F\u1C60\u1C61\u1C62\u1C63\u1C64\u1C65"+
-        "\u1C66\u1C67\u1C68\u1C69\u1C6A\u1C6B\u1C6C\u1C6D"+
-        "\u1C6E\u1C6F\u1C70\u1C71\u1C72\u1C73\u1C74\u1C75"+
-        "\u1C76\u1C77\u1C78\u1C79\u1C7A\u1C7B\u1C7C\u1C7D"+
-        "\u1C7E\u1C7F\u1C80\u1C81\u1C82\u1C83\u1C84\u1C85"+
-        "\u1C86\u1C87\u1C88\u1C89\u1C8A\u1C8B\u1C8C\u1C8D"+
-        "\u1C8E\u1C8F\u1C90\u1C91\u1C92\u1C93\u1C94\u1C95"+
-        "\u1C96\u1C97\u1C98\u1C99\u1C9A\u1C9B\u1C9C\u1C9D"+
-        "\u1C9E\u1C9F\u1CA0\u1CA1\u1CA2\u1CA3\u1CA4\u1CA5"+
-        "\u1CA6\u1CA7\u1CA8\u1CA9\u1CAA\u1CAB\u1CAC\u1CAD"+
-        "\u1CAE\u1CAF\u1CB0\u1CB1\u1CB2\u1CB3\u1CB4\u1CB5"+
-        "\u1CB6\u1CB7\u1CB8\u1CB9\u1CBA\u1CBB\u1CBC\u1CBD"+
-        "\u1CBE\u1CBF\u1CC0\u1CC1\u1CC2\u1CC3\u1CC4\u1CC5"+
-        "\u1CC6\u1CC7\u1CC8\u1CC9\u1CCA\u1CCB\u1CCC\u1CCD"+
-        "\u1CCE\u1CCF\u1CD0\u1CD1\u1CD2\u1CD3\u1CD4\u1CD5"+
-        "\u1CD6\u1CD7\u1CD8\u1CD9\u1CDA\u1CDB\u1CDC\u1CDD"+
-        "\u1CDE\u1CDF\u1CE0\u1CE1\u1CE2\u1CE3\u1CE4\u1CE5"+
-        "\u1CE6\u1CE7\u1CE8\u1CE9\u1CEA\u1CEB\u1CEC\u1CED"+
-        "\u1CEE\u1CEF\u1CF0\u1CF1\u1CF2\u1CF3\u1CF4\u1CF5"+
-        "\u1CF6\u1CF7\u1CF8\u1CF9\u1CFA\u1CFB\u1CFC\u1CFD"+
-        "\u1CFE\u1CFF\u1D00\u1D01\u1D02\u1D03\u1D04\u1D05"+
-        "\u1D06\u1D07\u1D08\u1D09\u1D0A\u1D0B\u1D0C\u1D0D"+
-        "\u1D0E\u1D0F\u1D10\u1D11\u1D12\u1D13\u1D14\u1D15"+
-        "\u1D16\u1D17\u1D18\u1D19\u1D1A\u1D1B\u1D1C\u1D1D"+
-        "\u1D1E\u1D1F\u1D20\u1D21\u1D22\u1D23\u1D24\u1D25"+
-        "\u1D26\u1D27\u1D28\u1D29\u1D2A\u1D2B\u1D2C\u1D2D"+
-        "\u1D2E\u1D2F\u1D30\u1D31\u1D32\u1D33\u1D34\u1D35"+
-        "\u1D36\u1D37\u1D38\u1D39\u1D3A\u1D3B\u1D3C\u1D3D"+
-        "\u1D3E\u1D3F\u1D40\u1D41\u1D42\u1D43\u1D44\u1D45"+
-        "\u1D46\u1D47\u1D48\u1D49\u1D4A\u1D4B\u1D4C\u1D4D"+
-        "\u1D4E\u1D4F\u1D50\u1D51\u1D52\u1D53\u1D54\u1D55"+
-        "\u1D56\u1D57\u1D58\u1D59\u1D5A\u1D5B\u1D5C\u1D5D"+
-        "\u1D5E\u1D5F\u1D60\u1D61\u1D62\u1D63\u1D64\u1D65"+
-        "\u1D66\u1D67\u1D68\u1D69\u1D6A\u1D6B\u1D6C\u1D6D"+
-        "\u1D6E\u1D6F\u1D70\u1D71\u1D72\u1D73\u1D74\u1D75"+
-        "\u1D76\u1D77\u1D78\u1D79\u1D7A\u1D7B\u1D7C\u1D7D"+
-        "\u1D7E\u1D7F\u1D80\u1D81\u1D82\u1D83\u1D84\u1D85"+
-        "\u1D86\u1D87\u1D88\u1D89\u1D8A\u1D8B\u1D8C\u1D8D"+
-        "\u1D8E\u1D8F\u1D90\u1D91\u1D92\u1D93\u1D94\u1D95"+
-        "\u1D96\u1D97\u1D98\u1D99\u1D9A\u1D9B\u1D9C\u1D9D"+
-        "\u1D9E\u1D9F\u1DA0\u1DA1\u1DA2\u1DA3\u1DA4\u1DA5"+
-        "\u1DA6\u1DA7\u1DA8\u1DA9\u1DAA\u1DAB\u1DAC\u1DAD"+
-        "\u1DAE\u1DAF\u1DB0\u1DB1\u1DB2\u1DB3\u1DB4\u1DB5"+
-        "\u1DB6\u1DB7\u1DB8\u1DB9\u1DBA\u1DBB\u1DBC\u1DBD"+
-        "\u1DBE\u1DBF\u1DC0\u1DC1\u1DC2\u1DC3\u1DC4\u1DC5"+
-        "\u1DC6\u1DC7\u1DC8\u1DC9\u1DCA\u1DCB\u1DCC\u1DCD"+
-        "\u1DCE\u1DCF\u1DD0\u1DD1\u1DD2\u1DD3\u1DD4\u1DD5"+
-        "\u1DD6\u1DD7\u1DD8\u1DD9\u1DDA\u1DDB\u1DDC\u1DDD"+
-        "\u1DDE\u1DDF\u1DE0\u1DE1\u1DE2\u1DE3\u1DE4\u1DE5"+
-        "\u1DE6\u1DE7\u1DE8\u1DE9\u1DEA\u1DEB\u1DEC\u1DED"+
-        "\u1DEE\u1DEF\u1DF0\u1DF1\u1DF2\u1DF3\u1DF4\u1DF5"+
-        "\u1DF6\u1DF7\u1DF8\u1DF9\u1DFA\u1DFB\u1DFC\u1DFD"+
-        "\u1DFE\u1DFF\u1E00\u1E01\u1E02\u1E03\u1E04\u1E05"+
-        "\u1E06\u1E07\u1E08\u1E09\u1E0A\u1E0B\u1E0C\u1E0D"+
-        "\u1E0E\u1E0F\u1E10\u1E11\u1E12\u1E13\u1E14\u1E15"+
-        "\u1E16\u1E17\u1E18\u1E19\u1E1A\u1E1B\u1E1C\u1E1D"+
-        "\u1E1E\u1E1F\u1E20\u1E21\u1E22\u1E23\u1E24\u1E25"+
-        "\u1E26\u1E27\u1E28\u1E29\u1E2A\u1E2B\u1E2C\u1E2D"+
-        "\u1E2E\u1E2F\u1E30\u1E31\u1E32\u1E33\u1E34\u1E35"+
-        "\u1E36\u1E37\u1E38\u1E39\u1E3A\u1E3B\u1E3C\u1E3D"+
-        "\u1E3E\u1E3F\u1E40\u1E41\u1E42\u1E43\u1E44\u1E45"+
-        "\u1E46\u1E47\u1E48\u1E49\u1E4A\u1E4B\u1E4C\u1E4D"+
-        "\u1E4E\u1E4F\u1E50\u1E51\u1E52\u1E53\u1E54\u1E55"+
-        "\u1E56\u1E57\u1E58\u1E59\u1E5A\u1E5B\u1E5C\u1E5D"+
-        "\u1E5E\u1E5F\u1E60\u1E61\u1E62\u1E63\u1E64\u1E65"+
-        "\u1E66\u1E67\u1E68\u1E69\u1E6A\u1E6B\u1E6C\u1E6D"+
-        "\u1E6E\u1E6F\u1E70\u1E71\u1E72\u1E73\u1E74\u1E75"+
-        "\u1E76\u1E77\u1E78\u1E79\u1E7A\u1E7B\u1E7C\u1E7D"+
-        "\u1E7E\u1E7F\u1E80\u1E81\u1E82\u1E83\u1E84\u1E85"+
-        "\u1E86\u1E87\u1E88\u1E89\u1E8A\u1E8B\u1E8C\u1E8D"+
-        "\u1E8E\u1E8F\u1E90\u1E91\u1E92\u1E93\u1E94\u1E95"+
-        "\u1E96\u1E97\u1E98\u1E99\u1E9A\u1E9B\u1E9C\u1E9D"+
-        "\u1E9E\u1E9F\u1EA0\u1EA1\u1EA2\u1EA3\u1EA4\u1EA5"+
-        "\u1EA6\u1EA7\u1EA8\u1EA9\u1EAA\u1EAB\u1EAC\u1EAD"+
-        "\u1EAE\u1EAF\u1EB0\u1EB1\u1EB2\u1EB3\u1EB4\u1EB5"+
-        "\u1EB6\u1EB7\u1EB8\u1EB9\u1EBA\u1EBB\u1EBC\u1EBD"+
-        "\u1EBE\u1EBF\u1EC0\u1EC1\u1EC2\u1EC3\u1EC4\u1EC5"+
-        "\u1EC6\u1EC7\u1EC8\u1EC9\u1ECA\u1ECB\u1ECC\u1ECD"+
-        "\u1ECE\u1ECF\u1ED0\u1ED1\u1ED2\u1ED3\u1ED4\u1ED5"+
-        "\u1ED6\u1ED7\u1ED8\u1ED9\u1EDA\u1EDB\u1EDC\u1EDD"+
-        "\u1EDE\u1EDF\u1EE0\u1EE1\u1EE2\u1EE3\u1EE4\u1EE5"+
-        "\u1EE6\u1EE7\u1EE8\u1EE9\u1EEA\u1EEB\u1EEC\u1EED"+
-        "\u1EEE\u1EEF\u1EF0\u1EF1\u1EF2\u1EF3\u1EF4\u1EF5"+
-        "\u1EF6\u1EF7\u1EF8\u1EF9\u1EFA\u1EFB\u1EFC\u1EFD"+
-        "\u1EFE\u1EFF\u1F00\u1F01\u1F02\u1F03\u1F04\u1F05"+
-        "\u1F06\u1F07\u1F08\u1F09\u1F0A\u1F0B\u1F0C\u1F0D"+
-        "\u1F0E\u1F0F\u1F10\u1F11\u1F12\u1F13\u1F14\u1F15"+
-        "\u1F16\u1F17\u1F18\u1F19\u1F1A\u1F1B\u1F1C\u1F1D"+
-        "\u1F1E\u1F1F\u1F20\u1F21\u1F22\u1F23\u1F24\u1F25"+
-        "\u1F26\u1F27\u1F28\u1F29\u1F2A\u1F2B\u1F2C\u1F2D"+
-        "\u1F2E\u1F2F\u1F30\u1F31\u1F32\u1F33\u1F34\u1F35"+
-        "\u1F36\u1F37\u1F38\u1F39\u1F3A\u1F3B\u1F3C\u1F3D"+
-        "\u1F3E\u1F3F\u1F40\u1F41\u1F42\u1F43\u1F44\u1F45"+
-        "\u1F46\u1F47\u1F48\u1F49\u1F4A\u1F4B\u1F4C\u1F4D"+
-        "\u1F4E\u1F4F\u1F50\u1F51\u1F52\u1F53\u1F54\u1F55"+
-        "\u1F56\u1F57\u1F58\u1F59\u1F5A\u1F5B\u1F5C\u1F5D"+
-        "\u1F5E\u1F5F\u1F60\u1F61\u1F62\u1F63\u1F64\u1F65"+
-        "\u1F66\u1F67\u1F68\u1F69\u1F6A\u1F6B\u1F6C\u1F6D"+
-        "\u1F6E\u1F6F\u1F70\u1F71\u1F72\u1F73\u1F74\u1F75"+
-        "\u1F76\u1F77\u1F78\u1F79\u1F7A\u1F7B\u1F7C\u1F7D"+
-        "\u1F7E\u1F7F\u1F80\u1F81\u1F82\u1F83\u1F84\u1F85"+
-        "\u1F86\u1F87\u1F88\u1F89\u1F8A\u1F8B\u1F8C\u1F8D"+
-        "\u1F8E\u1F8F\u1F90\u1F91\u1F92\u1F93\u1F94\u1F95"+
-        "\u1F96\u1F97\u1F98\u1F99\u1F9A\u1F9B\u1F9C\u1F9D"+
-        "\u1F9E\u1F9F\u1FA0\u1FA1\u1FA2\u1FA3\u1FA4\u1FA5"+
-        "\u1FA6\u1FA7\u1FA8\u1FA9\u1FAA\u1FAB\u1FAC\u1FAD"+
-        "\u1FAE\u1FAF\u1FB0\u1FB1\u1FB2\u1FB3\u1FB4\u1FB5"+
-        "\u1FB6\u1FB7\u1FB8\u1FB9\u1FBA\u1FBB\u1FBC\u1FBD"+
-        "\u1FBE\u1FBF\u1FC0\u1FC1\u1FC2\u1FC3\u1FC4\u1FC5"+
-        "\u1FC6\u1FC7\u1FC8\u1FC9\u1FCA\u1FCB\u1FCC\u1FCD"+
-        "\u1FCE\u1FCF\u1FD0\u1FD1\u1FD2\u1FD3\u1FD4\u1FD5"+
-        "\u1FD6\u1FD7\u1FD8\u1FD9\u1FDA\u1FDB\u1FDC\u1FDD"+
-        "\u1FDE\u1FDF\u1FE0\u1FE1\u1FE2\u1FE3\u1FE4\u1FE5"+
-        "\u1FE6\u1FE7\u1FE8\u1FE9\u1FEA\u1FEB\u1FEC\u1FED"+
-        "\u1FEE\u1FEF\u1FF0\u1FF1\u1FF2\u1FF3\u1FF4\u1FF5"+
-        "\u1FF6\u1FF7\u1FF8\u1FF9\u1FFA\u1FFB\u1FFC\u1FFD"+
-        "\u1FFE\u1FFF\u2000\u2001\u2002\u2003\u2004\u2005"+
-        "\u2006\u2007\u2008\u2009\u200A\u200B\u200C\u200D"+
-        "\u200E\u200F\u2011\u2012\u2017\u201A\u201B\u201E"+
-        "\u201F\u2020\u2021\u2022\u2023\u2024\u2027\u2028"+
-        "\u2029\u202A\u202B\u202C\u202D\u202E\u202F\u2031"+
-        "\u2034\u2036\u2037\u2038\u2039\u203A\u203C\u203D"+
-        "\u203E\u203F\u2040\u2041\u2042\u2043\u2044\u2045"+
-        "\u2046\u2047\u2048\u2049\u204A\u204B\u204C\u204D"+
-        "\u204E\u204F\u2050\u2051\u2052\u2053\u2054\u2055"+
-        "\u2056\u2057\u2058\u2059\u205A\u205B\u205C\u205D"+
-        "\u205E\u205F\u2060\u2061\u2062\u2063\u2064\u2065"+
-        "\u2066\u2067\u2068\u2069\u206A\u206B\u206C\u206D"+
-        "\u206E\u206F\u2070\u2071\u2072\u2073\u2074\u2075"+
-        "\u2076\u2077\u2078\u2079\u207A\u207B\u207C\u207D"+
-        "\u207E\u207F\u2080\u2081\u2082\u2083\u2084\u2085"+
-        "\u2086\u2087\u2088\u2089\u208A\u208B\u208C\u208D"+
-        "\u208E\u208F\u2090\u2091\u2092\u2093\u2094\u2095"+
-        "\u2096\u2097\u2098\u2099\u209A\u209B\u209C\u209D"+
-        "\u209E\u209F\u20A0\u20A1\u20A2\u20A3\u20A4\u20A5"+
-        "\u20A6\u20A7\u20A8\u20A9\u20AA\u20AB\u20AD\u20AE"+
-        "\u20AF\u20B0\u20B1\u20B2\u20B3\u20B4\u20B5\u20B6"+
-        "\u20B7\u20B8\u20B9\u20BA\u20BB\u20BC\u20BD\u20BE"+
-        "\u20BF\u20C0\u20C1\u20C2\u20C3\u20C4\u20C5\u20C6"+
-        "\u20C7\u20C8\u20C9\u20CA\u20CB\u20CC\u20CD\u20CE"+
-        "\u20CF\u20D0\u20D1\u20D2\u20D3\u20D4\u20D5\u20D6"+
-        "\u20D7\u20D8\u20D9\u20DA\u20DB\u20DC\u20DD\u20DE"+
-        "\u20DF\u20E0\u20E1\u20E2\u20E3\u20E4\u20E5\u20E6"+
-        "\u20E7\u20E8\u20E9\u20EA\u20EB\u20EC\u20ED\u20EE"+
-        "\u20EF\u20F0\u20F1\u20F2\u20F3\u20F4\u20F5\u20F6"+
-        "\u20F7\u20F8\u20F9\u20FA\u20FB\u20FC\u20FD\u20FE"+
-        "\u20FF\u2100\u2101\u2102\u2104\u2106\u2107\u2108"+
-        "\u210A\u210B\u210C\u210D\u210E\u210F\u2110\u2111"+
-        "\u2112\u2113\u2114\u2115\u2117\u2118\u2119\u211A"+
-        "\u211B\u211C\u211D\u211E\u211F\u2120\u2122\u2123"+
-        "\u2124\u2125\u2126\u2127\u2128\u2129\u212A\u212B"+
-        "\u212C\u212D\u212E\u212F\u2130\u2131\u2132\u2133";
-
-    private final static String innerDecoderIndex2=
-        "\u2134\u2135\u2136\u2137\u2138\u2139\u213A\u213B"+
-        "\u213C\u213D\u213E\u213F\u2140\u2141\u2142\u2143"+
-        "\u2144\u2145\u2146\u2147\u2148\u2149\u214A\u214B"+
-        "\u214C\u214D\u214E\u214F\u2150\u2151\u2152\u2153"+
-        "\u2154\u2155\u2156\u2157\u2158\u2159\u215A\u215B"+
-        "\u215C\u215D\u215E\u215F\u216C\u216D\u216E\u216F"+
-        "\u217A\u217B\u217C\u217D\u217E\u217F\u2180\u2181"+
-        "\u2182\u2183\u2184\u2185\u2186\u2187\u2188\u2189"+
-        "\u218A\u218B\u218C\u218D\u218E\u218F\u2194\u2195"+
-        "\u219A\u219B\u219C\u219D\u219E\u219F\u21A0\u21A1"+
-        "\u21A2\u21A3\u21A4\u21A5\u21A6\u21A7\u21A8\u21A9"+
-        "\u21AA\u21AB\u21AC\u21AD\u21AE\u21AF\u21B0\u21B1"+
-        "\u21B2\u21B3\u21B4\u21B5\u21B6\u21B7\u21B8\u21B9"+
-        "\u21BA\u21BB\u21BC\u21BD\u21BE\u21BF\u21C0\u21C1"+
-        "\u21C2\u21C3\u21C4\u21C5\u21C6\u21C7\u21C8\u21C9"+
-        "\u21CA\u21CB\u21CC\u21CD\u21CE\u21CF\u21D0\u21D1"+
-        "\u21D2\u21D3\u21D4\u21D5\u21D6\u21D7\u21D8\u21D9"+
-        "\u21DA\u21DB\u21DC\u21DD\u21DE\u21DF\u21E0\u21E1"+
-        "\u21E2\u21E3\u21E4\u21E5\u21E6\u21E7\u21E8\u21E9"+
-        "\u21EA\u21EB\u21EC\u21ED\u21EE\u21EF\u21F0\u21F1"+
-        "\u21F2\u21F3\u21F4\u21F5\u21F6\u21F7\u21F8\u21F9"+
-        "\u21FA\u21FB\u21FC\u21FD\u21FE\u21FF\u2200\u2201"+
-        "\u2202\u2203\u2204\u2205\u2206\u2207\u2209\u220A"+
-        "\u220B\u220C\u220D\u220E\u2210\u2212\u2213\u2214"+
-        "\u2216\u2217\u2218\u2219\u221B\u221C\u2221\u2222"+
-        "\u2224\u2226\u222C\u222D\u222F\u2230\u2231\u2232"+
-        "\u2233\u2238\u2239\u223A\u223B\u223C\u223E\u223F"+
-        "\u2240\u2241\u2242\u2243\u2244\u2245\u2246\u2247"+
-        "\u2249\u224A\u224B\u224D\u224E\u224F\u2250\u2251"+
-        "\u2253\u2254\u2255\u2256\u2257\u2258\u2259\u225A"+
-        "\u225B\u225C\u225D\u225E\u225F\u2262\u2263\u2268"+
-        "\u2269\u226A\u226B\u226C\u226D\u2270\u2271\u2272"+
-        "\u2273\u2274\u2275\u2276\u2277\u2278\u2279\u227A"+
-        "\u227B\u227C\u227D\u227E\u227F\u2280\u2281\u2282"+
-        "\u2283\u2284\u2285\u2286\u2287\u2288\u2289\u228A"+
-        "\u228B\u228C\u228D\u228E\u228F\u2290\u2291\u2292"+
-        "\u2293\u2294\u2296\u2297\u2298\u229A\u229B\u229C"+
-        "\u229D\u229E\u229F\u22A0\u22A1\u22A2\u22A3\u22A4"+
-        "\u22A6\u22A7\u22A8\u22A9\u22AA\u22AB\u22AC\u22AD"+
-        "\u22AE\u22AF\u22B0\u22B1\u22B2\u22B3\u22B4\u22B5"+
-        "\u22B6\u22B7\u22B8\u22B9\u22BA\u22BB\u22BC\u22BD"+
-        "\u22BE\u22C0\u22C1\u22C2\u22C3\u22C4\u22C5\u22C6"+
-        "\u22C7\u22C8\u22C9\u22CA\u22CB\u22CC\u22CD\u22CE"+
-        "\u22CF\u22D0\u22D1\u22D2\u22D3\u22D4\u22D5\u22D6"+
-        "\u22D7\u22D8\u22D9\u22DA\u22DB\u22DC\u22DD\u22DE"+
-        "\u22DF\u22E0\u22E1\u22E2\u22E3\u22E4\u22E5\u22E6"+
-        "\u22E7\u22E8\u22E9\u22EA\u22EB\u22EC\u22ED\u22EE"+
-        "\u22EF\u22F0\u22F1\u22F2\u22F3\u22F4\u22F5\u22F6"+
-        "\u22F7\u22F8\u22F9\u22FA\u22FB\u22FC\u22FD\u22FE"+
-        "\u22FF\u2300\u2301\u2302\u2303\u2304\u2305\u2306"+
-        "\u2307\u2308\u2309\u230A\u230B\u230C\u230D\u230E"+
-        "\u230F\u2310\u2311\u2313\u2314\u2315\u2316\u2317"+
-        "\u2318\u2319\u231A\u231B\u231C\u231D\u231E\u231F"+
-        "\u2320\u2321\u2322\u2323\u2324\u2325\u2326\u2327"+
-        "\u2328\u2329\u232A\u232B\u232C\u232D\u232E\u232F"+
-        "\u2330\u2331\u2332\u2333\u2334\u2335\u2336\u2337"+
-        "\u2338\u2339\u233A\u233B\u233C\u233D\u233E\u233F"+
-        "\u2340\u2341\u2342\u2343\u2344\u2345\u2346\u2347"+
-        "\u2348\u2349\u234A\u234B\u234C\u234D\u234E\u234F"+
-        "\u2350\u2351\u2352\u2353\u2354\u2355\u2356\u2357"+
-        "\u2358\u2359\u235A\u235B\u235C\u235D\u235E\u235F"+
-        "\u2360\u2361\u2362\u2363\u2364\u2365\u2366\u2367"+
-        "\u2368\u2369\u236A\u236B\u236C\u236D\u236E\u236F"+
-        "\u2370\u2371\u2372\u2373\u2374\u2375\u2376\u2377"+
-        "\u2378\u2379\u237A\u237B\u237C\u237D\u237E\u237F"+
-        "\u2380\u2381\u2382\u2383\u2384\u2385\u2386\u2387"+
-        "\u2388\u2389\u238A\u238B\u238C\u238D\u238E\u238F"+
-        "\u2390\u2391\u2392\u2393\u2394\u2395\u2396\u2397"+
-        "\u2398\u2399\u239A\u239B\u239C\u239D\u239E\u239F"+
-        "\u23A0\u23A1\u23A2\u23A3\u23A4\u23A5\u23A6\u23A7"+
-        "\u23A8\u23A9\u23AA\u23AB\u23AC\u23AD\u23AE\u23AF"+
-        "\u23B0\u23B1\u23B2\u23B3\u23B4\u23B5\u23B6\u23B7"+
-        "\u23B8\u23B9\u23BA\u23BB\u23BC\u23BD\u23BE\u23BF"+
-        "\u23C0\u23C1\u23C2\u23C3\u23C4\u23C5\u23C6\u23C7"+
-        "\u23C8\u23C9\u23CA\u23CB\u23CC\u23CD\u23CE\u23CF"+
-        "\u23D0\u23D1\u23D2\u23D3\u23D4\u23D5\u23D6\u23D7"+
-        "\u23D8\u23D9\u23DA\u23DB\u23DC\u23DD\u23DE\u23DF"+
-        "\u23E0\u23E1\u23E2\u23E3\u23E4\u23E5\u23E6\u23E7"+
-        "\u23E8\u23E9\u23EA\u23EB\u23EC\u23ED\u23EE\u23EF"+
-        "\u23F0\u23F1\u23F2\u23F3\u23F4\u23F5\u23F6\u23F7"+
-        "\u23F8\u23F9\u23FA\u23FB\u23FC\u23FD\u23FE\u23FF"+
-        "\u2400\u2401\u2402\u2403\u2404\u2405\u2406\u2407"+
-        "\u2408\u2409\u240A\u240B\u240C\u240D\u240E\u240F"+
-        "\u2410\u2411\u2412\u2413\u2414\u2415\u2416\u2417"+
-        "\u2418\u2419\u241A\u241B\u241C\u241D\u241E\u241F"+
-        "\u2420\u2421\u2422\u2423\u2424\u2425\u2426\u2427"+
-        "\u2428\u2429\u242A\u242B\u242C\u242D\u242E\u242F"+
-        "\u2430\u2431\u2432\u2433\u2434\u2435\u2436\u2437"+
-        "\u2438\u2439\u243A\u243B\u243C\u243D\u243E\u243F"+
-        "\u2440\u2441\u2442\u2443\u2444\u2445\u2446\u2447"+
-        "\u2448\u2449\u244A\u244B\u244C\u244D\u244E\u244F"+
-        "\u2450\u2451\u2452\u2453\u2454\u2455\u2456\u2457"+
-        "\u2458\u2459\u245A\u245B\u245C\u245D\u245E\u245F"+
-        "\u246A\u246B\u246C\u246D\u246E\u246F\u2470\u2471"+
-        "\u2472\u2473\u249C\u249D\u249E\u249F\u24A0\u24A1"+
-        "\u24A2\u24A3\u24A4\u24A5\u24A6\u24A7\u24A8\u24A9"+
-        "\u24AA\u24AB\u24AC\u24AD\u24AE\u24AF\u24B0\u24B1"+
-        "\u24B2\u24B3\u24B4\u24B5\u24B6\u24B7\u24B8\u24B9"+
-        "\u24BA\u24BB\u24BC\u24BD\u24BE\u24BF\u24C0\u24C1"+
-        "\u24C2\u24C3\u24C4\u24C5\u24C6\u24C7\u24C8\u24C9"+
-        "\u24CA\u24CB\u24CC\u24CD\u24CE\u24CF\u24D0\u24D1"+
-        "\u24D2\u24D3\u24D4\u24D5\u24D6\u24D7\u24D8\u24D9"+
-        "\u24DA\u24DB\u24DC\u24DD\u24DE\u24DF\u24E0\u24E1"+
-        "\u24E2\u24E3\u24E4\u24E5\u24E6\u24E7\u24E8\u24E9"+
-        "\u24EA\u24EB\u24EC\u24ED\u24EE\u24EF\u24F0\u24F1"+
-        "\u24F2\u24F3\u24F4\u24F5\u24F6\u24F7\u24F8\u24F9"+
-        "\u24FA\u24FB\u24FC\u24FD\u24FE\u24FF\u254C\u254D"+
-        "\u254E\u254F\u2574\u2575\u2576\u2577\u2578\u2579"+
-        "\u257A\u257B\u257C\u257D\u257E\u257F\u2580\u2590"+
-        "\u2591\u2592\u2596\u2597\u2598\u2599\u259A\u259B"+
-        "\u259C\u259D\u259E\u259F\u25A2\u25A3\u25A4\u25A5"+
-        "\u25A6\u25A7\u25A8\u25A9\u25AA\u25AB\u25AC\u25AD"+
-        "\u25AE\u25AF\u25B0\u25B1\u25B4\u25B5\u25B6\u25B7"+
-        "\u25B8\u25B9\u25BA\u25BB\u25BE\u25BF\u25C0\u25C1"+
-        "\u25C2\u25C3\u25C4\u25C5\u25C8\u25C9\u25CA\u25CC"+
-        "\u25CD\u25D0\u25D1\u25D2\u25D3\u25D4\u25D5\u25D6"+
-        "\u25D7\u25D8\u25D9\u25DA\u25DB\u25DC\u25DD\u25DE"+
-        "\u25DF\u25E0\u25E1\u25E6\u25E7\u25E8\u25E9\u25EA"+
-        "\u25EB\u25EC\u25ED\u25EE\u25EF\u25F0\u25F1\u25F2"+
-        "\u25F3\u25F4\u25F5\u25F6\u25F7\u25F8\u25F9\u25FA"+
-        "\u25FB\u25FC\u25FD\u25FE\u25FF\u2600\u2601\u2602"+
-        "\u2603\u2604\u2607\u2608\u260A\u260B\u260C\u260D"+
-        "\u260E\u260F\u2610\u2611\u2612\u2613\u2614\u2615"+
-        "\u2616\u2617\u2618\u2619\u261A\u261B\u261C\u261D"+
-        "\u261E\u261F\u2620\u2621\u2622\u2623\u2624\u2625"+
-        "\u2626\u2627\u2628\u2629\u262A\u262B\u262C\u262D"+
-        "\u262E\u262F\u2630\u2631\u2632\u2633\u2634\u2635"+
-        "\u2636\u2637\u2638\u2639\u263A\u263B\u263C\u263D"+
-        "\u263E\u263F\u2641\u2643\u2644\u2645\u2646\u2647"+
-        "\u2648\u2649\u264A\u264B\u264C\u264D\u264E\u264F"+
-        "\u2650\u2651\u2652\u2653\u2654\u2655\u2656\u2657"+
-        "\u2658\u2659\u265A\u265B\u265C\u265D\u265E\u265F"+
-        "\u2660\u2661\u2662\u2663\u2664\u2665\u2666\u2667"+
-        "\u2668\u2669\u266A\u266B\u266C\u266D\u266E\u266F"+
-        "\u2670\u2671\u2672\u2673\u2674\u2675\u2676\u2677"+
-        "\u2678\u2679\u267A\u267B\u267C\u267D\u267E\u267F"+
-        "\u2680\u2681\u2682\u2683\u2684\u2685\u2686\u2687"+
-        "\u2688\u2689\u268A\u268B\u268C\u268D\u268E\u268F"+
-        "\u2690\u2691\u2692\u2693\u2694\u2695\u2696\u2697"+
-        "\u2698\u2699\u269A\u269B\u269C\u269D\u269E\u269F"+
-        "\u26A0\u26A1\u26A2\u26A3\u26A4\u26A5\u26A6\u26A7"+
-        "\u26A8\u26A9\u26AA\u26AB\u26AC\u26AD\u26AE\u26AF"+
-        "\u26B0\u26B1\u26B2\u26B3\u26B4\u26B5\u26B6\u26B7"+
-        "\u26B8\u26B9\u26BA\u26BB\u26BC\u26BD\u26BE\u26BF"+
-        "\u26C0\u26C1\u26C2\u26C3\u26C4\u26C5\u26C6\u26C7"+
-        "\u26C8\u26C9\u26CA\u26CB\u26CC\u26CD\u26CE\u26CF"+
-        "\u26D0\u26D1\u26D2\u26D3\u26D4\u26D5\u26D6\u26D7"+
-        "\u26D8\u26D9\u26DA\u26DB\u26DC\u26DD\u26DE\u26DF"+
-        "\u26E0\u26E1\u26E2\u26E3\u26E4\u26E5\u26E6\u26E7"+
-        "\u26E8\u26E9\u26EA\u26EB\u26EC\u26ED\u26EE\u26EF"+
-        "\u26F0\u26F1\u26F2\u26F3\u26F4\u26F5\u26F6\u26F7"+
-        "\u26F8\u26F9\u26FA\u26FB\u26FC\u26FD\u26FE\u26FF"+
-        "\u2700\u2701\u2702\u2703\u2704\u2705\u2706\u2707"+
-        "\u2708\u2709\u270A\u270B\u270C\u270D\u270E\u270F"+
-        "\u2710\u2711\u2712\u2713\u2714\u2715\u2716\u2717"+
-        "\u2718\u2719\u271A\u271B\u271C\u271D\u271E\u271F"+
-        "\u2720\u2721\u2722\u2723\u2724\u2725\u2726\u2727"+
-        "\u2728\u2729\u272A\u272B\u272C\u272D\u272E\u272F"+
-        "\u2730\u2731\u2732\u2733\u2734\u2735\u2736\u2737"+
-        "\u2738\u2739\u273A\u273B\u273C\u273D\u273E\u273F"+
-        "\u2740\u2741\u2742\u2743\u2744\u2745\u2746\u2747"+
-        "\u2748\u2749\u274A\u274B\u274C\u274D\u274E\u274F"+
-        "\u2750\u2751\u2752\u2753\u2754\u2755\u2756\u2757"+
-        "\u2758\u2759\u275A\u275B\u275C\u275D\u275E\u275F"+
-        "\u2760\u2761\u2762\u2763\u2764\u2765\u2766\u2767"+
-        "\u2768\u2769\u276A\u276B\u276C\u276D\u276E\u276F"+
-        "\u2770\u2771\u2772\u2773\u2774\u2775\u2776\u2777"+
-        "\u2778\u2779\u277A\u277B\u277C\u277D\u277E\u277F"+
-        "\u2780\u2781\u2782\u2783\u2784\u2785\u2786\u2787"+
-        "\u2788\u2789\u278A\u278B\u278C\u278D\u278E\u278F"+
-        "\u2790\u2791\u2792\u2793\u2794\u2795\u2796\u2797"+
-        "\u2798\u2799\u279A\u279B\u279C\u279D\u279E\u279F"+
-        "\u27A0\u27A1\u27A2\u27A3\u27A4\u27A5\u27A6\u27A7"+
-        "\u27A8\u27A9\u27AA\u27AB\u27AC\u27AD\u27AE\u27AF"+
-        "\u27B0\u27B1\u27B2\u27B3\u27B4\u27B5\u27B6\u27B7"+
-        "\u27B8\u27B9\u27BA\u27BB\u27BC\u27BD\u27BE\u27BF"+
-        "\u27C0\u27C1\u27C2\u27C3\u27C4\u27C5\u27C6\u27C7"+
-        "\u27C8\u27C9\u27CA\u27CB\u27CC\u27CD\u27CE\u27CF"+
-        "\u27D0\u27D1\u27D2\u27D3\u27D4\u27D5\u27D6\u27D7"+
-        "\u27D8\u27D9\u27DA\u27DB\u27DC\u27DD\u27DE\u27DF"+
-        "\u27E0\u27E1\u27E2\u27E3\u27E4\u27E5\u27E6\u27E7"+
-        "\u27E8\u27E9\u27EA\u27EB\u27EC\u27ED\u27EE\u27EF"+
-        "\u27F0\u27F1\u27F2\u27F3\u27F4\u27F5\u27F6\u27F7"+
-        "\u27F8\u27F9\u27FA\u27FB\u27FC\u27FD\u27FE\u27FF"+
-        "\u2800\u2801\u2802\u2803\u2804\u2805\u2806\u2807"+
-        "\u2808\u2809\u280A\u280B\u280C\u280D\u280E\u280F"+
-        "\u2810\u2811\u2812\u2813\u2814\u2815\u2816\u2817"+
-        "\u2818\u2819\u281A\u281B\u281C\u281D\u281E\u281F"+
-        "\u2820\u2821\u2822\u2823\u2824\u2825\u2826\u2827"+
-        "\u2828\u2829\u282A\u282B\u282C\u282D\u282E\u282F"+
-        "\u2830\u2831\u2832\u2833\u2834\u2835\u2836\u2837"+
-        "\u2838\u2839\u283A\u283B\u283C\u283D\u283E\u283F"+
-        "\u2840\u2841\u2842\u2843\u2844\u2845\u2846\u2847"+
-        "\u2848\u2849\u284A\u284B\u284C\u284D\u284E\u284F"+
-        "\u2850\u2851\u2852\u2853\u2854\u2855\u2856\u2857"+
-        "\u2858\u2859\u285A\u285B\u285C\u285D\u285E\u285F"+
-        "\u2860\u2861\u2862\u2863\u2864\u2865\u2866\u2867"+
-        "\u2868\u2869\u286A\u286B\u286C\u286D\u286E\u286F"+
-        "\u2870\u2871\u2872\u2873\u2874\u2875\u2876\u2877"+
-        "\u2878\u2879\u287A\u287B\u287C\u287D\u287E\u287F"+
-        "\u2880\u2881\u2882\u2883\u2884\u2885\u2886\u2887"+
-        "\u2888\u2889\u288A\u288B\u288C\u288D\u288E\u288F"+
-        "\u2890\u2891\u2892\u2893\u2894\u2895\u2896\u2897"+
-        "\u2898\u2899\u289A\u289B\u289C\u289D\u289E\u289F"+
-        "\u28A0\u28A1\u28A2\u28A3\u28A4\u28A5\u28A6\u28A7"+
-        "\u28A8\u28A9\u28AA\u28AB\u28AC\u28AD\u28AE\u28AF"+
-        "\u28B0\u28B1\u28B2\u28B3\u28B4\u28B5\u28B6\u28B7"+
-        "\u28B8\u28B9\u28BA\u28BB\u28BC\u28BD\u28BE\u28BF"+
-        "\u28C0\u28C1\u28C2\u28C3\u28C4\u28C5\u28C6\u28C7"+
-        "\u28C8\u28C9\u28CA\u28CB\u28CC\u28CD\u28CE\u28CF"+
-        "\u28D0\u28D1\u28D2\u28D3\u28D4\u28D5\u28D6\u28D7"+
-        "\u28D8\u28D9\u28DA\u28DB\u28DC\u28DD\u28DE\u28DF"+
-        "\u28E0\u28E1\u28E2\u28E3\u28E4\u28E5\u28E6\u28E7"+
-        "\u28E8\u28E9\u28EA\u28EB\u28EC\u28ED\u28EE\u28EF"+
-        "\u28F0\u28F1\u28F2\u28F3\u28F4\u28F5\u28F6\u28F7"+
-        "\u28F8\u28F9\u28FA\u28FB\u28FC\u28FD\u28FE\u28FF"+
-        "\u2900\u2901\u2902\u2903\u2904\u2905\u2906\u2907"+
-        "\u2908\u2909\u290A\u290B\u290C\u290D\u290E\u290F"+
-        "\u2910\u2911\u2912\u2913\u2914\u2915\u2916\u2917"+
-        "\u2918\u2919\u291A\u291B\u291C\u291D\u291E\u291F"+
-        "\u2920\u2921\u2922\u2923\u2924\u2925\u2926\u2927"+
-        "\u2928\u2929\u292A\u292B\u292C\u292D\u292E\u292F"+
-        "\u2930\u2931\u2932\u2933\u2934\u2935\u2936\u2937"+
-        "\u2938\u2939\u293A\u293B\u293C\u293D\u293E\u293F"+
-        "\u2940\u2941\u2942\u2943\u2944\u2945\u2946\u2947"+
-        "\u2948\u2949\u294A\u294B\u294C\u294D\u294E\u294F"+
-        "\u2950\u2951\u2952\u2953\u2954\u2955\u2956\u2957"+
-        "\u2958\u2959\u295A\u295B\u295C\u295D\u295E\u295F"+
-        "\u2960\u2961\u2962\u2963\u2964\u2965\u2966\u2967"+
-        "\u2968\u2969\u296A\u296B\u296C\u296D\u296E\u296F"+
-        "\u2970\u2971\u2972\u2973\u2974\u2975\u2976\u2977"+
-        "\u2978\u2979\u297A\u297B\u297C\u297D\u297E\u297F"+
-        "\u2980\u2981\u2982\u2983\u2984\u2985\u2986\u2987"+
-        "\u2988\u2989\u298A\u298B\u298C\u298D\u298E\u298F"+
-        "\u2990\u2991\u2992\u2993\u2994\u2995\u2996\u2997"+
-        "\u2998\u2999\u299A\u299B\u299C\u299D\u299E\u299F"+
-        "\u29A0\u29A1\u29A2\u29A3\u29A4\u29A5\u29A6\u29A7"+
-        "\u29A8\u29A9\u29AA\u29AB\u29AC\u29AD\u29AE\u29AF"+
-        "\u29B0\u29B1\u29B2\u29B3\u29B4\u29B5\u29B6\u29B7"+
-        "\u29B8\u29B9\u29BA\u29BB\u29BC\u29BD\u29BE\u29BF"+
-        "\u29C0\u29C1\u29C2\u29C3\u29C4\u29C5\u29C6\u29C7"+
-        "\u29C8\u29C9\u29CA\u29CB\u29CC\u29CD\u29CE\u29CF"+
-        "\u29D0\u29D1\u29D2\u29D3\u29D4\u29D5\u29D6\u29D7"+
-        "\u29D8\u29D9\u29DA\u29DB\u29DC\u29DD\u29DE\u29DF"+
-        "\u29E0\u29E1\u29E2\u29E3\u29E4\u29E5\u29E6\u29E7"+
-        "\u29E8\u29E9\u29EA\u29EB\u29EC\u29ED\u29EE\u29EF"+
-        "\u29F0\u29F1\u29F2\u29F3\u29F4\u29F5\u29F6\u29F7"+
-        "\u29F8\u29F9\u29FA\u29FB\u29FC\u29FD\u29FE\u29FF"+
-        "\u2A00\u2A01\u2A02\u2A03\u2A04\u2A05\u2A06\u2A07"+
-        "\u2A08\u2A09\u2A0A\u2A0B\u2A0C\u2A0D\u2A0E\u2A0F"+
-        "\u2A10\u2A11\u2A12\u2A13\u2A14\u2A15\u2A16\u2A17"+
-        "\u2A18\u2A19\u2A1A\u2A1B\u2A1C\u2A1D\u2A1E\u2A1F"+
-        "\u2A20\u2A21\u2A22\u2A23\u2A24\u2A25\u2A26\u2A27"+
-        "\u2A28\u2A29\u2A2A\u2A2B\u2A2C\u2A2D\u2A2E\u2A2F"+
-        "\u2A30\u2A31\u2A32\u2A33\u2A34\u2A35\u2A36\u2A37"+
-        "\u2A38\u2A39\u2A3A\u2A3B\u2A3C\u2A3D\u2A3E\u2A3F"+
-        "\u2A40\u2A41\u2A42\u2A43\u2A44\u2A45\u2A46\u2A47"+
-        "\u2A48\u2A49\u2A4A\u2A4B\u2A4C\u2A4D\u2A4E\u2A4F"+
-        "\u2A50\u2A51\u2A52\u2A53\u2A54\u2A55\u2A56\u2A57"+
-        "\u2A58\u2A59\u2A5A\u2A5B\u2A5C\u2A5D\u2A5E\u2A5F"+
-        "\u2A60\u2A61\u2A62\u2A63\u2A64\u2A65\u2A66\u2A67"+
-        "\u2A68\u2A69\u2A6A\u2A6B\u2A6C\u2A6D\u2A6E\u2A6F"+
-        "\u2A70\u2A71\u2A72\u2A73\u2A74\u2A75\u2A76\u2A77"+
-        "\u2A78\u2A79\u2A7A\u2A7B\u2A7C\u2A7D\u2A7E\u2A7F"+
-        "\u2A80\u2A81\u2A82\u2A83\u2A84\u2A85\u2A86\u2A87"+
-        "\u2A88\u2A89\u2A8A\u2A8B\u2A8C\u2A8D\u2A8E\u2A8F"+
-        "\u2A90\u2A91\u2A92\u2A93\u2A94\u2A95\u2A96\u2A97"+
-        "\u2A98\u2A99\u2A9A\u2A9B\u2A9C\u2A9D\u2A9E\u2A9F"+
-        "\u2AA0\u2AA1\u2AA2\u2AA3\u2AA4\u2AA5\u2AA6\u2AA7"+
-        "\u2AA8\u2AA9\u2AAA\u2AAB\u2AAC\u2AAD\u2AAE\u2AAF"+
-        "\u2AB0\u2AB1\u2AB2\u2AB3\u2AB4\u2AB5\u2AB6\u2AB7"+
-        "\u2AB8\u2AB9\u2ABA\u2ABB\u2ABC\u2ABD\u2ABE\u2ABF"+
-        "\u2AC0\u2AC1\u2AC2\u2AC3\u2AC4\u2AC5\u2AC6\u2AC7"+
-        "\u2AC8\u2AC9\u2ACA\u2ACB\u2ACC\u2ACD\u2ACE\u2ACF"+
-        "\u2AD0\u2AD1\u2AD2\u2AD3\u2AD4\u2AD5\u2AD6\u2AD7"+
-        "\u2AD8\u2AD9\u2ADA\u2ADB\u2ADC\u2ADD\u2ADE\u2ADF"+
-        "\u2AE0\u2AE1\u2AE2\u2AE3\u2AE4\u2AE5\u2AE6\u2AE7"+
-        "\u2AE8\u2AE9\u2AEA\u2AEB\u2AEC\u2AED\u2AEE\u2AEF"+
-        "\u2AF0\u2AF1\u2AF2\u2AF3\u2AF4\u2AF5\u2AF6\u2AF7"+
-        "\u2AF8\u2AF9\u2AFA\u2AFB\u2AFC\u2AFD\u2AFE\u2AFF"+
-        "\u2B00\u2B01\u2B02\u2B03\u2B04\u2B05\u2B06\u2B07"+
-        "\u2B08\u2B09\u2B0A\u2B0B\u2B0C\u2B0D\u2B0E\u2B0F"+
-        "\u2B10\u2B11\u2B12\u2B13\u2B14\u2B15\u2B16\u2B17"+
-        "\u2B18\u2B19\u2B1A\u2B1B\u2B1C\u2B1D\u2B1E\u2B1F"+
-        "\u2B20\u2B21\u2B22\u2B23\u2B24\u2B25\u2B26\u2B27"+
-        "\u2B28\u2B29\u2B2A\u2B2B\u2B2C\u2B2D\u2B2E\u2B2F"+
-        "\u2B30\u2B31\u2B32\u2B33\u2B34\u2B35\u2B36\u2B37"+
-        "\u2B38\u2B39\u2B3A\u2B3B\u2B3C\u2B3D\u2B3E\u2B3F"+
-        "\u2B40\u2B41\u2B42\u2B43\u2B44\u2B45\u2B46\u2B47"+
-        "\u2B48\u2B49\u2B4A\u2B4B\u2B4C\u2B4D\u2B4E\u2B4F"+
-        "\u2B50\u2B51\u2B52\u2B53\u2B54\u2B55\u2B56\u2B57"+
-        "\u2B58\u2B59\u2B5A\u2B5B\u2B5C\u2B5D\u2B5E\u2B5F"+
-        "\u2B60\u2B61\u2B62\u2B63\u2B64\u2B65\u2B66\u2B67"+
-        "\u2B68\u2B69\u2B6A\u2B6B\u2B6C\u2B6D\u2B6E\u2B6F"+
-        "\u2B70\u2B71\u2B72\u2B73\u2B74\u2B75\u2B76\u2B77"+
-        "\u2B78\u2B79\u2B7A\u2B7B\u2B7C\u2B7D\u2B7E\u2B7F"+
-        "\u2B80\u2B81\u2B82\u2B83\u2B84\u2B85\u2B86\u2B87"+
-        "\u2B88\u2B89\u2B8A\u2B8B\u2B8C\u2B8D\u2B8E\u2B8F"+
-        "\u2B90\u2B91\u2B92\u2B93\u2B94\u2B95\u2B96\u2B97"+
-        "\u2B98\u2B99\u2B9A\u2B9B\u2B9C\u2B9D\u2B9E\u2B9F"+
-        "\u2BA0\u2BA1\u2BA2\u2BA3\u2BA4\u2BA5\u2BA6\u2BA7"+
-        "\u2BA8\u2BA9\u2BAA\u2BAB\u2BAC\u2BAD\u2BAE\u2BAF"+
-        "\u2BB0\u2BB1\u2BB2\u2BB3\u2BB4\u2BB5\u2BB6\u2BB7"+
-        "\u2BB8\u2BB9\u2BBA\u2BBB\u2BBC\u2BBD\u2BBE\u2BBF"+
-        "\u2BC0\u2BC1\u2BC2\u2BC3\u2BC4\u2BC5\u2BC6\u2BC7"+
-        "\u2BC8\u2BC9\u2BCA\u2BCB\u2BCC\u2BCD\u2BCE\u2BCF"+
-        "\u2BD0\u2BD1\u2BD2\u2BD3\u2BD4\u2BD5\u2BD6\u2BD7"+
-        "\u2BD8\u2BD9\u2BDA\u2BDB\u2BDC\u2BDD\u2BDE\u2BDF"+
-        "\u2BE0\u2BE1\u2BE2\u2BE3\u2BE4\u2BE5\u2BE6\u2BE7"+
-        "\u2BE8\u2BE9\u2BEA\u2BEB\u2BEC\u2BED\u2BEE\u2BEF"+
-        "\u2BF0\u2BF1\u2BF2\u2BF3\u2BF4\u2BF5\u2BF6\u2BF7"+
-        "\u2BF8\u2BF9\u2BFA\u2BFB\u2BFC\u2BFD\u2BFE\u2BFF"+
-        "\u2C00\u2C01\u2C02\u2C03\u2C04\u2C05\u2C06\u2C07"+
-        "\u2C08\u2C09\u2C0A\u2C0B\u2C0C\u2C0D\u2C0E\u2C0F"+
-        "\u2C10\u2C11\u2C12\u2C13\u2C14\u2C15\u2C16\u2C17"+
-        "\u2C18\u2C19\u2C1A\u2C1B\u2C1C\u2C1D\u2C1E\u2C1F"+
-        "\u2C20\u2C21\u2C22\u2C23\u2C24\u2C25\u2C26\u2C27"+
-        "\u2C28\u2C29\u2C2A\u2C2B\u2C2C\u2C2D\u2C2E\u2C2F"+
-        "\u2C30\u2C31\u2C32\u2C33\u2C34\u2C35\u2C36\u2C37"+
-        "\u2C38\u2C39\u2C3A\u2C3B\u2C3C\u2C3D\u2C3E\u2C3F"+
-        "\u2C40\u2C41\u2C42\u2C43\u2C44\u2C45\u2C46\u2C47"+
-        "\u2C48\u2C49\u2C4A\u2C4B\u2C4C\u2C4D\u2C4E\u2C4F"+
-        "\u2C50\u2C51\u2C52\u2C53\u2C54\u2C55\u2C56\u2C57"+
-        "\u2C58\u2C59\u2C5A\u2C5B\u2C5C\u2C5D\u2C5E\u2C5F"+
-        "\u2C60\u2C61\u2C62\u2C63\u2C64\u2C65\u2C66\u2C67"+
-        "\u2C68\u2C69\u2C6A\u2C6B\u2C6C\u2C6D\u2C6E\u2C6F"+
-        "\u2C70\u2C71\u2C72\u2C73\u2C74\u2C75\u2C76\u2C77"+
-        "\u2C78\u2C79\u2C7A\u2C7B\u2C7C\u2C7D\u2C7E\u2C7F"+
-        "\u2C80\u2C81\u2C82\u2C83\u2C84\u2C85\u2C86\u2C87"+
-        "\u2C88\u2C89\u2C8A\u2C8B\u2C8C\u2C8D\u2C8E\u2C8F"+
-        "\u2C90\u2C91\u2C92\u2C93\u2C94\u2C95\u2C96\u2C97"+
-        "\u2C98\u2C99\u2C9A\u2C9B\u2C9C\u2C9D\u2C9E\u2C9F"+
-        "\u2CA0\u2CA1\u2CA2\u2CA3\u2CA4\u2CA5\u2CA6\u2CA7"+
-        "\u2CA8\u2CA9\u2CAA\u2CAB\u2CAC\u2CAD\u2CAE\u2CAF"+
-        "\u2CB0\u2CB1\u2CB2\u2CB3\u2CB4\u2CB5\u2CB6\u2CB7"+
-        "\u2CB8\u2CB9\u2CBA\u2CBB\u2CBC\u2CBD\u2CBE\u2CBF"+
-        "\u2CC0\u2CC1\u2CC2\u2CC3\u2CC4\u2CC5\u2CC6\u2CC7"+
-        "\u2CC8\u2CC9\u2CCA\u2CCB\u2CCC\u2CCD\u2CCE\u2CCF"+
-        "\u2CD0\u2CD1\u2CD2\u2CD3\u2CD4\u2CD5\u2CD6\u2CD7"+
-        "\u2CD8\u2CD9\u2CDA\u2CDB\u2CDC\u2CDD\u2CDE\u2CDF"+
-        "\u2CE0\u2CE1\u2CE2\u2CE3\u2CE4\u2CE5\u2CE6\u2CE7"+
-        "\u2CE8\u2CE9\u2CEA\u2CEB\u2CEC\u2CED\u2CEE\u2CEF"+
-        "\u2CF0\u2CF1\u2CF2\u2CF3\u2CF4\u2CF5\u2CF6\u2CF7"+
-        "\u2CF8\u2CF9\u2CFA\u2CFB\u2CFC\u2CFD\u2CFE\u2CFF"+
-        "\u2D00\u2D01\u2D02\u2D03\u2D04\u2D05\u2D06\u2D07"+
-        "\u2D08\u2D09\u2D0A\u2D0B\u2D0C\u2D0D\u2D0E\u2D0F"+
-        "\u2D10\u2D11\u2D12\u2D13\u2D14\u2D15\u2D16\u2D17"+
-        "\u2D18\u2D19\u2D1A\u2D1B\u2D1C\u2D1D\u2D1E\u2D1F"+
-        "\u2D20\u2D21\u2D22\u2D23\u2D24\u2D25\u2D26\u2D27"+
-        "\u2D28\u2D29\u2D2A\u2D2B\u2D2C\u2D2D\u2D2E\u2D2F"+
-        "\u2D30\u2D31\u2D32\u2D33\u2D34\u2D35\u2D36\u2D37"+
-        "\u2D38\u2D39\u2D3A\u2D3B\u2D3C\u2D3D\u2D3E\u2D3F"+
-        "\u2D40\u2D41\u2D42\u2D43\u2D44\u2D45\u2D46\u2D47"+
-        "\u2D48\u2D49\u2D4A\u2D4B\u2D4C\u2D4D\u2D4E\u2D4F"+
-        "\u2D50\u2D51\u2D52\u2D53\u2D54\u2D55\u2D56\u2D57"+
-        "\u2D58\u2D59\u2D5A\u2D5B\u2D5C\u2D5D\u2D5E\u2D5F"+
-        "\u2D60\u2D61\u2D62\u2D63\u2D64\u2D65\u2D66\u2D67"+
-        "\u2D68\u2D69\u2D6A\u2D6B\u2D6C\u2D6D\u2D6E\u2D6F"+
-        "\u2D70\u2D71\u2D72\u2D73\u2D74\u2D75\u2D76\u2D77"+
-        "\u2D78\u2D79\u2D7A\u2D7B\u2D7C\u2D7D\u2D7E\u2D7F"+
-        "\u2D80\u2D81\u2D82\u2D83\u2D84\u2D85\u2D86\u2D87"+
-        "\u2D88\u2D89\u2D8A\u2D8B\u2D8C\u2D8D\u2D8E\u2D8F"+
-        "\u2D90\u2D91\u2D92\u2D93\u2D94\u2D95\u2D96\u2D97"+
-        "\u2D98\u2D99\u2D9A\u2D9B\u2D9C\u2D9D\u2D9E\u2D9F"+
-        "\u2DA0\u2DA1\u2DA2\u2DA3\u2DA4\u2DA5\u2DA6\u2DA7"+
-        "\u2DA8\u2DA9\u2DAA\u2DAB\u2DAC\u2DAD\u2DAE\u2DAF"+
-        "\u2DB0\u2DB1\u2DB2\u2DB3\u2DB4\u2DB5\u2DB6\u2DB7"+
-        "\u2DB8\u2DB9\u2DBA\u2DBB\u2DBC\u2DBD\u2DBE\u2DBF"+
-        "\u2DC0\u2DC1\u2DC2\u2DC3\u2DC4\u2DC5\u2DC6\u2DC7"+
-        "\u2DC8\u2DC9\u2DCA\u2DCB\u2DCC\u2DCD\u2DCE\u2DCF"+
-        "\u2DD0\u2DD1\u2DD2\u2DD3\u2DD4\u2DD5\u2DD6\u2DD7"+
-        "\u2DD8\u2DD9\u2DDA\u2DDB\u2DDC\u2DDD\u2DDE\u2DDF"+
-        "\u2DE0\u2DE1\u2DE2\u2DE3\u2DE4\u2DE5\u2DE6\u2DE7"+
-        "\u2DE8\u2DE9\u2DEA\u2DEB\u2DEC\u2DED\u2DEE\u2DEF"+
-        "\u2DF0\u2DF1\u2DF2\u2DF3\u2DF4\u2DF5\u2DF6\u2DF7"+
-        "\u2DF8\u2DF9\u2DFA\u2DFB\u2DFC\u2DFD\u2DFE\u2DFF"+
-        "\u2E00\u2E01\u2E02\u2E03\u2E04\u2E05\u2E06\u2E07"+
-        "\u2E08\u2E09\u2E0A\u2E0B\u2E0C\u2E0D\u2E0E\u2E0F"+
-        "\u2E10\u2E11\u2E12\u2E13\u2E14\u2E15\u2E16\u2E17"+
-        "\u2E18\u2E19\u2E1A\u2E1B\u2E1C\u2E1D\u2E1E\u2E1F"+
-        "\u2E20\u2E21\u2E22\u2E23\u2E24\u2E25\u2E26\u2E27"+
-        "\u2E28\u2E29\u2E2A\u2E2B\u2E2C\u2E2D\u2E2E\u2E2F"+
-        "\u2E30\u2E31\u2E32\u2E33\u2E34\u2E35\u2E36\u2E37"+
-        "\u2E38\u2E39\u2E3A\u2E3B\u2E3C\u2E3D\u2E3E\u2E3F"+
-        "\u2E40\u2E41\u2E42\u2E43\u2E44\u2E45\u2E46\u2E47"+
-        "\u2E48\u2E49\u2E4A\u2E4B\u2E4C\u2E4D\u2E4E\u2E4F"+
-        "\u2E50\u2E51\u2E52\u2E53\u2E54\u2E55\u2E56\u2E57"+
-        "\u2E58\u2E59\u2E5A\u2E5B\u2E5C\u2E5D\u2E5E\u2E5F"+
-        "\u2E60\u2E61\u2E62\u2E63\u2E64\u2E65\u2E66\u2E67"+
-        "\u2E68\u2E69\u2E6A\u2E6B\u2E6C\u2E6D\u2E6E\u2E6F"+
-        "\u2E70\u2E71\u2E72\u2E73\u2E74\u2E75\u2E76\u2E77"+
-        "\u2E78\u2E79\u2E7A\u2E7B\u2E7C\u2E7D\u2E7E\u2E7F"+
-        "\u2E80\u2E82\u2E83\u2E85\u2E86\u2E87\u2E89\u2E8A"+
-        "\u2E8D\u2E8E\u2E8F\u2E90\u2E91\u2E92\u2E93\u2E94"+
-        "\u2E95\u2E96\u2E98\u2E99\u2E9A\u2E9B\u2E9C\u2E9D"+
-        "\u2E9E\u2E9F\u2EA0\u2EA1\u2EA2\u2EA3\u2EA4\u2EA5"+
-        "\u2EA6\u2EA8\u2EA9\u2EAB\u2EAC\u2EAD\u2EAF\u2EB0"+
-        "\u2EB1\u2EB2\u2EB4\u2EB5\u2EB8\u2EB9\u2EBA\u2EBC"+
-        "\u2EBD\u2EBE\u2EBF\u2EC0\u2EC1\u2EC2\u2EC3\u2EC4"+
-        "\u2EC5\u2EC6\u2EC7\u2EC8\u2EC9\u2ECB\u2ECC\u2ECD"+
-        "\u2ECE\u2ECF\u2ED0\u2ED1\u2ED2\u2ED3\u2ED4\u2ED5"+
-        "\u2ED6\u2ED7\u2ED8\u2ED9\u2EDA\u2EDB\u2EDC\u2EDD"+
-        "\u2EDE\u2EDF\u2EE0\u2EE1\u2EE2\u2EE3\u2EE4\u2EE5"+
-        "\u2EE6\u2EE7\u2EE8\u2EE9\u2EEA\u2EEB\u2EEC\u2EED"+
-        "\u2EEE\u2EEF\u2EF0\u2EF1\u2EF2\u2EF3\u2EF4\u2EF5"+
-        "\u2EF6\u2EF7\u2EF8\u2EF9\u2EFA\u2EFB\u2EFC\u2EFD"+
-        "\u2EFE\u2EFF\u2F00\u2F01\u2F02\u2F03\u2F04\u2F05"+
-        "\u2F06\u2F07\u2F08\u2F09\u2F0A\u2F0B\u2F0C\u2F0D"+
-        "\u2F0E\u2F0F\u2F10\u2F11\u2F12\u2F13\u2F14\u2F15"+
-        "\u2F16\u2F17\u2F18\u2F19\u2F1A\u2F1B\u2F1C\u2F1D"+
-        "\u2F1E\u2F1F\u2F20\u2F21\u2F22\u2F23\u2F24\u2F25"+
-        "\u2F26\u2F27\u2F28\u2F29\u2F2A\u2F2B\u2F2C\u2F2D"+
-        "\u2F2E\u2F2F\u2F30\u2F31\u2F32\u2F33\u2F34\u2F35"+
-        "\u2F36\u2F37\u2F38\u2F39\u2F3A\u2F3B\u2F3C\u2F3D"+
-        "\u2F3E\u2F3F\u2F40\u2F41\u2F42\u2F43\u2F44\u2F45"+
-        "\u2F46\u2F47\u2F48\u2F49\u2F4A\u2F4B\u2F4C\u2F4D"+
-        "\u2F4E\u2F4F\u2F50\u2F51\u2F52\u2F53\u2F54\u2F55"+
-        "\u2F56\u2F57\u2F58\u2F59\u2F5A\u2F5B\u2F5C\u2F5D"+
-        "\u2F5E\u2F5F\u2F60\u2F61\u2F62\u2F63\u2F64\u2F65"+
-        "\u2F66\u2F67\u2F68\u2F69\u2F6A\u2F6B\u2F6C\u2F6D"+
-        "\u2F6E\u2F6F\u2F70\u2F71\u2F72\u2F73\u2F74\u2F75"+
-        "\u2F76\u2F77\u2F78\u2F79\u2F7A\u2F7B\u2F7C\u2F7D"+
-        "\u2F7E\u2F7F\u2F80\u2F81\u2F82\u2F83\u2F84\u2F85"+
-        "\u2F86\u2F87\u2F88\u2F89\u2F8A\u2F8B\u2F8C\u2F8D"+
-        "\u2F8E\u2F8F\u2F90\u2F91\u2F92\u2F93\u2F94\u2F95"+
-        "\u2F96\u2F97\u2F98\u2F99\u2F9A\u2F9B\u2F9C\u2F9D"+
-        "\u2F9E\u2F9F\u2FA0\u2FA1\u2FA2\u2FA3\u2FA4\u2FA5"+
-        "\u2FA6\u2FA7\u2FA8\u2FA9\u2FAA\u2FAB\u2FAC\u2FAD"+
-        "\u2FAE\u2FAF\u2FB0\u2FB1\u2FB2\u2FB3\u2FB4\u2FB5"+
-        "\u2FB6\u2FB7\u2FB8\u2FB9\u2FBA\u2FBB\u2FBC\u2FBD"+
-        "\u2FBE\u2FBF\u2FC0\u2FC1\u2FC2\u2FC3\u2FC4\u2FC5"+
-        "\u2FC6\u2FC7\u2FC8\u2FC9\u2FCA\u2FCB\u2FCC\u2FCD"+
-        "\u2FCE\u2FCF\u2FD0\u2FD1\u2FD2\u2FD3\u2FD4\u2FD5"+
-        "\u2FD6\u2FD7\u2FD8\u2FD9\u2FDA\u2FDB\u2FDC\u2FDD"+
-        "\u2FDE\u2FDF\u2FE0\u2FE1\u2FE2\u2FE3\u2FE4\u2FE5"+
-        "\u2FE6\u2FE7\u2FE8\u2FE9\u2FEA\u2FEB\u2FEC\u2FED"+
-        "\u2FEE\u2FEF\u2FFC\u2FFD\u2FFE\u2FFF\u3004\u3018"+
-        "\u3019\u301A\u301B\u301C\u301F\u3020\u302A\u302B"+
-        "\u302C\u302D\u302E\u302F\u3030\u3031\u3032\u3033"+
-        "\u3034\u3035\u3036\u3037\u3038\u3039\u303A\u303B"+
-        "\u303C\u303D\u303F\u3040\u3094\u3095\u3096\u3097"+
-        "\u3098\u3099\u309A\u309F\u30A0\u30F7\u30F8\u30F9"+
-        "\u30FA\u30FB\u30FF\u3100\u3101\u3102\u3103\u3104"+
-        "\u312A\u312B\u312C\u312D\u312E\u312F\u3130\u3131"+
-        "\u3132\u3133\u3134\u3135\u3136\u3137\u3138\u3139"+
-        "\u313A\u313B\u313C\u313D\u313E\u313F\u3140\u3141"+
-        "\u3142\u3143\u3144\u3145\u3146\u3147\u3148\u3149"+
-        "\u314A\u314B\u314C\u314D\u314E\u314F\u3150\u3151"+
-        "\u3152\u3153\u3154\u3155\u3156\u3157\u3158\u3159"+
-        "\u315A\u315B\u315C\u315D\u315E\u315F\u3160\u3161"+
-        "\u3162\u3163\u3164\u3165\u3166\u3167\u3168\u3169"+
-        "\u316A\u316B\u316C\u316D\u316E\u316F\u3170\u3171"+
-        "\u3172\u3173\u3174\u3175\u3176\u3177\u3178\u3179"+
-        "\u317A\u317B\u317C\u317D\u317E\u317F\u3180\u3181"+
-        "\u3182\u3183\u3184\u3185\u3186\u3187\u3188\u3189"+
-        "\u318A\u318B\u318C\u318D\u318E\u318F\u3190\u3191"+
-        "\u3192\u3193\u3194\u3195\u3196\u3197\u3198\u3199"+
-        "\u319A\u319B\u319C\u319D\u319E\u319F\u31A0\u31A1"+
-        "\u31A2\u31A3\u31A4\u31A5\u31A6\u31A7\u31A8\u31A9"+
-        "\u31AA\u31AB\u31AC\u31AD\u31AE\u31AF\u31B0\u31B1"+
-        "\u31B2\u31B3\u31B4\u31B5\u31B6\u31B7\u31B8\u31B9"+
-        "\u31BA\u31BB\u31BC\u31BD\u31BE\u31BF\u31C0\u31C1"+
-        "\u31C2\u31C3\u31C4\u31C5\u31C6\u31C7\u31C8\u31C9"+
-        "\u31CA\u31CB\u31CC\u31CD\u31CE\u31CF\u31D0\u31D1"+
-        "\u31D2\u31D3\u31D4\u31D5\u31D6\u31D7\u31D8\u31D9"+
-        "\u31DA\u31DB\u31DC\u31DD\u31DE\u31DF\u31E0\u31E1"+
-        "\u31E2\u31E3\u31E4\u31E5\u31E6\u31E7\u31E8\u31E9"+
-        "\u31EA\u31EB\u31EC\u31ED\u31EE\u31EF\u31F0\u31F1"+
-        "\u31F2\u31F3\u31F4\u31F5\u31F6\u31F7\u31F8\u31F9"+
-        "\u31FA\u31FB\u31FC\u31FD\u31FE\u31FF\u3200\u3201"+
-        "\u3202\u3203\u3204\u3205\u3206\u3207\u3208\u3209"+
-        "\u320A\u320B\u320C\u320D\u320E\u320F\u3210\u3211"+
-        "\u3212\u3213\u3214\u3215\u3216\u3217\u3218\u3219"+
-        "\u321A\u321B\u321C\u321D\u321E\u321F\u322A\u322B"+
-        "\u322C\u322D\u322E\u322F\u3230\u3232\u3233\u3234"+
-        "\u3235\u3236\u3237\u3238\u3239\u323A\u323B\u323C"+
-        "\u323D\u323E\u323F\u3240\u3241\u3242\u3243\u3244"+
-        "\u3245\u3246\u3247\u3248\u3249\u324A\u324B\u324C"+
-        "\u324D\u324E\u324F\u3250\u3251\u3252\u3253\u3254"+
-        "\u3255\u3256\u3257\u3258\u3259\u325A\u325B\u325C"+
-        "\u325D\u325E\u325F\u3260\u3261\u3262\u3263\u3264"+
-        "\u3265\u3266\u3267\u3268\u3269\u326A\u326B\u326C"+
-        "\u326D\u326E\u326F\u3270\u3271\u3272\u3273\u3274"+
-        "\u3275\u3276\u3277\u3278\u3279\u327A\u327B\u327C"+
-        "\u327D\u327E\u327F\u3280\u3281\u3282\u3283\u3284"+
-        "\u3285\u3286\u3287\u3288\u3289\u328A\u328B\u328C"+
-        "\u328D\u328E\u328F\u3290\u3291\u3292\u3293\u3294"+
-        "\u3295\u3296\u3297\u3298\u3299\u329A\u329B\u329C"+
-        "\u329D\u329E\u329F\u32A0\u32A1\u32A2\u32A4\u32A5"+
-        "\u32A6\u32A7\u32A8\u32A9\u32AA\u32AB\u32AC\u32AD"+
-        "\u32AE\u32AF\u32B0\u32B1\u32B2\u32B3\u32B4\u32B5"+
-        "\u32B6\u32B7\u32B8\u32B9\u32BA\u32BB\u32BC\u32BD"+
-        "\u32BE\u32BF\u32C0\u32C1\u32C2\u32C3\u32C4\u32C5"+
-        "\u32C6\u32C7\u32C8\u32C9\u32CA\u32CB\u32CC\u32CD"+
-        "\u32CE\u32CF\u32D0\u32D1\u32D2\u32D3\u32D4\u32D5"+
-        "\u32D6\u32D7\u32D8\u32D9\u32DA\u32DB\u32DC\u32DD"+
-        "\u32DE\u32DF\u32E0\u32E1\u32E2\u32E3\u32E4\u32E5"+
-        "\u32E6\u32E7\u32E8\u32E9\u32EA\u32EB\u32EC\u32ED"+
-        "\u32EE\u32EF\u32F0\u32F1\u32F2\u32F3\u32F4\u32F5"+
-        "\u32F6\u32F7\u32F8\u32F9\u32FA\u32FB\u32FC\u32FD"+
-        "\u32FE\u32FF\u3300\u3301\u3302\u3303\u3304\u3305"+
-        "\u3306\u3307\u3308\u3309\u330A\u330B\u330C\u330D"+
-        "\u330E\u330F\u3310\u3311\u3312\u3313\u3314\u3315"+
-        "\u3316\u3317\u3318\u3319\u331A\u331B\u331C\u331D"+
-        "\u331E\u331F\u3320\u3321\u3322\u3323\u3324\u3325"+
-        "\u3326\u3327\u3328\u3329\u332A\u332B\u332C\u332D"+
-        "\u332E\u332F\u3330\u3331\u3332\u3333\u3334\u3335"+
-        "\u3336\u3337\u3338\u3339\u333A\u333B\u333C\u333D"+
-        "\u333E\u333F\u3340\u3341\u3342\u3343\u3344\u3345"+
-        "\u3346\u3347\u3348\u3349\u334A\u334B\u334C\u334D"+
-        "\u334E\u334F\u3350\u3351\u3352\u3353\u3354\u3355"+
-        "\u3356\u3357\u3358\u3359\u335A\u335B\u335C\u335D";
-
-    private final static String innerDecoderIndex3=
-        "\u335E\u335F\u3360\u3361\u3362\u3363\u3364\u3365"+
-        "\u3366\u3367\u3368\u3369\u336A\u336B\u336C\u336D"+
-        "\u336E\u336F\u3370\u3371\u3372\u3373\u3374\u3375"+
-        "\u3376\u3377\u3378\u3379\u337A\u337B\u337C\u337D"+
-        "\u337E\u337F\u3380\u3381\u3382\u3383\u3384\u3385"+
-        "\u3386\u3387\u3388\u3389\u338A\u338B\u338C\u338D"+
-        "\u3390\u3391\u3392\u3393\u3394\u3395\u3396\u3397"+
-        "\u3398\u3399\u339A\u339B\u339F\u33A0\u33A2\u33A3"+
-        "\u33A4\u33A5\u33A6\u33A7\u33A8\u33A9\u33AA\u33AB"+
-        "\u33AC\u33AD\u33AE\u33AF\u33B0\u33B1\u33B2\u33B3"+
-        "\u33B4\u33B5\u33B6\u33B7\u33B8\u33B9\u33BA\u33BB"+
-        "\u33BC\u33BD\u33BE\u33BF\u33C0\u33C1\u33C2\u33C3"+
-        "\u33C5\u33C6\u33C7\u33C8\u33C9\u33CA\u33CB\u33CC"+
-        "\u33CD\u33CF\u33D0\u33D3\u33D4\u33D6\u33D7\u33D8"+
-        "\u33D9\u33DA\u33DB\u33DC\u33DD\u33DE\u33DF\u33E0"+
-        "\u33E1\u33E2\u33E3\u33E4\u33E5\u33E6\u33E7\u33E8"+
-        "\u33E9\u33EA\u33EB\u33EC\u33ED\u33EE\u33EF\u33F0"+
-        "\u33F1\u33F2\u33F3\u33F4\u33F5\u33F6\u33F7\u33F8"+
-        "\u33F9\u33FA\u33FB\u33FC\u33FD\u33FE\u33FF\u3400"+
-        "\u3401\u3402\u3403\u3404\u3405\u3406\u3407\u3408"+
-        "\u3409\u340A\u340B\u340C\u340D\u340E\u340F\u3410"+
-        "\u3411\u3412\u3413\u3414\u3415\u3416\u3417\u3418"+
-        "\u3419\u341A\u341B\u341C\u341D\u341E\u341F\u3420"+
-        "\u3421\u3422\u3423\u3424\u3425\u3426\u3427\u3428"+
-        "\u3429\u342A\u342B\u342C\u342D\u342E\u342F\u3430"+
-        "\u3431\u3432\u3433\u3434\u3435\u3436\u3437\u3438"+
-        "\u3439\u343A\u343B\u343C\u343D\u343E\u343F\u3440"+
-        "\u3441\u3442\u3443\u3444\u3445\u3446\u3448\u3449"+
-        "\u344A\u344B\u344C\u344D\u344E\u344F\u3450\u3451"+
-        "\u3452\u3453\u3454\u3455\u3456\u3457\u3458\u3459"+
-        "\u345A\u345B\u345C\u345D\u345E\u345F\u3460\u3461"+
-        "\u3462\u3463\u3464\u3465\u3466\u3467\u3468\u3469"+
-        "\u346A\u346B\u346C\u346D\u346E\u346F\u3470\u3471"+
-        "\u3472\u3474\u3475\u3476\u3477\u3478\u3479\u347A"+
-        "\u347B\u347C\u347D\u347E\u347F\u3480\u3481\u3482"+
-        "\u3483\u3484\u3485\u3486\u3487\u3488\u3489\u348A"+
-        "\u348B\u348C\u348D\u348E\u348F\u3490\u3491\u3492"+
-        "\u3493\u3494\u3495\u3496\u3497\u3498\u3499\u349A"+
-        "\u349B\u349C\u349D\u349E\u349F\u34A0\u34A1\u34A2"+
-        "\u34A3\u34A4\u34A5\u34A6\u34A7\u34A8\u34A9\u34AA"+
-        "\u34AB\u34AC\u34AD\u34AE\u34AF\u34B0\u34B1\u34B2"+
-        "\u34B3\u34B4\u34B5\u34B6\u34B7\u34B8\u34B9\u34BA"+
-        "\u34BB\u34BC\u34BD\u34BE\u34BF\u34C0\u34C1\u34C2"+
-        "\u34C3\u34C4\u34C5\u34C6\u34C7\u34C8\u34C9\u34CA"+
-        "\u34CB\u34CC\u34CD\u34CE\u34CF\u34D0\u34D1\u34D2"+
-        "\u34D3\u34D4\u34D5\u34D6\u34D7\u34D8\u34D9\u34DA"+
-        "\u34DB\u34DC\u34DD\u34DE\u34DF\u34E0\u34E1\u34E2"+
-        "\u34E3\u34E4\u34E5\u34E6\u34E7\u34E8\u34E9\u34EA"+
-        "\u34EB\u34EC\u34ED\u34EE\u34EF\u34F0\u34F1\u34F2"+
-        "\u34F3\u34F4\u34F5\u34F6\u34F7\u34F8\u34F9\u34FA"+
-        "\u34FB\u34FC\u34FD\u34FE\u34FF\u3500\u3501\u3502"+
-        "\u3503\u3504\u3505\u3506\u3507\u3508\u3509\u350A"+
-        "\u350B\u350C\u350D\u350E\u350F\u3510\u3511\u3512"+
-        "\u3513\u3514\u3515\u3516\u3517\u3518\u3519\u351A"+
-        "\u351B\u351C\u351D\u351E\u351F\u3520\u3521\u3522"+
-        "\u3523\u3524\u3525\u3526\u3527\u3528\u3529\u352A"+
-        "\u352B\u352C\u352D\u352E\u352F\u3530\u3531\u3532"+
-        "\u3533\u3534\u3535\u3536\u3537\u3538\u3539\u353A"+
-        "\u353B\u353C\u353D\u353E\u353F\u3540\u3541\u3542"+
-        "\u3543\u3544\u3545\u3546\u3547\u3548\u3549\u354A"+
-        "\u354B\u354C\u354D\u354E\u354F\u3550\u3551\u3552"+
-        "\u3553\u3554\u3555\u3556\u3557\u3558\u3559\u355A"+
-        "\u355B\u355C\u355D\u355E\u355F\u3560\u3561\u3562"+
-        "\u3563\u3564\u3565\u3566\u3567\u3568\u3569\u356A"+
-        "\u356B\u356C\u356D\u356E\u356F\u3570\u3571\u3572"+
-        "\u3573\u3574\u3575\u3576\u3577\u3578\u3579\u357A"+
-        "\u357B\u357C\u357D\u357E\u357F\u3580\u3581\u3582"+
-        "\u3583\u3584\u3585\u3586\u3587\u3588\u3589\u358A"+
-        "\u358B\u358C\u358D\u358E\u358F\u3590\u3591\u3592"+
-        "\u3593\u3594\u3595\u3596\u3597\u3598\u3599\u359A"+
-        "\u359B\u359C\u359D\u359F\u35A0\u35A1\u35A2\u35A3"+
-        "\u35A4\u35A5\u35A6\u35A7\u35A8\u35A9\u35AA\u35AB"+
-        "\u35AC\u35AD\u35AE\u35AF\u35B0\u35B1\u35B2\u35B3"+
-        "\u35B4\u35B5\u35B6\u35B7\u35B8\u35B9\u35BA\u35BB"+
-        "\u35BC\u35BD\u35BE\u35BF\u35C0\u35C1\u35C2\u35C3"+
-        "\u35C4\u35C5\u35C6\u35C7\u35C8\u35C9\u35CA\u35CB"+
-        "\u35CC\u35CD\u35CE\u35CF\u35D0\u35D1\u35D2\u35D3"+
-        "\u35D4\u35D5\u35D6\u35D7\u35D8\u35D9\u35DA\u35DB"+
-        "\u35DC\u35DD\u35DE\u35DF\u35E0\u35E1\u35E2\u35E3"+
-        "\u35E4\u35E5\u35E6\u35E7\u35E8\u35E9\u35EA\u35EB"+
-        "\u35EC\u35ED\u35EE\u35EF\u35F0\u35F1\u35F2\u35F3"+
-        "\u35F4\u35F5\u35F6\u35F7\u35F8\u35F9\u35FA\u35FB"+
-        "\u35FC\u35FD\u35FE\u35FF\u3600\u3601\u3602\u3603"+
-        "\u3604\u3605\u3606\u3607\u3608\u3609\u360A\u360B"+
-        "\u360C\u360D\u360F\u3610\u3611\u3612\u3613\u3614"+
-        "\u3615\u3616\u3617\u3618\u3619\u361B\u361C\u361D"+
-        "\u361E\u361F\u3620\u3621\u3622\u3623\u3624\u3625"+
-        "\u3626\u3627\u3628\u3629\u362A\u362B\u362C\u362D"+
-        "\u362E\u362F\u3630\u3631\u3632\u3633\u3634\u3635"+
-        "\u3636\u3637\u3638\u3639\u363A\u363B\u363C\u363D"+
-        "\u363E\u363F\u3640\u3641\u3642\u3643\u3644\u3645"+
-        "\u3646\u3647\u3648\u3649\u364A\u364B\u364C\u364D"+
-        "\u364E\u364F\u3650\u3651\u3652\u3653\u3654\u3655"+
-        "\u3656\u3657\u3658\u3659\u365A\u365B\u365C\u365D"+
-        "\u365E\u365F\u3660\u3661\u3662\u3663\u3664\u3665"+
-        "\u3666\u3667\u3668\u3669\u366A\u366B\u366C\u366D"+
-        "\u366E\u366F\u3670\u3671\u3672\u3673\u3674\u3675"+
-        "\u3676\u3677\u3678\u3679\u367A\u367B\u367C\u367D"+
-        "\u367E\u367F\u3680\u3681\u3682\u3683\u3684\u3685"+
-        "\u3686\u3687\u3688\u3689\u368A\u368B\u368C\u368D"+
-        "\u368E\u368F\u3690\u3691\u3692\u3693\u3694\u3695"+
-        "\u3696\u3697\u3698\u3699\u369A\u369B\u369C\u369D"+
-        "\u369E\u369F\u36A0\u36A1\u36A2\u36A3\u36A4\u36A5"+
-        "\u36A6\u36A7\u36A8\u36A9\u36AA\u36AB\u36AC\u36AD"+
-        "\u36AE\u36AF\u36B0\u36B1\u36B2\u36B3\u36B4\u36B5"+
-        "\u36B6\u36B7\u36B8\u36B9\u36BA\u36BB\u36BC\u36BD"+
-        "\u36BE\u36BF\u36C0\u36C1\u36C2\u36C3\u36C4\u36C5"+
-        "\u36C6\u36C7\u36C8\u36C9\u36CA\u36CB\u36CC\u36CD"+
-        "\u36CE\u36CF\u36D0\u36D1\u36D2\u36D3\u36D4\u36D5"+
-        "\u36D6\u36D7\u36D8\u36D9\u36DA\u36DB\u36DC\u36DD"+
-        "\u36DE\u36DF\u36E0\u36E1\u36E2\u36E3\u36E4\u36E5"+
-        "\u36E6\u36E7\u36E8\u36E9\u36EA\u36EB\u36EC\u36ED"+
-        "\u36EE\u36EF\u36F0\u36F1\u36F2\u36F3\u36F4\u36F5"+
-        "\u36F6\u36F7\u36F8\u36F9\u36FA\u36FB\u36FC\u36FD"+
-        "\u36FE\u36FF\u3700\u3701\u3702\u3703\u3704\u3705"+
-        "\u3706\u3707\u3708\u3709\u370A\u370B\u370C\u370D"+
-        "\u370E\u370F\u3710\u3711\u3712\u3713\u3714\u3715"+
-        "\u3716\u3717\u3718\u3719\u371A\u371B\u371C\u371D"+
-        "\u371E\u371F\u3720\u3721\u3722\u3723\u3724\u3725"+
-        "\u3726\u3727\u3728\u3729\u372A\u372B\u372C\u372D"+
-        "\u372E\u372F\u3730\u3731\u3732\u3733\u3734\u3735"+
-        "\u3736\u3737\u3738\u3739\u373A\u373B\u373C\u373D"+
-        "\u373E\u373F\u3740\u3741\u3742\u3743\u3744\u3745"+
-        "\u3746\u3747\u3748\u3749\u374A\u374B\u374C\u374D"+
-        "\u374E\u374F\u3750\u3751\u3752\u3753\u3754\u3755"+
-        "\u3756\u3757\u3758\u3759\u375A\u375B\u375C\u375D"+
-        "\u375E\u375F\u3760\u3761\u3762\u3763\u3764\u3765"+
-        "\u3766\u3767\u3768\u3769\u376A\u376B\u376C\u376D"+
-        "\u376E\u376F\u3770\u3771\u3772\u3773\u3774\u3775"+
-        "\u3776\u3777\u3778\u3779\u377A\u377B\u377C\u377D"+
-        "\u377E\u377F\u3780\u3781\u3782\u3783\u3784\u3785"+
-        "\u3786\u3787\u3788\u3789\u378A\u378B\u378C\u378D"+
-        "\u378E\u378F\u3790\u3791\u3792\u3793\u3794\u3795"+
-        "\u3796\u3797\u3798\u3799\u379A\u379B\u379C\u379D"+
-        "\u379E\u379F\u37A0\u37A1\u37A2\u37A3\u37A4\u37A5"+
-        "\u37A6\u37A7\u37A8\u37A9\u37AA\u37AB\u37AC\u37AD"+
-        "\u37AE\u37AF\u37B0\u37B1\u37B2\u37B3\u37B4\u37B5"+
-        "\u37B6\u37B7\u37B8\u37B9\u37BA\u37BB\u37BC\u37BD"+
-        "\u37BE\u37BF\u37C0\u37C1\u37C2\u37C3\u37C4\u37C5"+
-        "\u37C6\u37C7\u37C8\u37C9\u37CA\u37CB\u37CC\u37CD"+
-        "\u37CE\u37CF\u37D0\u37D1\u37D2\u37D3\u37D4\u37D5"+
-        "\u37D6\u37D7\u37D8\u37D9\u37DA\u37DB\u37DC\u37DD"+
-        "\u37DE\u37DF\u37E0\u37E1\u37E2\u37E3\u37E4\u37E5"+
-        "\u37E6\u37E7\u37E8\u37E9\u37EA\u37EB\u37EC\u37ED"+
-        "\u37EE\u37EF\u37F0\u37F1\u37F2\u37F3\u37F4\u37F5"+
-        "\u37F6\u37F7\u37F8\u37F9\u37FA\u37FB\u37FC\u37FD"+
-        "\u37FE\u37FF\u3800\u3801\u3802\u3803\u3804\u3805"+
-        "\u3806\u3807\u3808\u3809\u380A\u380B\u380C\u380D"+
-        "\u380E\u380F\u3810\u3811\u3812\u3813\u3814\u3815"+
-        "\u3816\u3817\u3818\u3819\u381A\u381B\u381C\u381D"+
-        "\u381E\u381F\u3820\u3821\u3822\u3823\u3824\u3825"+
-        "\u3826\u3827\u3828\u3829\u382A\u382B\u382C\u382D"+
-        "\u382E\u382F\u3830\u3831\u3832\u3833\u3834\u3835"+
-        "\u3836\u3837\u3838\u3839\u383A\u383B\u383C\u383D"+
-        "\u383E\u383F\u3840\u3841\u3842\u3843\u3844\u3845"+
-        "\u3846\u3847\u3848\u3849\u384A\u384B\u384C\u384D"+
-        "\u384E\u384F\u3850\u3851\u3852\u3853\u3854\u3855"+
-        "\u3856\u3857\u3858\u3859\u385A\u385B\u385C\u385D"+
-        "\u385E\u385F\u3860\u3861\u3862\u3863\u3864\u3865"+
-        "\u3866\u3867\u3868\u3869\u386A\u386B\u386C\u386D"+
-        "\u386E\u386F\u3870\u3871\u3872\u3873\u3874\u3875"+
-        "\u3876\u3877\u3878\u3879\u387A\u387B\u387C\u387D"+
-        "\u387E\u387F\u3880\u3881\u3882\u3883\u3884\u3885"+
-        "\u3886\u3887\u3888\u3889\u388A\u388B\u388C\u388D"+
-        "\u388E\u388F\u3890\u3891\u3892\u3893\u3894\u3895"+
-        "\u3896\u3897\u3898\u3899\u389A\u389B\u389C\u389D"+
-        "\u389E\u389F\u38A0\u38A1\u38A2\u38A3\u38A4\u38A5"+
-        "\u38A6\u38A7\u38A8\u38A9\u38AA\u38AB\u38AC\u38AD"+
-        "\u38AE\u38AF\u38B0\u38B1\u38B2\u38B3\u38B4\u38B5"+
-        "\u38B6\u38B7\u38B8\u38B9\u38BA\u38BB\u38BC\u38BD"+
-        "\u38BE\u38BF\u38C0\u38C1\u38C2\u38C3\u38C4\u38C5"+
-        "\u38C6\u38C7\u38C8\u38C9\u38CA\u38CB\u38CC\u38CD"+
-        "\u38CE\u38CF\u38D0\u38D1\u38D2\u38D3\u38D4\u38D5"+
-        "\u38D6\u38D7\u38D8\u38D9\u38DA\u38DB\u38DC\u38DD"+
-        "\u38DE\u38DF\u38E0\u38E1\u38E2\u38E3\u38E4\u38E5"+
-        "\u38E6\u38E7\u38E8\u38E9\u38EA\u38EB\u38EC\u38ED"+
-        "\u38EE\u38EF\u38F0\u38F1\u38F2\u38F3\u38F4\u38F5"+
-        "\u38F6\u38F7\u38F8\u38F9\u38FA\u38FB\u38FC\u38FD"+
-        "\u38FE\u38FF\u3900\u3901\u3902\u3903\u3904\u3905"+
-        "\u3906\u3907\u3908\u3909\u390A\u390B\u390C\u390D"+
-        "\u390E\u390F\u3910\u3911\u3912\u3913\u3914\u3915"+
-        "\u3916\u3917\u3919\u391A\u391B\u391C\u391D\u391E"+
-        "\u391F\u3920\u3921\u3922\u3923\u3924\u3925\u3926"+
-        "\u3927\u3928\u3929\u392A\u392B\u392C\u392D\u392E"+
-        "\u392F\u3930\u3931\u3932\u3933\u3934\u3935\u3936"+
-        "\u3937\u3938\u3939\u393A\u393B\u393C\u393D\u393E"+
-        "\u393F\u3940\u3941\u3942\u3943\u3944\u3945\u3946"+
-        "\u3947\u3948\u3949\u394A\u394B\u394C\u394D\u394E"+
-        "\u394F\u3950\u3951\u3952\u3953\u3954\u3955\u3956"+
-        "\u3957\u3958\u3959\u395A\u395B\u395C\u395D\u395E"+
-        "\u395F\u3960\u3961\u3962\u3963\u3964\u3965\u3966"+
-        "\u3967\u3968\u3969\u396A\u396B\u396C\u396D\u396F"+
-        "\u3970\u3971\u3972\u3973\u3974\u3975\u3976\u3977"+
-        "\u3978\u3979\u397A\u397B\u397C\u397D\u397E\u397F"+
-        "\u3980\u3981\u3982\u3983\u3984\u3985\u3986\u3987"+
-        "\u3988\u3989\u398A\u398B\u398C\u398D\u398E\u398F"+
-        "\u3990\u3991\u3992\u3993\u3994\u3995\u3996\u3997"+
-        "\u3998\u3999\u399A\u399B\u399C\u399D\u399E\u399F"+
-        "\u39A0\u39A1\u39A2\u39A3\u39A4\u39A5\u39A6\u39A7"+
-        "\u39A8\u39A9\u39AA\u39AB\u39AC\u39AD\u39AE\u39AF"+
-        "\u39B0\u39B1\u39B2\u39B3\u39B4\u39B5\u39B6\u39B7"+
-        "\u39B8\u39B9\u39BA\u39BB\u39BC\u39BD\u39BE\u39BF"+
-        "\u39C0\u39C1\u39C2\u39C3\u39C4\u39C5\u39C6\u39C7"+
-        "\u39C8\u39C9\u39CA\u39CB\u39CC\u39CD\u39CE\u39D1"+
-        "\u39D2\u39D3\u39D4\u39D5\u39D6\u39D7\u39D8\u39D9"+
-        "\u39DA\u39DB\u39DC\u39DD\u39DE\u39E0\u39E1\u39E2"+
-        "\u39E3\u39E4\u39E5\u39E6\u39E7\u39E8\u39E9\u39EA"+
-        "\u39EB\u39EC\u39ED\u39EE\u39EF\u39F0\u39F1\u39F2"+
-        "\u39F3\u39F4\u39F5\u39F6\u39F7\u39F8\u39F9\u39FA"+
-        "\u39FB\u39FC\u39FD\u39FE\u39FF\u3A00\u3A01\u3A02"+
-        "\u3A03\u3A04\u3A05\u3A06\u3A07\u3A08\u3A09\u3A0A"+
-        "\u3A0B\u3A0C\u3A0D\u3A0E\u3A0F\u3A10\u3A11\u3A12"+
-        "\u3A13\u3A14\u3A15\u3A16\u3A17\u3A18\u3A19\u3A1A"+
-        "\u3A1B\u3A1C\u3A1D\u3A1E\u3A1F\u3A20\u3A21\u3A22"+
-        "\u3A23\u3A24\u3A25\u3A26\u3A27\u3A28\u3A29\u3A2A"+
-        "\u3A2B\u3A2C\u3A2D\u3A2E\u3A2F\u3A30\u3A31\u3A32"+
-        "\u3A33\u3A34\u3A35\u3A36\u3A37\u3A38\u3A39\u3A3A"+
-        "\u3A3B\u3A3C\u3A3D\u3A3E\u3A3F\u3A40\u3A41\u3A42"+
-        "\u3A43\u3A44\u3A45\u3A46\u3A47\u3A48\u3A49\u3A4A"+
-        "\u3A4B\u3A4C\u3A4D\u3A4E\u3A4F\u3A50\u3A51\u3A52"+
-        "\u3A53\u3A54\u3A55\u3A56\u3A57\u3A58\u3A59\u3A5A"+
-        "\u3A5B\u3A5C\u3A5D\u3A5E\u3A5F\u3A60\u3A61\u3A62"+
-        "\u3A63\u3A64\u3A65\u3A66\u3A67\u3A68\u3A69\u3A6A"+
-        "\u3A6B\u3A6C\u3A6D\u3A6E\u3A6F\u3A70\u3A71\u3A72"+
-        "\u3A74\u3A75\u3A76\u3A77\u3A78\u3A79\u3A7A\u3A7B"+
-        "\u3A7C\u3A7D\u3A7E\u3A7F\u3A80\u3A81\u3A82\u3A83"+
-        "\u3A84\u3A85\u3A86\u3A87\u3A88\u3A89\u3A8A\u3A8B"+
-        "\u3A8C\u3A8D\u3A8E\u3A8F\u3A90\u3A91\u3A92\u3A93"+
-        "\u3A94\u3A95\u3A96\u3A97\u3A98\u3A99\u3A9A\u3A9B"+
-        "\u3A9C\u3A9D\u3A9E\u3A9F\u3AA0\u3AA1\u3AA2\u3AA3"+
-        "\u3AA4\u3AA5\u3AA6\u3AA7\u3AA8\u3AA9\u3AAA\u3AAB"+
-        "\u3AAC\u3AAD\u3AAE\u3AAF\u3AB0\u3AB1\u3AB2\u3AB3"+
-        "\u3AB4\u3AB5\u3AB6\u3AB7\u3AB8\u3AB9\u3ABA\u3ABB"+
-        "\u3ABC\u3ABD\u3ABE\u3ABF\u3AC0\u3AC1\u3AC2\u3AC3"+
-        "\u3AC4\u3AC5\u3AC6\u3AC7\u3AC8\u3AC9\u3ACA\u3ACB"+
-        "\u3ACC\u3ACD\u3ACE\u3ACF\u3AD0\u3AD1\u3AD2\u3AD3"+
-        "\u3AD4\u3AD5\u3AD6\u3AD7\u3AD8\u3AD9\u3ADA\u3ADB"+
-        "\u3ADC\u3ADD\u3ADE\u3ADF\u3AE0\u3AE1\u3AE2\u3AE3"+
-        "\u3AE4\u3AE5\u3AE6\u3AE7\u3AE8\u3AE9\u3AEA\u3AEB"+
-        "\u3AEC\u3AED\u3AEE\u3AEF\u3AF0\u3AF1\u3AF2\u3AF3"+
-        "\u3AF4\u3AF5\u3AF6\u3AF7\u3AF8\u3AF9\u3AFA\u3AFB"+
-        "\u3AFC\u3AFD\u3AFE\u3AFF\u3B00\u3B01\u3B02\u3B03"+
-        "\u3B04\u3B05\u3B06\u3B07\u3B08\u3B09\u3B0A\u3B0B"+
-        "\u3B0C\u3B0D\u3B0E\u3B0F\u3B10\u3B11\u3B12\u3B13"+
-        "\u3B14\u3B15\u3B16\u3B17\u3B18\u3B19\u3B1A\u3B1B"+
-        "\u3B1C\u3B1D\u3B1E\u3B1F\u3B20\u3B21\u3B22\u3B23"+
-        "\u3B24\u3B25\u3B26\u3B27\u3B28\u3B29\u3B2A\u3B2B"+
-        "\u3B2C\u3B2D\u3B2E\u3B2F\u3B30\u3B31\u3B32\u3B33"+
-        "\u3B34\u3B35\u3B36\u3B37\u3B38\u3B39\u3B3A\u3B3B"+
-        "\u3B3C\u3B3D\u3B3E\u3B3F\u3B40\u3B41\u3B42\u3B43"+
-        "\u3B44\u3B45\u3B46\u3B47\u3B48\u3B49\u3B4A\u3B4B"+
-        "\u3B4C\u3B4D\u3B4F\u3B50\u3B51\u3B52\u3B53\u3B54"+
-        "\u3B55\u3B56\u3B57\u3B58\u3B59\u3B5A\u3B5B\u3B5C"+
-        "\u3B5D\u3B5E\u3B5F\u3B60\u3B61\u3B62\u3B63\u3B64"+
-        "\u3B65\u3B66\u3B67\u3B68\u3B69\u3B6A\u3B6B\u3B6C"+
-        "\u3B6D\u3B6E\u3B6F\u3B70\u3B71\u3B72\u3B73\u3B74"+
-        "\u3B75\u3B76\u3B77\u3B78\u3B79\u3B7A\u3B7B\u3B7C"+
-        "\u3B7D\u3B7E\u3B7F\u3B80\u3B81\u3B82\u3B83\u3B84"+
-        "\u3B85\u3B86\u3B87\u3B88\u3B89\u3B8A\u3B8B\u3B8C"+
-        "\u3B8D\u3B8E\u3B8F\u3B90\u3B91\u3B92\u3B93\u3B94"+
-        "\u3B95\u3B96\u3B97\u3B98\u3B99\u3B9A\u3B9B\u3B9C"+
-        "\u3B9D\u3B9E\u3B9F\u3BA0\u3BA1\u3BA2\u3BA3\u3BA4"+
-        "\u3BA5\u3BA6\u3BA7\u3BA8\u3BA9\u3BAA\u3BAB\u3BAC"+
-        "\u3BAD\u3BAE\u3BAF\u3BB0\u3BB1\u3BB2\u3BB3\u3BB4"+
-        "\u3BB5\u3BB6\u3BB7\u3BB8\u3BB9\u3BBA\u3BBB\u3BBC"+
-        "\u3BBD\u3BBE\u3BBF\u3BC0\u3BC1\u3BC2\u3BC3\u3BC4"+
-        "\u3BC5\u3BC6\u3BC7\u3BC8\u3BC9\u3BCA\u3BCB\u3BCC"+
-        "\u3BCD\u3BCE\u3BCF\u3BD0\u3BD1\u3BD2\u3BD3\u3BD4"+
-        "\u3BD5\u3BD6\u3BD7\u3BD8\u3BD9\u3BDA\u3BDB\u3BDC"+
-        "\u3BDD\u3BDE\u3BDF\u3BE0\u3BE1\u3BE2\u3BE3\u3BE4"+
-        "\u3BE5\u3BE6\u3BE7\u3BE8\u3BE9\u3BEA\u3BEB\u3BEC"+
-        "\u3BED\u3BEE\u3BEF\u3BF0\u3BF1\u3BF2\u3BF3\u3BF4"+
-        "\u3BF5\u3BF6\u3BF7\u3BF8\u3BF9\u3BFA\u3BFB\u3BFC"+
-        "\u3BFD\u3BFE\u3BFF\u3C00\u3C01\u3C02\u3C03\u3C04"+
-        "\u3C05\u3C06\u3C07\u3C08\u3C09\u3C0A\u3C0B\u3C0C"+
-        "\u3C0D\u3C0E\u3C0F\u3C10\u3C11\u3C12\u3C13\u3C14"+
-        "\u3C15\u3C16\u3C17\u3C18\u3C19\u3C1A\u3C1B\u3C1C"+
-        "\u3C1D\u3C1E\u3C1F\u3C20\u3C21\u3C22\u3C23\u3C24"+
-        "\u3C25\u3C26\u3C27\u3C28\u3C29\u3C2A\u3C2B\u3C2C"+
-        "\u3C2D\u3C2E\u3C2F\u3C30\u3C31\u3C32\u3C33\u3C34"+
-        "\u3C35\u3C36\u3C37\u3C38\u3C39\u3C3A\u3C3B\u3C3C"+
-        "\u3C3D\u3C3E\u3C3F\u3C40\u3C41\u3C42\u3C43\u3C44"+
-        "\u3C45\u3C46\u3C47\u3C48\u3C49\u3C4A\u3C4B\u3C4C"+
-        "\u3C4D\u3C4E\u3C4F\u3C50\u3C51\u3C52\u3C53\u3C54"+
-        "\u3C55\u3C56\u3C57\u3C58\u3C59\u3C5A\u3C5B\u3C5C"+
-        "\u3C5D\u3C5E\u3C5F\u3C60\u3C61\u3C62\u3C63\u3C64"+
-        "\u3C65\u3C66\u3C67\u3C68\u3C69\u3C6A\u3C6B\u3C6C"+
-        "\u3C6D\u3C6F\u3C70\u3C71\u3C72\u3C73\u3C74\u3C75"+
-        "\u3C76\u3C77\u3C78\u3C79\u3C7A\u3C7B\u3C7C\u3C7D"+
-        "\u3C7E\u3C7F\u3C80\u3C81\u3C82\u3C83\u3C84\u3C85"+
-        "\u3C86\u3C87\u3C88\u3C89\u3C8A\u3C8B\u3C8C\u3C8D"+
-        "\u3C8E\u3C8F\u3C90\u3C91\u3C92\u3C93\u3C94\u3C95"+
-        "\u3C96\u3C97\u3C98\u3C99\u3C9A\u3C9B\u3C9C\u3C9D"+
-        "\u3C9E\u3C9F\u3CA0\u3CA1\u3CA2\u3CA3\u3CA4\u3CA5"+
-        "\u3CA6\u3CA7\u3CA8\u3CA9\u3CAA\u3CAB\u3CAC\u3CAD"+
-        "\u3CAE\u3CAF\u3CB0\u3CB1\u3CB2\u3CB3\u3CB4\u3CB5"+
-        "\u3CB6\u3CB7\u3CB8\u3CB9\u3CBA\u3CBB\u3CBC\u3CBD"+
-        "\u3CBE\u3CBF\u3CC0\u3CC1\u3CC2\u3CC3\u3CC4\u3CC5"+
-        "\u3CC6\u3CC7\u3CC8\u3CC9\u3CCA\u3CCB\u3CCC\u3CCD"+
-        "\u3CCE\u3CCF\u3CD0\u3CD1\u3CD2\u3CD3\u3CD4\u3CD5"+
-        "\u3CD6\u3CD7\u3CD8\u3CD9\u3CDA\u3CDB\u3CDC\u3CDD"+
-        "\u3CDE\u3CDF\u3CE1\u3CE2\u3CE3\u3CE4\u3CE5\u3CE6"+
-        "\u3CE7\u3CE8\u3CE9\u3CEA\u3CEB\u3CEC\u3CED\u3CEE"+
-        "\u3CEF\u3CF0\u3CF1\u3CF2\u3CF3\u3CF4\u3CF5\u3CF6"+
-        "\u3CF7\u3CF8\u3CF9\u3CFA\u3CFB\u3CFC\u3CFD\u3CFE"+
-        "\u3CFF\u3D00\u3D01\u3D02\u3D03\u3D04\u3D05\u3D06"+
-        "\u3D07\u3D08\u3D09\u3D0A\u3D0B\u3D0C\u3D0D\u3D0E"+
-        "\u3D0F\u3D10\u3D11\u3D12\u3D13\u3D14\u3D15\u3D16"+
-        "\u3D17\u3D18\u3D19\u3D1A\u3D1B\u3D1C\u3D1D\u3D1E"+
-        "\u3D1F\u3D20\u3D21\u3D22\u3D23\u3D24\u3D25\u3D26"+
-        "\u3D27\u3D28\u3D29\u3D2A\u3D2B\u3D2C\u3D2D\u3D2E"+
-        "\u3D2F\u3D30\u3D31\u3D32\u3D33\u3D34\u3D35\u3D36"+
-        "\u3D37\u3D38\u3D39\u3D3A\u3D3B\u3D3C\u3D3D\u3D3E"+
-        "\u3D3F\u3D40\u3D41\u3D42\u3D43\u3D44\u3D45\u3D46"+
-        "\u3D47\u3D48\u3D49\u3D4A\u3D4B\u3D4C\u3D4D\u3D4E"+
-        "\u3D4F\u3D50\u3D51\u3D52\u3D53\u3D54\u3D55\u3D56"+
-        "\u3D57\u3D58\u3D59\u3D5A\u3D5B\u3D5C\u3D5D\u3D5E"+
-        "\u3D5F\u3D60\u3D61\u3D62\u3D63\u3D64\u3D65\u3D66"+
-        "\u3D67\u3D68\u3D69\u3D6A\u3D6B\u3D6C\u3D6D\u3D6E"+
-        "\u3D6F\u3D70\u3D71\u3D72\u3D73\u3D74\u3D75\u3D76"+
-        "\u3D77\u3D78\u3D79\u3D7A\u3D7B\u3D7C\u3D7D\u3D7E"+
-        "\u3D7F\u3D80\u3D81\u3D82\u3D83\u3D84\u3D85\u3D86"+
-        "\u3D87\u3D88\u3D89\u3D8A\u3D8B\u3D8C\u3D8D\u3D8E"+
-        "\u3D8F\u3D90\u3D91\u3D92\u3D93\u3D94\u3D95\u3D96"+
-        "\u3D97\u3D98\u3D99\u3D9A\u3D9B\u3D9C\u3D9D\u3D9E"+
-        "\u3D9F\u3DA0\u3DA1\u3DA2\u3DA3\u3DA4\u3DA5\u3DA6"+
-        "\u3DA7\u3DA8\u3DA9\u3DAA\u3DAB\u3DAC\u3DAD\u3DAE"+
-        "\u3DAF\u3DB0\u3DB1\u3DB2\u3DB3\u3DB4\u3DB5\u3DB6"+
-        "\u3DB7\u3DB8\u3DB9\u3DBA\u3DBB\u3DBC\u3DBD\u3DBE"+
-        "\u3DBF\u3DC0\u3DC1\u3DC2\u3DC3\u3DC4\u3DC5\u3DC6"+
-        "\u3DC7\u3DC8\u3DC9\u3DCA\u3DCB\u3DCC\u3DCD\u3DCE"+
-        "\u3DCF\u3DD0\u3DD1\u3DD2\u3DD3\u3DD4\u3DD5\u3DD6"+
-        "\u3DD7\u3DD8\u3DD9\u3DDA\u3DDB\u3DDC\u3DDD\u3DDE"+
-        "\u3DDF\u3DE0\u3DE1\u3DE2\u3DE3\u3DE4\u3DE5\u3DE6"+
-        "\u3DE7\u3DE8\u3DE9\u3DEA\u3DEB\u3DEC\u3DED\u3DEE"+
-        "\u3DEF\u3DF0\u3DF1\u3DF2\u3DF3\u3DF4\u3DF5\u3DF6"+
-        "\u3DF7\u3DF8\u3DF9\u3DFA\u3DFB\u3DFC\u3DFD\u3DFE"+
-        "\u3DFF\u3E00\u3E01\u3E02\u3E03\u3E04\u3E05\u3E06"+
-        "\u3E07\u3E08\u3E09\u3E0A\u3E0B\u3E0C\u3E0D\u3E0E"+
-        "\u3E0F\u3E10\u3E11\u3E12\u3E13\u3E14\u3E15\u3E16"+
-        "\u3E17\u3E18\u3E19\u3E1A\u3E1B\u3E1C\u3E1D\u3E1E"+
-        "\u3E1F\u3E20\u3E21\u3E22\u3E23\u3E24\u3E25\u3E26"+
-        "\u3E27\u3E28\u3E29\u3E2A\u3E2B\u3E2C\u3E2D\u3E2E"+
-        "\u3E2F\u3E30\u3E31\u3E32\u3E33\u3E34\u3E35\u3E36"+
-        "\u3E37\u3E38\u3E39\u3E3A\u3E3B\u3E3C\u3E3D\u3E3E"+
-        "\u3E3F\u3E40\u3E41\u3E42\u3E43\u3E44\u3E45\u3E46"+
-        "\u3E47\u3E48\u3E49\u3E4A\u3E4B\u3E4C\u3E4D\u3E4E"+
-        "\u3E4F\u3E50\u3E51\u3E52\u3E53\u3E54\u3E55\u3E56"+
-        "\u3E57\u3E58\u3E59\u3E5A\u3E5B\u3E5C\u3E5D\u3E5E"+
-        "\u3E5F\u3E60\u3E61\u3E62\u3E63\u3E64\u3E65\u3E66"+
-        "\u3E67\u3E68\u3E69\u3E6A\u3E6B\u3E6C\u3E6D\u3E6E"+
-        "\u3E6F\u3E70\u3E71\u3E72\u3E73\u3E74\u3E75\u3E76"+
-        "\u3E77\u3E78\u3E79\u3E7A\u3E7B\u3E7C\u3E7D\u3E7E"+
-        "\u3E7F\u3E80\u3E81\u3E82\u3E83\u3E84\u3E85\u3E86"+
-        "\u3E87\u3E88\u3E89\u3E8A\u3E8B\u3E8C\u3E8D\u3E8E"+
-        "\u3E8F\u3E90\u3E91\u3E92\u3E93\u3E94\u3E95\u3E96"+
-        "\u3E97\u3E98\u3E99\u3E9A\u3E9B\u3E9C\u3E9D\u3E9E"+
-        "\u3E9F\u3EA0\u3EA1\u3EA2\u3EA3\u3EA4\u3EA5\u3EA6"+
-        "\u3EA7\u3EA8\u3EA9\u3EAA\u3EAB\u3EAC\u3EAD\u3EAE"+
-        "\u3EAF\u3EB0\u3EB1\u3EB2\u3EB3\u3EB4\u3EB5\u3EB6"+
-        "\u3EB7\u3EB8\u3EB9\u3EBA\u3EBB\u3EBC\u3EBD\u3EBE"+
-        "\u3EBF\u3EC0\u3EC1\u3EC2\u3EC3\u3EC4\u3EC5\u3EC6"+
-        "\u3EC7\u3EC8\u3EC9\u3ECA\u3ECB\u3ECC\u3ECD\u3ECE"+
-        "\u3ECF\u3ED0\u3ED1\u3ED2\u3ED3\u3ED4\u3ED5\u3ED6"+
-        "\u3ED7\u3ED8\u3ED9\u3EDA\u3EDB\u3EDC\u3EDD\u3EDE"+
-        "\u3EDF\u3EE0\u3EE1\u3EE2\u3EE3\u3EE4\u3EE5\u3EE6"+
-        "\u3EE7\u3EE8\u3EE9\u3EEA\u3EEB\u3EEC\u3EED\u3EEE"+
-        "\u3EEF\u3EF0\u3EF1\u3EF2\u3EF3\u3EF4\u3EF5\u3EF6"+
-        "\u3EF7\u3EF8\u3EF9\u3EFA\u3EFB\u3EFC\u3EFD\u3EFE"+
-        "\u3EFF\u3F00\u3F01\u3F02\u3F03\u3F04\u3F05\u3F06"+
-        "\u3F07\u3F08\u3F09\u3F0A\u3F0B\u3F0C\u3F0D\u3F0E"+
-        "\u3F0F\u3F10\u3F11\u3F12\u3F13\u3F14\u3F15\u3F16"+
-        "\u3F17\u3F18\u3F19\u3F1A\u3F1B\u3F1C\u3F1D\u3F1E"+
-        "\u3F1F\u3F20\u3F21\u3F22\u3F23\u3F24\u3F25\u3F26"+
-        "\u3F27\u3F28\u3F29\u3F2A\u3F2B\u3F2C\u3F2D\u3F2E"+
-        "\u3F2F\u3F30\u3F31\u3F32\u3F33\u3F34\u3F35\u3F36"+
-        "\u3F37\u3F38\u3F39\u3F3A\u3F3B\u3F3C\u3F3D\u3F3E"+
-        "\u3F3F\u3F40\u3F41\u3F42\u3F43\u3F44\u3F45\u3F46"+
-        "\u3F47\u3F48\u3F49\u3F4A\u3F4B\u3F4C\u3F4D\u3F4E"+
-        "\u3F4F\u3F50\u3F51\u3F52\u3F53\u3F54\u3F55\u3F56"+
-        "\u3F57\u3F58\u3F59\u3F5A\u3F5B\u3F5C\u3F5D\u3F5E"+
-        "\u3F5F\u3F60\u3F61\u3F62\u3F63\u3F64\u3F65\u3F66"+
-        "\u3F67\u3F68\u3F69\u3F6A\u3F6B\u3F6C\u3F6D\u3F6E"+
-        "\u3F6F\u3F70\u3F71\u3F72\u3F73\u3F74\u3F75\u3F76"+
-        "\u3F77\u3F78\u3F79\u3F7A\u3F7B\u3F7C\u3F7D\u3F7E"+
-        "\u3F7F\u3F80\u3F81\u3F82\u3F83\u3F84\u3F85\u3F86"+
-        "\u3F87\u3F88\u3F89\u3F8A\u3F8B\u3F8C\u3F8D\u3F8E"+
-        "\u3F8F\u3F90\u3F91\u3F92\u3F93\u3F94\u3F95\u3F96"+
-        "\u3F97\u3F98\u3F99\u3F9A\u3F9B\u3F9C\u3F9D\u3F9E"+
-        "\u3F9F\u3FA0\u3FA1\u3FA2\u3FA3\u3FA4\u3FA5\u3FA6"+
-        "\u3FA7\u3FA8\u3FA9\u3FAA\u3FAB\u3FAC\u3FAD\u3FAE"+
-        "\u3FAF\u3FB0\u3FB1\u3FB2\u3FB3\u3FB4\u3FB5\u3FB6"+
-        "\u3FB7\u3FB8\u3FB9\u3FBA\u3FBB\u3FBC\u3FBD\u3FBE"+
-        "\u3FBF\u3FC0\u3FC1\u3FC2\u3FC3\u3FC4\u3FC5\u3FC6"+
-        "\u3FC7\u3FC8\u3FC9\u3FCA\u3FCB\u3FCC\u3FCD\u3FCE"+
-        "\u3FCF\u3FD0\u3FD1\u3FD2\u3FD3\u3FD4\u3FD5\u3FD6"+
-        "\u3FD7\u3FD8\u3FD9\u3FDA\u3FDB\u3FDC\u3FDD\u3FDE"+
-        "\u3FDF\u3FE0\u3FE1\u3FE2\u3FE3\u3FE4\u3FE5\u3FE6"+
-        "\u3FE7\u3FE8\u3FE9\u3FEA\u3FEB\u3FEC\u3FED\u3FEE"+
-        "\u3FEF\u3FF0\u3FF1\u3FF2\u3FF3\u3FF4\u3FF5\u3FF6"+
-        "\u3FF7\u3FF8\u3FF9\u3FFA\u3FFB\u3FFC\u3FFD\u3FFE"+
-        "\u3FFF\u4000\u4001\u4002\u4003\u4004\u4005\u4006"+
-        "\u4007\u4008\u4009\u400A\u400B\u400C\u400D\u400E"+
-        "\u400F\u4010\u4011\u4012\u4013\u4014\u4015\u4016"+
-        "\u4017\u4018\u4019\u401A\u401B\u401C\u401D\u401E"+
-        "\u401F\u4020\u4021\u4022\u4023\u4024\u4025\u4026"+
-        "\u4027\u4028\u4029\u402A\u402B\u402C\u402D\u402E"+
-        "\u402F\u4030\u4031\u4032\u4033\u4034\u4035\u4036"+
-        "\u4037\u4038\u4039\u403A\u403B\u403C\u403D\u403E"+
-        "\u403F\u4040\u4041\u4042\u4043\u4044\u4045\u4046"+
-        "\u4047\u4048\u4049\u404A\u404B\u404C\u404D\u404E"+
-        "\u404F\u4050\u4051\u4052\u4053\u4054\u4055\u4057"+
-        "\u4058\u4059\u405A\u405B\u405C\u405D\u405E\u405F"+
-        "\u4060\u4061\u4062\u4063\u4064\u4065\u4066\u4067"+
-        "\u4068\u4069\u406A\u406B\u406C\u406D\u406E\u406F"+
-        "\u4070\u4071\u4072\u4073\u4074\u4075\u4076\u4077"+
-        "\u4078\u4079\u407A\u407B\u407C\u407D\u407E\u407F"+
-        "\u4080\u4081\u4082\u4083\u4084\u4085\u4086\u4087"+
-        "\u4088\u4089\u408A\u408B\u408C\u408D\u408E\u408F"+
-        "\u4090\u4091\u4092\u4093\u4094\u4095\u4096\u4097"+
-        "\u4098\u4099\u409A\u409B\u409C\u409D\u409E\u409F"+
-        "\u40A0\u40A1\u40A2\u40A3\u40A4\u40A5\u40A6\u40A7"+
-        "\u40A8\u40A9\u40AA\u40AB\u40AC\u40AD\u40AE\u40AF"+
-        "\u40B0\u40B1\u40B2\u40B3\u40B4\u40B5\u40B6\u40B7"+
-        "\u40B8\u40B9\u40BA\u40BB\u40BC\u40BD\u40BE\u40BF"+
-        "\u40C0\u40C1\u40C2\u40C3\u40C4\u40C5\u40C6\u40C7"+
-        "\u40C8\u40C9\u40CA\u40CB\u40CC\u40CD\u40CE\u40CF"+
-        "\u40D0\u40D1\u40D2\u40D3\u40D4\u40D5\u40D6\u40D7"+
-        "\u40D8\u40D9\u40DA\u40DB\u40DC\u40DD\u40DE\u40DF"+
-        "\u40E0\u40E1\u40E2\u40E3\u40E4\u40E5\u40E6\u40E7"+
-        "\u40E8\u40E9\u40EA\u40EB\u40EC\u40ED\u40EE\u40EF"+
-        "\u40F0\u40F1\u40F2\u40F3\u40F4\u40F5\u40F6\u40F7"+
-        "\u40F8\u40F9\u40FA\u40FB\u40FC\u40FD\u40FE\u40FF"+
-        "\u4100\u4101\u4102\u4103\u4104\u4105\u4106\u4107"+
-        "\u4108\u4109\u410A\u410B\u410C\u410D\u410E\u410F"+
-        "\u4110\u4111\u4112\u4113\u4114\u4115\u4116\u4117"+
-        "\u4118\u4119\u411A\u411B\u411C\u411D\u411E\u411F"+
-        "\u4120\u4121\u4122\u4123\u4124\u4125\u4126\u4127"+
-        "\u4128\u4129\u412A\u412B\u412C\u412D\u412E\u412F"+
-        "\u4130\u4131\u4132\u4133\u4134\u4135\u4136\u4137"+
-        "\u4138\u4139\u413A\u413B\u413C\u413D\u413E\u413F"+
-        "\u4140\u4141\u4142\u4143\u4144\u4145\u4146\u4147"+
-        "\u4148\u4149\u414A\u414B\u414C\u414D\u414E\u414F"+
-        "\u4150\u4151\u4152\u4153\u4154\u4155\u4156\u4157"+
-        "\u4158\u4159\u415A\u415B\u415C\u415D\u415E\u4160"+
-        "\u4161\u4162\u4163\u4164\u4165\u4166\u4167\u4168"+
-        "\u4169\u416A\u416B\u416C\u416D\u416E\u416F\u4170"+
-        "\u4171\u4172\u4173\u4174\u4175\u4176\u4177\u4178"+
-        "\u4179\u417A\u417B\u417C\u417D\u417E\u417F\u4180"+
-        "\u4181\u4182\u4183\u4184\u4185\u4186\u4187\u4188"+
-        "\u4189\u418A\u418B\u418C\u418D\u418E\u418F\u4190"+
-        "\u4191\u4192\u4193\u4194\u4195\u4196\u4197\u4198"+
-        "\u4199\u419A\u419B\u419C\u419D\u419E\u419F\u41A0"+
-        "\u41A1\u41A2\u41A3\u41A4\u41A5\u41A6\u41A7\u41A8"+
-        "\u41A9\u41AA\u41AB\u41AC\u41AD\u41AE\u41AF\u41B0"+
-        "\u41B1\u41B2\u41B3\u41B4\u41B5\u41B6\u41B7\u41B8"+
-        "\u41B9\u41BA\u41BB\u41BC\u41BD\u41BE\u41BF\u41C0"+
-        "\u41C1\u41C2\u41C3\u41C4\u41C5\u41C6\u41C7\u41C8"+
-        "\u41C9\u41CA\u41CB\u41CC\u41CD\u41CE\u41CF\u41D0"+
-        "\u41D1\u41D2\u41D3\u41D4\u41D5\u41D6\u41D7\u41D8"+
-        "\u41D9\u41DA\u41DB\u41DC\u41DD\u41DE\u41DF\u41E0"+
-        "\u41E1\u41E2\u41E3\u41E4\u41E5\u41E6\u41E7\u41E8"+
-        "\u41E9\u41EA\u41EB\u41EC\u41ED\u41EE\u41EF\u41F0"+
-        "\u41F1\u41F2\u41F3\u41F4\u41F5\u41F6\u41F7\u41F8"+
-        "\u41F9\u41FA\u41FB\u41FC\u41FD\u41FE\u41FF\u4200"+
-        "\u4201\u4202\u4203\u4204\u4205\u4206\u4207\u4208"+
-        "\u4209\u420A\u420B\u420C\u420D\u420E\u420F\u4210"+
-        "\u4211\u4212\u4213\u4214\u4215\u4216\u4217\u4218"+
-        "\u4219\u421A\u421B\u421C\u421D\u421E\u421F\u4220"+
-        "\u4221\u4222\u4223\u4224\u4225\u4226\u4227\u4228"+
-        "\u4229\u422A\u422B\u422C\u422D\u422E\u422F\u4230"+
-        "\u4231\u4232\u4233\u4234\u4235\u4236\u4237\u4238"+
-        "\u4239\u423A\u423B\u423C\u423D\u423E\u423F\u4240"+
-        "\u4241\u4242\u4243\u4244\u4245\u4246\u4247\u4248"+
-        "\u4249\u424A\u424B\u424C\u424D\u424E\u424F\u4250"+
-        "\u4251\u4252\u4253\u4254\u4255\u4256\u4257\u4258"+
-        "\u4259\u425A\u425B\u425C\u425D\u425E\u425F\u4260"+
-        "\u4261\u4262\u4263\u4264\u4265\u4266\u4267\u4268"+
-        "\u4269\u426A\u426B\u426C\u426D\u426E\u426F\u4270"+
-        "\u4271\u4272\u4273\u4274\u4275\u4276\u4277\u4278"+
-        "\u4279\u427A\u427B\u427C\u427D\u427E\u427F\u4280"+
-        "\u4281\u4282\u4283\u4284\u4285\u4286\u4287\u4288"+
-        "\u4289\u428A\u428B\u428C\u428D\u428E\u428F\u4290"+
-        "\u4291\u4292\u4293\u4294\u4295\u4296\u4297\u4298"+
-        "\u4299\u429A\u429B\u429C\u429D\u429E\u429F\u42A0"+
-        "\u42A1\u42A2\u42A3\u42A4\u42A5\u42A6\u42A7\u42A8"+
-        "\u42A9\u42AA\u42AB\u42AC\u42AD\u42AE\u42AF\u42B0"+
-        "\u42B1\u42B2\u42B3\u42B4\u42B5\u42B6\u42B7\u42B8"+
-        "\u42B9\u42BA\u42BB\u42BC\u42BD\u42BE\u42BF\u42C0"+
-        "\u42C1\u42C2\u42C3\u42C4\u42C5\u42C6\u42C7\u42C8"+
-        "\u42C9\u42CA\u42CB\u42CC\u42CD\u42CE\u42CF\u42D0"+
-        "\u42D1\u42D2\u42D3\u42D4\u42D5\u42D6\u42D7\u42D8"+
-        "\u42D9\u42DA\u42DB\u42DC\u42DD\u42DE\u42DF\u42E0"+
-        "\u42E1\u42E2\u42E3\u42E4\u42E5\u42E6\u42E7\u42E8"+
-        "\u42E9\u42EA\u42EB\u42EC\u42ED\u42EE\u42EF\u42F0"+
-        "\u42F1\u42F2\u42F3\u42F4\u42F5\u42F6\u42F7\u42F8"+
-        "\u42F9\u42FA\u42FB\u42FC\u42FD\u42FE\u42FF\u4300"+
-        "\u4301\u4302\u4303\u4304\u4305\u4306\u4307\u4308"+
-        "\u4309\u430A\u430B\u430C\u430D\u430E\u430F\u4310"+
-        "\u4311\u4312\u4313\u4314\u4315\u4316\u4317\u4318"+
-        "\u4319\u431A\u431B\u431C\u431D\u431E\u431F\u4320"+
-        "\u4321\u4322\u4323\u4324\u4325\u4326\u4327\u4328"+
-        "\u4329\u432A\u432B\u432C\u432D\u432E\u432F\u4330"+
-        "\u4331\u4332\u4333\u4334\u4335\u4336\u4338\u4339"+
-        "\u433A\u433B\u433C\u433D\u433E\u433F\u4340\u4341"+
-        "\u4342\u4343\u4344\u4345\u4346\u4347\u4348\u4349"+
-        "\u434A\u434B\u434C\u434D\u434E\u434F\u4350\u4351"+
-        "\u4352\u4353\u4354\u4355\u4356\u4357\u4358\u4359"+
-        "\u435A\u435B\u435C\u435D\u435E\u435F\u4360\u4361"+
-        "\u4362\u4363\u4364\u4365\u4366\u4367\u4368\u4369"+
-        "\u436A\u436B\u436C\u436D\u436E\u436F\u4370\u4371"+
-        "\u4372\u4373\u4374\u4375\u4376\u4377\u4378\u4379";
-
-    private final static String innerDecoderIndex4=
-        "\u437A\u437B\u437C\u437D\u437E\u437F\u4380\u4381"+
-        "\u4382\u4383\u4384\u4385\u4386\u4387\u4388\u4389"+
-        "\u438A\u438B\u438C\u438D\u438E\u438F\u4390\u4391"+
-        "\u4392\u4393\u4394\u4395\u4396\u4397\u4398\u4399"+
-        "\u439A\u439B\u439C\u439D\u439E\u439F\u43A0\u43A1"+
-        "\u43A2\u43A3\u43A4\u43A5\u43A6\u43A7\u43A8\u43A9"+
-        "\u43AA\u43AB\u43AD\u43AE\u43AF\u43B0\u43B2\u43B3"+
-        "\u43B4\u43B5\u43B6\u43B7\u43B8\u43B9\u43BA\u43BB"+
-        "\u43BC\u43BD\u43BE\u43BF\u43C0\u43C1\u43C2\u43C3"+
-        "\u43C4\u43C5\u43C6\u43C7\u43C8\u43C9\u43CA\u43CB"+
-        "\u43CC\u43CD\u43CE\u43CF\u43D0\u43D1\u43D2\u43D3"+
-        "\u43D4\u43D5\u43D6\u43D7\u43D8\u43D9\u43DA\u43DB"+
-        "\u43DC\u43DE\u43DF\u43E0\u43E1\u43E2\u43E3\u43E4"+
-        "\u43E5\u43E6\u43E7\u43E8\u43E9\u43EA\u43EB\u43EC"+
-        "\u43ED\u43EE\u43EF\u43F0\u43F1\u43F2\u43F3\u43F4"+
-        "\u43F5\u43F6\u43F7\u43F8\u43F9\u43FA\u43FB\u43FC"+
-        "\u43FD\u43FE\u43FF\u4400\u4401\u4402\u4403\u4404"+
-        "\u4405\u4406\u4407\u4408\u4409\u440A\u440B\u440C"+
-        "\u440D\u440E\u440F\u4410\u4411\u4412\u4413\u4414"+
-        "\u4415\u4416\u4417\u4418\u4419\u441A\u441B\u441C"+
-        "\u441D\u441E\u441F\u4420\u4421\u4422\u4423\u4424"+
-        "\u4425\u4426\u4427\u4428\u4429\u442A\u442B\u442C"+
-        "\u442D\u442E\u442F\u4430\u4431\u4432\u4433\u4434"+
-        "\u4435\u4436\u4437\u4438\u4439\u443A\u443B\u443C"+
-        "\u443D\u443E\u443F\u4440\u4441\u4442\u4443\u4444"+
-        "\u4445\u4446\u4447\u4448\u4449\u444A\u444B\u444C"+
-        "\u444D\u444E\u444F\u4450\u4451\u4452\u4453\u4454"+
-        "\u4455\u4456\u4457\u4458\u4459\u445A\u445B\u445C"+
-        "\u445D\u445E\u445F\u4460\u4461\u4462\u4463\u4464"+
-        "\u4465\u4466\u4467\u4468\u4469\u446A\u446B\u446C"+
-        "\u446D\u446E\u446F\u4470\u4471\u4472\u4473\u4474"+
-        "\u4475\u4476\u4477\u4478\u4479\u447A\u447B\u447C"+
-        "\u447D\u447E\u447F\u4480\u4481\u4482\u4483\u4484"+
-        "\u4485\u4486\u4487\u4488\u4489\u448A\u448B\u448C"+
-        "\u448D\u448E\u448F\u4490\u4491\u4492\u4493\u4494"+
-        "\u4495\u4496\u4497\u4498\u4499\u449A\u449B\u449C"+
-        "\u449D\u449E\u449F\u44A0\u44A1\u44A2\u44A3\u44A4"+
-        "\u44A5\u44A6\u44A7\u44A8\u44A9\u44AA\u44AB\u44AC"+
-        "\u44AD\u44AE\u44AF\u44B0\u44B1\u44B2\u44B3\u44B4"+
-        "\u44B5\u44B6\u44B7\u44B8\u44B9\u44BA\u44BB\u44BC"+
-        "\u44BD\u44BE\u44BF\u44C0\u44C1\u44C2\u44C3\u44C4"+
-        "\u44C5\u44C6\u44C7\u44C8\u44C9\u44CA\u44CB\u44CC"+
-        "\u44CD\u44CE\u44CF\u44D0\u44D1\u44D2\u44D3\u44D4"+
-        "\u44D5\u44D7\u44D8\u44D9\u44DA\u44DB\u44DC\u44DD"+
-        "\u44DE\u44DF\u44E0\u44E1\u44E2\u44E3\u44E4\u44E5"+
-        "\u44E6\u44E7\u44E8\u44E9\u44EA\u44EB\u44EC\u44ED"+
-        "\u44EE\u44EF\u44F0\u44F1\u44F2\u44F3\u44F4\u44F5"+
-        "\u44F6\u44F7\u44F8\u44F9\u44FA\u44FB\u44FC\u44FD"+
-        "\u44FE\u44FF\u4500\u4501\u4502\u4503\u4504\u4505"+
-        "\u4506\u4507\u4508\u4509\u450A\u450B\u450C\u450D"+
-        "\u450E\u450F\u4510\u4511\u4512\u4513\u4514\u4515"+
-        "\u4516\u4517\u4518\u4519\u451A\u451B\u451C\u451D"+
-        "\u451E\u451F\u4520\u4521\u4522\u4523\u4524\u4525"+
-        "\u4526\u4527\u4528\u4529\u452A\u452B\u452C\u452D"+
-        "\u452E\u452F\u4530\u4531\u4532\u4533\u4534\u4535"+
-        "\u4536\u4537\u4538\u4539\u453A\u453B\u453C\u453D"+
-        "\u453E\u453F\u4540\u4541\u4542\u4543\u4544\u4545"+
-        "\u4546\u4547\u4548\u4549\u454A\u454B\u454C\u454D"+
-        "\u454E\u454F\u4550\u4551\u4552\u4553\u4554\u4555"+
-        "\u4556\u4557\u4558\u4559\u455A\u455B\u455C\u455D"+
-        "\u455E\u455F\u4560\u4561\u4562\u4563\u4564\u4565"+
-        "\u4566\u4567\u4568\u4569\u456A\u456B\u456C\u456D"+
-        "\u456E\u456F\u4570\u4571\u4572\u4573\u4574\u4575"+
-        "\u4576\u4577\u4578\u4579\u457A\u457B\u457C\u457D"+
-        "\u457E\u457F\u4580\u4581\u4582\u4583\u4584\u4585"+
-        "\u4586\u4587\u4588\u4589\u458A\u458B\u458C\u458D"+
-        "\u458E\u458F\u4590\u4591\u4592\u4593\u4594\u4595"+
-        "\u4596\u4597\u4598\u4599\u459A\u459B\u459C\u459D"+
-        "\u459E\u459F\u45A0\u45A1\u45A2\u45A3\u45A4\u45A5"+
-        "\u45A6\u45A7\u45A8\u45A9\u45AA\u45AB\u45AC\u45AD"+
-        "\u45AE\u45AF\u45B0\u45B1\u45B2\u45B3\u45B4\u45B5"+
-        "\u45B6\u45B7\u45B8\u45B9\u45BA\u45BB\u45BC\u45BD"+
-        "\u45BE\u45BF\u45C0\u45C1\u45C2\u45C3\u45C4\u45C5"+
-        "\u45C6\u45C7\u45C8\u45C9\u45CA\u45CB\u45CC\u45CD"+
-        "\u45CE\u45CF\u45D0\u45D1\u45D2\u45D3\u45D4\u45D5"+
-        "\u45D6\u45D7\u45D8\u45D9\u45DA\u45DB\u45DC\u45DD"+
-        "\u45DE\u45DF\u45E0\u45E1\u45E2\u45E3\u45E4\u45E5"+
-        "\u45E6\u45E7\u45E8\u45E9\u45EA\u45EB\u45EC\u45ED"+
-        "\u45EE\u45EF\u45F0\u45F1\u45F2\u45F3\u45F4\u45F5"+
-        "\u45F6\u45F7\u45F8\u45F9\u45FA\u45FB\u45FC\u45FD"+
-        "\u45FE\u45FF\u4600\u4601\u4602\u4603\u4604\u4605"+
-        "\u4606\u4607\u4608\u4609\u460A\u460B\u460C\u460D"+
-        "\u460E\u460F\u4610\u4611\u4612\u4613\u4614\u4615"+
-        "\u4616\u4617\u4618\u4619\u461A\u461B\u461C\u461D"+
-        "\u461E\u461F\u4620\u4621\u4622\u4623\u4624\u4625"+
-        "\u4626\u4627\u4628\u4629\u462A\u462B\u462C\u462D"+
-        "\u462E\u462F\u4630\u4631\u4632\u4633\u4634\u4635"+
-        "\u4636\u4637\u4638\u4639\u463A\u463B\u463C\u463D"+
-        "\u463E\u463F\u4640\u4641\u4642\u4643\u4644\u4645"+
-        "\u4646\u4647\u4648\u4649\u464A\u464B\u464D\u464E"+
-        "\u464F\u4650\u4651\u4652\u4653\u4654\u4655\u4656"+
-        "\u4657\u4658\u4659\u465A\u465B\u465C\u465D\u465E"+
-        "\u465F\u4660\u4662\u4663\u4664\u4665\u4666\u4667"+
-        "\u4668\u4669\u466A\u466B\u466C\u466D\u466E\u466F"+
-        "\u4670\u4671\u4672\u4673\u4674\u4675\u4676\u4677"+
-        "\u4678\u4679\u467A\u467B\u467C\u467D\u467E\u467F"+
-        "\u4680\u4681\u4682\u4683\u4684\u4685\u4686\u4687"+
-        "\u4688\u4689\u468A\u468B\u468C\u468D\u468E\u468F"+
-        "\u4690\u4691\u4692\u4693\u4694\u4695\u4696\u4697"+
-        "\u4698\u4699\u469A\u469B\u469C\u469D\u469E\u469F"+
-        "\u46A0\u46A1\u46A2\u46A3\u46A4\u46A5\u46A6\u46A7"+
-        "\u46A8\u46A9\u46AA\u46AB\u46AC\u46AD\u46AE\u46AF"+
-        "\u46B0\u46B1\u46B2\u46B3\u46B4\u46B5\u46B6\u46B7"+
-        "\u46B8\u46B9\u46BA\u46BB\u46BC\u46BD\u46BE\u46BF"+
-        "\u46C0\u46C1\u46C2\u46C3\u46C4\u46C5\u46C6\u46C7"+
-        "\u46C8\u46C9\u46CA\u46CB\u46CC\u46CD\u46CE\u46CF"+
-        "\u46D0\u46D1\u46D2\u46D3\u46D4\u46D5\u46D6\u46D7"+
-        "\u46D8\u46D9\u46DA\u46DB\u46DC\u46DD\u46DE\u46DF"+
-        "\u46E0\u46E1\u46E2\u46E3\u46E4\u46E5\u46E6\u46E7"+
-        "\u46E8\u46E9\u46EA\u46EB\u46EC\u46ED\u46EE\u46EF"+
-        "\u46F0\u46F1\u46F2\u46F3\u46F4\u46F5\u46F6\u46F7"+
-        "\u46F8\u46F9\u46FA\u46FB\u46FC\u46FD\u46FE\u46FF"+
-        "\u4700\u4701\u4702\u4703\u4704\u4705\u4706\u4707"+
-        "\u4708\u4709\u470A\u470B\u470C\u470D\u470E\u470F"+
-        "\u4710\u4711\u4712\u4713\u4714\u4715\u4716\u4717"+
-        "\u4718\u4719\u471A\u471B\u471C\u471D\u471E\u471F"+
-        "\u4720\u4721\u4722\u4724\u4725\u4726\u4727\u4728"+
-        "\u472A\u472B\u472C\u472D\u472E\u472F\u4730\u4731"+
-        "\u4732\u4733\u4734\u4735\u4736\u4737\u4738\u4739"+
-        "\u473A\u473B\u473C\u473D\u473E\u473F\u4740\u4741"+
-        "\u4742\u4743\u4744\u4745\u4746\u4747\u4748\u4749"+
-        "\u474A\u474B\u474C\u474D\u474E\u474F\u4750\u4751"+
-        "\u4752\u4753\u4754\u4755\u4756\u4757\u4758\u4759"+
-        "\u475A\u475B\u475C\u475D\u475E\u475F\u4760\u4761"+
-        "\u4762\u4763\u4764\u4765\u4766\u4767\u4768\u4769"+
-        "\u476A\u476B\u476C\u476D\u476E\u476F\u4770\u4771"+
-        "\u4772\u4773\u4774\u4775\u4776\u4777\u4778\u4779"+
-        "\u477A\u477B\u477D\u477E\u477F\u4780\u4781\u4782"+
-        "\u4783\u4784\u4785\u4786\u4787\u4788\u4789\u478A"+
-        "\u478B\u478C\u478E\u478F\u4790\u4791\u4792\u4793"+
-        "\u4794\u4795\u4796\u4797\u4798\u4799\u479A\u479B"+
-        "\u479C\u479D\u479E\u479F\u47A0\u47A1\u47A2\u47A3"+
-        "\u47A4\u47A5\u47A6\u47A7\u47A8\u47A9\u47AA\u47AB"+
-        "\u47AC\u47AD\u47AE\u47AF\u47B0\u47B1\u47B2\u47B3"+
-        "\u47B4\u47B5\u47B6\u47B7\u47B8\u47B9\u47BA\u47BB"+
-        "\u47BC\u47BD\u47BE\u47BF\u47C0\u47C1\u47C2\u47C3"+
-        "\u47C4\u47C5\u47C6\u47C7\u47C8\u47C9\u47CA\u47CB"+
-        "\u47CC\u47CD\u47CE\u47CF\u47D0\u47D1\u47D2\u47D3"+
-        "\u47D4\u47D5\u47D6\u47D7\u47D8\u47D9\u47DA\u47DB"+
-        "\u47DC\u47DD\u47DE\u47DF\u47E0\u47E1\u47E2\u47E3"+
-        "\u47E4\u47E5\u47E6\u47E7\u47E8\u47E9\u47EA\u47EB"+
-        "\u47EC\u47ED\u47EE\u47EF\u47F0\u47F1\u47F2\u47F3"+
-        "\u47F4\u47F5\u47F6\u47F7\u47F8\u47F9\u47FA\u47FB"+
-        "\u47FC\u47FD\u47FE\u47FF\u4800\u4801\u4802\u4803"+
-        "\u4804\u4805\u4806\u4807\u4808\u4809\u480A\u480B"+
-        "\u480C\u480D\u480E\u480F\u4810\u4811\u4812\u4813"+
-        "\u4814\u4815\u4816\u4817\u4818\u4819\u481A\u481B"+
-        "\u481C\u481D\u481E\u481F\u4820\u4821\u4822\u4823"+
-        "\u4824\u4825\u4826\u4827\u4828\u4829\u482A\u482B"+
-        "\u482C\u482D\u482E\u482F\u4830\u4831\u4832\u4833"+
-        "\u4834\u4835\u4836\u4837\u4838\u4839\u483A\u483B"+
-        "\u483C\u483D\u483E\u483F\u4840\u4841\u4842\u4843"+
-        "\u4844\u4845\u4846\u4847\u4848\u4849\u484A\u484B"+
-        "\u484C\u484D\u484E\u484F\u4850\u4851\u4852\u4853"+
-        "\u4854\u4855\u4856\u4857\u4858\u4859\u485A\u485B"+
-        "\u485C\u485D\u485E\u485F\u4860\u4861\u4862\u4863"+
-        "\u4864\u4865\u4866\u4867\u4868\u4869\u486A\u486B"+
-        "\u486C\u486D\u486E\u486F\u4870\u4871\u4872\u4873"+
-        "\u4874\u4875\u4876\u4877\u4878\u4879\u487A\u487B"+
-        "\u487C\u487D\u487E\u487F\u4880\u4881\u4882\u4883"+
-        "\u4884\u4885\u4886\u4887\u4888\u4889\u488A\u488B"+
-        "\u488C\u488D\u488E\u488F\u4890\u4891\u4892\u4893"+
-        "\u4894\u4895\u4896\u4897\u4898\u4899\u489A\u489B"+
-        "\u489C\u489D\u489E\u489F\u48A0\u48A1\u48A2\u48A3"+
-        "\u48A4\u48A5\u48A6\u48A7\u48A8\u48A9\u48AA\u48AB"+
-        "\u48AC\u48AD\u48AE\u48AF\u48B0\u48B1\u48B2\u48B3"+
-        "\u48B4\u48B5\u48B6\u48B7\u48B8\u48B9\u48BA\u48BB"+
-        "\u48BC\u48BD\u48BE\u48BF\u48C0\u48C1\u48C2\u48C3"+
-        "\u48C4\u48C5\u48C6\u48C7\u48C8\u48C9\u48CA\u48CB"+
-        "\u48CC\u48CD\u48CE\u48CF\u48D0\u48D1\u48D2\u48D3"+
-        "\u48D4\u48D5\u48D6\u48D7\u48D8\u48D9\u48DA\u48DB"+
-        "\u48DC\u48DD\u48DE\u48DF\u48E0\u48E1\u48E2\u48E3"+
-        "\u48E4\u48E5\u48E6\u48E7\u48E8\u48E9\u48EA\u48EB"+
-        "\u48EC\u48ED\u48EE\u48EF\u48F0\u48F1\u48F2\u48F3"+
-        "\u48F4\u48F5\u48F6\u48F7\u48F8\u48F9\u48FA\u48FB"+
-        "\u48FC\u48FD\u48FE\u48FF\u4900\u4901\u4902\u4903"+
-        "\u4904\u4905\u4906\u4907\u4908\u4909\u490A\u490B"+
-        "\u490C\u490D\u490E\u490F\u4910\u4911\u4912\u4913"+
-        "\u4914\u4915\u4916\u4917\u4918\u4919\u491A\u491B"+
-        "\u491C\u491D\u491E\u491F\u4920\u4921\u4922\u4923"+
-        "\u4924\u4925\u4926\u4927\u4928\u4929\u492A\u492B"+
-        "\u492C\u492D\u492E\u492F\u4930\u4931\u4932\u4933"+
-        "\u4934\u4935\u4936\u4937\u4938\u4939\u493A\u493B"+
-        "\u493C\u493D\u493E\u493F\u4940\u4941\u4942\u4943"+
-        "\u4944\u4945\u4946\u4948\u4949\u494A\u494B\u494C"+
-        "\u494D\u494E\u494F\u4950\u4951\u4952\u4953\u4954"+
-        "\u4955\u4956\u4957\u4958\u4959\u495A\u495B\u495C"+
-        "\u495D\u495E\u495F\u4960\u4961\u4962\u4963\u4964"+
-        "\u4965\u4966\u4967\u4968\u4969\u496A\u496B\u496C"+
-        "\u496D\u496E\u496F\u4970\u4971\u4972\u4973\u4974"+
-        "\u4975\u4976\u4977\u4978\u4979\u497B\u497C\u497E"+
-        "\u497F\u4980\u4981\u4984\u4987\u4988\u4989\u498A"+
-        "\u498B\u498C\u498D\u498E\u498F\u4990\u4991\u4992"+
-        "\u4993\u4994\u4995\u4996\u4997\u4998\u4999\u499A"+
-        "\u499C\u499D\u499E\u49A0\u49A1\u49A2\u49A3\u49A4"+
-        "\u49A5\u49A6\u49A7\u49A8\u49A9\u49AA\u49AB\u49AC"+
-        "\u49AD\u49AE\u49AF\u49B0\u49B1\u49B2\u49B3\u49B4"+
-        "\u49B5\u49B8\u49B9\u49BA\u49BB\u49BC\u49BD\u49BE"+
-        "\u49BF\u49C0\u49C1\u49C2\u49C3\u49C4\u49C5\u49C6"+
-        "\u49C7\u49C8\u49C9\u49CA\u49CB\u49CC\u49CD\u49CE"+
-        "\u49CF\u49D0\u49D1\u49D2\u49D3\u49D4\u49D5\u49D6"+
-        "\u49D7\u49D8\u49D9\u49DA\u49DB\u49DC\u49DD\u49DE"+
-        "\u49DF\u49E0\u49E1\u49E2\u49E3\u49E4\u49E5\u49E6"+
-        "\u49E7\u49E8\u49E9\u49EA\u49EB\u49EC\u49ED\u49EE"+
-        "\u49EF\u49F0\u49F1\u49F2\u49F3\u49F4\u49F5\u49F6"+
-        "\u49F7\u49F8\u49F9\u49FA\u49FB\u49FC\u49FD\u49FE"+
-        "\u49FF\u4A00\u4A01\u4A02\u4A03\u4A04\u4A05\u4A06"+
-        "\u4A07\u4A08\u4A09\u4A0A\u4A0B\u4A0C\u4A0D\u4A0E"+
-        "\u4A0F\u4A10\u4A11\u4A12\u4A13\u4A14\u4A15\u4A16"+
-        "\u4A17\u4A18\u4A19\u4A1A\u4A1B\u4A1C\u4A1D\u4A1E"+
-        "\u4A1F\u4A20\u4A21\u4A22\u4A23\u4A24\u4A25\u4A26"+
-        "\u4A27\u4A28\u4A29\u4A2A\u4A2B\u4A2C\u4A2D\u4A2E"+
-        "\u4A2F\u4A30\u4A31\u4A32\u4A33\u4A34\u4A35\u4A36"+
-        "\u4A37\u4A38\u4A39\u4A3A\u4A3B\u4A3C\u4A3D\u4A3E"+
-        "\u4A3F\u4A40\u4A41\u4A42\u4A43\u4A44\u4A45\u4A46"+
-        "\u4A47\u4A48\u4A49\u4A4A\u4A4B\u4A4C\u4A4D\u4A4E"+
-        "\u4A4F\u4A50\u4A51\u4A52\u4A53\u4A54\u4A55\u4A56"+
-        "\u4A57\u4A58\u4A59\u4A5A\u4A5B\u4A5C\u4A5D\u4A5E"+
-        "\u4A5F\u4A60\u4A61\u4A62\u4A63\u4A64\u4A65\u4A66"+
-        "\u4A67\u4A68\u4A69\u4A6A\u4A6B\u4A6C\u4A6D\u4A6E"+
-        "\u4A6F\u4A70\u4A71\u4A72\u4A73\u4A74\u4A75\u4A76"+
-        "\u4A77\u4A78\u4A79\u4A7A\u4A7B\u4A7C\u4A7D\u4A7E"+
-        "\u4A7F\u4A80\u4A81\u4A82\u4A83\u4A84\u4A85\u4A86"+
-        "\u4A87\u4A88\u4A89\u4A8A\u4A8B\u4A8C\u4A8D\u4A8E"+
-        "\u4A8F\u4A90\u4A91\u4A92\u4A93\u4A94\u4A95\u4A96"+
-        "\u4A97\u4A98\u4A99\u4A9A\u4A9B\u4A9C\u4A9D\u4A9E"+
-        "\u4A9F\u4AA0\u4AA1\u4AA2\u4AA3\u4AA4\u4AA5\u4AA6"+
-        "\u4AA7\u4AA8\u4AA9\u4AAA\u4AAB\u4AAC\u4AAD\u4AAE"+
-        "\u4AAF\u4AB0\u4AB1\u4AB2\u4AB3\u4AB4\u4AB5\u4AB6"+
-        "\u4AB7\u4AB8\u4AB9\u4ABA\u4ABB\u4ABC\u4ABD\u4ABE"+
-        "\u4ABF\u4AC0\u4AC1\u4AC2\u4AC3\u4AC4\u4AC5\u4AC6"+
-        "\u4AC7\u4AC8\u4AC9\u4ACA\u4ACB\u4ACC\u4ACD\u4ACE"+
-        "\u4ACF\u4AD0\u4AD1\u4AD2\u4AD3\u4AD4\u4AD5\u4AD6"+
-        "\u4AD7\u4AD8\u4AD9\u4ADA\u4ADB\u4ADC\u4ADD\u4ADE"+
-        "\u4ADF\u4AE0\u4AE1\u4AE2\u4AE3\u4AE4\u4AE5\u4AE6"+
-        "\u4AE7\u4AE8\u4AE9\u4AEA\u4AEB\u4AEC\u4AED\u4AEE"+
-        "\u4AEF\u4AF0\u4AF1\u4AF2\u4AF3\u4AF4\u4AF5\u4AF6"+
-        "\u4AF7\u4AF8\u4AF9\u4AFA\u4AFB\u4AFC\u4AFD\u4AFE"+
-        "\u4AFF\u4B00\u4B01\u4B02\u4B03\u4B04\u4B05\u4B06"+
-        "\u4B07\u4B08\u4B09\u4B0A\u4B0B\u4B0C\u4B0D\u4B0E"+
-        "\u4B0F\u4B10\u4B11\u4B12\u4B13\u4B14\u4B15\u4B16"+
-        "\u4B17\u4B18\u4B19\u4B1A\u4B1B\u4B1C\u4B1D\u4B1E"+
-        "\u4B1F\u4B20\u4B21\u4B22\u4B23\u4B24\u4B25\u4B26"+
-        "\u4B27\u4B28\u4B29\u4B2A\u4B2B\u4B2C\u4B2D\u4B2E"+
-        "\u4B2F\u4B30\u4B31\u4B32\u4B33\u4B34\u4B35\u4B36"+
-        "\u4B37\u4B38\u4B39\u4B3A\u4B3B\u4B3C\u4B3D\u4B3E"+
-        "\u4B3F\u4B40\u4B41\u4B42\u4B43\u4B44\u4B45\u4B46"+
-        "\u4B47\u4B48\u4B49\u4B4A\u4B4B\u4B4C\u4B4D\u4B4E"+
-        "\u4B4F\u4B50\u4B51\u4B52\u4B53\u4B54\u4B55\u4B56"+
-        "\u4B57\u4B58\u4B59\u4B5A\u4B5B\u4B5C\u4B5D\u4B5E"+
-        "\u4B5F\u4B60\u4B61\u4B62\u4B63\u4B64\u4B65\u4B66"+
-        "\u4B67\u4B68\u4B69\u4B6A\u4B6B\u4B6C\u4B6D\u4B6E"+
-        "\u4B6F\u4B70\u4B71\u4B72\u4B73\u4B74\u4B75\u4B76"+
-        "\u4B77\u4B78\u4B79\u4B7A\u4B7B\u4B7C\u4B7D\u4B7E"+
-        "\u4B7F\u4B80\u4B81\u4B82\u4B83\u4B84\u4B85\u4B86"+
-        "\u4B87\u4B88\u4B89\u4B8A\u4B8B\u4B8C\u4B8D\u4B8E"+
-        "\u4B8F\u4B90\u4B91\u4B92\u4B93\u4B94\u4B95\u4B96"+
-        "\u4B97\u4B98\u4B99\u4B9A\u4B9B\u4B9C\u4B9D\u4B9E"+
-        "\u4B9F\u4BA0\u4BA1\u4BA2\u4BA3\u4BA4\u4BA5\u4BA6"+
-        "\u4BA7\u4BA8\u4BA9\u4BAA\u4BAB\u4BAC\u4BAD\u4BAE"+
-        "\u4BAF\u4BB0\u4BB1\u4BB2\u4BB3\u4BB4\u4BB5\u4BB6"+
-        "\u4BB7\u4BB8\u4BB9\u4BBA\u4BBB\u4BBC\u4BBD\u4BBE"+
-        "\u4BBF\u4BC0\u4BC1\u4BC2\u4BC3\u4BC4\u4BC5\u4BC6"+
-        "\u4BC7\u4BC8\u4BC9\u4BCA\u4BCB\u4BCC\u4BCD\u4BCE"+
-        "\u4BCF\u4BD0\u4BD1\u4BD2\u4BD3\u4BD4\u4BD5\u4BD6"+
-        "\u4BD7\u4BD8\u4BD9\u4BDA\u4BDB\u4BDC\u4BDD\u4BDE"+
-        "\u4BDF\u4BE0\u4BE1\u4BE2\u4BE3\u4BE4\u4BE5\u4BE6"+
-        "\u4BE7\u4BE8\u4BE9\u4BEA\u4BEB\u4BEC\u4BED\u4BEE"+
-        "\u4BEF\u4BF0\u4BF1\u4BF2\u4BF3\u4BF4\u4BF5\u4BF6"+
-        "\u4BF7\u4BF8\u4BF9\u4BFA\u4BFB\u4BFC\u4BFD\u4BFE"+
-        "\u4BFF\u4C00\u4C01\u4C02\u4C03\u4C04\u4C05\u4C06"+
-        "\u4C07\u4C08\u4C09\u4C0A\u4C0B\u4C0C\u4C0D\u4C0E"+
-        "\u4C0F\u4C10\u4C11\u4C12\u4C13\u4C14\u4C15\u4C16"+
-        "\u4C17\u4C18\u4C19\u4C1A\u4C1B\u4C1C\u4C1D\u4C1E"+
-        "\u4C1F\u4C20\u4C21\u4C22\u4C23\u4C24\u4C25\u4C26"+
-        "\u4C27\u4C28\u4C29\u4C2A\u4C2B\u4C2C\u4C2D\u4C2E"+
-        "\u4C2F\u4C30\u4C31\u4C32\u4C33\u4C34\u4C35\u4C36"+
-        "\u4C37\u4C38\u4C39\u4C3A\u4C3B\u4C3C\u4C3D\u4C3E"+
-        "\u4C3F\u4C40\u4C41\u4C42\u4C43\u4C44\u4C45\u4C46"+
-        "\u4C47\u4C48\u4C49\u4C4A\u4C4B\u4C4C\u4C4D\u4C4E"+
-        "\u4C4F\u4C50\u4C51\u4C52\u4C53\u4C54\u4C55\u4C56"+
-        "\u4C57\u4C58\u4C59\u4C5A\u4C5B\u4C5C\u4C5D\u4C5E"+
-        "\u4C5F\u4C60\u4C61\u4C62\u4C63\u4C64\u4C65\u4C66"+
-        "\u4C67\u4C68\u4C69\u4C6A\u4C6B\u4C6C\u4C6D\u4C6E"+
-        "\u4C6F\u4C70\u4C71\u4C72\u4C73\u4C74\u4C75\u4C76"+
-        "\u4C78\u4C79\u4C7A\u4C7B\u4C7C\u4C7D\u4C7E\u4C7F"+
-        "\u4C80\u4C81\u4C82\u4C83\u4C84\u4C85\u4C86\u4C87"+
-        "\u4C88\u4C89\u4C8A\u4C8B\u4C8C\u4C8D\u4C8E\u4C8F"+
-        "\u4C90\u4C91\u4C92\u4C93\u4C94\u4C95\u4C96\u4C97"+
-        "\u4C98\u4C99\u4C9A\u4C9B\u4C9C\u4C9D\u4C9E\u4CA4"+
-        "\u4CA5\u4CA6\u4CA7\u4CA8\u4CA9\u4CAA\u4CAB\u4CAC"+
-        "\u4CAD\u4CAE\u4CAF\u4CB0\u4CB1\u4CB2\u4CB3\u4CB4"+
-        "\u4CB5\u4CB6\u4CB7\u4CB8\u4CB9\u4CBA\u4CBB\u4CBC"+
-        "\u4CBD\u4CBE\u4CBF\u4CC0\u4CC1\u4CC2\u4CC3\u4CC4"+
-        "\u4CC5\u4CC6\u4CC7\u4CC8\u4CC9\u4CCA\u4CCB\u4CCC"+
-        "\u4CCD\u4CCE\u4CCF\u4CD0\u4CD1\u4CD2\u4CD3\u4CD4"+
-        "\u4CD5\u4CD6\u4CD7\u4CD8\u4CD9\u4CDA\u4CDB\u4CDC"+
-        "\u4CDD\u4CDE\u4CDF\u4CE0\u4CE1\u4CE2\u4CE3\u4CE4"+
-        "\u4CE5\u4CE6\u4CE7\u4CE8\u4CE9\u4CEA\u4CEB\u4CEC"+
-        "\u4CED\u4CEE\u4CEF\u4CF0\u4CF1\u4CF2\u4CF3\u4CF4"+
-        "\u4CF5\u4CF6\u4CF7\u4CF8\u4CF9\u4CFA\u4CFB\u4CFC"+
-        "\u4CFD\u4CFE\u4CFF\u4D00\u4D01\u4D02\u4D03\u4D04"+
-        "\u4D05\u4D06\u4D07\u4D08\u4D09\u4D0A\u4D0B\u4D0C"+
-        "\u4D0D\u4D0E\u4D0F\u4D10\u4D11\u4D12\u4D1A\u4D1B"+
-        "\u4D1C\u4D1D\u4D1E\u4D1F\u4D20\u4D21\u4D22\u4D23"+
-        "\u4D24\u4D25\u4D26\u4D27\u4D28\u4D29\u4D2A\u4D2B"+
-        "\u4D2C\u4D2D\u4D2E\u4D2F\u4D30\u4D31\u4D32\u4D33"+
-        "\u4D34\u4D35\u4D36\u4D37\u4D38\u4D39\u4D3A\u4D3B"+
-        "\u4D3C\u4D3D\u4D3E\u4D3F\u4D40\u4D41\u4D42\u4D43"+
-        "\u4D44\u4D45\u4D46\u4D47\u4D48\u4D49\u4D4A\u4D4B"+
-        "\u4D4C\u4D4D\u4D4E\u4D4F\u4D50\u4D51\u4D52\u4D53"+
-        "\u4D54\u4D55\u4D56\u4D57\u4D58\u4D59\u4D5A\u4D5B"+
-        "\u4D5C\u4D5D\u4D5E\u4D5F\u4D60\u4D61\u4D62\u4D63"+
-        "\u4D64\u4D65\u4D66\u4D67\u4D68\u4D69\u4D6A\u4D6B"+
-        "\u4D6C\u4D6D\u4D6E\u4D6F\u4D70\u4D71\u4D72\u4D73"+
-        "\u4D74\u4D75\u4D76\u4D77\u4D78\u4D79\u4D7A\u4D7B"+
-        "\u4D7C\u4D7D\u4D7E\u4D7F\u4D80\u4D81\u4D82\u4D83"+
-        "\u4D84\u4D85\u4D86\u4D87\u4D88\u4D89\u4D8A\u4D8B"+
-        "\u4D8C\u4D8D\u4D8E\u4D8F\u4D90\u4D91\u4D92\u4D93"+
-        "\u4D94\u4D95\u4D96\u4D97\u4D98\u4D99\u4D9A\u4D9B"+
-        "\u4D9C\u4D9D\u4D9E\u4D9F\u4DA0\u4DA1\u4DA2\u4DA3"+
-        "\u4DA4\u4DA5\u4DA6\u4DA7\u4DA8\u4DA9\u4DAA\u4DAB"+
-        "\u4DAC\u4DAD\u4DAF\u4DB0\u4DB1\u4DB2\u4DB3\u4DB4"+
-        "\u4DB5\u4DB6\u4DB7\u4DB8\u4DB9\u4DBA\u4DBB\u4DBC"+
-        "\u4DBD\u4DBE\u4DBF\u4DC0\u4DC1\u4DC2\u4DC3\u4DC4"+
-        "\u4DC5\u4DC6\u4DC7\u4DC8\u4DC9\u4DCA\u4DCB\u4DCC"+
-        "\u4DCD\u4DCE\u4DCF\u4DD0\u4DD1\u4DD2\u4DD3\u4DD4"+
-        "\u4DD5\u4DD6\u4DD7\u4DD8\u4DD9\u4DDA\u4DDB\u4DDC"+
-        "\u4DDD\u4DDE\u4DDF\u4DE0\u4DE1\u4DE2\u4DE3\u4DE4"+
-        "\u4DE5\u4DE6\u4DE7\u4DE8\u4DE9\u4DEA\u4DEB\u4DEC"+
-        "\u4DED\u4DEE\u4DEF\u4DF0\u4DF1\u4DF2\u4DF3\u4DF4"+
-        "\u4DF5\u4DF6\u4DF7\u4DF8\u4DF9\u4DFA\u4DFB\u4DFC"+
-        "\u4DFD\u4DFE\u4DFF\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uE76C\uE7C8\uE7E7"+
-        "\uE7E8\uE7E9\uE7EA\uE7EB\uE7EC\uE7ED\uE7EE\uE7EF"+
-        "\uE7F0\uE7F1\uE7F2\uE7F3\uE815\uE819\uE81A\uE81B"+
-        "\uE81C\uE81D\uE81F\uE820\uE821\uE822\uE823\uE824"+
-        "\uE825\uE827\uE828\uE829\uE82A\uE82D\uE82E\uE82F"+
-        "\uE830\uE833\uE834\uE835\uE836\uE837\uE838\uE839"+
-        "\uE83A\uE83C\uE83D\uE83E\uE83F\uE840\uE841\uE842"+
-        "\uE844\uE845\uE846\uE847\uE848\uE849\uE84A\uE84B"+
-        "\uE84C\uE84D\uE84E\uE84F\uE850\uE851\uE852\uE853"+
-        "\uE856\uE857\uE858\uE859\uE85A\uE85B\uE85C\uE85D"+
-        "\uE85E\uE85F\uE860\uE861\uE862\uE863\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uF900\uF901\uF902\uF903\uF904\uF905\uF906"+
-        "\uF907\uF908\uF909\uF90A\uF90B\uF90C\uF90D\uF90E"+
-        "\uF90F\uF910\uF911\uF912\uF913\uF914\uF915\uF916"+
-        "\uF917\uF918\uF919\uF91A\uF91B\uF91C\uF91D\uF91E"+
-        "\uF91F\uF920\uF921\uF922\uF923\uF924\uF925\uF926"+
-        "\uF927\uF928\uF929\uF92A\uF92B\uF92D\uF92E\uF92F"+
-        "\uF930\uF931\uF932\uF933\uF934\uF935\uF936\uF937"+
-        "\uF938\uF939\uF93A\uF93B\uF93C\uF93D\uF93E\uF93F"+
-        "\uF940\uF941\uF942\uF943\uF944\uF945\uF946\uF947"+
-        "\uF948\uF949\uF94A\uF94B\uF94C\uF94D\uF94E\uF94F"+
-        "\uF950\uF951\uF952\uF953\uF954\uF955\uF956\uF957"+
-        "\uF958\uF959\uF95A\uF95B\uF95C\uF95D\uF95E\uF95F"+
-        "\uF960\uF961\uF962\uF963\uF964\uF965\uF966\uF967"+
-        "\uF968\uF969\uF96A\uF96B\uF96C\uF96D\uF96E\uF96F"+
-        "\uF970\uF971\uF972\uF973\uF974\uF975\uF976\uF977"+
-        "\uF978\uF97A\uF97B\uF97C\uF97D\uF97E\uF97F\uF980"+
-        "\uF981\uF982\uF983\uF984\uF985\uF986\uF987\uF988"+
-        "\uF989\uF98A\uF98B\uF98C\uF98D\uF98E\uF98F\uF990"+
-        "\uF991\uF992\uF993\uF994\uF996\uF997\uF998\uF999"+
-        "\uF99A\uF99B\uF99C\uF99D\uF99E\uF99F\uF9A0\uF9A1"+
-        "\uF9A2\uF9A3\uF9A4\uF9A5\uF9A6\uF9A7\uF9A8\uF9A9"+
-        "\uF9AA\uF9AB\uF9AC\uF9AD\uF9AE\uF9AF\uF9B0\uF9B1"+
-        "\uF9B2\uF9B3\uF9B4\uF9B5\uF9B6\uF9B7\uF9B8\uF9B9"+
-        "\uF9BA\uF9BB\uF9BC\uF9BD\uF9BE\uF9BF\uF9C0\uF9C1"+
-        "\uF9C2\uF9C3\uF9C4\uF9C5\uF9C6\uF9C7\uF9C8\uF9C9"+
-        "\uF9CA\uF9CB\uF9CC\uF9CD\uF9CE\uF9CF\uF9D0\uF9D1"+
-        "\uF9D2\uF9D3\uF9D4\uF9D5\uF9D6\uF9D7\uF9D8\uF9D9"+
-        "\uF9DA\uF9DB\uF9DC\uF9DD\uF9DE\uF9DF\uF9E0\uF9E1"+
-        "\uF9E2\uF9E3\uF9E4\uF9E5\uF9E6\uF9E8\uF9E9\uF9EA"+
-        "\uF9EB\uF9EC\uF9ED\uF9EE\uF9EF\uF9F0\uF9F2\uF9F3"+
-        "\uF9F4\uF9F5\uF9F6\uF9F7\uF9F8\uF9F9\uF9FA\uF9FB"+
-        "\uF9FC\uF9FD\uF9FE\uF9FF\uFA00\uFA01\uFA02\uFA03"+
-        "\uFA04\uFA05\uFA06\uFA07\uFA08\uFA09\uFA0A\uFA0B"+
-        "\uFA10\uFA12\uFA15\uFA16\uFA17\uFA19\uFA1A\uFA1B"+
-        "\uFA1C\uFA1D\uFA1E\uFA22\uFA25\uFA26\uFA2A\uFA2B"+
-        "\uFA2C\uFA2D\uFA2E\uFA2F\uFA30\uFA31\uFA32\uFA33"+
-        "\uFA34\uFA35\uFA36\uFA37\uFA38\uFA39\uFA3A\uFA3B"+
-        "\uFA3C\uFA3D\uFA3E\uFA3F\uFA40\uFA41\uFA42\uFA43"+
-        "\uFA44\uFA45\uFA46\uFA47\uFA48\uFA49\uFA4A\uFA4B"+
-        "\uFA4C\uFA4D\uFA4E\uFA4F\uFA50\uFA51\uFA52\uFA53"+
-        "\uFA54\uFA55\uFA56\uFA57\uFA58\uFA59\uFA5A\uFA5B"+
-        "\uFA5C\uFA5D\uFA5E\uFA5F\uFA60\uFA61\uFA62\uFA63"+
-        "\uFA64\uFA65\uFA66\uFA67\uFA68\uFA69\uFA6A\uFA6B"+
-        "\uFA6C\uFA6D\uFA6E\uFA6F\uFA70\uFA71\uFA72\uFA73"+
-        "\uFA74\uFA75\uFA76\uFA77\uFA78\uFA79\uFA7A\uFA7B"+
-        "\uFA7C\uFA7D\uFA7E\uFA7F\uFA80\uFA81\uFA82\uFA83"+
-        "\uFA84\uFA85\uFA86\uFA87\uFA88\uFA89\uFA8A\uFA8B"+
-        "\uFA8C\uFA8D\uFA8E\uFA8F\uFA90\uFA91\uFA92\uFA93"+
-        "\uFA94\uFA95\uFA96\uFA97\uFA98\uFA99\uFA9A\uFA9B"+
-        "\uFA9C\uFA9D\uFA9E\uFA9F\uFAA0\uFAA1\uFAA2\uFAA3"+
-        "\uFAA4\uFAA5\uFAA6\uFAA7\uFAA8\uFAA9\uFAAA\uFAAB"+
-        "\uFAAC\uFAAD\uFAAE\uFAAF\uFAB0\uFAB1\uFAB2\uFAB3"+
-        "\uFAB4\uFAB5\uFAB6\uFAB7\uFAB8\uFAB9\uFABA\uFABB"+
-        "\uFABC\uFABD\uFABE\uFABF\uFAC0\uFAC1\uFAC2\uFAC3"+
-        "\uFAC4\uFAC5\uFAC6\uFAC7\uFAC8\uFAC9\uFACA\uFACB"+
-        "\uFACC\uFACD\uFACE\uFACF\uFAD0\uFAD1\uFAD2\uFAD3"+
-        "\uFAD4\uFAD5\uFAD6\uFAD7\uFAD8\uFAD9\uFADA\uFADB"+
-        "\uFADC\uFADD\uFADE\uFADF\uFAE0\uFAE1\uFAE2\uFAE3"+
-        "\uFAE4\uFAE5\uFAE6\uFAE7\uFAE8\uFAE9\uFAEA\uFAEB"+
-        "\uFAEC\uFAED\uFAEE\uFAEF\uFAF0\uFAF1\uFAF2\uFAF3"+
-        "\uFAF4\uFAF5\uFAF6\uFAF7\uFAF8\uFAF9\uFAFA\uFAFB"+
-        "\uFAFC\uFAFD\uFAFE\uFAFF\uFB00\uFB01\uFB02\uFB03"+
-        "\uFB04\uFB05\uFB06\uFB07\uFB08\uFB09\uFB0A\uFB0B"+
-        "\uFB0C\uFB0D\uFB0E\uFB0F\uFB10\uFB11\uFB12\uFB13"+
-        "\uFB14\uFB15\uFB16\uFB17\uFB18\uFB19\uFB1A\uFB1B"+
-        "\uFB1C\uFB1D\uFB1E\uFB1F\uFB20\uFB21\uFB22\uFB23"+
-        "\uFB24\uFB25\uFB26\uFB27\uFB28\uFB29\uFB2A\uFB2B"+
-        "\uFB2C\uFB2D\uFB2E\uFB2F\uFB30\uFB31\uFB32\uFB33"+
-        "\uFB34\uFB35\uFB36\uFB37\uFB38\uFB39\uFB3A\uFB3B"+
-        "\uFB3C\uFB3D\uFB3E\uFB3F\uFB40\uFB41\uFB42\uFB43"+
-        "\uFB44\uFB45\uFB46\uFB47\uFB48\uFB49\uFB4A\uFB4B"+
-        "\uFB4C\uFB4D\uFB4E\uFB4F\uFB50\uFB51\uFB52\uFB53"+
-        "\uFB54\uFB55\uFB56\uFB57\uFB58\uFB59\uFB5A\uFB5B"+
-        "\uFB5C\uFB5D\uFB5E\uFB5F\uFB60\uFB61\uFB62\uFB63"+
-        "\uFB64\uFB65\uFB66\uFB67\uFB68\uFB69\uFB6A\uFB6B";
-
-    private final static String innerDecoderIndex5=
-        "\uFB6C\uFB6D\uFB6E\uFB6F\uFB70\uFB71\uFB72\uFB73"+
-        "\uFB74\uFB75\uFB76\uFB77\uFB78\uFB79\uFB7A\uFB7B"+
-        "\uFB7C\uFB7D\uFB7E\uFB7F\uFB80\uFB81\uFB82\uFB83"+
-        "\uFB84\uFB85\uFB86\uFB87\uFB88\uFB89\uFB8A\uFB8B"+
-        "\uFB8C\uFB8D\uFB8E\uFB8F\uFB90\uFB91\uFB92\uFB93"+
-        "\uFB94\uFB95\uFB96\uFB97\uFB98\uFB99\uFB9A\uFB9B"+
-        "\uFB9C\uFB9D\uFB9E\uFB9F\uFBA0\uFBA1\uFBA2\uFBA3"+
-        "\uFBA4\uFBA5\uFBA6\uFBA7\uFBA8\uFBA9\uFBAA\uFBAB"+
-        "\uFBAC\uFBAD\uFBAE\uFBAF\uFBB0\uFBB1\uFBB2\uFBB3"+
-        "\uFBB4\uFBB5\uFBB6\uFBB7\uFBB8\uFBB9\uFBBA\uFBBB"+
-        "\uFBBC\uFBBD\uFBBE\uFBBF\uFBC0\uFBC1\uFBC2\uFBC3"+
-        "\uFBC4\uFBC5\uFBC6\uFBC7\uFBC8\uFBC9\uFBCA\uFBCB"+
-        "\uFBCC\uFBCD\uFBCE\uFBCF\uFBD0\uFBD1\uFBD2\uFBD3"+
-        "\uFBD4\uFBD5\uFBD6\uFBD7\uFBD8\uFBD9\uFBDA\uFBDB"+
-        "\uFBDC\uFBDD\uFBDE\uFBDF\uFBE0\uFBE1\uFBE2\uFBE3"+
-        "\uFBE4\uFBE5\uFBE6\uFBE7\uFBE8\uFBE9\uFBEA\uFBEB"+
-        "\uFBEC\uFBED\uFBEE\uFBEF\uFBF0\uFBF1\uFBF2\uFBF3"+
-        "\uFBF4\uFBF5\uFBF6\uFBF7\uFBF8\uFBF9\uFBFA\uFBFB"+
-        "\uFBFC\uFBFD\uFBFE\uFBFF\uFC00\uFC01\uFC02\uFC03"+
-        "\uFC04\uFC05\uFC06\uFC07\uFC08\uFC09\uFC0A\uFC0B"+
-        "\uFC0C\uFC0D\uFC0E\uFC0F\uFC10\uFC11\uFC12\uFC13"+
-        "\uFC14\uFC15\uFC16\uFC17\uFC18\uFC19\uFC1A\uFC1B"+
-        "\uFC1C\uFC1D\uFC1E\uFC1F\uFC20\uFC21\uFC22\uFC23"+
-        "\uFC24\uFC25\uFC26\uFC27\uFC28\uFC29\uFC2A\uFC2B"+
-        "\uFC2C\uFC2D\uFC2E\uFC2F\uFC30\uFC31\uFC32\uFC33"+
-        "\uFC34\uFC35\uFC36\uFC37\uFC38\uFC39\uFC3A\uFC3B"+
-        "\uFC3C\uFC3D\uFC3E\uFC3F\uFC40\uFC41\uFC42\uFC43"+
-        "\uFC44\uFC45\uFC46\uFC47\uFC48\uFC49\uFC4A\uFC4B"+
-        "\uFC4C\uFC4D\uFC4E\uFC4F\uFC50\uFC51\uFC52\uFC53"+
-        "\uFC54\uFC55\uFC56\uFC57\uFC58\uFC59\uFC5A\uFC5B"+
-        "\uFC5C\uFC5D\uFC5E\uFC5F\uFC60\uFC61\uFC62\uFC63"+
-        "\uFC64\uFC65\uFC66\uFC67\uFC68\uFC69\uFC6A\uFC6B"+
-        "\uFC6C\uFC6D\uFC6E\uFC6F\uFC70\uFC71\uFC72\uFC73"+
-        "\uFC74\uFC75\uFC76\uFC77\uFC78\uFC79\uFC7A\uFC7B"+
-        "\uFC7C\uFC7D\uFC7E\uFC7F\uFC80\uFC81\uFC82\uFC83"+
-        "\uFC84\uFC85\uFC86\uFC87\uFC88\uFC89\uFC8A\uFC8B"+
-        "\uFC8C\uFC8D\uFC8E\uFC8F\uFC90\uFC91\uFC92\uFC93"+
-        "\uFC94\uFC95\uFC96\uFC97\uFC98\uFC99\uFC9A\uFC9B"+
-        "\uFC9C\uFC9D\uFC9E\uFC9F\uFCA0\uFCA1\uFCA2\uFCA3"+
-        "\uFCA4\uFCA5\uFCA6\uFCA7\uFCA8\uFCA9\uFCAA\uFCAB"+
-        "\uFCAC\uFCAD\uFCAE\uFCAF\uFCB0\uFCB1\uFCB2\uFCB3"+
-        "\uFCB4\uFCB5\uFCB6\uFCB7\uFCB8\uFCB9\uFCBA\uFCBB"+
-        "\uFCBC\uFCBD\uFCBE\uFCBF\uFCC0\uFCC1\uFCC2\uFCC3"+
-        "\uFCC4\uFCC5\uFCC6\uFCC7\uFCC8\uFCC9\uFCCA\uFCCB"+
-        "\uFCCC\uFCCD\uFCCE\uFCCF\uFCD0\uFCD1\uFCD2\uFCD3"+
-        "\uFCD4\uFCD5\uFCD6\uFCD7\uFCD8\uFCD9\uFCDA\uFCDB"+
-        "\uFCDC\uFCDD\uFCDE\uFCDF\uFCE0\uFCE1\uFCE2\uFCE3"+
-        "\uFCE4\uFCE5\uFCE6\uFCE7\uFCE8\uFCE9\uFCEA\uFCEB"+
-        "\uFCEC\uFCED\uFCEE\uFCEF\uFCF0\uFCF1\uFCF2\uFCF3"+
-        "\uFCF4\uFCF5\uFCF6\uFCF7\uFCF8\uFCF9\uFCFA\uFCFB"+
-        "\uFCFC\uFCFD\uFCFE\uFCFF\uFD00\uFD01\uFD02\uFD03"+
-        "\uFD04\uFD05\uFD06\uFD07\uFD08\uFD09\uFD0A\uFD0B"+
-        "\uFD0C\uFD0D\uFD0E\uFD0F\uFD10\uFD11\uFD12\uFD13"+
-        "\uFD14\uFD15\uFD16\uFD17\uFD18\uFD19\uFD1A\uFD1B"+
-        "\uFD1C\uFD1D\uFD1E\uFD1F\uFD20\uFD21\uFD22\uFD23"+
-        "\uFD24\uFD25\uFD26\uFD27\uFD28\uFD29\uFD2A\uFD2B"+
-        "\uFD2C\uFD2D\uFD2E\uFD2F\uFD30\uFD31\uFD32\uFD33"+
-        "\uFD34\uFD35\uFD36\uFD37\uFD38\uFD39\uFD3A\uFD3B"+
-        "\uFD3C\uFD3D\uFD3E\uFD3F\uFD40\uFD41\uFD42\uFD43"+
-        "\uFD44\uFD45\uFD46\uFD47\uFD48\uFD49\uFD4A\uFD4B"+
-        "\uFD4C\uFD4D\uFD4E\uFD4F\uFD50\uFD51\uFD52\uFD53"+
-        "\uFD54\uFD55\uFD56\uFD57\uFD58\uFD59\uFD5A\uFD5B"+
-        "\uFD5C\uFD5D\uFD5E\uFD5F\uFD60\uFD61\uFD62\uFD63"+
-        "\uFD64\uFD65\uFD66\uFD67\uFD68\uFD69\uFD6A\uFD6B"+
-        "\uFD6C\uFD6D\uFD6E\uFD6F\uFD70\uFD71\uFD72\uFD73"+
-        "\uFD74\uFD75\uFD76\uFD77\uFD78\uFD79\uFD7A\uFD7B"+
-        "\uFD7C\uFD7D\uFD7E\uFD7F\uFD80\uFD81\uFD82\uFD83"+
-        "\uFD84\uFD85\uFD86\uFD87\uFD88\uFD89\uFD8A\uFD8B"+
-        "\uFD8C\uFD8D\uFD8E\uFD8F\uFD90\uFD91\uFD92\uFD93"+
-        "\uFD94\uFD95\uFD96\uFD97\uFD98\uFD99\uFD9A\uFD9B"+
-        "\uFD9C\uFD9D\uFD9E\uFD9F\uFDA0\uFDA1\uFDA2\uFDA3"+
-        "\uFDA4\uFDA5\uFDA6\uFDA7\uFDA8\uFDA9\uFDAA\uFDAB"+
-        "\uFDAC\uFDAD\uFDAE\uFDAF\uFDB0\uFDB1\uFDB2\uFDB3"+
-        "\uFDB4\uFDB5\uFDB6\uFDB7\uFDB8\uFDB9\uFDBA\uFDBB"+
-        "\uFDBC\uFDBD\uFDBE\uFDBF\uFDC0\uFDC1\uFDC2\uFDC3"+
-        "\uFDC4\uFDC5\uFDC6\uFDC7\uFDC8\uFDC9\uFDCA\uFDCB"+
-        "\uFDCC\uFDCD\uFDCE\uFDCF\uFDD0\uFDD1\uFDD2\uFDD3"+
-        "\uFDD4\uFDD5\uFDD6\uFDD7\uFDD8\uFDD9\uFDDA\uFDDB"+
-        "\uFDDC\uFDDD\uFDDE\uFDDF\uFDE0\uFDE1\uFDE2\uFDE3"+
-        "\uFDE4\uFDE5\uFDE6\uFDE7\uFDE8\uFDE9\uFDEA\uFDEB"+
-        "\uFDEC\uFDED\uFDEE\uFDEF\uFDF0\uFDF1\uFDF2\uFDF3"+
-        "\uFDF4\uFDF5\uFDF6\uFDF7\uFDF8\uFDF9\uFDFA\uFDFB"+
-        "\uFDFC\uFDFD\uFDFE\uFDFF\uFE00\uFE01\uFE02\uFE03"+
-        "\uFE04\uFE05\uFE06\uFE07\uFE08\uFE09\uFE0A\uFE0B"+
-        "\uFE0C\uFE0D\uFE0E\uFE0F\uFE10\uFE11\uFE12\uFE13"+
-        "\uFE14\uFE15\uFE16\uFE17\uFE18\uFE19\uFE1A\uFE1B"+
-        "\uFE1C\uFE1D\uFE1E\uFE1F\uFE20\uFE21\uFE22\uFE23"+
-        "\uFE24\uFE25\uFE26\uFE27\uFE28\uFE29\uFE2A\uFE2B"+
-        "\uFE2C\uFE2D\uFE2E\uFE2F\uFE32\uFE45\uFE46\uFE47"+
-        "\uFE48\uFE53\uFE58\uFE67\uFE6C\uFE6D\uFE6E\uFE6F"+
-        "\uFE70\uFE71\uFE72\uFE73\uFE74\uFE75\uFE76\uFE77"+
-        "\uFE78\uFE79\uFE7A\uFE7B\uFE7C\uFE7D\uFE7E\uFE7F"+
-        "\uFE80\uFE81\uFE82\uFE83\uFE84\uFE85\uFE86\uFE87"+
-        "\uFE88\uFE89\uFE8A\uFE8B\uFE8C\uFE8D\uFE8E\uFE8F"+
-        "\uFE90\uFE91\uFE92\uFE93\uFE94\uFE95\uFE96\uFE97"+
-        "\uFE98\uFE99\uFE9A\uFE9B\uFE9C\uFE9D\uFE9E\uFE9F"+
-        "\uFEA0\uFEA1\uFEA2\uFEA3\uFEA4\uFEA5\uFEA6\uFEA7"+
-        "\uFEA8\uFEA9\uFEAA\uFEAB\uFEAC\uFEAD\uFEAE\uFEAF"+
-        "\uFEB0\uFEB1\uFEB2\uFEB3\uFEB4\uFEB5\uFEB6\uFEB7"+
-        "\uFEB8\uFEB9\uFEBA\uFEBB\uFEBC\uFEBD\uFEBE\uFEBF"+
-        "\uFEC0\uFEC1\uFEC2\uFEC3\uFEC4\uFEC5\uFEC6\uFEC7"+
-        "\uFEC8\uFEC9\uFECA\uFECB\uFECC\uFECD\uFECE\uFECF"+
-        "\uFED0\uFED1\uFED2\uFED3\uFED4\uFED5\uFED6\uFED7"+
-        "\uFED8\uFED9\uFEDA\uFEDB\uFEDC\uFEDD\uFEDE\uFEDF"+
-        "\uFEE0\uFEE1\uFEE2\uFEE3\uFEE4\uFEE5\uFEE6\uFEE7"+
-        "\uFEE8\uFEE9\uFEEA\uFEEB\uFEEC\uFEED\uFEEE\uFEEF"+
-        "\uFEF0\uFEF1\uFEF2\uFEF3\uFEF4\uFEF5\uFEF6\uFEF7"+
-        "\uFEF8\uFEF9\uFEFA\uFEFB\uFEFC\uFEFD\uFEFE\uFEFF"+
-        "\uFF00\uFF5F\uFF60\uFF61\uFF62\uFF63\uFF64\uFF65"+
-        "\uFF66\uFF67\uFF68\uFF69\uFF6A\uFF6B\uFF6C\uFF6D"+
-        "\uFF6E\uFF6F\uFF70\uFF71\uFF72\uFF73\uFF74\uFF75"+
-        "\uFF76\uFF77\uFF78\uFF79\uFF7A\uFF7B\uFF7C\uFF7D"+
-        "\uFF7E\uFF7F\uFF80\uFF81\uFF82\uFF83\uFF84\uFF85"+
-        "\uFF86\uFF87\uFF88\uFF89\uFF8A\uFF8B\uFF8C\uFF8D"+
-        "\uFF8E\uFF8F\uFF90\uFF91\uFF92\uFF93\uFF94\uFF95"+
-        "\uFF96\uFF97\uFF98\uFF99\uFF9A\uFF9B\uFF9C\uFF9D"+
-        "\uFF9E\uFF9F\uFFA0\uFFA1\uFFA2\uFFA3\uFFA4\uFFA5"+
-        "\uFFA6\uFFA7\uFFA8\uFFA9\uFFAA\uFFAB\uFFAC\uFFAD"+
-        "\uFFAE\uFFAF\uFFB0\uFFB1\uFFB2\uFFB3\uFFB4\uFFB5"+
-        "\uFFB6\uFFB7\uFFB8\uFFB9\uFFBA\uFFBB\uFFBC\uFFBD"+
-        "\uFFBE\uFFBF\uFFC0\uFFC1\uFFC2\uFFC3\uFFC4\uFFC5"+
-        "\uFFC6\uFFC7\uFFC8\uFFC9\uFFCA\uFFCB\uFFCC\uFFCD"+
-        "\uFFCE\uFFCF\uFFD0\uFFD1\uFFD2\uFFD3\uFFD4\uFFD5"+
-        "\uFFD6\uFFD7\uFFD8\uFFD9\uFFDA\uFFDB\uFFDC\uFFDD"+
-        "\uFFDE\uFFDF\uFFE6\uFFE7\uFFE8\uFFE9\uFFEA\uFFEB"+
-        "\uFFEC\uFFED\uFFEE\uFFEF\uFFF0\uFFF1\uFFF2\uFFF3"+
-        "\uFFF4\uFFF5\uFFF6\uFFF7\uFFF8\uFFF9\uFFFA\uFFFB"+
-        "\uFFFC\uFFFD\uFFFE\uFFFF\uFFFD\uFFFD\uFFFD\uFFFD";
-
-    private final static short decoderIndex1[] = {
-        0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
-        16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
-        32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
-        48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
-        64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 75, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 77, 78, 79, 80, 81, 82, 83, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-    };
-
-    static String decoderIndex2[] = {
-        innerDecoderIndex0,
-        innerDecoderIndex1,
-        innerDecoderIndex2,
-        innerDecoderIndex3,
-        innerDecoderIndex4,
-        innerDecoderIndex5
-    };
-
-/*
- *
- */
-    private final static String innerIndex0=
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u4E02"+
-        "\u4E04\u4E05\u4E06\u4E0F\u4E12\u4E17\u4E1F\u4E20"+
-        "\u4E21\u4E23\u4E26\u4E29\u4E2E\u4E2F\u4E31\u4E33"+
-        "\u4E35\u4E37\u4E3C\u4E40\u4E41\u4E42\u4E44\u4E46"+
-        "\u4E4A\u4E51\u4E55\u4E57\u4E5A\u4E5B\u4E62\u4E63"+
-        "\u4E64\u4E65\u4E67\u4E68\u4E6A\u4E6B\u4E6C\u4E6D"+
-        "\u4E6E\u4E6F\u4E72\u4E74\u4E75\u4E76\u4E77\u4E78"+
-        "\u4E79\u4E7A\u4E7B\u4E7C\u4E7D\u4E7F\u4E80\u4E81"+
-        "\u4E82\u4E83\u4E84\u4E85\u4E87\u4E8A\uFFFD\u4E90"+
-        "\u4E96\u4E97\u4E99\u4E9C\u4E9D\u4E9E\u4EA3\u4EAA"+
-        "\u4EAF\u4EB0\u4EB1\u4EB4\u4EB6\u4EB7\u4EB8\u4EB9"+
-        "\u4EBC\u4EBD\u4EBE\u4EC8\u4ECC\u4ECF\u4ED0\u4ED2"+
-        "\u4EDA\u4EDB\u4EDC\u4EE0\u4EE2\u4EE6\u4EE7\u4EE9"+
-        "\u4EED\u4EEE\u4EEF\u4EF1\u4EF4\u4EF8\u4EF9\u4EFA"+
-        "\u4EFC\u4EFE\u4F00\u4F02\u4F03\u4F04\u4F05\u4F06"+
-        "\u4F07\u4F08\u4F0B\u4F0C\u4F12\u4F13\u4F14\u4F15"+
-        "\u4F16\u4F1C\u4F1D\u4F21\u4F23\u4F28\u4F29\u4F2C"+
-        "\u4F2D\u4F2E\u4F31\u4F33\u4F35\u4F37\u4F39\u4F3B"+
-        "\u4F3E\u4F3F\u4F40\u4F41\u4F42\u4F44\u4F45\u4F47"+
-        "\u4F48\u4F49\u4F4A\u4F4B\u4F4C\u4F52\u4F54\u4F56"+
-        "\u4F61\u4F62\u4F66\u4F68\u4F6A\u4F6B\u4F6D\u4F6E"+
-        "\u4F71\u4F72\u4F75\u4F77\u4F78\u4F79\u4F7A\u4F7D"+
-        "\u4F80\u4F81\u4F82\u4F85\u4F86\u4F87\u4F8A\u4F8C"+
-        "\u4F8E\u4F90\u4F92\u4F93\u4F95\u4F96\u4F98\u4F99"+
-        "\u4F9A\u4F9C\u4F9E\u4F9F\u4FA1\u4FA2\u4FA4\u4FAB"+
-        "\u4FAD\u4FB0\u4FB1\u4FB2\u4FB3\u4FB4\u4FB6\u4FB7"+
-        "\u4FB8\u4FB9\u4FBA\u4FBB\u4FBC\u4FBD\u4FBE\u4FC0"+
-        "\u4FC1\u4FC2\u4FC6\u4FC7\u4FC8\u4FC9\u4FCB\u4FCC"+
-        "\u4FCD\u4FD2\u4FD3\u4FD4\u4FD5\u4FD6\u4FD9\u4FDB"+
-        "\u4FE0\u4FE2\u4FE4\u4FE5\u4FE7\u4FEB\u4FEC\u4FF0"+
-        "\u4FF2\u4FF4\u4FF5\u4FF6\u4FF7\u4FF9\u4FFB\u4FFC"+
-        "\u4FFD\u4FFF\u5000\u5001\u5002\u5003\u5004\u5005"+
-        "\u5006\u5007\u5008\u5009\u500A\uFFFD\u500B\u500E"+
-        "\u5010\u5011\u5013\u5015\u5016\u5017\u501B\u501D"+
-        "\u501E\u5020\u5022\u5023\u5024\u5027\u502B\u502F"+
-        "\u5030\u5031\u5032\u5033\u5034\u5035\u5036\u5037"+
-        "\u5038\u5039\u503B\u503D\u503F\u5040\u5041\u5042"+
-        "\u5044\u5045\u5046\u5049\u504A\u504B\u504D\u5050"+
-        "\u5051\u5052\u5053\u5054\u5056\u5057\u5058\u5059"+
-        "\u505B\u505D\u505E\u505F\u5060\u5061\u5062\u5063"+
-        "\u5064\u5066\u5067\u5068\u5069\u506A\u506B\u506D"+
-        "\u506E\u506F\u5070\u5071\u5072\u5073\u5074\u5075"+
-        "\u5078\u5079\u507A\u507C\u507D\u5081\u5082\u5083"+
-        "\u5084\u5086\u5087\u5089\u508A\u508B\u508C\u508E"+
-        "\u508F\u5090\u5091\u5092\u5093\u5094\u5095\u5096"+
-        "\u5097\u5098\u5099\u509A\u509B\u509C\u509D\u509E"+
-        "\u509F\u50A0\u50A1\u50A2\u50A4\u50A6\u50AA\u50AB"+
-        "\u50AD\u50AE\u50AF\u50B0\u50B1\u50B3\u50B4\u50B5"+
-        "\u50B6\u50B7\u50B8\u50B9\u50BC\u50BD\u50BE\u50BF"+
-        "\u50C0\u50C1\u50C2\u50C3\u50C4\u50C5\u50C6\u50C7"+
-        "\u50C8\u50C9\u50CA\u50CB\u50CC\u50CD\u50CE\u50D0"+
-        "\u50D1\u50D2\u50D3\u50D4\u50D5\u50D7\u50D8\u50D9"+
-        "\u50DB\u50DC\u50DD\u50DE\u50DF\u50E0\u50E1\u50E2"+
-        "\u50E3\u50E4\u50E5\u50E8\u50E9\u50EA\u50EB\u50EF"+
-        "\u50F0\u50F1\u50F2\u50F4\u50F6\u50F7\u50F8\u50F9"+
-        "\u50FA\u50FC\u50FD\u50FE\u50FF\u5100\u5101\u5102"+
-        "\u5103\u5104\u5105\u5108\uFFFD\u5109\u510A\u510C"+
-        "\u510D\u510E\u510F\u5110\u5111\u5113\u5114\u5115"+
-        "\u5116\u5117\u5118\u5119\u511A\u511B\u511C\u511D"+
-        "\u511E\u511F\u5120\u5122\u5123\u5124\u5125\u5126"+
-        "\u5127\u5128\u5129\u512A\u512B\u512C\u512D\u512E"+
-        "\u512F\u5130\u5131\u5132\u5133\u5134\u5135\u5136"+
-        "\u5137\u5138\u5139\u513A\u513B\u513C\u513D\u513E"+
-        "\u5142\u5147\u514A\u514C\u514E\u514F\u5150\u5152"+
-        "\u5153\u5157\u5158\u5159\u515B\u515D\u515E\u515F"+
-        "\u5160\u5161\u5163\u5164\u5166\u5167\u5169\u516A"+
-        "\u516F\u5172\u517A\u517E\u517F\u5183\u5184\u5186"+
-        "\u5187\u518A\u518B\u518E\u518F\u5190\u5191\u5193"+
-        "\u5194\u5198\u519A\u519D\u519E\u519F\u51A1\u51A3"+
-        "\u51A6\u51A7\u51A8\u51A9\u51AA\u51AD\u51AE\u51B4"+
-        "\u51B8\u51B9\u51BA\u51BE\u51BF\u51C1\u51C2\u51C3"+
-        "\u51C5\u51C8\u51CA\u51CD\u51CE\u51D0\u51D2\u51D3"+
-        "\u51D4\u51D5\u51D6\u51D7\u51D8\u51D9\u51DA\u51DC"+
-        "\u51DE\u51DF\u51E2\u51E3\u51E5\u51E6\u51E7\u51E8"+
-        "\u51E9\u51EA\u51EC\u51EE\u51F1\u51F2\u51F4\u51F7"+
-        "\u51FE\u5204\u5205\u5209\u520B\u520C\u520F\u5210"+
-        "\u5213\u5214\u5215\u521C\u521E\u521F\u5221\u5222"+
-        "\u5223\u5225\u5226\u5227\u522A\u522C\u522F\u5231"+
-        "\u5232\u5234\u5235\u523C\u523E\u5244\u5245\u5246"+
-        "\u5247\u5248\u5249\u524B\u524E\u524F\u5252\u5253"+
-        "\u5255\u5257\u5258\uFFFD\u5259\u525A\u525B\u525D"+
-        "\u525F\u5260\u5262\u5263\u5264\u5266\u5268\u526B"+
-        "\u526C\u526D\u526E\u5270\u5271\u5273\u5274\u5275"+
-        "\u5276\u5277\u5278\u5279\u527A\u527B\u527C\u527E"+
-        "\u5280\u5283\u5284\u5285\u5286\u5287\u5289\u528A"+
-        "\u528B\u528C\u528D\u528E\u528F\u5291\u5292\u5294"+
-        "\u5295\u5296\u5297\u5298\u5299\u529A\u529C\u52A4"+
-        "\u52A5\u52A6\u52A7\u52AE\u52AF\u52B0\u52B4\u52B5"+
-        "\u52B6\u52B7\u52B8\u52B9\u52BA\u52BB\u52BC\u52BD"+
-        "\u52C0\u52C1\u52C2\u52C4\u52C5\u52C6\u52C8\u52CA"+
-        "\u52CC\u52CD\u52CE\u52CF\u52D1\u52D3\u52D4\u52D5"+
-        "\u52D7\u52D9\u52DA\u52DB\u52DC\u52DD\u52DE\u52E0"+
-        "\u52E1\u52E2\u52E3\u52E5\u52E6\u52E7\u52E8\u52E9"+
-        "\u52EA\u52EB\u52EC\u52ED\u52EE\u52EF\u52F1\u52F2"+
-        "\u52F3\u52F4\u52F5\u52F6\u52F7\u52F8\u52FB\u52FC"+
-        "\u52FD\u5301\u5302\u5303\u5304\u5307\u5309\u530A"+
-        "\u530B\u530C\u530E\u5311\u5312\u5313\u5314\u5318"+
-        "\u531B\u531C\u531E\u531F\u5322\u5324\u5325\u5327"+
-        "\u5328\u5329\u532B\u532C\u532D\u532F\u5330\u5331"+
-        "\u5332\u5333\u5334\u5335\u5336\u5337\u5338\u533C"+
-        "\u533D\u5340\u5342\u5344\u5346\u534B\u534C\u534D"+
-        "\u5350\u5354\u5358\u5359\u535B\u535D\u5365\u5368"+
-        "\u536A\u536C\u536D\u5372\u5376\u5379\u537B\u537C"+
-        "\u537D\u537E\u5380\u5381\u5383\u5387\u5388\u538A"+
-        "\u538E\u538F\uFFFD\u5390\u5391\u5392\u5393\u5394"+
-        "\u5396\u5397\u5399\u539B\u539C\u539E\u53A0\u53A1"+
-        "\u53A4\u53A7\u53AA\u53AB\u53AC\u53AD\u53AF\u53B0"+
-        "\u53B1\u53B2\u53B3\u53B4\u53B5\u53B7\u53B8\u53B9"+
-        "\u53BA\u53BC\u53BD\u53BE\u53C0\u53C3\u53C4\u53C5"+
-        "\u53C6\u53C7\u53CE\u53CF\u53D0\u53D2\u53D3\u53D5"+
-        "\u53DA\u53DC\u53DD\u53DE\u53E1\u53E2\u53E7\u53F4"+
-        "\u53FA\u53FE\u53FF\u5400\u5402\u5405\u5407\u540B"+
-        "\u5414\u5418\u5419\u541A\u541C\u5422\u5424\u5425"+
-        "\u542A\u5430\u5433\u5436\u5437\u543A\u543D\u543F"+
-        "\u5441\u5442\u5444\u5445\u5447\u5449\u544C\u544D"+
-        "\u544E\u544F\u5451\u545A\u545D\u545E\u545F\u5460"+
-        "\u5461\u5463\u5465\u5467\u5469\u546A\u546B\u546C"+
-        "\u546D\u546E\u546F\u5470\u5474\u5479\u547A\u547E"+
-        "\u547F\u5481\u5483\u5485\u5487\u5488\u5489\u548A"+
-        "\u548D\u5491\u5493\u5497\u5498\u549C\u549E\u549F"+
-        "\u54A0\u54A1\u54A2\u54A5\u54AE\u54B0\u54B2\u54B5"+
-        "\u54B6\u54B7\u54B9\u54BA\u54BC\u54BE\u54C3\u54C5"+
-        "\u54CA\u54CB\u54D6\u54D8\u54DB\u54E0\u54E1\u54E2"+
-        "\u54E3\u54E4\u54EB\u54EC\u54EF\u54F0\u54F1\u54F4"+
-        "\u54F5\u54F6\u54F7\u54F8\u54F9\u54FB\u54FE\u5500"+
-        "\u5502\u5503\u5504\u5505\u5508\u550A\u550B\u550C"+
-        "\u550D\u550E\u5512\u5513\u5515\u5516\u5517\u5518"+
-        "\u5519\u551A\u551C\u551D\u551E\u551F\u5521\u5525"+
-        "\u5526\uFFFD\u5528\u5529\u552B\u552D\u5532\u5534"+
-        "\u5535\u5536\u5538\u5539\u553A\u553B\u553D\u5540"+
-        "\u5542\u5545\u5547\u5548\u554B\u554C\u554D\u554E"+
-        "\u554F\u5551\u5552\u5553\u5554\u5557\u5558\u5559"+
-        "\u555A\u555B\u555D\u555E\u555F\u5560\u5562\u5563"+
-        "\u5568\u5569\u556B\u556F\u5570\u5571\u5572\u5573"+
-        "\u5574\u5579\u557A\u557D\u557F\u5585\u5586\u558C"+
-        "\u558D\u558E\u5590\u5592\u5593\u5595\u5596\u5597"+
-        "\u559A\u559B\u559E\u55A0\u55A1\u55A2\u55A3\u55A4"+
-        "\u55A5\u55A6\u55A8\u55A9\u55AA\u55AB\u55AC\u55AD"+
-        "\u55AE\u55AF\u55B0\u55B2\u55B4\u55B6\u55B8\u55BA"+
-        "\u55BC\u55BF\u55C0\u55C1\u55C2\u55C3\u55C6\u55C7"+
-        "\u55C8\u55CA\u55CB\u55CE\u55CF\u55D0\u55D5\u55D7"+
-        "\u55D8\u55D9\u55DA\u55DB\u55DE\u55E0\u55E2\u55E7"+
-        "\u55E9\u55ED\u55EE\u55F0\u55F1\u55F4\u55F6\u55F8"+
-        "\u55F9\u55FA\u55FB\u55FC\u55FF\u5602\u5603\u5604"+
-        "\u5605\u5606\u5607\u560A\u560B\u560D\u5610\u5611"+
-        "\u5612\u5613\u5614\u5615\u5616\u5617\u5619\u561A"+
-        "\u561C\u561D\u5620\u5621\u5622\u5625\u5626\u5628"+
-        "\u5629\u562A\u562B\u562E\u562F\u5630\u5633\u5635"+
-        "\u5637\u5638\u563A\u563C\u563D\u563E\u5640\u5641"+
-        "\u5642\u5643\u5644\u5645\u5646\u5647\u5648\u5649"+
-        "\u564A\u564B\u564F\u5650\u5651\u5652\u5653\u5655"+
-        "\u5656\u565A\u565B\u565D\u565E\u565F\u5660\u5661"+
-        "\uFFFD\u5663\u5665\u5666\u5667\u566D\u566E\u566F"+
-        "\u5670\u5672\u5673\u5674\u5675\u5677\u5678\u5679"+
-        "\u567A\u567D\u567E\u567F\u5680\u5681\u5682\u5683"+
-        "\u5684\u5687\u5688\u5689\u568A\u568B\u568C\u568D"+
-        "\u5690\u5691\u5692\u5694\u5695\u5696\u5697\u5698"+
-        "\u5699\u569A\u569B\u569C\u569D\u569E\u569F\u56A0"+
-        "\u56A1\u56A2\u56A4\u56A5\u56A6\u56A7\u56A8\u56A9"+
-        "\u56AA\u56AB\u56AC\u56AD\u56AE\u56B0\u56B1\u56B2"+
-        "\u56B3\u56B4\u56B5\u56B6\u56B8\u56B9\u56BA\u56BB"+
-        "\u56BD\u56BE\u56BF\u56C0\u56C1\u56C2\u56C3\u56C4"+
-        "\u56C5\u56C6\u56C7\u56C8\u56C9\u56CB\u56CC\u56CD"+
-        "\u56CE\u56CF\u56D0\u56D1\u56D2\u56D3\u56D5\u56D6"+
-        "\u56D8\u56D9\u56DC\u56E3\u56E5\u56E6\u56E7\u56E8"+
-        "\u56E9\u56EA\u56EC\u56EE\u56EF\u56F2\u56F3\u56F6"+
-        "\u56F7\u56F8\u56FB\u56FC\u5700\u5701\u5702\u5705"+
-        "\u5707\u570B\u570C\u570D\u570E\u570F\u5710\u5711"+
-        "\u5712\u5713\u5714\u5715\u5716\u5717\u5718\u5719"+
-        "\u571A\u571B\u571D\u571E\u5720\u5721\u5722\u5724"+
-        "\u5725\u5726\u5727\u572B\u5731\u5732\u5734\u5735"+
-        "\u5736\u5737\u5738\u573C\u573D\u573F\u5741\u5743"+
-        "\u5744\u5745\u5746\u5748\u5749\u574B\u5752\u5753"+
-        "\u5754\u5755\u5756\u5758\u5759\u5762\u5763\u5765"+
-        "\u5767\u576C\u576E\u5770\u5771\u5772\u5774\u5775"+
-        "\u5778\u5779\u577A\u577D\u577E\u577F\u5780\uFFFD"+
-        "\u5781\u5787\u5788\u5789\u578A\u578D\u578E\u578F"+
-        "\u5790\u5791\u5794\u5795\u5796\u5797\u5798\u5799"+
-        "\u579A\u579C\u579D\u579E\u579F\u57A5\u57A8\u57AA"+
-        "\u57AC\u57AF\u57B0\u57B1\u57B3\u57B5\u57B6\u57B7"+
-        "\u57B9\u57BA\u57BB\u57BC\u57BD\u57BE\u57BF\u57C0"+
-        "\u57C1\u57C4\u57C5\u57C6\u57C7\u57C8\u57C9\u57CA"+
-        "\u57CC\u57CD\u57D0\u57D1\u57D3\u57D6\u57D7\u57DB"+
-        "\u57DC\u57DE\u57E1\u57E2\u57E3\u57E5\u57E6\u57E7"+
-        "\u57E8\u57E9\u57EA\u57EB\u57EC\u57EE\u57F0\u57F1"+
-        "\u57F2\u57F3\u57F5\u57F6\u57F7\u57FB\u57FC\u57FE"+
-        "\u57FF\u5801\u5803\u5804\u5805\u5808\u5809\u580A"+
-        "\u580C\u580E\u580F\u5810\u5812\u5813\u5814\u5816"+
-        "\u5817\u5818\u581A\u581B\u581C\u581D\u581F\u5822"+
-        "\u5823\u5825\u5826\u5827\u5828\u5829\u582B\u582C"+
-        "\u582D\u582E\u582F\u5831\u5832\u5833\u5834\u5836"+
-        "\u5837\u5838\u5839\u583A\u583B\u583C\u583D\u583E"+
-        "\u583F\u5840\u5841\u5842\u5843\u5845\u5846\u5847"+
-        "\u5848\u5849\u584A\u584B\u584E\u584F\u5850\u5852"+
-        "\u5853\u5855\u5856\u5857\u5859\u585A\u585B\u585C"+
-        "\u585D\u585F\u5860\u5861\u5862\u5863\u5864\u5866"+
-        "\u5867\u5868\u5869\u586A\u586D\u586E\u586F\u5870"+
-        "\u5871\u5872\u5873\u5874\u5875\u5876\u5877\u5878"+
-        "\u5879\u587A\u587B\u587C\u587D\u587F\u5882\u5884"+
-        "\u5886\u5887\u5888\u588A\u588B\u588C\uFFFD\u588D"+
-        "\u588E\u588F\u5890\u5891\u5894\u5895\u5896\u5897"+
-        "\u5898\u589B\u589C\u589D\u58A0\u58A1\u58A2\u58A3"+
-        "\u58A4\u58A5\u58A6\u58A7\u58AA\u58AB\u58AC\u58AD"+
-        "\u58AE\u58AF\u58B0\u58B1\u58B2\u58B3\u58B4\u58B5"+
-        "\u58B6\u58B7\u58B8\u58B9\u58BA\u58BB\u58BD\u58BE"+
-        "\u58BF\u58C0\u58C2\u58C3\u58C4\u58C6\u58C7\u58C8"+
-        "\u58C9\u58CA\u58CB\u58CC\u58CD\u58CE\u58CF\u58D0"+
-        "\u58D2\u58D3\u58D4\u58D6\u58D7\u58D8\u58D9\u58DA"+
-        "\u58DB\u58DC\u58DD\u58DE\u58DF\u58E0\u58E1\u58E2"+
-        "\u58E3\u58E5\u58E6\u58E7\u58E8\u58E9\u58EA\u58ED"+
-        "\u58EF\u58F1\u58F2\u58F4\u58F5\u58F7\u58F8\u58FA"+
-        "\u58FB\u58FC\u58FD\u58FE\u58FF\u5900\u5901\u5903"+
-        "\u5905\u5906\u5908\u5909\u590A\u590B\u590C\u590E"+
-        "\u5910\u5911\u5912\u5913\u5917\u5918\u591B\u591D"+
-        "\u591E\u5920\u5921\u5922\u5923\u5926\u5928\u592C"+
-        "\u5930\u5932\u5933\u5935\u5936\u593B\u593D\u593E"+
-        "\u593F\u5940\u5943\u5945\u5946\u594A\u594C\u594D"+
-        "\u5950\u5952\u5953\u5959\u595B\u595C\u595D\u595E"+
-        "\u595F\u5961\u5963\u5964\u5966\u5967\u5968\u5969"+
-        "\u596A\u596B\u596C\u596D\u596E\u596F\u5970\u5971"+
-        "\u5972\u5975\u5977\u597A\u597B\u597C\u597E\u597F"+
-        "\u5980\u5985\u5989\u598B\u598C\u598E\u598F\u5990"+
-        "\u5991\u5994\u5995\u5998\u599A\u599B\u599C\u599D"+
-        "\u599F\u59A0\u59A1\u59A2\u59A6\uFFFD\u59A7\u59AC"+
-        "\u59AD\u59B0\u59B1\u59B3\u59B4\u59B5\u59B6\u59B7"+
-        "\u59B8\u59BA\u59BC\u59BD\u59BF\u59C0\u59C1\u59C2"+
-        "\u59C3\u59C4\u59C5\u59C7\u59C8\u59C9\u59CC\u59CD"+
-        "\u59CE\u59CF\u59D5\u59D6\u59D9\u59DB\u59DE\u59DF"+
-        "\u59E0\u59E1\u59E2\u59E4\u59E6\u59E7\u59E9\u59EA"+
-        "\u59EB\u59ED\u59EE\u59EF\u59F0\u59F1\u59F2\u59F3"+
-        "\u59F4\u59F5\u59F6\u59F7\u59F8\u59FA\u59FC\u59FD"+
-        "\u59FE\u5A00\u5A02\u5A0A\u5A0B\u5A0D\u5A0E\u5A0F"+
-        "\u5A10\u5A12\u5A14\u5A15\u5A16\u5A17\u5A19\u5A1A"+
-        "\u5A1B\u5A1D\u5A1E\u5A21\u5A22\u5A24\u5A26\u5A27"+
-        "\u5A28\u5A2A\u5A2B\u5A2C\u5A2D\u5A2E\u5A2F\u5A30"+
-        "\u5A33\u5A35\u5A37\u5A38\u5A39\u5A3A\u5A3B\u5A3D"+
-        "\u5A3E\u5A3F\u5A41\u5A42\u5A43\u5A44\u5A45\u5A47"+
-        "\u5A48\u5A4B\u5A4C\u5A4D\u5A4E\u5A4F\u5A50\u5A51"+
-        "\u5A52\u5A53\u5A54\u5A56\u5A57\u5A58\u5A59\u5A5B"+
-        "\u5A5C\u5A5D\u5A5E\u5A5F\u5A60\u5A61\u5A63\u5A64"+
-        "\u5A65\u5A66\u5A68\u5A69\u5A6B\u5A6C\u5A6D\u5A6E"+
-        "\u5A6F\u5A70\u5A71\u5A72\u5A73\u5A78\u5A79\u5A7B"+
-        "\u5A7C\u5A7D\u5A7E\u5A80\u5A81\u5A82\u5A83\u5A84"+
-        "\u5A85\u5A86\u5A87\u5A88\u5A89\u5A8A\u5A8B\u5A8C"+
-        "\u5A8D\u5A8E\u5A8F\u5A90\u5A91\u5A93\u5A94\u5A95"+
-        "\u5A96\u5A97\u5A98\u5A99\u5A9C\u5A9D\u5A9E\u5A9F"+
-        "\u5AA0\u5AA1\u5AA2\u5AA3\u5AA4\u5AA5\u5AA6\u5AA7"+
-        "\u5AA8\u5AA9\u5AAB\u5AAC\uFFFD\u5AAD\u5AAE\u5AAF"+
-        "\u5AB0\u5AB1\u5AB4\u5AB6\u5AB7\u5AB9\u5ABA\u5ABB"+
-        "\u5ABC\u5ABD\u5ABF\u5AC0\u5AC3\u5AC4\u5AC5\u5AC6"+
-        "\u5AC7\u5AC8\u5ACA\u5ACB\u5ACD\u5ACE\u5ACF\u5AD0"+
-        "\u5AD1\u5AD3\u5AD5\u5AD7\u5AD9\u5ADA\u5ADB\u5ADD"+
-        "\u5ADE\u5ADF\u5AE2\u5AE4\u5AE5\u5AE7\u5AE8\u5AEA"+
-        "\u5AEC\u5AED\u5AEE\u5AEF\u5AF0\u5AF2\u5AF3\u5AF4"+
-        "\u5AF5\u5AF6\u5AF7\u5AF8\u5AF9\u5AFA\u5AFB\u5AFC"+
-        "\u5AFD\u5AFE\u5AFF\u5B00\u5B01\u5B02\u5B03\u5B04"+
-        "\u5B05\u5B06\u5B07\u5B08\u5B0A\u5B0B\u5B0C\u5B0D"+
-        "\u5B0E\u5B0F\u5B10\u5B11\u5B12\u5B13\u5B14\u5B15"+
-        "\u5B18\u5B19\u5B1A\u5B1B\u5B1C\u5B1D\u5B1E\u5B1F"+
-        "\u5B20\u5B21\u5B22\u5B23\u5B24\u5B25\u5B26\u5B27"+
-        "\u5B28\u5B29\u5B2A\u5B2B\u5B2C\u5B2D\u5B2E\u5B2F"+
-        "\u5B30\u5B31\u5B33\u5B35\u5B36\u5B38\u5B39\u5B3A"+
-        "\u5B3B\u5B3C\u5B3D\u5B3E\u5B3F\u5B41\u5B42\u5B43"+
-        "\u5B44\u5B45\u5B46\u5B47\u5B48\u5B49\u5B4A\u5B4B"+
-        "\u5B4C\u5B4D\u5B4E\u5B4F\u5B52\u5B56\u5B5E\u5B60"+
-        "\u5B61\u5B67\u5B68\u5B6B\u5B6D\u5B6E\u5B6F\u5B72"+
-        "\u5B74\u5B76\u5B77\u5B78\u5B79\u5B7B\u5B7C\u5B7E"+
-        "\u5B7F\u5B82\u5B86\u5B8A\u5B8D\u5B8E\u5B90\u5B91"+
-        "\u5B92\u5B94\u5B96\u5B9F\u5BA7\u5BA8\u5BA9\u5BAC"+
-        "\u5BAD\u5BAE\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBB"+
-        "\u5BBC\u5BC0\u5BC1\u5BC3\u5BC8\u5BC9\u5BCA\u5BCB"+
-        "\u5BCD\u5BCE\u5BCF\uFFFD\u5BD1\u5BD4\u5BD5\u5BD6"+
-        "\u5BD7\u5BD8\u5BD9\u5BDA\u5BDB\u5BDC\u5BE0\u5BE2"+
-        "\u5BE3\u5BE6\u5BE7\u5BE9\u5BEA\u5BEB\u5BEC\u5BED"+
-        "\u5BEF\u5BF1\u5BF2\u5BF3\u5BF4\u5BF5\u5BF6\u5BF7"+
-        "\u5BFD\u5BFE\u5C00\u5C02\u5C03\u5C05\u5C07\u5C08"+
-        "\u5C0B\u5C0C\u5C0D\u5C0E\u5C10\u5C12\u5C13\u5C17"+
-        "\u5C19\u5C1B\u5C1E\u5C1F\u5C20\u5C21\u5C23\u5C26"+
-        "\u5C28\u5C29\u5C2A\u5C2B\u5C2D\u5C2E\u5C2F\u5C30"+
-        "\u5C32\u5C33\u5C35\u5C36\u5C37\u5C43\u5C44\u5C46"+
-        "\u5C47\u5C4C\u5C4D\u5C52\u5C53\u5C54\u5C56\u5C57"+
-        "\u5C58\u5C5A\u5C5B\u5C5C\u5C5D\u5C5F\u5C62\u5C64"+
-        "\u5C67\u5C68\u5C69\u5C6A\u5C6B\u5C6C\u5C6D\u5C70"+
-        "\u5C72\u5C73\u5C74\u5C75\u5C76\u5C77\u5C78\u5C7B"+
-        "\u5C7C\u5C7D\u5C7E\u5C80\u5C83\u5C84\u5C85\u5C86"+
-        "\u5C87\u5C89\u5C8A\u5C8B\u5C8E\u5C8F\u5C92\u5C93"+
-        "\u5C95\u5C9D\u5C9E\u5C9F\u5CA0\u5CA1\u5CA4\u5CA5"+
-        "\u5CA6\u5CA7\u5CA8\u5CAA\u5CAE\u5CAF\u5CB0\u5CB2"+
-        "\u5CB4\u5CB6\u5CB9\u5CBA\u5CBB\u5CBC\u5CBE\u5CC0"+
-        "\u5CC2\u5CC3\u5CC5\u5CC6\u5CC7\u5CC8\u5CC9\u5CCA"+
-        "\u5CCC\u5CCD\u5CCE\u5CCF\u5CD0\u5CD1\u5CD3\u5CD4"+
-        "\u5CD5\u5CD6\u5CD7\u5CD8\u5CDA\u5CDB\u5CDC\u5CDD"+
-        "\u5CDE\u5CDF\u5CE0\u5CE2\u5CE3\u5CE7\u5CE9\u5CEB"+
-        "\u5CEC\u5CEE\u5CEF\u5CF1\u5CF2\u5CF3\u5CF4\u5CF5"+
-        "\u5CF6\u5CF7\u5CF8\u5CF9\u5CFA\u5CFC\u5CFD\u5CFE"+
-        "\u5CFF\u5D00\uFFFD\u5D01\u5D04\u5D05\u5D08\u5D09"+
-        "\u5D0A\u5D0B\u5D0C\u5D0D\u5D0F\u5D10\u5D11\u5D12"+
-        "\u5D13\u5D15\u5D17\u5D18\u5D19\u5D1A\u5D1C\u5D1D"+
-        "\u5D1F\u5D20\u5D21\u5D22\u5D23\u5D25\u5D28\u5D2A"+
-        "\u5D2B\u5D2C\u5D2F\u5D30\u5D31\u5D32\u5D33\u5D35"+
-        "\u5D36\u5D37\u5D38\u5D39\u5D3A\u5D3B\u5D3C\u5D3F"+
-        "\u5D40\u5D41\u5D42\u5D43\u5D44\u5D45\u5D46\u5D48"+
-        "\u5D49\u5D4D\u5D4E\u5D4F\u5D50\u5D51\u5D52\u5D53"+
-        "\u5D54\u5D55\u5D56\u5D57\u5D59\u5D5A\u5D5C\u5D5E"+
-        "\u5D5F\u5D60\u5D61\u5D62\u5D63\u5D64\u5D65\u5D66"+
-        "\u5D67\u5D68\u5D6A\u5D6D\u5D6E\u5D70\u5D71\u5D72"+
-        "\u5D73\u5D75\u5D76\u5D77\u5D78\u5D79\u5D7A\u5D7B"+
-        "\u5D7C\u5D7D\u5D7E\u5D7F\u5D80\u5D81\u5D83\u5D84"+
-        "\u5D85\u5D86\u5D87\u5D88\u5D89\u5D8A\u5D8B\u5D8C"+
-        "\u5D8D\u5D8E\u5D8F\u5D90\u5D91\u5D92\u5D93\u5D94"+
-        "\u5D95\u5D96\u5D97\u5D98\u5D9A\u5D9B\u5D9C\u5D9E"+
-        "\u5D9F\u5DA0\u5DA1\u5DA2\u5DA3\u5DA4\u5DA5\u5DA6"+
-        "\u5DA7\u5DA8\u5DA9\u5DAA\u5DAB\u5DAC\u5DAD\u5DAE"+
-        "\u5DAF\u5DB0\u5DB1\u5DB2\u5DB3\u5DB4\u5DB5\u5DB6"+
-        "\u5DB8\u5DB9\u5DBA\u5DBB\u5DBC\u5DBD\u5DBE\u5DBF"+
-        "\u5DC0\u5DC1\u5DC2\u5DC3\u5DC4\u5DC6\u5DC7\u5DC8"+
-        "\u5DC9\u5DCA\u5DCB\u5DCC\u5DCE\u5DCF\u5DD0\u5DD1"+
-        "\u5DD2\u5DD3\u5DD4\u5DD5\u5DD6\u5DD7\u5DD8\u5DD9"+
-        "\u5DDA\u5DDC\u5DDF\u5DE0\u5DE3\u5DE4\u5DEA\u5DEC"+
-        "\u5DED\uFFFD\u5DF0\u5DF5\u5DF6\u5DF8\u5DF9\u5DFA"+
-        "\u5DFB\u5DFC\u5DFF\u5E00\u5E04\u5E07\u5E09\u5E0A"+
-        "\u5E0B\u5E0D\u5E0E\u5E12\u5E13\u5E17\u5E1E\u5E1F"+
-        "\u5E20\u5E21\u5E22\u5E23\u5E24\u5E25\u5E28\u5E29"+
-        "\u5E2A\u5E2B\u5E2C\u5E2F\u5E30\u5E32\u5E33\u5E34"+
-        "\u5E35\u5E36\u5E39\u5E3A\u5E3E\u5E3F\u5E40\u5E41"+
-        "\u5E43\u5E46\u5E47\u5E48\u5E49\u5E4A\u5E4B\u5E4D"+
-        "\u5E4E\u5E4F\u5E50\u5E51\u5E52\u5E53\u5E56\u5E57"+
-        "\u5E58\u5E59\u5E5A\u5E5C\u5E5D\u5E5F\u5E60\u5E63"+
-        "\u5E64\u5E65\u5E66\u5E67\u5E68\u5E69\u5E6A\u5E6B"+
-        "\u5E6C\u5E6D\u5E6E\u5E6F\u5E70\u5E71\u5E75\u5E77"+
-        "\u5E79\u5E7E\u5E81\u5E82\u5E83\u5E85\u5E88\u5E89"+
-        "\u5E8C\u5E8D\u5E8E\u5E92\u5E98\u5E9B\u5E9D\u5EA1"+
-        "\u5EA2\u5EA3\u5EA4\u5EA8\u5EA9\u5EAA\u5EAB\u5EAC"+
-        "\u5EAE\u5EAF\u5EB0\u5EB1\u5EB2\u5EB4\u5EBA\u5EBB"+
-        "\u5EBC\u5EBD\u5EBF\u5EC0\u5EC1\u5EC2\u5EC3\u5EC4"+
-        "\u5EC5\u5EC6\u5EC7\u5EC8\u5ECB\u5ECC\u5ECD\u5ECE"+
-        "\u5ECF\u5ED0\u5ED4\u5ED5\u5ED7\u5ED8\u5ED9\u5EDA"+
-        "\u5EDC\u5EDD\u5EDE\u5EDF\u5EE0\u5EE1\u5EE2\u5EE3"+
-        "\u5EE4\u5EE5\u5EE6\u5EE7\u5EE9\u5EEB\u5EEC\u5EED"+
-        "\u5EEE\u5EEF\u5EF0\u5EF1\u5EF2\u5EF3\u5EF5\u5EF8"+
-        "\u5EF9\u5EFB\u5EFC\u5EFD\u5F05\u5F06\u5F07\u5F09"+
-        "\u5F0C\u5F0D\u5F0E\u5F10\u5F12\u5F14\u5F16\u5F19"+
-        "\u5F1A\u5F1C\u5F1D\u5F1E\u5F21\u5F22\u5F23\u5F24"+
-        "\uFFFD\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F32\u5F33"+
-        "\u5F34\u5F35\u5F36\u5F37\u5F38\u5F3B\u5F3D\u5F3E"+
-        "\u5F3F\u5F41\u5F42\u5F43\u5F44\u5F45\u5F46\u5F47"+
-        "\u5F48\u5F49\u5F4A\u5F4B\u5F4C\u5F4D\u5F4E\u5F4F"+
-        "\u5F51\u5F54\u5F59\u5F5A\u5F5B\u5F5C\u5F5E\u5F5F"+
-        "\u5F60\u5F63\u5F65\u5F67\u5F68\u5F6B\u5F6E\u5F6F"+
-        "\u5F72\u5F74\u5F75\u5F76\u5F78\u5F7A\u5F7D\u5F7E"+
-        "\u5F7F\u5F83\u5F86\u5F8D\u5F8E\u5F8F\u5F91\u5F93"+
-        "\u5F94\u5F96\u5F9A\u5F9B\u5F9D\u5F9E\u5F9F\u5FA0"+
-        "\u5FA2\u5FA3\u5FA4\u5FA5\u5FA6\u5FA7\u5FA9\u5FAB"+
-        "\u5FAC\u5FAF\u5FB0\u5FB1\u5FB2\u5FB3\u5FB4\u5FB6"+
-        "\u5FB8\u5FB9\u5FBA\u5FBB\u5FBE\u5FBF\u5FC0\u5FC1"+
-        "\u5FC2\u5FC7\u5FC8\u5FCA\u5FCB\u5FCE\u5FD3\u5FD4"+
-        "\u5FD5\u5FDA\u5FDB\u5FDC\u5FDE\u5FDF\u5FE2\u5FE3"+
-        "\u5FE5\u5FE6\u5FE8\u5FE9\u5FEC\u5FEF\u5FF0\u5FF2"+
-        "\u5FF3\u5FF4\u5FF6\u5FF7\u5FF9\u5FFA\u5FFC\u6007";
-
-    private final static String innerIndex1=
-        "\u6008\u6009\u600B\u600C\u6010\u6011\u6013\u6017"+
-        "\u6018\u601A\u601E\u601F\u6022\u6023\u6024\u602C"+
-        "\u602D\u602E\u6030\u6031\u6032\u6033\u6034\u6036"+
-        "\u6037\u6038\u6039\u603A\u603D\u603E\u6040\u6044"+
-        "\u6045\u6046\u6047\u6048\u6049\u604A\u604C\u604E"+
-        "\u604F\u6051\u6053\u6054\u6056\u6057\u6058\u605B"+
-        "\u605C\u605E\u605F\u6060\u6061\u6065\u6066\u606E"+
-        "\u6071\u6072\u6074\u6075\u6077\u607E\u6080\uFFFD"+
-        "\u6081\u6082\u6085\u6086\u6087\u6088\u608A\u608B"+
-        "\u608E\u608F\u6090\u6091\u6093\u6095\u6097\u6098"+
-        "\u6099\u609C\u609E\u60A1\u60A2\u60A4\u60A5\u60A7"+
-        "\u60A9\u60AA\u60AE\u60B0\u60B3\u60B5\u60B6\u60B7"+
-        "\u60B9\u60BA\u60BD\u60BE\u60BF\u60C0\u60C1\u60C2"+
-        "\u60C3\u60C4\u60C7\u60C8\u60C9\u60CC\u60CD\u60CE"+
-        "\u60CF\u60D0\u60D2\u60D3\u60D4\u60D6\u60D7\u60D9"+
-        "\u60DB\u60DE\u60E1\u60E2\u60E3\u60E4\u60E5\u60EA"+
-        "\u60F1\u60F2\u60F5\u60F7\u60F8\u60FB\u60FC\u60FD"+
-        "\u60FE\u60FF\u6102\u6103\u6104\u6105\u6107\u610A"+
-        "\u610B\u610C\u6110\u6111\u6112\u6113\u6114\u6116"+
-        "\u6117\u6118\u6119\u611B\u611C\u611D\u611E\u6121"+
-        "\u6122\u6125\u6128\u6129\u612A\u612C\u612D\u612E"+
-        "\u612F\u6130\u6131\u6132\u6133\u6134\u6135\u6136"+
-        "\u6137\u6138\u6139\u613A\u613B\u613C\u613D\u613E"+
-        "\u6140\u6141\u6142\u6143\u6144\u6145\u6146\u6147"+
-        "\u6149\u614B\u614D\u614F\u6150\u6152\u6153\u6154"+
-        "\u6156\u6157\u6158\u6159\u615A\u615B\u615C\u615E"+
-        "\u615F\u6160\u6161\u6163\u6164\u6165\u6166\u6169"+
-        "\u616A\u616B\u616C\u616D\u616E\u616F\u6171\u6172"+
-        "\u6173\u6174\u6176\u6178\u6179\u617A\u617B\u617C"+
-        "\u617D\u617E\u617F\u6180\u6181\u6182\u6183\u6184"+
-        "\u6185\u6186\u6187\u6188\u6189\u618A\u618C\u618D"+
-        "\u618F\u6190\u6191\u6192\u6193\u6195\uFFFD\u6196"+
-        "\u6197\u6198\u6199\u619A\u619B\u619C\u619E\u619F"+
-        "\u61A0\u61A1\u61A2\u61A3\u61A4\u61A5\u61A6\u61AA"+
-        "\u61AB\u61AD\u61AE\u61AF\u61B0\u61B1\u61B2\u61B3"+
-        "\u61B4\u61B5\u61B6\u61B8\u61B9\u61BA\u61BB\u61BC"+
-        "\u61BD\u61BF\u61C0\u61C1\u61C3\u61C4\u61C5\u61C6"+
-        "\u61C7\u61C9\u61CC\u61CD\u61CE\u61CF\u61D0\u61D3"+
-        "\u61D5\u61D6\u61D7\u61D8\u61D9\u61DA\u61DB\u61DC"+
-        "\u61DD\u61DE\u61DF\u61E0\u61E1\u61E2\u61E3\u61E4"+
-        "\u61E5\u61E7\u61E8\u61E9\u61EA\u61EB\u61EC\u61ED"+
-        "\u61EE\u61EF\u61F0\u61F1\u61F2\u61F3\u61F4\u61F6"+
-        "\u61F7\u61F8\u61F9\u61FA\u61FB\u61FC\u61FD\u61FE"+
-        "\u6200\u6201\u6202\u6203\u6204\u6205\u6207\u6209"+
-        "\u6213\u6214\u6219\u621C\u621D\u621E\u6220\u6223"+
-        "\u6226\u6227\u6228\u6229\u622B\u622D\u622F\u6230"+
-        "\u6231\u6232\u6235\u6236\u6238\u6239\u623A\u623B"+
-        "\u623C\u6242\u6244\u6245\u6246\u624A\u624F\u6250"+
-        "\u6255\u6256\u6257\u6259\u625A\u625C\u625D\u625E"+
-        "\u625F\u6260\u6261\u6262\u6264\u6265\u6268\u6271"+
-        "\u6272\u6274\u6275\u6277\u6278\u627A\u627B\u627D"+
-        "\u6281\u6282\u6283\u6285\u6286\u6287\u6288\u628B"+
-        "\u628C\u628D\u628E\u628F\u6290\u6294\u6299\u629C"+
-        "\u629D\u629E\u62A3\u62A6\u62A7\u62A9\u62AA\u62AD"+
-        "\u62AE\u62AF\u62B0\u62B2\u62B3\u62B4\u62B6\u62B7"+
-        "\u62B8\u62BA\u62BE\u62C0\u62C1\uFFFD\u62C3\u62CB"+
-        "\u62CF\u62D1\u62D5\u62DD\u62DE\u62E0\u62E1\u62E4"+
-        "\u62EA\u62EB\u62F0\u62F2\u62F5\u62F8\u62F9\u62FA"+
-        "\u62FB\u6300\u6303\u6304\u6305\u6306\u630A\u630B"+
-        "\u630C\u630D\u630F\u6310\u6312\u6313\u6314\u6315"+
-        "\u6317\u6318\u6319\u631C\u6326\u6327\u6329\u632C"+
-        "\u632D\u632E\u6330\u6331\u6333\u6334\u6335\u6336"+
-        "\u6337\u6338\u633B\u633C\u633E\u633F\u6340\u6341"+
-        "\u6344\u6347\u6348\u634A\u6351\u6352\u6353\u6354"+
-        "\u6356\u6357\u6358\u6359\u635A\u635B\u635C\u635D"+
-        "\u6360\u6364\u6365\u6366\u6368\u636A\u636B\u636C"+
-        "\u636F\u6370\u6372\u6373\u6374\u6375\u6378\u6379"+
-        "\u637C\u637D\u637E\u637F\u6381\u6383\u6384\u6385"+
-        "\u6386\u638B\u638D\u6391\u6393\u6394\u6395\u6397"+
-        "\u6399\u639A\u639B\u639C\u639D\u639E\u639F\u63A1"+
-        "\u63A4\u63A6\u63AB\u63AF\u63B1\u63B2\u63B5\u63B6"+
-        "\u63B9\u63BB\u63BD\u63BF\u63C0\u63C1\u63C2\u63C3"+
-        "\u63C5\u63C7\u63C8\u63CA\u63CB\u63CC\u63D1\u63D3"+
-        "\u63D4\u63D5\u63D7\u63D8\u63D9\u63DA\u63DB\u63DC"+
-        "\u63DD\u63DF\u63E2\u63E4\u63E5\u63E6\u63E7\u63E8"+
-        "\u63EB\u63EC\u63EE\u63EF\u63F0\u63F1\u63F3\u63F5"+
-        "\u63F7\u63F9\u63FA\u63FB\u63FC\u63FE\u6403\u6404"+
-        "\u6406\u6407\u6408\u6409\u640A\u640D\u640E\u6411"+
-        "\u6412\u6415\u6416\u6417\u6418\u6419\u641A\u641D"+
-        "\u641F\u6422\u6423\u6424\uFFFD\u6425\u6427\u6428"+
-        "\u6429\u642B\u642E\u642F\u6430\u6431\u6432\u6433"+
-        "\u6435\u6436\u6437\u6438\u6439\u643B\u643C\u643E"+
-        "\u6440\u6442\u6443\u6449\u644B\u644C\u644D\u644E"+
-        "\u644F\u6450\u6451\u6453\u6455\u6456\u6457\u6459"+
-        "\u645A\u645B\u645C\u645D\u645F\u6460\u6461\u6462"+
-        "\u6463\u6464\u6465\u6466\u6468\u646A\u646B\u646C"+
-        "\u646E\u646F\u6470\u6471\u6472\u6473\u6474\u6475"+
-        "\u6476\u6477\u647B\u647C\u647D\u647E\u647F\u6480"+
-        "\u6481\u6483\u6486\u6488\u6489\u648A\u648B\u648C"+
-        "\u648D\u648E\u648F\u6490\u6493\u6494\u6497\u6498"+
-        "\u649A\u649B\u649C\u649D\u649F\u64A0\u64A1\u64A2"+
-        "\u64A3\u64A5\u64A6\u64A7\u64A8\u64AA\u64AB\u64AF"+
-        "\u64B1\u64B2\u64B3\u64B4\u64B6\u64B9\u64BB\u64BD"+
-        "\u64BE\u64BF\u64C1\u64C3\u64C4\u64C6\u64C7\u64C8"+
-        "\u64C9\u64CA\u64CB\u64CC\u64CF\u64D1\u64D3\u64D4"+
-        "\u64D5\u64D6\u64D9\u64DA\u64DB\u64DC\u64DD\u64DF"+
-        "\u64E0\u64E1\u64E3\u64E5\u64E7\u64E8\u64E9\u64EA"+
-        "\u64EB\u64EC\u64ED\u64EE\u64EF\u64F0\u64F1\u64F2"+
-        "\u64F3\u64F4\u64F5\u64F6\u64F7\u64F8\u64F9\u64FA"+
-        "\u64FB\u64FC\u64FD\u64FE\u64FF\u6501\u6502\u6503"+
-        "\u6504\u6505\u6506\u6507\u6508\u650A\u650B\u650C"+
-        "\u650D\u650E\u650F\u6510\u6511\u6513\u6514\u6515"+
-        "\u6516\u6517\u6519\u651A\u651B\u651C\u651D\u651E"+
-        "\u651F\u6520\u6521\uFFFD\u6522\u6523\u6524\u6526"+
-        "\u6527\u6528\u6529\u652A\u652C\u652D\u6530\u6531"+
-        "\u6532\u6533\u6537\u653A\u653C\u653D\u6540\u6541"+
-        "\u6542\u6543\u6544\u6546\u6547\u654A\u654B\u654D"+
-        "\u654E\u6550\u6552\u6553\u6554\u6557\u6558\u655A"+
-        "\u655C\u655F\u6560\u6561\u6564\u6565\u6567\u6568"+
-        "\u6569\u656A\u656D\u656E\u656F\u6571\u6573\u6575"+
-        "\u6576\u6578\u6579\u657A\u657B\u657C\u657D\u657E"+
-        "\u657F\u6580\u6581\u6582\u6583\u6584\u6585\u6586"+
-        "\u6588\u6589\u658A\u658D\u658E\u658F\u6592\u6594"+
-        "\u6595\u6596\u6598\u659A\u659D\u659E\u65A0\u65A2"+
-        "\u65A3\u65A6\u65A8\u65AA\u65AC\u65AE\u65B1\u65B2"+
-        "\u65B3\u65B4\u65B5\u65B6\u65B7\u65B8\u65BA\u65BB"+
-        "\u65BE\u65BF\u65C0\u65C2\u65C7\u65C8\u65C9\u65CA"+
-        "\u65CD\u65D0\u65D1\u65D3\u65D4\u65D5\u65D8\u65D9"+
-        "\u65DA\u65DB\u65DC\u65DD\u65DE\u65DF\u65E1\u65E3"+
-        "\u65E4\u65EA\u65EB\u65F2\u65F3\u65F4\u65F5\u65F8"+
-        "\u65F9\u65FB\u65FC\u65FD\u65FE\u65FF\u6601\u6604"+
-        "\u6605\u6607\u6608\u6609\u660B\u660D\u6610\u6611"+
-        "\u6612\u6616\u6617\u6618\u661A\u661B\u661C\u661E"+
-        "\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B"+
-        "\u662C\u662E\u6630\u6632\u6633\u6637\u6638\u6639"+
-        "\u663A\u663B\u663D\u663F\u6640\u6642\u6644\u6645"+
-        "\u6646\u6647\u6648\u6649\u664A\u664D\u664E\u6650"+
-        "\u6651\u6658\uFFFD\u6659\u665B\u665C\u665D\u665E"+
-        "\u6660\u6662\u6663\u6665\u6667\u6669\u666A\u666B"+
-        "\u666C\u666D\u6671\u6672\u6673\u6675\u6678\u6679"+
-        "\u667B\u667C\u667D\u667F\u6680\u6681\u6683\u6685"+
-        "\u6686\u6688\u6689\u668A\u668B\u668D\u668E\u668F"+
-        "\u6690\u6692\u6693\u6694\u6695\u6698\u6699\u669A"+
-        "\u669B\u669C\u669E\u669F\u66A0\u66A1\u66A2\u66A3"+
-        "\u66A4\u66A5\u66A6\u66A9\u66AA\u66AB\u66AC\u66AD"+
-        "\u66AF\u66B0\u66B1\u66B2\u66B3\u66B5\u66B6\u66B7"+
-        "\u66B8\u66BA\u66BB\u66BC\u66BD\u66BF\u66C0\u66C1"+
-        "\u66C2\u66C3\u66C4\u66C5\u66C6\u66C7\u66C8\u66C9"+
-        "\u66CA\u66CB\u66CC\u66CD\u66CE\u66CF\u66D0\u66D1"+
-        "\u66D2\u66D3\u66D4\u66D5\u66D6\u66D7\u66D8\u66DA"+
-        "\u66DE\u66DF\u66E0\u66E1\u66E2\u66E3\u66E4\u66E5"+
-        "\u66E7\u66E8\u66EA\u66EB\u66EC\u66ED\u66EE\u66EF"+
-        "\u66F1\u66F5\u66F6\u66F8\u66FA\u66FB\u66FD\u6701"+
-        "\u6702\u6703\u6704\u6705\u6706\u6707\u670C\u670E"+
-        "\u670F\u6711\u6712\u6713\u6716\u6718\u6719\u671A"+
-        "\u671C\u671E\u6720\u6721\u6722\u6723\u6724\u6725"+
-        "\u6727\u6729\u672E\u6730\u6732\u6733\u6736\u6737"+
-        "\u6738\u6739\u673B\u673C\u673E\u673F\u6741\u6744"+
-        "\u6745\u6747\u674A\u674B\u674D\u6752\u6754\u6755"+
-        "\u6757\u6758\u6759\u675A\u675B\u675D\u6762\u6763"+
-        "\u6764\u6766\u6767\u676B\u676C\u676E\u6771\u6774"+
-        "\u6776\uFFFD\u6778\u6779\u677A\u677B\u677D\u6780"+
-        "\u6782\u6783\u6785\u6786\u6788\u678A\u678C\u678D"+
-        "\u678E\u678F\u6791\u6792\u6793\u6794\u6796\u6799"+
-        "\u679B\u679F\u67A0\u67A1\u67A4\u67A6\u67A9\u67AC"+
-        "\u67AE\u67B1\u67B2\u67B4\u67B9\u67BA\u67BB\u67BC"+
-        "\u67BD\u67BE\u67BF\u67C0\u67C2\u67C5\u67C6\u67C7"+
-        "\u67C8\u67C9\u67CA\u67CB\u67CC\u67CD\u67CE\u67D5"+
-        "\u67D6\u67D7\u67DB\u67DF\u67E1\u67E3\u67E4\u67E6"+
-        "\u67E7\u67E8\u67EA\u67EB\u67ED\u67EE\u67F2\u67F5"+
-        "\u67F6\u67F7\u67F8\u67F9\u67FA\u67FB\u67FC\u67FE"+
-        "\u6801\u6802\u6803\u6804\u6806\u680D\u6810\u6812"+
-        "\u6814\u6815\u6818\u6819\u681A\u681B\u681C\u681E"+
-        "\u681F\u6820\u6822\u6823\u6824\u6825\u6826\u6827"+
-        "\u6828\u682B\u682C\u682D\u682E\u682F\u6830\u6831"+
-        "\u6834\u6835\u6836\u683A\u683B\u683F\u6847\u684B"+
-        "\u684D\u684F\u6852\u6856\u6857\u6858\u6859\u685A"+
-        "\u685B\u685C\u685D\u685E\u685F\u686A\u686C\u686D"+
-        "\u686E\u686F\u6870\u6871\u6872\u6873\u6875\u6878"+
-        "\u6879\u687A\u687B\u687C\u687D\u687E\u687F\u6880"+
-        "\u6882\u6884\u6887\u6888\u6889\u688A\u688B\u688C"+
-        "\u688D\u688E\u6890\u6891\u6892\u6894\u6895\u6896"+
-        "\u6898\u6899\u689A\u689B\u689C\u689D\u689E\u689F"+
-        "\u68A0\u68A1\u68A3\u68A4\u68A5\u68A9\u68AA\u68AB"+
-        "\u68AC\u68AE\u68B1\u68B2\u68B4\u68B6\u68B7\u68B8"+
-        "\uFFFD\u68B9\u68BA\u68BB\u68BC\u68BD\u68BE\u68BF"+
-        "\u68C1\u68C3\u68C4\u68C5\u68C6\u68C7\u68C8\u68CA"+
-        "\u68CC\u68CE\u68CF\u68D0\u68D1\u68D3\u68D4\u68D6"+
-        "\u68D7\u68D9\u68DB\u68DC\u68DD\u68DE\u68DF\u68E1"+
-        "\u68E2\u68E4\u68E5\u68E6\u68E7\u68E8\u68E9\u68EA"+
-        "\u68EB\u68EC\u68ED\u68EF\u68F2\u68F3\u68F4\u68F6"+
-        "\u68F7\u68F8\u68FB\u68FD\u68FE\u68FF\u6900\u6902"+
-        "\u6903\u6904\u6906\u6907\u6908\u6909\u690A\u690C"+
-        "\u690F\u6911\u6913\u6914\u6915\u6916\u6917\u6918"+
-        "\u6919\u691A\u691B\u691C\u691D\u691E\u6921\u6922"+
-        "\u6923\u6925\u6926\u6927\u6928\u6929\u692A\u692B"+
-        "\u692C\u692E\u692F\u6931\u6932\u6933\u6935\u6936"+
-        "\u6937\u6938\u693A\u693B\u693C\u693E\u6940\u6941"+
-        "\u6943\u6944\u6945\u6946\u6947\u6948\u6949\u694A"+
-        "\u694B\u694C\u694D\u694E\u694F\u6950\u6951\u6952"+
-        "\u6953\u6955\u6956\u6958\u6959\u695B\u695C\u695F"+
-        "\u6961\u6962\u6964\u6965\u6967\u6968\u6969\u696A"+
-        "\u696C\u696D\u696F\u6970\u6972\u6973\u6974\u6975"+
-        "\u6976\u697A\u697B\u697D\u697E\u697F\u6981\u6983"+
-        "\u6985\u698A\u698B\u698C\u698E\u698F\u6990\u6991"+
-        "\u6992\u6993\u6996\u6997\u6999\u699A\u699D\u699E"+
-        "\u699F\u69A0\u69A1\u69A2\u69A3\u69A4\u69A5\u69A6"+
-        "\u69A9\u69AA\u69AC\u69AE\u69AF\u69B0\u69B2\u69B3"+
-        "\u69B5\u69B6\u69B8\u69B9\u69BA\u69BC\u69BD\uFFFD"+
-        "\u69BE\u69BF\u69C0\u69C2\u69C3\u69C4\u69C5\u69C6"+
-        "\u69C7\u69C8\u69C9\u69CB\u69CD\u69CF\u69D1\u69D2"+
-        "\u69D3\u69D5\u69D6\u69D7\u69D8\u69D9\u69DA\u69DC"+
-        "\u69DD\u69DE\u69E1\u69E2\u69E3\u69E4\u69E5\u69E6"+
-        "\u69E7\u69E8\u69E9\u69EA\u69EB\u69EC\u69EE\u69EF"+
-        "\u69F0\u69F1\u69F3\u69F4\u69F5\u69F6\u69F7\u69F8"+
-        "\u69F9\u69FA\u69FB\u69FC\u69FE\u6A00\u6A01\u6A02"+
-        "\u6A03\u6A04\u6A05\u6A06\u6A07\u6A08\u6A09\u6A0B"+
-        "\u6A0C\u6A0D\u6A0E\u6A0F\u6A10\u6A11\u6A12\u6A13"+
-        "\u6A14\u6A15\u6A16\u6A19\u6A1A\u6A1B\u6A1C\u6A1D"+
-        "\u6A1E\u6A20\u6A22\u6A23\u6A24\u6A25\u6A26\u6A27"+
-        "\u6A29\u6A2B\u6A2C\u6A2D\u6A2E\u6A30\u6A32\u6A33"+
-        "\u6A34\u6A36\u6A37\u6A38\u6A39\u6A3A\u6A3B\u6A3C"+
-        "\u6A3F\u6A40\u6A41\u6A42\u6A43\u6A45\u6A46\u6A48"+
-        "\u6A49\u6A4A\u6A4B\u6A4C\u6A4D\u6A4E\u6A4F\u6A51"+
-        "\u6A52\u6A53\u6A54\u6A55\u6A56\u6A57\u6A5A\u6A5C"+
-        "\u6A5D\u6A5E\u6A5F\u6A60\u6A62\u6A63\u6A64\u6A66"+
-        "\u6A67\u6A68\u6A69\u6A6A\u6A6B\u6A6C\u6A6D\u6A6E"+
-        "\u6A6F\u6A70\u6A72\u6A73\u6A74\u6A75\u6A76\u6A77"+
-        "\u6A78\u6A7A\u6A7B\u6A7D\u6A7E\u6A7F\u6A81\u6A82"+
-        "\u6A83\u6A85\u6A86\u6A87\u6A88\u6A89\u6A8A\u6A8B"+
-        "\u6A8C\u6A8D\u6A8F\u6A92\u6A93\u6A94\u6A95\u6A96"+
-        "\u6A98\u6A99\u6A9A\u6A9B\u6A9C\u6A9D\u6A9E\u6A9F"+
-        "\u6AA1\u6AA2\u6AA3\u6AA4\u6AA5\u6AA6\uFFFD\u6AA7"+
-        "\u6AA8\u6AAA\u6AAD\u6AAE\u6AAF\u6AB0\u6AB1\u6AB2"+
-        "\u6AB3\u6AB4\u6AB5\u6AB6\u6AB7\u6AB8\u6AB9\u6ABA"+
-        "\u6ABB\u6ABC\u6ABD\u6ABE\u6ABF\u6AC0\u6AC1\u6AC2"+
-        "\u6AC3\u6AC4\u6AC5\u6AC6\u6AC7\u6AC8\u6AC9\u6ACA"+
-        "\u6ACB\u6ACC\u6ACD\u6ACE\u6ACF\u6AD0\u6AD1\u6AD2"+
-        "\u6AD3\u6AD4\u6AD5\u6AD6\u6AD7\u6AD8\u6AD9\u6ADA"+
-        "\u6ADB\u6ADC\u6ADD\u6ADE\u6ADF\u6AE0\u6AE1\u6AE2"+
-        "\u6AE3\u6AE4\u6AE5\u6AE6\u6AE7\u6AE8\u6AE9\u6AEA"+
-        "\u6AEB\u6AEC\u6AED\u6AEE\u6AEF\u6AF0\u6AF1\u6AF2"+
-        "\u6AF3\u6AF4\u6AF5\u6AF6\u6AF7\u6AF8\u6AF9\u6AFA"+
-        "\u6AFB\u6AFC\u6AFD\u6AFE\u6AFF\u6B00\u6B01\u6B02"+
-        "\u6B03\u6B04\u6B05\u6B06\u6B07\u6B08\u6B09\u6B0A"+
-        "\u6B0B\u6B0C\u6B0D\u6B0E\u6B0F\u6B10\u6B11\u6B12"+
-        "\u6B13\u6B14\u6B15\u6B16\u6B17\u6B18\u6B19\u6B1A"+
-        "\u6B1B\u6B1C\u6B1D\u6B1E\u6B1F\u6B25\u6B26\u6B28"+
-        "\u6B29\u6B2A\u6B2B\u6B2C\u6B2D\u6B2E\u6B2F\u6B30"+
-        "\u6B31\u6B33\u6B34\u6B35\u6B36\u6B38\u6B3B\u6B3C"+
-        "\u6B3D\u6B3F\u6B40\u6B41\u6B42\u6B44\u6B45\u6B48"+
-        "\u6B4A\u6B4B\u6B4D\u6B4E\u6B4F\u6B50\u6B51\u6B52"+
-        "\u6B53\u6B54\u6B55\u6B56\u6B57\u6B58\u6B5A\u6B5B"+
-        "\u6B5C\u6B5D\u6B5E\u6B5F\u6B60\u6B61\u6B68\u6B69"+
-        "\u6B6B\u6B6C\u6B6D\u6B6E\u6B6F\u6B70\u6B71\u6B72"+
-        "\u6B73\u6B74\u6B75\u6B76\u6B77\u6B78\u6B7A\u6B7D"+
-        "\u6B7E\u6B7F\u6B80\u6B85\u6B88\uFFFD\u6B8C\u6B8E"+
-        "\u6B8F\u6B90\u6B91\u6B94\u6B95\u6B97\u6B98\u6B99"+
-        "\u6B9C\u6B9D\u6B9E\u6B9F\u6BA0\u6BA2\u6BA3\u6BA4"+
-        "\u6BA5\u6BA6\u6BA7\u6BA8\u6BA9\u6BAB\u6BAC\u6BAD"+
-        "\u6BAE\u6BAF\u6BB0\u6BB1\u6BB2\u6BB6\u6BB8\u6BB9"+
-        "\u6BBA\u6BBB\u6BBC\u6BBD\u6BBE\u6BC0\u6BC3\u6BC4"+
-        "\u6BC6\u6BC7\u6BC8\u6BC9\u6BCA\u6BCC\u6BCE\u6BD0"+
-        "\u6BD1\u6BD8\u6BDA\u6BDC\u6BDD\u6BDE\u6BDF\u6BE0"+
-        "\u6BE2\u6BE3\u6BE4\u6BE5\u6BE6\u6BE7\u6BE8\u6BE9"+
-        "\u6BEC\u6BED\u6BEE\u6BF0\u6BF1\u6BF2\u6BF4\u6BF6"+
-        "\u6BF7\u6BF8\u6BFA\u6BFB\u6BFC\u6BFE\u6BFF\u6C00"+
-        "\u6C01\u6C02\u6C03\u6C04\u6C08\u6C09\u6C0A\u6C0B"+
-        "\u6C0C\u6C0E\u6C12\u6C17\u6C1C\u6C1D\u6C1E\u6C20"+
-        "\u6C23\u6C25\u6C2B\u6C2C\u6C2D\u6C31\u6C33\u6C36"+
-        "\u6C37\u6C39\u6C3A\u6C3B\u6C3C\u6C3E\u6C3F\u6C43"+
-        "\u6C44\u6C45\u6C48\u6C4B\u6C4C\u6C4D\u6C4E\u6C4F"+
-        "\u6C51\u6C52\u6C53\u6C56\u6C58\u6C59\u6C5A\u6C62"+
-        "\u6C63\u6C65\u6C66\u6C67\u6C6B\u6C6C\u6C6D\u6C6E"+
-        "\u6C6F\u6C71\u6C73\u6C75\u6C77\u6C78\u6C7A\u6C7B"+
-        "\u6C7C\u6C7F\u6C80\u6C84\u6C87\u6C8A\u6C8B\u6C8D"+
-        "\u6C8E\u6C91\u6C92\u6C95\u6C96\u6C97\u6C98\u6C9A"+
-        "\u6C9C\u6C9D\u6C9E\u6CA0\u6CA2\u6CA8\u6CAC\u6CAF"+
-        "\u6CB0\u6CB4\u6CB5\u6CB6\u6CB7\u6CBA\u6CC0\u6CC1"+
-        "\u6CC2\u6CC3\u6CC6\u6CC7\u6CC8\u6CCB\u6CCD\u6CCE"+
-        "\u6CCF\u6CD1\u6CD2\u6CD8\uFFFD\u6CD9\u6CDA\u6CDC"+
-        "\u6CDD\u6CDF\u6CE4\u6CE6\u6CE7\u6CE9\u6CEC\u6CED"+
-        "\u6CF2\u6CF4\u6CF9\u6CFF\u6D00\u6D02\u6D03\u6D05"+
-        "\u6D06\u6D08\u6D09\u6D0A\u6D0D\u6D0F\u6D10\u6D11"+
-        "\u6D13\u6D14\u6D15\u6D16\u6D18\u6D1C\u6D1D\u6D1F"+
-        "\u6D20\u6D21\u6D22\u6D23\u6D24\u6D26\u6D28\u6D29"+
-        "\u6D2C\u6D2D\u6D2F\u6D30\u6D34\u6D36\u6D37\u6D38"+
-        "\u6D3A\u6D3F\u6D40\u6D42\u6D44\u6D49\u6D4C\u6D50"+
-        "\u6D55\u6D56\u6D57\u6D58\u6D5B\u6D5D\u6D5F\u6D61"+
-        "\u6D62\u6D64\u6D65\u6D67\u6D68\u6D6B\u6D6C\u6D6D"+
-        "\u6D70\u6D71\u6D72\u6D73\u6D75\u6D76\u6D79\u6D7A"+
-        "\u6D7B\u6D7D\u6D7E\u6D7F\u6D80\u6D81\u6D83\u6D84"+
-        "\u6D86\u6D87\u6D8A\u6D8B\u6D8D\u6D8F\u6D90\u6D92"+
-        "\u6D96\u6D97\u6D98\u6D99\u6D9A\u6D9C\u6DA2\u6DA5"+
-        "\u6DAC\u6DAD\u6DB0\u6DB1\u6DB3\u6DB4\u6DB6\u6DB7"+
-        "\u6DB9\u6DBA\u6DBB\u6DBC\u6DBD\u6DBE\u6DC1\u6DC2"+
-        "\u6DC3\u6DC8\u6DC9\u6DCA\u6DCD\u6DCE\u6DCF\u6DD0"+
-        "\u6DD2\u6DD3\u6DD4\u6DD5\u6DD7\u6DDA\u6DDB\u6DDC"+
-        "\u6DDF\u6DE2\u6DE3\u6DE5\u6DE7\u6DE8\u6DE9\u6DEA"+
-        "\u6DED\u6DEF\u6DF0\u6DF2\u6DF4\u6DF5\u6DF6\u6DF8"+
-        "\u6DFA\u6DFD\u6DFE\u6DFF\u6E00\u6E01\u6E02\u6E03"+
-        "\u6E04\u6E06\u6E07\u6E08\u6E09\u6E0B\u6E0F\u6E12"+
-        "\u6E13\u6E15\u6E18\u6E19\u6E1B\u6E1C\u6E1E\u6E1F"+
-        "\u6E22\u6E26\u6E27\u6E28\u6E2A\u6E2C\u6E2E\u6E30"+
-        "\u6E31\u6E33\u6E35\uFFFD\u6E36\u6E37\u6E39\u6E3B"+
-        "\u6E3C\u6E3D\u6E3E\u6E3F\u6E40\u6E41\u6E42\u6E45"+
-        "\u6E46\u6E47\u6E48\u6E49\u6E4A\u6E4B\u6E4C\u6E4F"+
-        "\u6E50\u6E51\u6E52\u6E55\u6E57\u6E59\u6E5A\u6E5C"+
-        "\u6E5D\u6E5E\u6E60\u6E61\u6E62\u6E63\u6E64\u6E65"+
-        "\u6E66\u6E67\u6E68\u6E69\u6E6A\u6E6C\u6E6D\u6E6F"+
-        "\u6E70\u6E71\u6E72\u6E73\u6E74\u6E75\u6E76\u6E77"+
-        "\u6E78\u6E79\u6E7A\u6E7B\u6E7C\u6E7D\u6E80\u6E81"+
-        "\u6E82\u6E84\u6E87\u6E88\u6E8A\u6E8B\u6E8C\u6E8D"+
-        "\u6E8E\u6E91\u6E92\u6E93\u6E94\u6E95\u6E96\u6E97"+
-        "\u6E99\u6E9A\u6E9B\u6E9D\u6E9E\u6EA0\u6EA1\u6EA3"+
-        "\u6EA4\u6EA6\u6EA8\u6EA9\u6EAB\u6EAC\u6EAD\u6EAE"+
-        "\u6EB0\u6EB3\u6EB5\u6EB8\u6EB9\u6EBC\u6EBE\u6EBF"+
-        "\u6EC0\u6EC3\u6EC4\u6EC5\u6EC6\u6EC8\u6EC9\u6ECA"+
-        "\u6ECC\u6ECD\u6ECE\u6ED0\u6ED2\u6ED6\u6ED8\u6ED9"+
-        "\u6EDB\u6EDC\u6EDD\u6EE3\u6EE7\u6EEA\u6EEB\u6EEC"+
-        "\u6EED\u6EEE\u6EEF\u6EF0\u6EF1\u6EF2\u6EF3\u6EF5"+
-        "\u6EF6\u6EF7\u6EF8\u6EFA\u6EFB\u6EFC\u6EFD\u6EFE"+
-        "\u6EFF\u6F00\u6F01\u6F03\u6F04\u6F05\u6F07\u6F08"+
-        "\u6F0A\u6F0B\u6F0C\u6F0D\u6F0E\u6F10\u6F11\u6F12"+
-        "\u6F16\u6F17\u6F18\u6F19\u6F1A\u6F1B\u6F1C\u6F1D"+
-        "\u6F1E\u6F1F\u6F21\u6F22\u6F23\u6F25\u6F26\u6F27"+
-        "\u6F28\u6F2C\u6F2E\u6F30\u6F32\u6F34\u6F35\u6F37"+
-        "\u6F38\u6F39\u6F3A\u6F3B\u6F3C\u6F3D\u6F3F\u6F40"+
-        "\u6F41\u6F42\uFFFD\u6F43\u6F44\u6F45\u6F48\u6F49"+
-        "\u6F4A\u6F4C\u6F4E\u6F4F\u6F50\u6F51\u6F52\u6F53"+
-        "\u6F54\u6F55\u6F56\u6F57\u6F59\u6F5A\u6F5B\u6F5D"+
-        "\u6F5F\u6F60\u6F61\u6F63\u6F64\u6F65\u6F67\u6F68"+
-        "\u6F69\u6F6A\u6F6B\u6F6C\u6F6F\u6F70\u6F71\u6F73"+
-        "\u6F75\u6F76\u6F77\u6F79\u6F7B\u6F7D\u6F7E\u6F7F"+
-        "\u6F80\u6F81\u6F82\u6F83\u6F85\u6F86\u6F87\u6F8A"+
-        "\u6F8B\u6F8F\u6F90\u6F91\u6F92\u6F93\u6F94\u6F95"+
-        "\u6F96\u6F97\u6F98\u6F99\u6F9A\u6F9B\u6F9D\u6F9E"+
-        "\u6F9F\u6FA0\u6FA2\u6FA3\u6FA4\u6FA5\u6FA6\u6FA8"+
-        "\u6FA9\u6FAA\u6FAB\u6FAC\u6FAD\u6FAE\u6FAF\u6FB0"+
-        "\u6FB1\u6FB2\u6FB4\u6FB5\u6FB7\u6FB8\u6FBA\u6FBB"+
-        "\u6FBC\u6FBD\u6FBE\u6FBF\u6FC1\u6FC3\u6FC4\u6FC5"+
-        "\u6FC6\u6FC7\u6FC8\u6FCA\u6FCB\u6FCC\u6FCD\u6FCE"+
-        "\u6FCF\u6FD0\u6FD3\u6FD4\u6FD5\u6FD6\u6FD7\u6FD8"+
-        "\u6FD9\u6FDA\u6FDB\u6FDC\u6FDD\u6FDF\u6FE2\u6FE3"+
-        "\u6FE4\u6FE5\u6FE6\u6FE7\u6FE8\u6FE9\u6FEA\u6FEB"+
-        "\u6FEC\u6FED\u6FF0\u6FF1\u6FF2\u6FF3\u6FF4\u6FF5"+
-        "\u6FF6\u6FF7\u6FF8\u6FF9\u6FFA\u6FFB\u6FFC\u6FFD"+
-        "\u6FFE\u6FFF\u7000\u7001\u7002\u7003\u7004\u7005"+
-        "\u7006\u7007\u7008\u7009\u700A\u700B\u700C\u700D"+
-        "\u700E\u700F\u7010\u7012\u7013\u7014\u7015\u7016"+
-        "\u7017\u7018\u7019\u701C\u701D\u701E\u701F\u7020"+
-        "\u7021\u7022\u7024\u7025\u7026\u7027\u7028\u7029"+
-        "\u702A\uFFFD\u702B\u702C\u702D\u702E\u702F\u7030"+
-        "\u7031\u7032\u7033\u7034\u7036\u7037\u7038\u703A"+
-        "\u703B\u703C\u703D\u703E\u703F\u7040\u7041\u7042"+
-        "\u7043\u7044\u7045\u7046\u7047\u7048\u7049\u704A"+
-        "\u704B\u704D\u704E\u7050\u7051\u7052\u7053\u7054"+
-        "\u7055\u7056\u7057\u7058\u7059\u705A\u705B\u705C"+
-        "\u705D\u705F\u7060\u7061\u7062\u7063\u7064\u7065"+
-        "\u7066\u7067\u7068\u7069\u706A\u706E\u7071\u7072"+
-        "\u7073\u7074\u7077\u7079\u707A\u707B\u707D\u7081"+
-        "\u7082\u7083\u7084\u7086\u7087\u7088\u708B\u708C"+
-        "\u708D\u708F\u7090\u7091\u7093\u7097\u7098\u709A"+
-        "\u709B\u709E\u709F\u70A0\u70A1\u70A2\u70A3\u70A4"+
-        "\u70A5\u70A6\u70A7\u70A8\u70A9\u70AA\u70B0\u70B2"+
-        "\u70B4\u70B5\u70B6\u70BA\u70BE\u70BF\u70C4\u70C5"+
-        "\u70C6\u70C7\u70C9\u70CB\u70CC\u70CD\u70CE\u70CF"+
-        "\u70D0\u70D1\u70D2\u70D3\u70D4\u70D5\u70D6\u70D7"+
-        "\u70DA\u70DC\u70DD\u70DE\u70E0\u70E1\u70E2\u70E3"+
-        "\u70E5\u70EA\u70EE\u70F0\u70F1\u70F2\u70F3\u70F4"+
-        "\u70F5\u70F6\u70F8\u70FA\u70FB\u70FC\u70FE\u70FF"+
-        "\u7100\u7101\u7102\u7103\u7104\u7105\u7106\u7107"+
-        "\u7108\u710B\u710C\u710D\u710E\u710F\u7111\u7112"+
-        "\u7114\u7117\u711B\u711C\u711D\u711E\u711F\u7120"+
-        "\u7121\u7122\u7123\u7124\u7125\u7127\u7128\u7129"+
-        "\u712A\u712B\u712C\u712D\u712E\u7132\u7133\u7134"+
-        "\uFFFD\u7135\u7137\u7138\u7139\u713A\u713B\u713C"+
-        "\u713D\u713E\u713F\u7140\u7141\u7142\u7143\u7144"+
-        "\u7146\u7147\u7148\u7149\u714B\u714D\u714F\u7150"+
-        "\u7151\u7152\u7153\u7154\u7155\u7156\u7157\u7158"+
-        "\u7159\u715A\u715B\u715D\u715F\u7160\u7161\u7162"+
-        "\u7163\u7165\u7169\u716A\u716B\u716C\u716D\u716F"+
-        "\u7170\u7171\u7174\u7175\u7176\u7177\u7179\u717B"+
-        "\u717C\u717E\u717F\u7180\u7181\u7182\u7183\u7185"+
-        "\u7186\u7187\u7188\u7189\u718B\u718C\u718D\u718E"+
-        "\u7190\u7191\u7192\u7193\u7195\u7196\u7197\u719A"+
-        "\u719B\u719C\u719D\u719E\u71A1\u71A2\u71A3\u71A4"+
-        "\u71A5\u71A6\u71A7\u71A9\u71AA\u71AB\u71AD\u71AE"+
-        "\u71AF\u71B0\u71B1\u71B2\u71B4\u71B6\u71B7\u71B8"+
-        "\u71BA\u71BB\u71BC\u71BD\u71BE\u71BF\u71C0\u71C1"+
-        "\u71C2\u71C4\u71C5\u71C6\u71C7\u71C8\u71C9\u71CA"+
-        "\u71CB\u71CC\u71CD\u71CF\u71D0\u71D1\u71D2\u71D3";
-
-    private final static String innerIndex2=
-        "\u71D6\u71D7\u71D8\u71D9\u71DA\u71DB\u71DC\u71DD"+
-        "\u71DE\u71DF\u71E1\u71E2\u71E3\u71E4\u71E6\u71E8"+
-        "\u71E9\u71EA\u71EB\u71EC\u71ED\u71EF\u71F0\u71F1"+
-        "\u71F2\u71F3\u71F4\u71F5\u71F6\u71F7\u71F8\u71FA"+
-        "\u71FB\u71FC\u71FD\u71FE\u71FF\u7200\u7201\u7202"+
-        "\u7203\u7204\u7205\u7207\u7208\u7209\u720A\u720B"+
-        "\u720C\u720D\u720E\u720F\u7210\u7211\u7212\u7213"+
-        "\u7214\u7215\u7216\u7217\u7218\u7219\u721A\uFFFD"+
-        "\u721B\u721C\u721E\u721F\u7220\u7221\u7222\u7223"+
-        "\u7224\u7225\u7226\u7227\u7229\u722B\u722D\u722E"+
-        "\u722F\u7232\u7233\u7234\u723A\u723C\u723E\u7240"+
-        "\u7241\u7242\u7243\u7244\u7245\u7246\u7249\u724A"+
-        "\u724B\u724E\u724F\u7250\u7251\u7253\u7254\u7255"+
-        "\u7257\u7258\u725A\u725C\u725E\u7260\u7263\u7264"+
-        "\u7265\u7268\u726A\u726B\u726C\u726D\u7270\u7271"+
-        "\u7273\u7274\u7276\u7277\u7278\u727B\u727C\u727D"+
-        "\u7282\u7283\u7285\u7286\u7287\u7288\u7289\u728C"+
-        "\u728E\u7290\u7291\u7293\u7294\u7295\u7296\u7297"+
-        "\u7298\u7299\u729A\u729B\u729C\u729D\u729E\u72A0"+
-        "\u72A1\u72A2\u72A3\u72A4\u72A5\u72A6\u72A7\u72A8"+
-        "\u72A9\u72AA\u72AB\u72AE\u72B1\u72B2\u72B3\u72B5"+
-        "\u72BA\u72BB\u72BC\u72BD\u72BE\u72BF\u72C0\u72C5"+
-        "\u72C6\u72C7\u72C9\u72CA\u72CB\u72CC\u72CF\u72D1"+
-        "\u72D3\u72D4\u72D5\u72D6\u72D8\u72DA\u72DB\uE4C6"+
-        "\uE4C7\uE4C8\uE4C9\uE4CA\uE4CB\uE4CC\uE4CD\uE4CE"+
-        "\uE4CF\uE4D0\uE4D1\uE4D2\uE4D3\uE4D4\uE4D5\uE4D6"+
-        "\uE4D7\uE4D8\uE4D9\uE4DA\uE4DB\uE4DC\uE4DD\uE4DE"+
-        "\uE4DF\uE4E0\uE4E1\uE4E2\uE4E3\uE4E4\uE4E5\uE4E6"+
-        "\uE4E7\uE4E8\uE4E9\uE4EA\uE4EB\uE4EC\uE4ED\uE4EE"+
-        "\uE4EF\uE4F0\uE4F1\uE4F2\uE4F3\uE4F4\uE4F5\uE4F6"+
-        "\uE4F7\uE4F8\uE4F9\uE4FA\uE4FB\uE4FC\uE4FD\uE4FE"+
-        "\uE4FF\uE500\uE501\uE502\uE503\uE504\uFFFD\uE505"+
-        "\uE506\uE507\uE508\uE509\uE50A\uE50B\uE50C\uE50D"+
-        "\uE50E\uE50F\uE510\uE511\uE512\uE513\uE514\uE515"+
-        "\uE516\uE517\uE518\uE519\uE51A\uE51B\uE51C\uE51D"+
-        "\uE51E\uE51F\uE520\uE521\uE522\uE523\uE524\uE525"+
-        "\u3000\u3001\u3002\u00B7\u02C9\u02C7\u00A8\u3003"+
-        "\u3005\u2014\uFF5E\u2016\u2026\u2018\u2019\u201C"+
-        "\u201D\u3014\u3015\u3008\u3009\u300A\u300B\u300C"+
-        "\u300D\u300E\u300F\u3016\u3017\u3010\u3011\u00B1"+
-        "\u00D7\u00F7\u2236\u2227\u2228\u2211\u220F\u222A"+
-        "\u2229\u2208\u2237\u221A\u22A5\u2225\u2220\u2312"+
-        "\u2299\u222B\u222E\u2261\u224C\u2248\u223D\u221D"+
-        "\u2260\u226E\u226F\u2264\u2265\u221E\u2235\u2234"+
-        "\u2642\u2640\u00B0\u2032\u2033\u2103\uFF04\u00A4"+
-        "\uFFE0\uFFE1\u2030\u00A7\u2116\u2606\u2605\u25CB"+
-        "\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2"+
-        "\u203B\u2192\u2190\u2191\u2193\u3013\uE526\uE527"+
-        "\uE528\uE529\uE52A\uE52B\uE52C\uE52D\uE52E\uE52F"+
-        "\uE530\uE531\uE532\uE533\uE534\uE535\uE536\uE537"+
-        "\uE538\uE539\uE53A\uE53B\uE53C\uE53D\uE53E\uE53F"+
-        "\uE540\uE541\uE542\uE543\uE544\uE545\uE546\uE547"+
-        "\uE548\uE549\uE54A\uE54B\uE54C\uE54D\uE54E\uE54F"+
-        "\uE550\uE551\uE552\uE553\uE554\uE555\uE556\uE557"+
-        "\uE558\uE559\uE55A\uE55B\uE55C\uE55D\uE55E\uE55F"+
-        "\uE560\uE561\uE562\uE563\uE564\uFFFD\uE565\uE566"+
-        "\uE567\uE568\uE569\uE56A\uE56B\uE56C\uE56D\uE56E"+
-        "\uE56F\uE570\uE571\uE572\uE573\uE574\uE575\uE576"+
-        "\uE577\uE578\uE579\uE57A\uE57B\uE57C\uE57D\uE57E"+
-        "\uE57F\uE580\uE581\uE582\uE583\uE584\uE585\u2170"+
-        "\u2171\u2172\u2173\u2174\u2175\u2176\u2177\u2178"+
-        "\u2179\uE766\uE767\uE768\uE769\uE76A\uE76B\u2488"+
-        "\u2489\u248A\u248B\u248C\u248D\u248E\u248F\u2490"+
-        "\u2491\u2492\u2493\u2494\u2495\u2496\u2497\u2498"+
-        "\u2499\u249A\u249B\u2474\u2475\u2476\u2477\u2478"+
-        "\u2479\u247A\u247B\u247C\u247D\u247E\u247F\u2480"+
-        "\u2481\u2482\u2483\u2484\u2485\u2486\u2487\u2460"+
-        "\u2461\u2462\u2463\u2464\u2465\u2466\u2467\u2468"+
-        "\u2469\u20AC\uE76D\u3220\u3221\u3222\u3223\u3224"+
-        "\u3225\u3226\u3227\u3228\u3229\uE76E\uE76F\u2160"+
-        "\u2161\u2162\u2163\u2164\u2165\u2166\u2167\u2168"+
-        "\u2169\u216A\u216B\uE770\uE771\uE586\uE587\uE588"+
-        "\uE589\uE58A\uE58B\uE58C\uE58D\uE58E\uE58F\uE590"+
-        "\uE591\uE592\uE593\uE594\uE595\uE596\uE597\uE598"+
-        "\uE599\uE59A\uE59B\uE59C\uE59D\uE59E\uE59F\uE5A0"+
-        "\uE5A1\uE5A2\uE5A3\uE5A4\uE5A5\uE5A6\uE5A7\uE5A8"+
-        "\uE5A9\uE5AA\uE5AB\uE5AC\uE5AD\uE5AE\uE5AF\uE5B0"+
-        "\uE5B1\uE5B2\uE5B3\uE5B4\uE5B5\uE5B6\uE5B7\uE5B8"+
-        "\uE5B9\uE5BA\uE5BB\uE5BC\uE5BD\uE5BE\uE5BF\uE5C0"+
-        "\uE5C1\uE5C2\uE5C3\uE5C4\uFFFD\uE5C5\uE5C6\uE5C7"+
-        "\uE5C8\uE5C9\uE5CA\uE5CB\uE5CC\uE5CD\uE5CE\uE5CF"+
-        "\uE5D0\uE5D1\uE5D2\uE5D3\uE5D4\uE5D5\uE5D6\uE5D7"+
-        "\uE5D8\uE5D9\uE5DA\uE5DB\uE5DC\uE5DD\uE5DE\uE5DF"+
-        "\uE5E0\uE5E1\uE5E2\uE5E3\uE5E4\uE5E5\uFF01\uFF02"+
-        "\uFF03\uFFE5\uFF05\uFF06\uFF07\uFF08\uFF09\uFF0A"+
-        "\uFF0B\uFF0C\uFF0D\uFF0E\uFF0F\uFF10\uFF11\uFF12"+
-        "\uFF13\uFF14\uFF15\uFF16\uFF17\uFF18\uFF19\uFF1A"+
-        "\uFF1B\uFF1C\uFF1D\uFF1E\uFF1F\uFF20\uFF21\uFF22"+
-        "\uFF23\uFF24\uFF25\uFF26\uFF27\uFF28\uFF29\uFF2A"+
-        "\uFF2B\uFF2C\uFF2D\uFF2E\uFF2F\uFF30\uFF31\uFF32"+
-        "\uFF33\uFF34\uFF35\uFF36\uFF37\uFF38\uFF39\uFF3A"+
-        "\uFF3B\uFF3C\uFF3D\uFF3E\uFF3F\uFF40\uFF41\uFF42"+
-        "\uFF43\uFF44\uFF45\uFF46\uFF47\uFF48\uFF49\uFF4A"+
-        "\uFF4B\uFF4C\uFF4D\uFF4E\uFF4F\uFF50\uFF51\uFF52"+
-        "\uFF53\uFF54\uFF55\uFF56\uFF57\uFF58\uFF59\uFF5A"+
-        "\uFF5B\uFF5C\uFF5D\uFFE3\uE5E6\uE5E7\uE5E8\uE5E9"+
-        "\uE5EA\uE5EB\uE5EC\uE5ED\uE5EE\uE5EF\uE5F0\uE5F1"+
-        "\uE5F2\uE5F3\uE5F4\uE5F5\uE5F6\uE5F7\uE5F8\uE5F9"+
-        "\uE5FA\uE5FB\uE5FC\uE5FD\uE5FE\uE5FF\uE600\uE601"+
-        "\uE602\uE603\uE604\uE605\uE606\uE607\uE608\uE609"+
-        "\uE60A\uE60B\uE60C\uE60D\uE60E\uE60F\uE610\uE611"+
-        "\uE612\uE613\uE614\uE615\uE616\uE617\uE618\uE619"+
-        "\uE61A\uE61B\uE61C\uE61D\uE61E\uE61F\uE620\uE621"+
-        "\uE622\uE623\uE624\uFFFD\uE625\uE626\uE627\uE628"+
-        "\uE629\uE62A\uE62B\uE62C\uE62D\uE62E\uE62F\uE630"+
-        "\uE631\uE632\uE633\uE634\uE635\uE636\uE637\uE638"+
-        "\uE639\uE63A\uE63B\uE63C\uE63D\uE63E\uE63F\uE640"+
-        "\uE641\uE642\uE643\uE644\uE645\u3041\u3042\u3043"+
-        "\u3044\u3045\u3046\u3047\u3048\u3049\u304A\u304B"+
-        "\u304C\u304D\u304E\u304F\u3050\u3051\u3052\u3053"+
-        "\u3054\u3055\u3056\u3057\u3058\u3059\u305A\u305B"+
-        "\u305C\u305D\u305E\u305F\u3060\u3061\u3062\u3063"+
-        "\u3064\u3065\u3066\u3067\u3068\u3069\u306A\u306B"+
-        "\u306C\u306D\u306E\u306F\u3070\u3071\u3072\u3073"+
-        "\u3074\u3075\u3076\u3077\u3078\u3079\u307A\u307B"+
-        "\u307C\u307D\u307E\u307F\u3080\u3081\u3082\u3083"+
-        "\u3084\u3085\u3086\u3087\u3088\u3089\u308A\u308B"+
-        "\u308C\u308D\u308E\u308F\u3090\u3091\u3092\u3093"+
-        "\uE772\uE773\uE774\uE775\uE776\uE777\uE778\uE779"+
-        "\uE77A\uE77B\uE77C\uE646\uE647\uE648\uE649\uE64A"+
-        "\uE64B\uE64C\uE64D\uE64E\uE64F\uE650\uE651\uE652"+
-        "\uE653\uE654\uE655\uE656\uE657\uE658\uE659\uE65A"+
-        "\uE65B\uE65C\uE65D\uE65E\uE65F\uE660\uE661\uE662"+
-        "\uE663\uE664\uE665\uE666\uE667\uE668\uE669\uE66A"+
-        "\uE66B\uE66C\uE66D\uE66E\uE66F\uE670\uE671\uE672"+
-        "\uE673\uE674\uE675\uE676\uE677\uE678\uE679\uE67A"+
-        "\uE67B\uE67C\uE67D\uE67E\uE67F\uE680\uE681\uE682"+
-        "\uE683\uE684\uFFFD\uE685\uE686\uE687\uE688\uE689"+
-        "\uE68A\uE68B\uE68C\uE68D\uE68E\uE68F\uE690\uE691"+
-        "\uE692\uE693\uE694\uE695\uE696\uE697\uE698\uE699"+
-        "\uE69A\uE69B\uE69C\uE69D\uE69E\uE69F\uE6A0\uE6A1"+
-        "\uE6A2\uE6A3\uE6A4\uE6A5\u30A1\u30A2\u30A3\u30A4"+
-        "\u30A5\u30A6\u30A7\u30A8\u30A9\u30AA\u30AB\u30AC"+
-        "\u30AD\u30AE\u30AF\u30B0\u30B1\u30B2\u30B3\u30B4"+
-        "\u30B5\u30B6\u30B7\u30B8\u30B9\u30BA\u30BB\u30BC"+
-        "\u30BD\u30BE\u30BF\u30C0\u30C1\u30C2\u30C3\u30C4"+
-        "\u30C5\u30C6\u30C7\u30C8\u30C9\u30CA\u30CB\u30CC"+
-        "\u30CD\u30CE\u30CF\u30D0\u30D1\u30D2\u30D3\u30D4"+
-        "\u30D5\u30D6\u30D7\u30D8\u30D9\u30DA\u30DB\u30DC"+
-        "\u30DD\u30DE\u30DF\u30E0\u30E1\u30E2\u30E3\u30E4"+
-        "\u30E5\u30E6\u30E7\u30E8\u30E9\u30EA\u30EB\u30EC"+
-        "\u30ED\u30EE\u30EF\u30F0\u30F1\u30F2\u30F3\u30F4"+
-        "\u30F5\u30F6\uE77D\uE77E\uE77F\uE780\uE781\uE782"+
-        "\uE783\uE784\uE6A6\uE6A7\uE6A8\uE6A9\uE6AA\uE6AB"+
-        "\uE6AC\uE6AD\uE6AE\uE6AF\uE6B0\uE6B1\uE6B2\uE6B3"+
-        "\uE6B4\uE6B5\uE6B6\uE6B7\uE6B8\uE6B9\uE6BA\uE6BB"+
-        "\uE6BC\uE6BD\uE6BE\uE6BF\uE6C0\uE6C1\uE6C2\uE6C3"+
-        "\uE6C4\uE6C5\uE6C6\uE6C7\uE6C8\uE6C9\uE6CA\uE6CB"+
-        "\uE6CC\uE6CD\uE6CE\uE6CF\uE6D0\uE6D1\uE6D2\uE6D3"+
-        "\uE6D4\uE6D5\uE6D6\uE6D7\uE6D8\uE6D9\uE6DA\uE6DB"+
-        "\uE6DC\uE6DD\uE6DE\uE6DF\uE6E0\uE6E1\uE6E2\uE6E3"+
-        "\uE6E4\uFFFD\uE6E5\uE6E6\uE6E7\uE6E8\uE6E9\uE6EA"+
-        "\uE6EB\uE6EC\uE6ED\uE6EE\uE6EF\uE6F0\uE6F1\uE6F2"+
-        "\uE6F3\uE6F4\uE6F5\uE6F6\uE6F7\uE6F8\uE6F9\uE6FA"+
-        "\uE6FB\uE6FC\uE6FD\uE6FE\uE6FF\uE700\uE701\uE702"+
-        "\uE703\uE704\uE705\u0391\u0392\u0393\u0394\u0395"+
-        "\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D"+
-        "\u039E\u039F\u03A0\u03A1\u03A3\u03A4\u03A5\u03A6"+
-        "\u03A7\u03A8\u03A9\uE785\uE786\uE787\uE788\uE789"+
-        "\uE78A\uE78B\uE78C\u03B1\u03B2\u03B3\u03B4\u03B5"+
-        "\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD"+
-        "\u03BE\u03BF\u03C0\u03C1\u03C3\u03C4\u03C5\u03C6"+
-        "\u03C7\u03C8\u03C9\uE78D\uE78E\uE78F\uE790\uE791"+
-        "\uE792\uE793\uFE35\uFE36\uFE39\uFE3A\uFE3F\uFE40"+
-        "\uFE3D\uFE3E\uFE41\uFE42\uFE43\uFE44\uE794\uE795"+
-        "\uFE3B\uFE3C\uFE37\uFE38\uFE31\uE796\uFE33\uFE34"+
-        "\uE797\uE798\uE799\uE79A\uE79B\uE79C\uE79D\uE79E"+
-        "\uE79F\uE706\uE707\uE708\uE709\uE70A\uE70B\uE70C"+
-        "\uE70D\uE70E\uE70F\uE710\uE711\uE712\uE713\uE714"+
-        "\uE715\uE716\uE717\uE718\uE719\uE71A\uE71B\uE71C"+
-        "\uE71D\uE71E\uE71F\uE720\uE721\uE722\uE723\uE724"+
-        "\uE725\uE726\uE727\uE728\uE729\uE72A\uE72B\uE72C"+
-        "\uE72D\uE72E\uE72F\uE730\uE731\uE732\uE733\uE734"+
-        "\uE735\uE736\uE737\uE738\uE739\uE73A\uE73B\uE73C"+
-        "\uE73D\uE73E\uE73F\uE740\uE741\uE742\uE743\uE744"+
-        "\uFFFD\uE745\uE746\uE747\uE748\uE749\uE74A\uE74B"+
-        "\uE74C\uE74D\uE74E\uE74F\uE750\uE751\uE752\uE753"+
-        "\uE754\uE755\uE756\uE757\uE758\uE759\uE75A\uE75B"+
-        "\uE75C\uE75D\uE75E\uE75F\uE760\uE761\uE762\uE763"+
-        "\uE764\uE765\u0410\u0411\u0412\u0413\u0414\u0415"+
-        "\u0401\u0416\u0417\u0418\u0419\u041A\u041B\u041C"+
-        "\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424"+
-        "\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C"+
-        "\u042D\u042E\u042F\uE7A0\uE7A1\uE7A2\uE7A3\uE7A4"+
-        "\uE7A5\uE7A6\uE7A7\uE7A8\uE7A9\uE7AA\uE7AB\uE7AC"+
-        "\uE7AD\uE7AE\u0430\u0431\u0432\u0433\u0434\u0435"+
-        "\u0451\u0436\u0437\u0438\u0439\u043A\u043B\u043C"+
-        "\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444"+
-        "\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C"+
-        "\u044D\u044E\u044F\uE7AF\uE7B0\uE7B1\uE7B2\uE7B3"+
-        "\uE7B4\uE7B5\uE7B6\uE7B7\uE7B8\uE7B9\uE7BA\uE7BB"+
-        "\u02CA\u02CB\u02D9\u2013\u2015\u2025\u2035\u2105"+
-        "\u2109\u2196\u2197\u2198\u2199\u2215\u221F\u2223"+
-        "\u2252\u2266\u2267\u22BF\u2550\u2551\u2552\u2553"+
-        "\u2554\u2555\u2556\u2557\u2558\u2559\u255A\u255B"+
-        "\u255C\u255D\u255E\u255F\u2560\u2561\u2562\u2563"+
-        "\u2564\u2565\u2566\u2567\u2568\u2569\u256A\u256B"+
-        "\u256C\u256D\u256E\u256F\u2570\u2571\u2572\u2573"+
-        "\u2581\u2582\u2583\u2584\u2585\u2586\u2587\uFFFD"+
-        "\u2588\u2589\u258A\u258B\u258C\u258D\u258E\u258F"+
-        "\u2593\u2594\u2595\u25BC\u25BD\u25E2\u25E3\u25E4"+
-        "\u25E5\u2609\u2295\u3012\u301D\u301E\uE7BC\uE7BD"+
-        "\uE7BE\uE7BF\uE7C0\uE7C1\uE7C2\uE7C3\uE7C4\uE7C5"+
-        "\uE7C6\u0101\u00E1\u01CE\u00E0\u0113\u00E9\u011B"+
-        "\u00E8\u012B\u00ED\u01D0\u00EC\u014D\u00F3\u01D2"+
-        "\u00F2\u016B\u00FA\u01D4\u00F9\u01D6\u01D8\u01DA"+
-        "\u01DC\u00FC\u00EA\u0251\uE7C7\u0144\u0148\u01F9"+
-        "\u0261\uE7C9\uE7CA\uE7CB\uE7CC\u3105\u3106\u3107"+
-        "\u3108\u3109\u310A\u310B\u310C\u310D\u310E\u310F"+
-        "\u3110\u3111\u3112\u3113\u3114\u3115\u3116\u3117"+
-        "\u3118\u3119\u311A\u311B\u311C\u311D\u311E\u311F"+
-        "\u3120\u3121\u3122\u3123\u3124\u3125\u3126\u3127"+
-        "\u3128\u3129\uE7CD\uE7CE\uE7CF\uE7D0\uE7D1\uE7D2"+
-        "\uE7D3\uE7D4\uE7D5\uE7D6\uE7D7\uE7D8\uE7D9\uE7DA"+
-        "\uE7DB\uE7DC\uE7DD\uE7DE\uE7DF\uE7E0\uE7E1\u3021"+
-        "\u3022\u3023\u3024\u3025\u3026\u3027\u3028\u3029"+
-        "\u32A3\u338E\u338F\u339C\u339D\u339E\u33A1\u33C4"+
-        "\u33CE\u33D1\u33D2\u33D5\uFE30\uFFE2\uFFE4\uE7E2"+
-        "\u2121\u3231\uE7E3\u2010\uE7E4\uE7E5\uE7E6\u30FC"+
-        "\u309B\u309C\u30FD\u30FE\u3006\u309D\u309E\uFE49"+
-        "\uFE4A\uFE4B\uFE4C\uFE4D\uFE4E\uFE4F\uFE50\uFE51"+
-        "\uFE52\uFE54\uFE55\uFE56\uFE57\uFE59\uFE5A\uFE5B"+
-        "\uFE5C\uFE5D\uFE5E\uFE5F\uFE60\uFE61\uFFFD\uFE62"+
-        "\uFE63\uFE64\uFE65\uFE66\uFE68\uFE69\uFE6A\uFE6B"+
-        "\u303E\u2FF0\u2FF1\u2FF2\u2FF3\u2FF4\u2FF5\u2FF6"+
-        "\u2FF7\u2FF8\u2FF9\u2FFA\u2FFB\u3007\uE7F4\uE7F5"+
-        "\uE7F6\uE7F7\uE7F8\uE7F9\uE7FA\uE7FB\uE7FC\uE7FD"+
-        "\uE7FE\uE7FF\uE800\u2500\u2501\u2502\u2503\u2504"+
-        "\u2505\u2506\u2507\u2508\u2509\u250A\u250B\u250C"+
-        "\u250D\u250E\u250F\u2510\u2511\u2512\u2513\u2514"+
-        "\u2515\u2516\u2517\u2518\u2519\u251A\u251B\u251C"+
-        "\u251D\u251E\u251F\u2520\u2521\u2522\u2523\u2524"+
-        "\u2525\u2526\u2527\u2528\u2529\u252A\u252B\u252C"+
-        "\u252D\u252E\u252F\u2530\u2531\u2532\u2533\u2534"+
-        "\u2535\u2536\u2537\u2538\u2539\u253A\u253B\u253C"+
-        "\u253D\u253E\u253F\u2540\u2541\u2542\u2543\u2544"+
-        "\u2545\u2546\u2547\u2548\u2549\u254A\u254B\uE801"+
-        "\uE802\uE803\uE804\uE805\uE806\uE807\uE808\uE809"+
-        "\uE80A\uE80B\uE80C\uE80D\uE80E\uE80F\u72DC\u72DD"+
-        "\u72DF\u72E2\u72E3\u72E4\u72E5\u72E6\u72E7\u72EA"+
-        "\u72EB\u72F5\u72F6\u72F9\u72FD\u72FE\u72FF\u7300"+
-        "\u7302\u7304\u7305\u7306\u7307\u7308\u7309\u730B"+
-        "\u730C\u730D\u730F\u7310\u7311\u7312\u7314\u7318"+
-        "\u7319\u731A\u731F\u7320\u7323\u7324\u7326\u7327"+
-        "\u7328\u732D\u732F\u7330\u7332\u7333\u7335\u7336"+
-        "\u733A\u733B\u733C\u733D\u7340\u7341\u7342\u7343"+
-        "\u7344\u7345\u7346\u7347\u7348\uFFFD\u7349\u734A"+
-        "\u734B\u734C\u734E\u734F\u7351\u7353\u7354\u7355"+
-        "\u7356\u7358\u7359\u735A\u735B\u735C\u735D\u735E"+
-        "\u735F\u7361\u7362\u7363\u7364\u7365\u7366\u7367"+
-        "\u7368\u7369\u736A\u736B\u736E\u7370\u7371\uE000"+
-        "\uE001\uE002\uE003\uE004\uE005\uE006\uE007\uE008"+
-        "\uE009\uE00A\uE00B\uE00C\uE00D\uE00E\uE00F\uE010"+
-        "\uE011\uE012\uE013\uE014\uE015\uE016\uE017\uE018"+
-        "\uE019\uE01A\uE01B\uE01C\uE01D\uE01E\uE01F\uE020"+
-        "\uE021\uE022\uE023\uE024\uE025\uE026\uE027\uE028"+
-        "\uE029\uE02A\uE02B\uE02C\uE02D\uE02E\uE02F\uE030"+
-        "\uE031\uE032\uE033\uE034\uE035\uE036\uE037\uE038"+
-        "\uE039\uE03A\uE03B\uE03C\uE03D\uE03E\uE03F\uE040"+
-        "\uE041\uE042\uE043\uE044\uE045\uE046\uE047\uE048"+
-        "\uE049\uE04A\uE04B\uE04C\uE04D\uE04E\uE04F\uE050"+
-        "\uE051\uE052\uE053\uE054\uE055\uE056\uE057\uE058"+
-        "\uE059\uE05A\uE05B\uE05C\uE05D\u7372\u7373\u7374"+
-        "\u7375\u7376\u7377\u7378\u7379\u737A\u737B\u737C"+
-        "\u737D\u737F\u7380\u7381\u7382\u7383\u7385\u7386"+
-        "\u7388\u738A\u738C\u738D\u738F\u7390\u7392\u7393"+
-        "\u7394\u7395\u7397\u7398\u7399\u739A\u739C\u739D"+
-        "\u739E\u73A0\u73A1\u73A3\u73A4\u73A5\u73A6\u73A7"+
-        "\u73A8\u73AA\u73AC\u73AD\u73B1\u73B4\u73B5\u73B6"+
-        "\u73B8\u73B9\u73BC\u73BD\u73BE\u73BF\u73C1\u73C3"+
-        "\u73C4\u73C5\u73C6\u73C7\uFFFD\u73CB\u73CC\u73CE"+
-        "\u73D2\u73D3\u73D4\u73D5\u73D6\u73D7\u73D8\u73DA"+
-        "\u73DB\u73DC\u73DD\u73DF\u73E1\u73E2\u73E3\u73E4"+
-        "\u73E6\u73E8\u73EA\u73EB\u73EC\u73EE\u73EF\u73F0"+
-        "\u73F1\u73F3\u73F4\u73F5\u73F6\u73F7\uE05E\uE05F"+
-        "\uE060\uE061\uE062\uE063\uE064\uE065\uE066\uE067"+
-        "\uE068\uE069\uE06A\uE06B\uE06C\uE06D\uE06E\uE06F"+
-        "\uE070\uE071\uE072\uE073\uE074\uE075\uE076\uE077"+
-        "\uE078\uE079\uE07A\uE07B\uE07C\uE07D\uE07E\uE07F"+
-        "\uE080\uE081\uE082\uE083\uE084\uE085\uE086\uE087"+
-        "\uE088\uE089\uE08A\uE08B\uE08C\uE08D\uE08E\uE08F"+
-        "\uE090\uE091\uE092\uE093\uE094\uE095\uE096\uE097"+
-        "\uE098\uE099\uE09A\uE09B\uE09C\uE09D\uE09E\uE09F"+
-        "\uE0A0\uE0A1\uE0A2\uE0A3\uE0A4\uE0A5\uE0A6\uE0A7"+
-        "\uE0A8\uE0A9\uE0AA\uE0AB\uE0AC\uE0AD\uE0AE\uE0AF"+
-        "\uE0B0\uE0B1\uE0B2\uE0B3\uE0B4\uE0B5\uE0B6\uE0B7"+
-        "\uE0B8\uE0B9\uE0BA\uE0BB\u73F8\u73F9\u73FA\u73FB"+
-        "\u73FC\u73FD\u73FE\u73FF\u7400\u7401\u7402\u7404"+
-        "\u7407\u7408\u740B\u740C\u740D\u740E\u7411\u7412"+
-        "\u7413\u7414\u7415\u7416\u7417\u7418\u7419\u741C"+
-        "\u741D\u741E\u741F\u7420\u7421\u7423\u7424\u7427"+
-        "\u7429\u742B\u742D\u742F\u7431\u7432\u7437\u7438"+
-        "\u7439\u743A\u743B\u743D\u743E\u743F\u7440\u7442"+
-        "\u7443\u7444\u7445\u7446\u7447\u7448\u7449\u744A"+
-        "\u744B\u744C\u744D\uFFFD\u744E\u744F\u7450\u7451"+
-        "\u7452\u7453\u7454\u7456\u7458\u745D\u7460\u7461"+
-        "\u7462\u7463\u7464\u7465\u7466\u7467\u7468\u7469"+
-        "\u746A\u746B\u746C\u746E\u746F\u7471\u7472\u7473"+
-        "\u7474\u7475\u7478\u7479\u747A\uE0BC\uE0BD\uE0BE"+
-        "\uE0BF\uE0C0\uE0C1\uE0C2\uE0C3\uE0C4\uE0C5\uE0C6"+
-        "\uE0C7\uE0C8\uE0C9\uE0CA\uE0CB\uE0CC\uE0CD\uE0CE"+
-        "\uE0CF\uE0D0\uE0D1\uE0D2\uE0D3\uE0D4\uE0D5\uE0D6"+
-        "\uE0D7\uE0D8\uE0D9\uE0DA\uE0DB\uE0DC\uE0DD\uE0DE"+
-        "\uE0DF\uE0E0\uE0E1\uE0E2\uE0E3\uE0E4\uE0E5\uE0E6"+
-        "\uE0E7\uE0E8\uE0E9\uE0EA\uE0EB\uE0EC\uE0ED\uE0EE"+
-        "\uE0EF\uE0F0\uE0F1\uE0F2\uE0F3\uE0F4\uE0F5\uE0F6"+
-        "\uE0F7\uE0F8\uE0F9\uE0FA\uE0FB\uE0FC\uE0FD\uE0FE"+
-        "\uE0FF\uE100\uE101\uE102\uE103\uE104\uE105\uE106"+
-        "\uE107\uE108\uE109\uE10A\uE10B\uE10C\uE10D\uE10E"+
-        "\uE10F\uE110\uE111\uE112\uE113\uE114\uE115\uE116"+
-        "\uE117\uE118\uE119\u747B\u747C\u747D\u747F\u7482"+
-        "\u7484\u7485\u7486\u7488\u7489\u748A\u748C\u748D"+
-        "\u748F\u7491\u7492\u7493\u7494\u7495\u7496\u7497"+
-        "\u7498\u7499\u749A\u749B\u749D\u749F\u74A0\u74A1"+
-        "\u74A2\u74A3\u74A4\u74A5\u74A6\u74AA\u74AB\u74AC"+
-        "\u74AD\u74AE\u74AF\u74B0\u74B1\u74B2\u74B3\u74B4"+
-        "\u74B5\u74B6\u74B7\u74B8\u74B9\u74BB\u74BC\u74BD"+
-        "\u74BE\u74BF\u74C0\u74C1\u74C2\u74C3\u74C4\u74C5"+
-        "\u74C6\u74C7\uFFFD\u74C8\u74C9\u74CA\u74CB\u74CC"+
-        "\u74CD\u74CE\u74CF\u74D0\u74D1\u74D3\u74D4\u74D5"+
-        "\u74D6\u74D7\u74D8\u74D9\u74DA\u74DB\u74DD\u74DF"+
-        "\u74E1\u74E5\u74E7\u74E8\u74E9\u74EA\u74EB\u74EC"+
-        "\u74ED\u74F0\u74F1\u74F2\uE11A\uE11B\uE11C\uE11D"+
-        "\uE11E\uE11F\uE120\uE121\uE122\uE123\uE124\uE125"+
-        "\uE126\uE127\uE128\uE129\uE12A\uE12B\uE12C\uE12D"+
-        "\uE12E\uE12F\uE130\uE131\uE132\uE133\uE134\uE135"+
-        "\uE136\uE137\uE138\uE139\uE13A\uE13B\uE13C\uE13D"+
-        "\uE13E\uE13F\uE140\uE141\uE142\uE143\uE144\uE145"+
-        "\uE146\uE147\uE148\uE149\uE14A\uE14B\uE14C\uE14D"+
-        "\uE14E\uE14F\uE150\uE151\uE152\uE153\uE154\uE155"+
-        "\uE156\uE157\uE158\uE159\uE15A\uE15B\uE15C\uE15D"+
-        "\uE15E\uE15F\uE160\uE161\uE162\uE163\uE164\uE165"+
-        "\uE166\uE167\uE168\uE169\uE16A\uE16B\uE16C\uE16D"+
-        "\uE16E\uE16F\uE170\uE171\uE172\uE173\uE174\uE175"+
-        "\uE176\uE177\u74F3\u74F5\u74F8\u74F9\u74FA\u74FB"+
-        "\u74FC\u74FD\u74FE\u7500\u7501\u7502\u7503\u7505"+
-        "\u7506\u7507\u7508\u7509\u750A\u750B\u750C\u750E"+
-        "\u7510\u7512\u7514\u7515\u7516\u7517\u751B\u751D"+
-        "\u751E\u7520\u7521\u7522\u7523\u7524\u7526\u7527"+
-        "\u752A\u752E\u7534\u7536\u7539\u753C\u753D\u753F"+
-        "\u7541\u7542\u7543\u7544\u7546\u7547\u7549\u754A"+
-        "\u754D\u7550\u7551\u7552\u7553\u7555\u7556\u7557"+
-        "\u7558\uFFFD\u755D\u755E\u755F\u7560\u7561\u7562"+
-        "\u7563\u7564\u7567\u7568\u7569\u756B\u756C\u756D"+
-        "\u756E\u756F\u7570\u7571\u7573\u7575\u7576\u7577"+
-        "\u757A\u757B\u757C\u757D\u757E\u7580\u7581\u7582"+
-        "\u7584\u7585\u7587\uE178\uE179\uE17A\uE17B\uE17C"+
-        "\uE17D\uE17E\uE17F\uE180\uE181\uE182\uE183\uE184"+
-        "\uE185\uE186\uE187\uE188\uE189\uE18A\uE18B\uE18C"+
-        "\uE18D\uE18E\uE18F\uE190\uE191\uE192\uE193\uE194"+
-        "\uE195\uE196\uE197\uE198\uE199\uE19A\uE19B\uE19C"+
-        "\uE19D\uE19E\uE19F\uE1A0\uE1A1\uE1A2\uE1A3\uE1A4"+
-        "\uE1A5\uE1A6\uE1A7\uE1A8\uE1A9\uE1AA\uE1AB\uE1AC"+
-        "\uE1AD\uE1AE\uE1AF\uE1B0\uE1B1\uE1B2\uE1B3\uE1B4"+
-        "\uE1B5\uE1B6\uE1B7\uE1B8\uE1B9\uE1BA\uE1BB\uE1BC"+
-        "\uE1BD\uE1BE\uE1BF\uE1C0\uE1C1\uE1C2\uE1C3\uE1C4"+
-        "\uE1C5\uE1C6\uE1C7\uE1C8\uE1C9\uE1CA\uE1CB\uE1CC"+
-        "\uE1CD\uE1CE\uE1CF\uE1D0\uE1D1\uE1D2\uE1D3\uE1D4"+
-        "\uE1D5\u7588\u7589\u758A\u758C\u758D\u758E\u7590"+
-        "\u7593\u7595\u7598\u759B\u759C\u759E\u75A2\u75A6"+
-        "\u75A7\u75A8\u75A9\u75AA\u75AD\u75B6\u75B7\u75BA"+
-        "\u75BB\u75BF\u75C0\u75C1\u75C6\u75CB\u75CC\u75CE"+
-        "\u75CF\u75D0\u75D1\u75D3\u75D7\u75D9\u75DA\u75DC"+
-        "\u75DD\u75DF\u75E0\u75E1\u75E5\u75E9\u75EC\u75ED"+
-        "\u75EE\u75EF\u75F2\u75F3\u75F5\u75F6\u75F7\u75F8"+
-        "\u75FA\u75FB\u75FD\u75FE\u7602\u7604\u7606\u7607"+
-        "\uFFFD\u7608\u7609\u760B\u760D\u760E\u760F\u7611"+
-        "\u7612\u7613\u7614\u7616\u761A\u761C\u761D\u761E"+
-        "\u7621\u7623\u7627\u7628\u762C\u762E\u762F\u7631"+
-        "\u7632\u7636\u7637\u7639\u763A\u763B\u763D\u7641"+
-        "\u7642\u7644\uE1D6\uE1D7\uE1D8\uE1D9\uE1DA\uE1DB"+
-        "\uE1DC\uE1DD\uE1DE\uE1DF\uE1E0\uE1E1\uE1E2\uE1E3"+
-        "\uE1E4\uE1E5\uE1E6\uE1E7\uE1E8\uE1E9\uE1EA\uE1EB"+
-        "\uE1EC\uE1ED\uE1EE\uE1EF\uE1F0\uE1F1\uE1F2\uE1F3"+
-        "\uE1F4\uE1F5\uE1F6\uE1F7\uE1F8\uE1F9\uE1FA\uE1FB"+
-        "\uE1FC\uE1FD\uE1FE\uE1FF\uE200\uE201\uE202\uE203"+
-        "\uE204\uE205\uE206\uE207\uE208\uE209\uE20A\uE20B"+
-        "\uE20C\uE20D\uE20E\uE20F\uE210\uE211\uE212\uE213"+
-        "\uE214\uE215\uE216\uE217\uE218\uE219\uE21A\uE21B"+
-        "\uE21C\uE21D\uE21E\uE21F\uE220\uE221\uE222\uE223"+
-        "\uE224\uE225\uE226\uE227\uE228\uE229\uE22A\uE22B"+
-        "\uE22C\uE22D\uE22E\uE22F\uE230\uE231\uE232\uE233";
-
-    private final static String innerIndex3=
-        "\u7645\u7646\u7647\u7648\u7649\u764A\u764B\u764E"+
-        "\u764F\u7650\u7651\u7652\u7653\u7655\u7657\u7658"+
-        "\u7659\u765A\u765B\u765D\u765F\u7660\u7661\u7662"+
-        "\u7664\u7665\u7666\u7667\u7668\u7669\u766A\u766C"+
-        "\u766D\u766E\u7670\u7671\u7672\u7673\u7674\u7675"+
-        "\u7676\u7677\u7679\u767A\u767C\u767F\u7680\u7681"+
-        "\u7683\u7685\u7689\u768A\u768C\u768D\u768F\u7690"+
-        "\u7692\u7694\u7695\u7697\u7698\u769A\u769B\uFFFD"+
-        "\u769C\u769D\u769E\u769F\u76A0\u76A1\u76A2\u76A3"+
-        "\u76A5\u76A6\u76A7\u76A8\u76A9\u76AA\u76AB\u76AC"+
-        "\u76AD\u76AF\u76B0\u76B3\u76B5\u76B6\u76B7\u76B8"+
-        "\u76B9\u76BA\u76BB\u76BC\u76BD\u76BE\u76C0\u76C1"+
-        "\u76C3\u554A\u963F\u57C3\u6328\u54CE\u5509\u54C0"+
-        "\u7691\u764C\u853C\u77EE\u827E\u788D\u7231\u9698"+
-        "\u978D\u6C28\u5B89\u4FFA\u6309\u6697\u5CB8\u80FA"+
-        "\u6848\u80AE\u6602\u76CE\u51F9\u6556\u71AC\u7FF1"+
-        "\u8884\u50B2\u5965\u61CA\u6FB3\u82AD\u634C\u6252"+
-        "\u53ED\u5427\u7B06\u516B\u75A4\u5DF4\u62D4\u8DCB"+
-        "\u9776\u628A\u8019\u575D\u9738\u7F62\u7238\u767D"+
-        "\u67CF\u767E\u6446\u4F70\u8D25\u62DC\u7A17\u6591"+
-        "\u73ED\u642C\u6273\u822C\u9881\u677F\u7248\u626E"+
-        "\u62CC\u4F34\u74E3\u534A\u529E\u7ECA\u90A6\u5E2E"+
-        "\u6886\u699C\u8180\u7ED1\u68D2\u78C5\u868C\u9551"+
-        "\u508D\u8C24\u82DE\u80DE\u5305\u8912\u5265\u76C4"+
-        "\u76C7\u76C9\u76CB\u76CC\u76D3\u76D5\u76D9\u76DA"+
-        "\u76DC\u76DD\u76DE\u76E0\u76E1\u76E2\u76E3\u76E4"+
-        "\u76E6\u76E7\u76E8\u76E9\u76EA\u76EB\u76EC\u76ED"+
-        "\u76F0\u76F3\u76F5\u76F6\u76F7\u76FA\u76FB\u76FD"+
-        "\u76FF\u7700\u7702\u7703\u7705\u7706\u770A\u770C"+
-        "\u770E\u770F\u7710\u7711\u7712\u7713\u7714\u7715"+
-        "\u7716\u7717\u7718\u771B\u771C\u771D\u771E\u7721"+
-        "\u7723\u7724\u7725\u7727\u772A\u772B\uFFFD\u772C"+
-        "\u772E\u7730\u7731\u7732\u7733\u7734\u7739\u773B"+
-        "\u773D\u773E\u773F\u7742\u7744\u7745\u7746\u7748"+
-        "\u7749\u774A\u774B\u774C\u774D\u774E\u774F\u7752"+
-        "\u7753\u7754\u7755\u7756\u7757\u7758\u7759\u775C"+
-        "\u8584\u96F9\u4FDD\u5821\u9971\u5B9D\u62B1\u62A5"+
-        "\u66B4\u8C79\u9C8D\u7206\u676F\u7891\u60B2\u5351"+
-        "\u5317\u8F88\u80CC\u8D1D\u94A1\u500D\u72C8\u5907"+
-        "\u60EB\u7119\u88AB\u5954\u82EF\u672C\u7B28\u5D29"+
-        "\u7EF7\u752D\u6CF5\u8E66\u8FF8\u903C\u9F3B\u6BD4"+
-        "\u9119\u7B14\u5F7C\u78A7\u84D6\u853D\u6BD5\u6BD9"+
-        "\u6BD6\u5E01\u5E87\u75F9\u95ED\u655D\u5F0A\u5FC5"+
-        "\u8F9F\u58C1\u81C2\u907F\u965B\u97AD\u8FB9\u7F16"+
-        "\u8D2C\u6241\u4FBF\u53D8\u535E\u8FA8\u8FA9\u8FAB"+
-        "\u904D\u6807\u5F6A\u8198\u8868\u9CD6\u618B\u522B"+
-        "\u762A\u5F6C\u658C\u6FD2\u6EE8\u5BBE\u6448\u5175"+
-        "\u51B0\u67C4\u4E19\u79C9\u997C\u70B3\u775D\u775E"+
-        "\u775F\u7760\u7764\u7767\u7769\u776A\u776D\u776E"+
-        "\u776F\u7770\u7771\u7772\u7773\u7774\u7775\u7776"+
-        "\u7777\u7778\u777A\u777B\u777C\u7781\u7782\u7783"+
-        "\u7786\u7787\u7788\u7789\u778A\u778B\u778F\u7790"+
-        "\u7793\u7794\u7795\u7796\u7797\u7798\u7799\u779A"+
-        "\u779B\u779C\u779D\u779E\u77A1\u77A3\u77A4\u77A6"+
-        "\u77A8\u77AB\u77AD\u77AE\u77AF\u77B1\u77B2\u77B4"+
-        "\u77B6\u77B7\u77B8\u77B9\u77BA\uFFFD\u77BC\u77BE"+
-        "\u77C0\u77C1\u77C2\u77C3\u77C4\u77C5\u77C6\u77C7"+
-        "\u77C8\u77C9\u77CA\u77CB\u77CC\u77CE\u77CF\u77D0"+
-        "\u77D1\u77D2\u77D3\u77D4\u77D5\u77D6\u77D8\u77D9"+
-        "\u77DA\u77DD\u77DE\u77DF\u77E0\u77E1\u77E4\u75C5"+
-        "\u5E76\u73BB\u83E0\u64AD\u62E8\u94B5\u6CE2\u535A"+
-        "\u52C3\u640F\u94C2\u7B94\u4F2F\u5E1B\u8236\u8116"+
-        "\u818A\u6E24\u6CCA\u9A73\u6355\u535C\u54FA\u8865"+
-        "\u57E0\u4E0D\u5E03\u6B65\u7C3F\u90E8\u6016\u64E6"+
-        "\u731C\u88C1\u6750\u624D\u8D22\u776C\u8E29\u91C7"+
-        "\u5F69\u83DC\u8521\u9910\u53C2\u8695\u6B8B\u60ED"+
-        "\u60E8\u707F\u82CD\u8231\u4ED3\u6CA7\u85CF\u64CD"+
-        "\u7CD9\u69FD\u66F9\u8349\u5395\u7B56\u4FA7\u518C"+
-        "\u6D4B\u5C42\u8E6D\u63D2\u53C9\u832C\u8336\u67E5"+
-        "\u78B4\u643D\u5BDF\u5C94\u5DEE\u8BE7\u62C6\u67F4"+
-        "\u8C7A\u6400\u63BA\u8749\u998B\u8C17\u7F20\u94F2"+
-        "\u4EA7\u9610\u98A4\u660C\u7316\u77E6\u77E8\u77EA"+
-        "\u77EF\u77F0\u77F1\u77F2\u77F4\u77F5\u77F7\u77F9"+
-        "\u77FA\u77FB\u77FC\u7803\u7804\u7805\u7806\u7807"+
-        "\u7808\u780A\u780B\u780E\u780F\u7810\u7813\u7815"+
-        "\u7819\u781B\u781E\u7820\u7821\u7822\u7824\u7828"+
-        "\u782A\u782B\u782E\u782F\u7831\u7832\u7833\u7835"+
-        "\u7836\u783D\u783F\u7841\u7842\u7843\u7844\u7846"+
-        "\u7848\u7849\u784A\u784B\u784D\u784F\u7851\u7853"+
-        "\u7854\u7858\u7859\u785A\uFFFD\u785B\u785C\u785E"+
-        "\u785F\u7860\u7861\u7862\u7863\u7864\u7865\u7866"+
-        "\u7867\u7868\u7869\u786F\u7870\u7871\u7872\u7873"+
-        "\u7874\u7875\u7876\u7878\u7879\u787A\u787B\u787D"+
-        "\u787E\u787F\u7880\u7881\u7882\u7883\u573A\u5C1D"+
-        "\u5E38\u957F\u507F\u80A0\u5382\u655E\u7545\u5531"+
-        "\u5021\u8D85\u6284\u949E\u671D\u5632\u6F6E\u5DE2"+
-        "\u5435\u7092\u8F66\u626F\u64A4\u63A3\u5F7B\u6F88"+
-        "\u90F4\u81E3\u8FB0\u5C18\u6668\u5FF1\u6C89\u9648"+
-        "\u8D81\u886C\u6491\u79F0\u57CE\u6A59\u6210\u5448"+
-        "\u4E58\u7A0B\u60E9\u6F84\u8BDA\u627F\u901E\u9A8B"+
-        "\u79E4\u5403\u75F4\u6301\u5319\u6C60\u8FDF\u5F1B"+
-        "\u9A70\u803B\u9F7F\u4F88\u5C3A\u8D64\u7FC5\u65A5"+
-        "\u70BD\u5145\u51B2\u866B\u5D07\u5BA0\u62BD\u916C"+
-        "\u7574\u8E0C\u7A20\u6101\u7B79\u4EC7\u7EF8\u7785"+
-        "\u4E11\u81ED\u521D\u51FA\u6A71\u53A8\u8E87\u9504"+
-        "\u96CF\u6EC1\u9664\u695A\u7884\u7885\u7886\u7888"+
-        "\u788A\u788B\u788F\u7890\u7892\u7894\u7895\u7896"+
-        "\u7899\u789D\u789E\u78A0\u78A2\u78A4\u78A6\u78A8"+
-        "\u78A9\u78AA\u78AB\u78AC\u78AD\u78AE\u78AF\u78B5"+
-        "\u78B6\u78B7\u78B8\u78BA\u78BB\u78BC\u78BD\u78BF"+
-        "\u78C0\u78C2\u78C3\u78C4\u78C6\u78C7\u78C8\u78CC"+
-        "\u78CD\u78CE\u78CF\u78D1\u78D2\u78D3\u78D6\u78D7"+
-        "\u78D8\u78DA\u78DB\u78DC\u78DD\u78DE\u78DF\u78E0"+
-        "\u78E1\u78E2\u78E3\uFFFD\u78E4\u78E5\u78E6\u78E7"+
-        "\u78E9\u78EA\u78EB\u78ED\u78EE\u78EF\u78F0\u78F1"+
-        "\u78F3\u78F5\u78F6\u78F8\u78F9\u78FB\u78FC\u78FD"+
-        "\u78FE\u78FF\u7900\u7902\u7903\u7904\u7906\u7907"+
-        "\u7908\u7909\u790A\u790B\u790C\u7840\u50A8\u77D7"+
-        "\u6410\u89E6\u5904\u63E3\u5DDD\u7A7F\u693D\u4F20"+
-        "\u8239\u5598\u4E32\u75AE\u7A97\u5E62\u5E8A\u95EF"+
-        "\u521B\u5439\u708A\u6376\u9524\u5782\u6625\u693F"+
-        "\u9187\u5507\u6DF3\u7EAF\u8822\u6233\u7EF0\u75B5"+
-        "\u8328\u78C1\u96CC\u8F9E\u6148\u74F7\u8BCD\u6B64"+
-        "\u523A\u8D50\u6B21\u806A\u8471\u56F1\u5306\u4ECE"+
-        "\u4E1B\u51D1\u7C97\u918B\u7C07\u4FC3\u8E7F\u7BE1"+
-        "\u7A9C\u6467\u5D14\u50AC\u8106\u7601\u7CB9\u6DEC"+
-        "\u7FE0\u6751\u5B58\u5BF8\u78CB\u64AE\u6413\u63AA"+
-        "\u632B\u9519\u642D\u8FBE\u7B54\u7629\u6253\u5927"+
-        "\u5446\u6B79\u50A3\u6234\u5E26\u6B86\u4EE3\u8D37"+
-        "\u888B\u5F85\u902E\u790D\u790E\u790F\u7910\u7911"+
-        "\u7912\u7914\u7915\u7916\u7917\u7918\u7919\u791A"+
-        "\u791B\u791C\u791D\u791F\u7920\u7921\u7922\u7923"+
-        "\u7925\u7926\u7927\u7928\u7929\u792A\u792B\u792C"+
-        "\u792D\u792E\u792F\u7930\u7931\u7932\u7933\u7935"+
-        "\u7936\u7937\u7938\u7939\u793D\u793F\u7942\u7943"+
-        "\u7944\u7945\u7947\u794A\u794B\u794C\u794D\u794E"+
-        "\u794F\u7950\u7951\u7952\u7954\u7955\u7958\u7959"+
-        "\u7961\u7963\uFFFD\u7964\u7966\u7969\u796A\u796B"+
-        "\u796C\u796E\u7970\u7971\u7972\u7973\u7974\u7975"+
-        "\u7976\u7979\u797B\u797C\u797D\u797E\u797F\u7982"+
-        "\u7983\u7986\u7987\u7988\u7989\u798B\u798C\u798D"+
-        "\u798E\u7990\u7991\u7992\u6020\u803D\u62C5\u4E39"+
-        "\u5355\u90F8\u63B8\u80C6\u65E6\u6C2E\u4F46\u60EE"+
-        "\u6DE1\u8BDE\u5F39\u86CB\u5F53\u6321\u515A\u8361"+
-        "\u6863\u5200\u6363\u8E48\u5012\u5C9B\u7977\u5BFC"+
-        "\u5230\u7A3B\u60BC\u9053\u76D7\u5FB7\u5F97\u7684"+
-        "\u8E6C\u706F\u767B\u7B49\u77AA\u51F3\u9093\u5824"+
-        "\u4F4E\u6EF4\u8FEA\u654C\u7B1B\u72C4\u6DA4\u7FDF"+
-        "\u5AE1\u62B5\u5E95\u5730\u8482\u7B2C\u5E1D\u5F1F"+
-        "\u9012\u7F14\u98A0\u6382\u6EC7\u7898\u70B9\u5178"+
-        "\u975B\u57AB\u7535\u4F43\u7538\u5E97\u60E6\u5960"+
-        "\u6DC0\u6BBF\u7889\u53FC\u96D5\u51CB\u5201\u6389"+
-        "\u540A\u9493\u8C03\u8DCC\u7239\u789F\u8776\u8FED"+
-        "\u8C0D\u53E0\u7993\u7994\u7995\u7996\u7997\u7998"+
-        "\u7999\u799B\u799C\u799D\u799E\u799F\u79A0\u79A1"+
-        "\u79A2\u79A3\u79A4\u79A5\u79A6\u79A8\u79A9\u79AA"+
-        "\u79AB\u79AC\u79AD\u79AE\u79AF\u79B0\u79B1\u79B2"+
-        "\u79B4\u79B5\u79B6\u79B7\u79B8\u79BC\u79BF\u79C2"+
-        "\u79C4\u79C5\u79C7\u79C8\u79CA\u79CC\u79CE\u79CF"+
-        "\u79D0\u79D3\u79D4\u79D6\u79D7\u79D9\u79DA\u79DB"+
-        "\u79DC\u79DD\u79DE\u79E0\u79E1\u79E2\u79E5\u79E8"+
-        "\u79EA\uFFFD\u79EC\u79EE\u79F1\u79F2\u79F3\u79F4"+
-        "\u79F5\u79F6\u79F7\u79F9\u79FA\u79FC\u79FE\u79FF"+
-        "\u7A01\u7A04\u7A05\u7A07\u7A08\u7A09\u7A0A\u7A0C"+
-        "\u7A0F\u7A10\u7A11\u7A12\u7A13\u7A15\u7A16\u7A18"+
-        "\u7A19\u7A1B\u7A1C\u4E01\u76EF\u53EE\u9489\u9876"+
-        "\u9F0E\u952D\u5B9A\u8BA2\u4E22\u4E1C\u51AC\u8463"+
-        "\u61C2\u52A8\u680B\u4F97\u606B\u51BB\u6D1E\u515C"+
-        "\u6296\u6597\u9661\u8C46\u9017\u75D8\u90FD\u7763"+
-        "\u6BD2\u728A\u72EC\u8BFB\u5835\u7779\u8D4C\u675C"+
-        "\u9540\u809A\u5EA6\u6E21\u5992\u7AEF\u77ED\u953B"+
-        "\u6BB5\u65AD\u7F0E\u5806\u5151\u961F\u5BF9\u58A9"+
-        "\u5428\u8E72\u6566\u987F\u56E4\u949D\u76FE\u9041"+
-        "\u6387\u54C6\u591A\u593A\u579B\u8EB2\u6735\u8DFA"+
-        "\u8235\u5241\u60F0\u5815\u86FE\u5CE8\u9E45\u4FC4"+
-        "\u989D\u8BB9\u5A25\u6076\u5384\u627C\u904F\u9102"+
-        "\u997F\u6069\u800C\u513F\u8033\u5C14\u9975\u6D31"+
-        "\u4E8C\u7A1D\u7A1F\u7A21\u7A22\u7A24\u7A25\u7A26"+
-        "\u7A27\u7A28\u7A29\u7A2A\u7A2B\u7A2C\u7A2D\u7A2E"+
-        "\u7A2F\u7A30\u7A31\u7A32\u7A34\u7A35\u7A36\u7A38"+
-        "\u7A3A\u7A3E\u7A40\u7A41\u7A42\u7A43\u7A44\u7A45"+
-        "\u7A47\u7A48\u7A49\u7A4A\u7A4B\u7A4C\u7A4D\u7A4E"+
-        "\u7A4F\u7A50\u7A52\u7A53\u7A54\u7A55\u7A56\u7A58"+
-        "\u7A59\u7A5A\u7A5B\u7A5C\u7A5D\u7A5E\u7A5F\u7A60"+
-        "\u7A61\u7A62\u7A63\u7A64\u7A65\u7A66\u7A67\u7A68"+
-        "\uFFFD\u7A69\u7A6A\u7A6B\u7A6C\u7A6D\u7A6E\u7A6F"+
-        "\u7A71\u7A72\u7A73\u7A75\u7A7B\u7A7C\u7A7D\u7A7E"+
-        "\u7A82\u7A85\u7A87\u7A89\u7A8A\u7A8B\u7A8C\u7A8E"+
-        "\u7A8F\u7A90\u7A93\u7A94\u7A99\u7A9A\u7A9B\u7A9E"+
-        "\u7AA1\u7AA2\u8D30\u53D1\u7F5A\u7B4F\u4F10\u4E4F"+
-        "\u9600\u6CD5\u73D0\u85E9\u5E06\u756A\u7FFB\u6A0A"+
-        "\u77FE\u9492\u7E41\u51E1\u70E6\u53CD\u8FD4\u8303"+
-        "\u8D29\u72AF\u996D\u6CDB\u574A\u82B3\u65B9\u80AA"+
-        "\u623F\u9632\u59A8\u4EFF\u8BBF\u7EBA\u653E\u83F2"+
-        "\u975E\u5561\u98DE\u80A5\u532A\u8BFD\u5420\u80BA"+
-        "\u5E9F\u6CB8\u8D39\u82AC\u915A\u5429\u6C1B\u5206"+
-        "\u7EB7\u575F\u711A\u6C7E\u7C89\u594B\u4EFD\u5FFF"+
-        "\u6124\u7CAA\u4E30\u5C01\u67AB\u8702\u5CF0\u950B"+
-        "\u98CE\u75AF\u70FD\u9022\u51AF\u7F1D\u8BBD\u5949"+
-        "\u51E4\u4F5B\u5426\u592B\u6577\u80A4\u5B75\u6276"+
-        "\u62C2\u8F90\u5E45\u6C1F\u7B26\u4F0F\u4FD8\u670D"+
-        "\u7AA3\u7AA4\u7AA7\u7AA9\u7AAA\u7AAB\u7AAE\u7AAF"+
-        "\u7AB0\u7AB1\u7AB2\u7AB4\u7AB5\u7AB6\u7AB7\u7AB8"+
-        "\u7AB9\u7ABA\u7ABB\u7ABC\u7ABD\u7ABE\u7AC0\u7AC1"+
-        "\u7AC2\u7AC3\u7AC4\u7AC5\u7AC6\u7AC7\u7AC8\u7AC9"+
-        "\u7ACA\u7ACC\u7ACD\u7ACE\u7ACF\u7AD0\u7AD1\u7AD2"+
-        "\u7AD3\u7AD4\u7AD5\u7AD7\u7AD8\u7ADA\u7ADB\u7ADC"+
-        "\u7ADD\u7AE1\u7AE2\u7AE4\u7AE7\u7AE8\u7AE9\u7AEA"+
-        "\u7AEB\u7AEC\u7AEE\u7AF0\u7AF1\u7AF2\u7AF3\uFFFD"+
-        "\u7AF4\u7AF5\u7AF6\u7AF7\u7AF8\u7AFB\u7AFC\u7AFE"+
-        "\u7B00\u7B01\u7B02\u7B05\u7B07\u7B09\u7B0C\u7B0D"+
-        "\u7B0E\u7B10\u7B12\u7B13\u7B16\u7B17\u7B18\u7B1A"+
-        "\u7B1C\u7B1D\u7B1F\u7B21\u7B22\u7B23\u7B27\u7B29"+
-        "\u7B2D\u6D6E\u6DAA\u798F\u88B1\u5F17\u752B\u629A"+
-        "\u8F85\u4FEF\u91DC\u65A7\u812F\u8151\u5E9C\u8150"+
-        "\u8D74\u526F\u8986\u8D4B\u590D\u5085\u4ED8\u961C"+
-        "\u7236\u8179\u8D1F\u5BCC\u8BA3\u9644\u5987\u7F1A"+
-        "\u5490\u5676\u560E\u8BE5\u6539\u6982\u9499\u76D6"+
-        "\u6E89\u5E72\u7518\u6746\u67D1\u7AFF\u809D\u8D76"+
-        "\u611F\u79C6\u6562\u8D63\u5188\u521A\u94A2\u7F38"+
-        "\u809B\u7EB2\u5C97\u6E2F\u6760\u7BD9\u768B\u9AD8"+
-        "\u818F\u7F94\u7CD5\u641E\u9550\u7A3F\u544A\u54E5"+
-        "\u6B4C\u6401\u6208\u9E3D\u80F3\u7599\u5272\u9769"+
-        "\u845B\u683C\u86E4\u9601\u9694\u94EC\u4E2A\u5404"+
-        "\u7ED9\u6839\u8DDF\u8015\u66F4\u5E9A\u7FB9\u7B2F"+
-        "\u7B30\u7B32\u7B34\u7B35\u7B36\u7B37\u7B39\u7B3B"+
-        "\u7B3D\u7B3F\u7B40\u7B41\u7B42\u7B43\u7B44\u7B46"+
-        "\u7B48\u7B4A\u7B4D\u7B4E\u7B53\u7B55\u7B57\u7B59"+
-        "\u7B5C\u7B5E\u7B5F\u7B61\u7B63\u7B64\u7B65\u7B66"+
-        "\u7B67\u7B68\u7B69\u7B6A\u7B6B\u7B6C\u7B6D\u7B6F"+
-        "\u7B70\u7B73\u7B74\u7B76\u7B78\u7B7A\u7B7C\u7B7D"+
-        "\u7B7F\u7B81\u7B82\u7B83\u7B84\u7B86\u7B87\u7B88"+
-        "\u7B89\u7B8A\u7B8B\u7B8C\u7B8E\u7B8F\uFFFD\u7B91"+
-        "\u7B92\u7B93\u7B96\u7B98\u7B99\u7B9A\u7B9B\u7B9E"+
-        "\u7B9F\u7BA0\u7BA3\u7BA4\u7BA5\u7BAE\u7BAF\u7BB0"+
-        "\u7BB2\u7BB3\u7BB5\u7BB6\u7BB7\u7BB9\u7BBA\u7BBB"+
-        "\u7BBC\u7BBD\u7BBE\u7BBF\u7BC0\u7BC2\u7BC3\u7BC4"+
-        "\u57C2\u803F\u6897\u5DE5\u653B\u529F\u606D\u9F9A"+
-        "\u4F9B\u8EAC\u516C\u5BAB\u5F13\u5DE9\u6C5E\u62F1"+
-        "\u8D21\u5171\u94A9\u52FE\u6C9F\u82DF\u72D7\u57A2"+
-        "\u6784\u8D2D\u591F\u8F9C\u83C7\u5495\u7B8D\u4F30"+
-        "\u6CBD\u5B64\u59D1\u9F13\u53E4\u86CA\u9AA8\u8C37"+
-        "\u80A1\u6545\u987E\u56FA\u96C7\u522E\u74DC\u5250"+
-        "\u5BE1\u6302\u8902\u4E56\u62D0\u602A\u68FA\u5173"+
-        "\u5B98\u51A0\u89C2\u7BA1\u9986\u7F50\u60EF\u704C"+
-        "\u8D2F\u5149\u5E7F\u901B\u7470\u89C4\u572D\u7845"+
-        "\u5F52\u9F9F\u95FA\u8F68\u9B3C\u8BE1\u7678\u6842"+
-        "\u67DC\u8DEA\u8D35\u523D\u8F8A\u6EDA\u68CD\u9505"+
-        "\u90ED\u56FD\u679C\u88F9\u8FC7\u54C8\u7BC5\u7BC8"+
-        "\u7BC9\u7BCA\u7BCB\u7BCD\u7BCE\u7BCF\u7BD0\u7BD2"+
-        "\u7BD4\u7BD5\u7BD6\u7BD7\u7BD8\u7BDB\u7BDC\u7BDE"+
-        "\u7BDF\u7BE0\u7BE2\u7BE3\u7BE4\u7BE7\u7BE8\u7BE9"+
-        "\u7BEB\u7BEC\u7BED\u7BEF\u7BF0\u7BF2\u7BF3\u7BF4"+
-        "\u7BF5\u7BF6\u7BF8\u7BF9\u7BFA\u7BFB\u7BFD\u7BFF"+
-        "\u7C00\u7C01\u7C02\u7C03\u7C04\u7C05\u7C06\u7C08"+
-        "\u7C09\u7C0A\u7C0D\u7C0E\u7C10\u7C11\u7C12\u7C13"+
-        "\u7C14\u7C15\u7C17\u7C18\u7C19\uFFFD\u7C1A\u7C1B"+
-        "\u7C1C\u7C1D\u7C1E\u7C20\u7C21\u7C22\u7C23\u7C24"+
-        "\u7C25\u7C28\u7C29\u7C2B\u7C2C\u7C2D\u7C2E\u7C2F"+
-        "\u7C30\u7C31\u7C32\u7C33\u7C34\u7C35\u7C36\u7C37"+
-        "\u7C39\u7C3A\u7C3B\u7C3C\u7C3D\u7C3E\u7C42\u9AB8"+
-        "\u5B69\u6D77\u6C26\u4EA5\u5BB3\u9A87\u9163\u61A8"+
-        "\u90AF\u97E9\u542B\u6DB5\u5BD2\u51FD\u558A\u7F55"+
-        "\u7FF0\u64BC\u634D\u65F1\u61BE\u608D\u710A\u6C57"+
-        "\u6C49\u592F\u676D\u822A\u58D5\u568E\u8C6A\u6BEB"+
-        "\u90DD\u597D\u8017\u53F7\u6D69\u5475\u559D\u8377"+
-        "\u83CF\u6838\u79BE\u548C\u4F55\u5408\u76D2\u8C89"+
-        "\u9602\u6CB3\u6DB8\u8D6B\u8910\u9E64\u8D3A\u563F"+
-        "\u9ED1\u75D5\u5F88\u72E0\u6068\u54FC\u4EA8\u6A2A"+
-        "\u8861\u6052\u8F70\u54C4\u70D8\u8679\u9E3F\u6D2A"+
-        "\u5B8F\u5F18\u7EA2\u5589\u4FAF\u7334\u543C\u539A"+
-        "\u5019\u540E\u547C\u4E4E\u5FFD\u745A\u58F6\u846B"+
-        "\u80E1\u8774\u72D0\u7CCA\u6E56\u7C43\u7C44\u7C45"+
-        "\u7C46\u7C47\u7C48\u7C49\u7C4A\u7C4B\u7C4C\u7C4E"+
-        "\u7C4F\u7C50\u7C51\u7C52\u7C53\u7C54\u7C55\u7C56"+
-        "\u7C57\u7C58\u7C59\u7C5A\u7C5B\u7C5C\u7C5D\u7C5E"+
-        "\u7C5F\u7C60\u7C61\u7C62\u7C63\u7C64\u7C65\u7C66"+
-        "\u7C67\u7C68\u7C69\u7C6A\u7C6B\u7C6C\u7C6D\u7C6E"+
-        "\u7C6F\u7C70\u7C71\u7C72\u7C75\u7C76\u7C77\u7C78"+
-        "\u7C79\u7C7A\u7C7E\u7C7F\u7C80\u7C81\u7C82\u7C83"+
-        "\u7C84\u7C85\u7C86\u7C87\uFFFD\u7C88\u7C8A\u7C8B"+
-        "\u7C8C\u7C8D\u7C8E\u7C8F\u7C90\u7C93\u7C94\u7C96"+
-        "\u7C99\u7C9A\u7C9B\u7CA0\u7CA1\u7CA3\u7CA6\u7CA7"+
-        "\u7CA8\u7CA9\u7CAB\u7CAC\u7CAD\u7CAF\u7CB0\u7CB4"+
-        "\u7CB5\u7CB6\u7CB7\u7CB8\u7CBA\u7CBB\u5F27\u864E"+
-        "\u552C\u62A4\u4E92\u6CAA\u6237\u82B1\u54D7\u534E"+
-        "\u733E\u6ED1\u753B\u5212\u5316\u8BDD\u69D0\u5F8A"+
-        "\u6000\u6DEE\u574F\u6B22\u73AF\u6853\u8FD8\u7F13"+
-        "\u6362\u60A3\u5524\u75EA\u8C62\u7115\u6DA3\u5BA6"+
-        "\u5E7B\u8352\u614C\u9EC4\u78FA\u8757\u7C27\u7687"+
-        "\u51F0\u60F6\u714C\u6643\u5E4C\u604D\u8C0E\u7070"+
-        "\u6325\u8F89\u5FBD\u6062\u86D4\u56DE\u6BC1\u6094"+
-        "\u6167\u5349\u60E0\u6666\u8D3F\u79FD\u4F1A\u70E9"+
-        "\u6C47\u8BB3\u8BF2\u7ED8\u8364\u660F\u5A5A\u9B42"+
-        "\u6D51\u6DF7\u8C41\u6D3B\u4F19\u706B\u83B7\u6216"+
-        "\u60D1\u970D\u8D27\u7978\u51FB\u573E\u57FA\u673A"+
-        "\u7578\u7A3D\u79EF\u7B95\u7CBF\u7CC0\u7CC2\u7CC3"+
-        "\u7CC4\u7CC6\u7CC9\u7CCB\u7CCE\u7CCF\u7CD0\u7CD1"+
-        "\u7CD2\u7CD3\u7CD4\u7CD8\u7CDA\u7CDB\u7CDD\u7CDE"+
-        "\u7CE1\u7CE2\u7CE3\u7CE4\u7CE5\u7CE6\u7CE7\u7CE9"+
-        "\u7CEA\u7CEB\u7CEC\u7CED\u7CEE\u7CF0\u7CF1\u7CF2"+
-        "\u7CF3\u7CF4\u7CF5\u7CF6\u7CF7\u7CF9\u7CFA\u7CFC"+
-        "\u7CFD\u7CFE\u7CFF\u7D00\u7D01\u7D02\u7D03\u7D04"+
-        "\u7D05\u7D06\u7D07\u7D08\u7D09\u7D0B\u7D0C\u7D0D"+
-        "\u7D0E\u7D0F\u7D10\uFFFD\u7D11\u7D12\u7D13\u7D14"+
-        "\u7D15\u7D16\u7D17\u7D18\u7D19\u7D1A\u7D1B\u7D1C"+
-        "\u7D1D\u7D1E\u7D1F\u7D21\u7D23\u7D24\u7D25\u7D26"+
-        "\u7D28\u7D29\u7D2A\u7D2C\u7D2D\u7D2E\u7D30\u7D31"+
-        "\u7D32\u7D33\u7D34\u7D35\u7D36\u808C\u9965\u8FF9"+
-        "\u6FC0\u8BA5\u9E21\u59EC\u7EE9\u7F09\u5409\u6781"+
-        "\u68D8\u8F91\u7C4D\u96C6\u53CA\u6025\u75BE\u6C72"+
-        "\u5373\u5AC9\u7EA7\u6324\u51E0\u810A\u5DF1\u84DF"+
-        "\u6280\u5180\u5B63\u4F0E\u796D\u5242\u60B8\u6D4E"+
-        "\u5BC4\u5BC2\u8BA1\u8BB0\u65E2\u5FCC\u9645\u5993"+
-        "\u7EE7\u7EAA\u5609\u67B7\u5939\u4F73\u5BB6\u52A0"+
-        "\u835A\u988A\u8D3E\u7532\u94BE\u5047\u7A3C\u4EF7"+
-        "\u67B6\u9A7E\u5AC1\u6B7C\u76D1\u575A\u5C16\u7B3A"+
-        "\u95F4\u714E\u517C\u80A9\u8270\u5978\u7F04\u8327"+
-        "\u68C0\u67EC\u78B1\u7877\u62E3\u6361\u7B80\u4FED"+
-        "\u526A\u51CF\u8350\u69DB\u9274\u8DF5\u8D31\u89C1"+
-        "\u952E\u7BAD\u4EF6\u7D37\u7D38\u7D39\u7D3A\u7D3B"+
-        "\u7D3C\u7D3D\u7D3E\u7D3F\u7D40\u7D41\u7D42\u7D43"+
-        "\u7D44\u7D45\u7D46\u7D47\u7D48\u7D49\u7D4A\u7D4B"+
-        "\u7D4C\u7D4D\u7D4E\u7D4F\u7D50\u7D51\u7D52\u7D53"+
-        "\u7D54\u7D55\u7D56\u7D57\u7D58\u7D59\u7D5A\u7D5B"+
-        "\u7D5C\u7D5D\u7D5E\u7D5F\u7D60\u7D61\u7D62\u7D63"+
-        "\u7D64\u7D65\u7D66\u7D67\u7D68\u7D69\u7D6A\u7D6B"+
-        "\u7D6C\u7D6D\u7D6F\u7D70\u7D71\u7D72\u7D73\u7D74"+
-        "\u7D75\u7D76\uFFFD\u7D78\u7D79\u7D7A\u7D7B\u7D7C"+
-        "\u7D7D\u7D7E\u7D7F\u7D80\u7D81\u7D82\u7D83\u7D84"+
-        "\u7D85\u7D86\u7D87\u7D88\u7D89\u7D8A\u7D8B\u7D8C"+
-        "\u7D8D\u7D8E\u7D8F\u7D90\u7D91\u7D92\u7D93\u7D94"+
-        "\u7D95\u7D96\u7D97\u7D98\u5065\u8230\u5251\u996F"+
-        "\u6E10\u6E85\u6DA7\u5EFA\u50F5\u59DC\u5C06\u6D46"+
-        "\u6C5F\u7586\u848B\u6868\u5956\u8BB2\u5320\u9171"+
-        "\u964D\u8549\u6912\u7901\u7126\u80F6\u4EA4\u90CA"+
-        "\u6D47\u9A84\u5A07\u56BC\u6405\u94F0\u77EB\u4FA5"+
-        "\u811A\u72E1\u89D2\u997A\u7F34\u7EDE\u527F\u6559"+
-        "\u9175\u8F7F\u8F83\u53EB\u7A96\u63ED\u63A5\u7686"+
-        "\u79F8\u8857\u9636\u622A\u52AB\u8282\u6854\u6770"+
-        "\u6377\u776B\u7AED\u6D01\u7ED3\u89E3\u59D0\u6212"+
-        "\u85C9\u82A5\u754C\u501F\u4ECB\u75A5\u8BEB\u5C4A"+
-        "\u5DFE\u7B4B\u65A4\u91D1\u4ECA\u6D25\u895F\u7D27"+
-        "\u9526\u4EC5\u8C28\u8FDB\u9773\u664B\u7981\u8FD1"+
-        "\u70EC\u6D78\u7D99\u7D9A\u7D9B\u7D9C\u7D9D\u7D9E"+
-        "\u7D9F\u7DA0\u7DA1\u7DA2\u7DA3\u7DA4\u7DA5\u7DA7"+
-        "\u7DA8\u7DA9\u7DAA\u7DAB\u7DAC\u7DAD\u7DAF\u7DB0"+
-        "\u7DB1\u7DB2\u7DB3\u7DB4\u7DB5\u7DB6\u7DB7\u7DB8"+
-        "\u7DB9\u7DBA\u7DBB\u7DBC\u7DBD\u7DBE\u7DBF\u7DC0"+
-        "\u7DC1\u7DC2\u7DC3\u7DC4\u7DC5\u7DC6\u7DC7\u7DC8"+
-        "\u7DC9\u7DCA\u7DCB\u7DCC\u7DCD\u7DCE\u7DCF\u7DD0"+
-        "\u7DD1\u7DD2\u7DD3\u7DD4\u7DD5\u7DD6\u7DD7\u7DD8"+
-        "\u7DD9\uFFFD\u7DDA\u7DDB\u7DDC\u7DDD\u7DDE\u7DDF"+
-        "\u7DE0\u7DE1\u7DE2\u7DE3\u7DE4\u7DE5\u7DE6\u7DE7"+
-        "\u7DE8\u7DE9\u7DEA\u7DEB\u7DEC\u7DED\u7DEE\u7DEF"+
-        "\u7DF0\u7DF1\u7DF2\u7DF3\u7DF4\u7DF5\u7DF6\u7DF7"+
-        "\u7DF8\u7DF9\u7DFA\u5C3D\u52B2\u8346\u5162\u830E"+
-        "\u775B\u6676\u9CB8\u4EAC\u60CA\u7CBE\u7CB3\u7ECF"+
-        "\u4E95\u8B66\u666F\u9888\u9759\u5883\u656C\u955C"+
-        "\u5F84\u75C9\u9756\u7ADF\u7ADE\u51C0\u70AF\u7A98"+
-        "\u63EA\u7A76\u7EA0\u7396\u97ED\u4E45\u7078\u4E5D"+
-        "\u9152\u53A9\u6551\u65E7\u81FC\u8205\u548E\u5C31"+
-        "\u759A\u97A0\u62D8\u72D9\u75BD\u5C45\u9A79\u83CA"+
-        "\u5C40\u5480\u77E9\u4E3E\u6CAE\u805A\u62D2\u636E"+
-        "\u5DE8\u5177\u8DDD\u8E1E\u952F\u4FF1\u53E5\u60E7"+
-        "\u70AC\u5267\u6350\u9E43\u5A1F\u5026\u7737\u5377"+
-        "\u7EE2\u6485\u652B\u6289\u6398\u5014\u7235\u89C9"+
-        "\u51B3\u8BC0\u7EDD\u5747\u83CC\u94A7\u519B\u541B"+
-        "\u5CFB\u7DFB\u7DFC\u7DFD\u7DFE\u7DFF\u7E00\u7E01"+
-        "\u7E02\u7E03\u7E04\u7E05\u7E06\u7E07\u7E08\u7E09"+
-        "\u7E0A\u7E0B\u7E0C\u7E0D\u7E0E\u7E0F\u7E10\u7E11"+
-        "\u7E12\u7E13\u7E14\u7E15\u7E16\u7E17\u7E18\u7E19"+
-        "\u7E1A\u7E1B\u7E1C\u7E1D\u7E1E\u7E1F\u7E20\u7E21"+
-        "\u7E22\u7E23\u7E24\u7E25\u7E26\u7E27\u7E28\u7E29"+
-        "\u7E2A\u7E2B\u7E2C\u7E2D\u7E2E\u7E2F\u7E30\u7E31"+
-        "\u7E32\u7E33\u7E34\u7E35\u7E36\u7E37\u7E38\u7E39"+
-        "\uFFFD\u7E3A\u7E3C\u7E3D\u7E3E\u7E3F\u7E40\u7E42"+
-        "\u7E43\u7E44\u7E45\u7E46\u7E48\u7E49\u7E4A\u7E4B"+
-        "\u7E4C\u7E4D\u7E4E\u7E4F\u7E50\u7E51\u7E52\u7E53"+
-        "\u7E54\u7E55\u7E56\u7E57\u7E58\u7E59\u7E5A\u7E5B"+
-        "\u7E5C\u7E5D\u4FCA\u7AE3\u6D5A\u90E1\u9A8F\u5580"+
-        "\u5496\u5361\u54AF\u5F00\u63E9\u6977\u51EF\u6168"+
-        "\u520A\u582A\u52D8\u574E\u780D\u770B\u5EB7\u6177"+
-        "\u7CE0\u625B\u6297\u4EA2\u7095\u8003\u62F7\u70E4"+
-        "\u9760\u5777\u82DB\u67EF\u68F5\u78D5\u9897\u79D1"+
-        "\u58F3\u54B3\u53EF\u6E34\u514B\u523B\u5BA2\u8BFE"+
-        "\u80AF\u5543\u57A6\u6073\u5751\u542D\u7A7A\u6050"+
-        "\u5B54\u63A7\u62A0\u53E3\u6263\u5BC7\u67AF\u54ED"+
-        "\u7A9F\u82E6\u9177\u5E93\u88E4\u5938\u57AE\u630E"+
-        "\u8DE8\u80EF\u5757\u7B77\u4FA9\u5FEB\u5BBD\u6B3E"+
-        "\u5321\u7B50\u72C2\u6846\u77FF\u7736\u65F7\u51B5"+
-        "\u4E8F\u76D4\u5CBF\u7AA5\u8475\u594E\u9B41\u5080";
-
-    private final static String innerIndex4=
-        "\u7E5E\u7E5F\u7E60\u7E61\u7E62\u7E63\u7E64\u7E65"+
-        "\u7E66\u7E67\u7E68\u7E69\u7E6A\u7E6B\u7E6C\u7E6D"+
-        "\u7E6E\u7E6F\u7E70\u7E71\u7E72\u7E73\u7E74\u7E75"+
-        "\u7E76\u7E77\u7E78\u7E79\u7E7A\u7E7B\u7E7C\u7E7D"+
-        "\u7E7E\u7E7F\u7E80\u7E81\u7E83\u7E84\u7E85\u7E86"+
-        "\u7E87\u7E88\u7E89\u7E8A\u7E8B\u7E8C\u7E8D\u7E8E"+
-        "\u7E8F\u7E90\u7E91\u7E92\u7E93\u7E94\u7E95\u7E96"+
-        "\u7E97\u7E98\u7E99\u7E9A\u7E9C\u7E9D\u7E9E\uFFFD"+
-        "\u7EAE\u7EB4\u7EBB\u7EBC\u7ED6\u7EE4\u7EEC\u7EF9"+
-        "\u7F0A\u7F10\u7F1E\u7F37\u7F39\u7F3B\u7F3C\u7F3D"+
-        "\u7F3E\u7F3F\u7F40\u7F41\u7F43\u7F46\u7F47\u7F48"+
-        "\u7F49\u7F4A\u7F4B\u7F4C\u7F4D\u7F4E\u7F4F\u7F52"+
-        "\u7F53\u9988\u6127\u6E83\u5764\u6606\u6346\u56F0"+
-        "\u62EC\u6269\u5ED3\u9614\u5783\u62C9\u5587\u8721"+
-        "\u814A\u8FA3\u5566\u83B1\u6765\u8D56\u84DD\u5A6A"+
-        "\u680F\u62E6\u7BEE\u9611\u5170\u6F9C\u8C30\u63FD"+
-        "\u89C8\u61D2\u7F06\u70C2\u6EE5\u7405\u6994\u72FC"+
-        "\u5ECA\u90CE\u6717\u6D6A\u635E\u52B3\u7262\u8001"+
-        "\u4F6C\u59E5\u916A\u70D9\u6D9D\u52D2\u4E50\u96F7"+
-        "\u956D\u857E\u78CA\u7D2F\u5121\u5792\u64C2\u808B"+
-        "\u7C7B\u6CEA\u68F1\u695E\u51B7\u5398\u68A8\u7281"+
-        "\u9ECE\u7BF1\u72F8\u79BB\u6F13\u7406\u674E\u91CC"+
-        "\u9CA4\u793C\u8389\u8354\u540F\u6817\u4E3D\u5389"+
-        "\u52B1\u783E\u5386\u5229\u5088\u4F8B\u4FD0\u7F56"+
-        "\u7F59\u7F5B\u7F5C\u7F5D\u7F5E\u7F60\u7F63\u7F64"+
-        "\u7F65\u7F66\u7F67\u7F6B\u7F6C\u7F6D\u7F6F\u7F70"+
-        "\u7F73\u7F75\u7F76\u7F77\u7F78\u7F7A\u7F7B\u7F7C"+
-        "\u7F7D\u7F7F\u7F80\u7F82\u7F83\u7F84\u7F85\u7F86"+
-        "\u7F87\u7F88\u7F89\u7F8B\u7F8D\u7F8F\u7F90\u7F91"+
-        "\u7F92\u7F93\u7F95\u7F96\u7F97\u7F98\u7F99\u7F9B"+
-        "\u7F9C\u7FA0\u7FA2\u7FA3\u7FA5\u7FA6\u7FA8\u7FA9"+
-        "\u7FAA\u7FAB\u7FAC\u7FAD\u7FAE\u7FB1\uFFFD\u7FB3"+
-        "\u7FB4\u7FB5\u7FB6\u7FB7\u7FBA\u7FBB\u7FBE\u7FC0"+
-        "\u7FC2\u7FC3\u7FC4\u7FC6\u7FC7\u7FC8\u7FC9\u7FCB"+
-        "\u7FCD\u7FCF\u7FD0\u7FD1\u7FD2\u7FD3\u7FD6\u7FD7"+
-        "\u7FD9\u7FDA\u7FDB\u7FDC\u7FDD\u7FDE\u7FE2\u7FE3"+
-        "\u75E2\u7ACB\u7C92\u6CA5\u96B6\u529B\u7483\u54E9"+
-        "\u4FE9\u8054\u83B2\u8FDE\u9570\u5EC9\u601C\u6D9F"+
-        "\u5E18\u655B\u8138\u94FE\u604B\u70BC\u7EC3\u7CAE"+
-        "\u51C9\u6881\u7CB1\u826F\u4E24\u8F86\u91CF\u667E"+
-        "\u4EAE\u8C05\u64A9\u804A\u50DA\u7597\u71CE\u5BE5"+
-        "\u8FBD\u6F66\u4E86\u6482\u9563\u5ED6\u6599\u5217"+
-        "\u88C2\u70C8\u52A3\u730E\u7433\u6797\u78F7\u9716"+
-        "\u4E34\u90BB\u9CDE\u6DCB\u51DB\u8D41\u541D\u62CE"+
-        "\u73B2\u83F1\u96F6\u9F84\u94C3\u4F36\u7F9A\u51CC"+
-        "\u7075\u9675\u5CAD\u9886\u53E6\u4EE4\u6E9C\u7409"+
-        "\u69B4\u786B\u998F\u7559\u5218\u7624\u6D41\u67F3"+
-        "\u516D\u9F99\u804B\u5499\u7B3C\u7ABF\u7FE4\u7FE7"+
-        "\u7FE8\u7FEA\u7FEB\u7FEC\u7FED\u7FEF\u7FF2\u7FF4"+
-        "\u7FF5\u7FF6\u7FF7\u7FF8\u7FF9\u7FFA\u7FFD\u7FFE"+
-        "\u7FFF\u8002\u8007\u8008\u8009\u800A\u800E\u800F"+
-        "\u8011\u8013\u801A\u801B\u801D\u801E\u801F\u8021"+
-        "\u8023\u8024\u802B\u802C\u802D\u802E\u802F\u8030"+
-        "\u8032\u8034\u8039\u803A\u803C\u803E\u8040\u8041"+
-        "\u8044\u8045\u8047\u8048\u8049\u804E\u804F\u8050"+
-        "\u8051\u8053\u8055\u8056\u8057\uFFFD\u8059\u805B"+
-        "\u805C\u805D\u805E\u805F\u8060\u8061\u8062\u8063"+
-        "\u8064\u8065\u8066\u8067\u8068\u806B\u806C\u806D"+
-        "\u806E\u806F\u8070\u8072\u8073\u8074\u8075\u8076"+
-        "\u8077\u8078\u8079\u807A\u807B\u807C\u807D\u9686"+
-        "\u5784\u62E2\u9647\u697C\u5A04\u6402\u7BD3\u6F0F"+
-        "\u964B\u82A6\u5362\u9885\u5E90\u7089\u63B3\u5364"+
-        "\u864F\u9C81\u9E93\u788C\u9732\u8DEF\u8D42\u9E7F"+
-        "\u6F5E\u7984\u5F55\u9646\u622E\u9A74\u5415\u94DD"+
-        "\u4FA3\u65C5\u5C65\u5C61\u7F15\u8651\u6C2F\u5F8B"+
-        "\u7387\u6EE4\u7EFF\u5CE6\u631B\u5B6A\u6EE6\u5375"+
-        "\u4E71\u63A0\u7565\u62A1\u8F6E\u4F26\u4ED1\u6CA6"+
-        "\u7EB6\u8BBA\u841D\u87BA\u7F57\u903B\u9523\u7BA9"+
-        "\u9AA1\u88F8\u843D\u6D1B\u9A86\u7EDC\u5988\u9EBB"+
-        "\u739B\u7801\u8682\u9A6C\u9A82\u561B\u5417\u57CB"+
-        "\u4E70\u9EA6\u5356\u8FC8\u8109\u7792\u9992\u86EE"+
-        "\u6EE1\u8513\u66FC\u6162\u6F2B\u807E\u8081\u8082"+
-        "\u8085\u8088\u808A\u808D\u808E\u808F\u8090\u8091"+
-        "\u8092\u8094\u8095\u8097\u8099\u809E\u80A3\u80A6"+
-        "\u80A7\u80A8\u80AC\u80B0\u80B3\u80B5\u80B6\u80B8"+
-        "\u80B9\u80BB\u80C5\u80C7\u80C8\u80C9\u80CA\u80CB"+
-        "\u80CF\u80D0\u80D1\u80D2\u80D3\u80D4\u80D5\u80D8"+
-        "\u80DF\u80E0\u80E2\u80E3\u80E6\u80EE\u80F5\u80F7"+
-        "\u80F9\u80FB\u80FE\u80FF\u8100\u8101\u8103\u8104"+
-        "\u8105\u8107\u8108\u810B\uFFFD\u810C\u8115\u8117"+
-        "\u8119\u811B\u811C\u811D\u811F\u8120\u8121\u8122"+
-        "\u8123\u8124\u8125\u8126\u8127\u8128\u8129\u812A"+
-        "\u812B\u812D\u812E\u8130\u8133\u8134\u8135\u8137"+
-        "\u8139\u813A\u813B\u813C\u813D\u813F\u8C29\u8292"+
-        "\u832B\u76F2\u6C13\u5FD9\u83BD\u732B\u8305\u951A"+
-        "\u6BDB\u77DB\u94C6\u536F\u8302\u5192\u5E3D\u8C8C"+
-        "\u8D38\u4E48\u73AB\u679A\u6885\u9176\u9709\u7164"+
-        "\u6CA1\u7709\u5A92\u9541\u6BCF\u7F8E\u6627\u5BD0"+
-        "\u59B9\u5A9A\u95E8\u95F7\u4EEC\u840C\u8499\u6AAC"+
-        "\u76DF\u9530\u731B\u68A6\u5B5F\u772F\u919A\u9761"+
-        "\u7CDC\u8FF7\u8C1C\u5F25\u7C73\u79D8\u89C5\u6CCC"+
-        "\u871C\u5BC6\u5E42\u68C9\u7720\u7EF5\u5195\u514D"+
-        "\u52C9\u5A29\u7F05\u9762\u82D7\u63CF\u7784\u85D0"+
-        "\u79D2\u6E3A\u5E99\u5999\u8511\u706D\u6C11\u62BF"+
-        "\u76BF\u654F\u60AF\u95FD\u660E\u879F\u9E23\u94ED"+
-        "\u540D\u547D\u8C2C\u6478\u8140\u8141\u8142\u8143"+
-        "\u8144\u8145\u8147\u8149\u814D\u814E\u814F\u8152"+
-        "\u8156\u8157\u8158\u815B\u815C\u815D\u815E\u815F"+
-        "\u8161\u8162\u8163\u8164\u8166\u8168\u816A\u816B"+
-        "\u816C\u816F\u8172\u8173\u8175\u8176\u8177\u8178"+
-        "\u8181\u8183\u8184\u8185\u8186\u8187\u8189\u818B"+
-        "\u818C\u818D\u818E\u8190\u8192\u8193\u8194\u8195"+
-        "\u8196\u8197\u8199\u819A\u819E\u819F\u81A0\u81A1"+
-        "\u81A2\u81A4\u81A5\uFFFD\u81A7\u81A9\u81AB\u81AC"+
-        "\u81AD\u81AE\u81AF\u81B0\u81B1\u81B2\u81B4\u81B5"+
-        "\u81B6\u81B7\u81B8\u81B9\u81BC\u81BD\u81BE\u81BF"+
-        "\u81C4\u81C5\u81C7\u81C8\u81C9\u81CB\u81CD\u81CE"+
-        "\u81CF\u81D0\u81D1\u81D2\u81D3\u6479\u8611\u6A21"+
-        "\u819C\u78E8\u6469\u9B54\u62B9\u672B\u83AB\u58A8"+
-        "\u9ED8\u6CAB\u6F20\u5BDE\u964C\u8C0B\u725F\u67D0"+
-        "\u62C7\u7261\u4EA9\u59C6\u6BCD\u5893\u66AE\u5E55"+
-        "\u52DF\u6155\u6728\u76EE\u7766\u7267\u7A46\u62FF"+
-        "\u54EA\u5450\u94A0\u90A3\u5A1C\u7EB3\u6C16\u4E43"+
-        "\u5976\u8010\u5948\u5357\u7537\u96BE\u56CA\u6320"+
-        "\u8111\u607C\u95F9\u6DD6\u5462\u9981\u5185\u5AE9"+
-        "\u80FD\u59AE\u9713\u502A\u6CE5\u5C3C\u62DF\u4F60"+
-        "\u533F\u817B\u9006\u6EBA\u852B\u62C8\u5E74\u78BE"+
-        "\u64B5\u637B\u5FF5\u5A18\u917F\u9E1F\u5C3F\u634F"+
-        "\u8042\u5B7D\u556E\u954A\u954D\u6D85\u60A8\u67E0"+
-        "\u72DE\u51DD\u5B81\u81D4\u81D5\u81D6\u81D7\u81D8"+
-        "\u81D9\u81DA\u81DB\u81DC\u81DD\u81DE\u81DF\u81E0"+
-        "\u81E1\u81E2\u81E4\u81E5\u81E6\u81E8\u81E9\u81EB"+
-        "\u81EE\u81EF\u81F0\u81F1\u81F2\u81F5\u81F6\u81F7"+
-        "\u81F8\u81F9\u81FA\u81FD\u81FF\u8203\u8207\u8208"+
-        "\u8209\u820A\u820B\u820E\u820F\u8211\u8213\u8215"+
-        "\u8216\u8217\u8218\u8219\u821A\u821D\u8220\u8224"+
-        "\u8225\u8226\u8227\u8229\u822E\u8232\u823A\u823C"+
-        "\u823D\u823F\uFFFD\u8240\u8241\u8242\u8243\u8245"+
-        "\u8246\u8248\u824A\u824C\u824D\u824E\u8250\u8251"+
-        "\u8252\u8253\u8254\u8255\u8256\u8257\u8259\u825B"+
-        "\u825C\u825D\u825E\u8260\u8261\u8262\u8263\u8264"+
-        "\u8265\u8266\u8267\u8269\u62E7\u6CDE\u725B\u626D"+
-        "\u94AE\u7EBD\u8113\u6D53\u519C\u5F04\u5974\u52AA"+
-        "\u6012\u5973\u6696\u8650\u759F\u632A\u61E6\u7CEF"+
-        "\u8BFA\u54E6\u6B27\u9E25\u6BB4\u85D5\u5455\u5076"+
-        "\u6CA4\u556A\u8DB4\u722C\u5E15\u6015\u7436\u62CD"+
-        "\u6392\u724C\u5F98\u6E43\u6D3E\u6500\u6F58\u76D8"+
-        "\u78D0\u76FC\u7554\u5224\u53DB\u4E53\u5E9E\u65C1"+
-        "\u802A\u80D6\u629B\u5486\u5228\u70AE\u888D\u8DD1"+
-        "\u6CE1\u5478\u80DA\u57F9\u88F4\u8D54\u966A\u914D"+
-        "\u4F69\u6C9B\u55B7\u76C6\u7830\u62A8\u70F9\u6F8E"+
-        "\u5F6D\u84EC\u68DA\u787C\u7BF7\u81A8\u670B\u9E4F"+
-        "\u6367\u78B0\u576F\u7812\u9739\u6279\u62AB\u5288"+
-        "\u7435\u6BD7\u826A\u826B\u826C\u826D\u8271\u8275"+
-        "\u8276\u8277\u8278\u827B\u827C\u8280\u8281\u8283"+
-        "\u8285\u8286\u8287\u8289\u828C\u8290\u8293\u8294"+
-        "\u8295\u8296\u829A\u829B\u829E\u82A0\u82A2\u82A3"+
-        "\u82A7\u82B2\u82B5\u82B6\u82BA\u82BB\u82BC\u82BF"+
-        "\u82C0\u82C2\u82C3\u82C5\u82C6\u82C9\u82D0\u82D6"+
-        "\u82D9\u82DA\u82DD\u82E2\u82E7\u82E8\u82E9\u82EA"+
-        "\u82EC\u82ED\u82EE\u82F0\u82F2\u82F3\u82F5\u82F6"+
-        "\u82F8\uFFFD\u82FA\u82FC\u82FD\u82FE\u82FF\u8300"+
-        "\u830A\u830B\u830D\u8310\u8312\u8313\u8316\u8318"+
-        "\u8319\u831D\u831E\u831F\u8320\u8321\u8322\u8323"+
-        "\u8324\u8325\u8326\u8329\u832A\u832E\u8330\u8332"+
-        "\u8337\u833B\u833D\u5564\u813E\u75B2\u76AE\u5339"+
-        "\u75DE\u50FB\u5C41\u8B6C\u7BC7\u504F\u7247\u9A97"+
-        "\u98D8\u6F02\u74E2\u7968\u6487\u77A5\u62FC\u9891"+
-        "\u8D2B\u54C1\u8058\u4E52\u576A\u82F9\u840D\u5E73"+
-        "\u51ED\u74F6\u8BC4\u5C4F\u5761\u6CFC\u9887\u5A46"+
-        "\u7834\u9B44\u8FEB\u7C95\u5256\u6251\u94FA\u4EC6"+
-        "\u8386\u8461\u83E9\u84B2\u57D4\u6734\u5703\u666E"+
-        "\u6D66\u8C31\u66DD\u7011\u671F\u6B3A\u6816\u621A"+
-        "\u59BB\u4E03\u51C4\u6F06\u67D2\u6C8F\u5176\u68CB"+
-        "\u5947\u6B67\u7566\u5D0E\u8110\u9F50\u65D7\u7948"+
-        "\u7941\u9A91\u8D77\u5C82\u4E5E\u4F01\u542F\u5951"+
-        "\u780C\u5668\u6C14\u8FC4\u5F03\u6C7D\u6CE3\u8BAB"+
-        "\u6390\u833E\u833F\u8341\u8342\u8344\u8345\u8348"+
-        "\u834A\u834B\u834C\u834D\u834E\u8353\u8355\u8356"+
-        "\u8357\u8358\u8359\u835D\u8362\u8370\u8371\u8372"+
-        "\u8373\u8374\u8375\u8376\u8379\u837A\u837E\u837F"+
-        "\u8380\u8381\u8382\u8383\u8384\u8387\u8388\u838A"+
-        "\u838B\u838C\u838D\u838F\u8390\u8391\u8394\u8395"+
-        "\u8396\u8397\u8399\u839A\u839D\u839F\u83A1\u83A2"+
-        "\u83A3\u83A4\u83A5\u83A6\u83A7\u83AC\u83AD\u83AE"+
-        "\uFFFD\u83AF\u83B5\u83BB\u83BE\u83BF\u83C2\u83C3"+
-        "\u83C4\u83C6\u83C8\u83C9\u83CB\u83CD\u83CE\u83D0"+
-        "\u83D1\u83D2\u83D3\u83D5\u83D7\u83D9\u83DA\u83DB"+
-        "\u83DE\u83E2\u83E3\u83E4\u83E6\u83E7\u83E8\u83EB"+
-        "\u83EC\u83ED\u6070\u6D3D\u7275\u6266\u948E\u94C5"+
-        "\u5343\u8FC1\u7B7E\u4EDF\u8C26\u4E7E\u9ED4\u94B1"+
-        "\u94B3\u524D\u6F5C\u9063\u6D45\u8C34\u5811\u5D4C"+
-        "\u6B20\u6B49\u67AA\u545B\u8154\u7F8C\u5899\u8537"+
-        "\u5F3A\u62A2\u6A47\u9539\u6572\u6084\u6865\u77A7"+
-        "\u4E54\u4FA8\u5DE7\u9798\u64AC\u7FD8\u5CED\u4FCF"+
-        "\u7A8D\u5207\u8304\u4E14\u602F\u7A83\u94A6\u4FB5"+
-        "\u4EB2\u79E6\u7434\u52E4\u82B9\u64D2\u79BD\u5BDD"+
-        "\u6C81\u9752\u8F7B\u6C22\u503E\u537F\u6E05\u64CE"+
-        "\u6674\u6C30\u60C5\u9877\u8BF7\u5E86\u743C\u7A77"+
-        "\u79CB\u4E18\u90B1\u7403\u6C42\u56DA\u914B\u6CC5"+
-        "\u8D8B\u533A\u86C6\u66F2\u8EAF\u5C48\u9A71\u6E20"+
-        "\u83EE\u83EF\u83F3\u83F4\u83F5\u83F6\u83F7\u83FA"+
-        "\u83FB\u83FC\u83FE\u83FF\u8400\u8402\u8405\u8407"+
-        "\u8408\u8409\u840A\u8410\u8412\u8413\u8414\u8415"+
-        "\u8416\u8417\u8419\u841A\u841B\u841E\u841F\u8420"+
-        "\u8421\u8422\u8423\u8429\u842A\u842B\u842C\u842D"+
-        "\u842E\u842F\u8430\u8432\u8433\u8434\u8435\u8436"+
-        "\u8437\u8439\u843A\u843B\u843E\u843F\u8440\u8441"+
-        "\u8442\u8443\u8444\u8445\u8447\u8448\u8449\uFFFD"+
-        "\u844A\u844B\u844C\u844D\u844E\u844F\u8450\u8452"+
-        "\u8453\u8454\u8455\u8456\u8458\u845D\u845E\u845F"+
-        "\u8460\u8462\u8464\u8465\u8466\u8467\u8468\u846A"+
-        "\u846E\u846F\u8470\u8472\u8474\u8477\u8479\u847B"+
-        "\u847C\u53D6\u5A36\u9F8B\u8DA3\u53BB\u5708\u98A7"+
-        "\u6743\u919B\u6CC9\u5168\u75CA\u62F3\u72AC\u5238"+
-        "\u529D\u7F3A\u7094\u7638\u5374\u9E4A\u69B7\u786E"+
-        "\u96C0\u88D9\u7FA4\u7136\u71C3\u5189\u67D3\u74E4"+
-        "\u58E4\u6518\u56B7\u8BA9\u9976\u6270\u7ED5\u60F9"+
-        "\u70ED\u58EC\u4EC1\u4EBA\u5FCD\u97E7\u4EFB\u8BA4"+
-        "\u5203\u598A\u7EAB\u6254\u4ECD\u65E5\u620E\u8338"+
-        "\u84C9\u8363\u878D\u7194\u6EB6\u5BB9\u7ED2\u5197"+
-        "\u63C9\u67D4\u8089\u8339\u8815\u5112\u5B7A\u5982"+
-        "\u8FB1\u4E73\u6C5D\u5165\u8925\u8F6F\u962E\u854A"+
-        "\u745E\u9510\u95F0\u6DA6\u82E5\u5F31\u6492\u6D12"+
-        "\u8428\u816E\u9CC3\u585E\u8D5B\u4E09\u53C1\u847D"+
-        "\u847E\u847F\u8480\u8481\u8483\u8484\u8485\u8486"+
-        "\u848A\u848D\u848F\u8490\u8491\u8492\u8493\u8494"+
-        "\u8495\u8496\u8498\u849A\u849B\u849D\u849E\u849F"+
-        "\u84A0\u84A2\u84A3\u84A4\u84A5\u84A6\u84A7\u84A8"+
-        "\u84A9\u84AA\u84AB\u84AC\u84AD\u84AE\u84B0\u84B1"+
-        "\u84B3\u84B5\u84B6\u84B7\u84BB\u84BC\u84BE\u84C0"+
-        "\u84C2\u84C3\u84C5\u84C6\u84C7\u84C8\u84CB\u84CC"+
-        "\u84CE\u84CF\u84D2\u84D4\u84D5\u84D7\uFFFD\u84D8"+
-        "\u84D9\u84DA\u84DB\u84DC\u84DE\u84E1\u84E2\u84E4"+
-        "\u84E7\u84E8\u84E9\u84EA\u84EB\u84ED\u84EE\u84EF"+
-        "\u84F1\u84F2\u84F3\u84F4\u84F5\u84F6\u84F7\u84F8"+
-        "\u84F9\u84FA\u84FB\u84FD\u84FE\u8500\u8501\u8502"+
-        "\u4F1E\u6563\u6851\u55D3\u4E27\u6414\u9A9A\u626B"+
-        "\u5AC2\u745F\u8272\u6DA9\u68EE\u50E7\u838E\u7802"+
-        "\u6740\u5239\u6C99\u7EB1\u50BB\u5565\u715E\u7B5B"+
-        "\u6652\u73CA\u82EB\u6749\u5C71\u5220\u717D\u886B"+
-        "\u95EA\u9655\u64C5\u8D61\u81B3\u5584\u6C55\u6247"+
-        "\u7F2E\u5892\u4F24\u5546\u8D4F\u664C\u4E0A\u5C1A"+
-        "\u88F3\u68A2\u634E\u7A0D\u70E7\u828D\u52FA\u97F6"+
-        "\u5C11\u54E8\u90B5\u7ECD\u5962\u8D4A\u86C7\u820C"+
-        "\u820D\u8D66\u6444\u5C04\u6151\u6D89\u793E\u8BBE"+
-        "\u7837\u7533\u547B\u4F38\u8EAB\u6DF1\u5A20\u7EC5"+
-        "\u795E\u6C88\u5BA1\u5A76\u751A\u80BE\u614E\u6E17"+
-        "\u58F0\u751F\u7525\u7272\u5347\u7EF3\u8503\u8504"+
-        "\u8505\u8506\u8507\u8508\u8509\u850A\u850B\u850D"+
-        "\u850E\u850F\u8510\u8512\u8514\u8515\u8516\u8518"+
-        "\u8519\u851B\u851C\u851D\u851E\u8520\u8522\u8523"+
-        "\u8524\u8525\u8526\u8527\u8528\u8529\u852A\u852D"+
-        "\u852E\u852F\u8530\u8531\u8532\u8533\u8534\u8535"+
-        "\u8536\u853E\u853F\u8540\u8541\u8542\u8544\u8545"+
-        "\u8546\u8547\u854B\u854C\u854D\u854E\u854F\u8550"+
-        "\u8551\u8552\u8553\u8554\u8555\uFFFD\u8557\u8558"+
-        "\u855A\u855B\u855C\u855D\u855F\u8560\u8561\u8562"+
-        "\u8563\u8565\u8566\u8567\u8569\u856A\u856B\u856C"+
-        "\u856D\u856E\u856F\u8570\u8571\u8573\u8575\u8576"+
-        "\u8577\u8578\u857C\u857D\u857F\u8580\u8581\u7701"+
-        "\u76DB\u5269\u80DC\u5723\u5E08\u5931\u72EE\u65BD"+
-        "\u6E7F\u8BD7\u5C38\u8671\u5341\u77F3\u62FE\u65F6"+
-        "\u4EC0\u98DF\u8680\u5B9E\u8BC6\u53F2\u77E2\u4F7F"+
-        "\u5C4E\u9A76\u59CB\u5F0F\u793A\u58EB\u4E16\u67FF"+
-        "\u4E8B\u62ED\u8A93\u901D\u52BF\u662F\u55DC\u566C"+
-        "\u9002\u4ED5\u4F8D\u91CA\u9970\u6C0F\u5E02\u6043"+
-        "\u5BA4\u89C6\u8BD5\u6536\u624B\u9996\u5B88\u5BFF"+
-        "\u6388\u552E\u53D7\u7626\u517D\u852C\u67A2\u68B3"+
-        "\u6B8A\u6292\u8F93\u53D4\u8212\u6DD1\u758F\u4E66"+
-        "\u8D4E\u5B70\u719F\u85AF\u6691\u66D9\u7F72\u8700"+
-        "\u9ECD\u9F20\u5C5E\u672F\u8FF0\u6811\u675F\u620D"+
-        "\u7AD6\u5885\u5EB6\u6570\u6F31\u8582\u8583\u8586"+
-        "\u8588\u8589\u858A\u858B\u858C\u858D\u858E\u8590"+
-        "\u8591\u8592\u8593\u8594\u8595\u8596\u8597\u8598"+
-        "\u8599\u859A\u859D\u859E\u859F\u85A0\u85A1\u85A2"+
-        "\u85A3\u85A5\u85A6\u85A7\u85A9\u85AB\u85AC\u85AD"+
-        "\u85B1\u85B2\u85B3\u85B4\u85B5\u85B6\u85B8\u85BA"+
-        "\u85BB\u85BC\u85BD\u85BE\u85BF\u85C0\u85C2\u85C3"+
-        "\u85C4\u85C5\u85C6\u85C7\u85C8\u85CA\u85CB\u85CC"+
-        "\u85CD\u85CE\u85D1\u85D2\uFFFD\u85D4\u85D6\u85D7"+
-        "\u85D8\u85D9\u85DA\u85DB\u85DD\u85DE\u85DF\u85E0"+
-        "\u85E1\u85E2\u85E3\u85E5\u85E6\u85E7\u85E8\u85EA"+
-        "\u85EB\u85EC\u85ED\u85EE\u85EF\u85F0\u85F1\u85F2"+
-        "\u85F3\u85F4\u85F5\u85F6\u85F7\u85F8\u6055\u5237"+
-        "\u800D\u6454\u8870\u7529\u5E05\u6813\u62F4\u971C"+
-        "\u53CC\u723D\u8C01\u6C34\u7761\u7A0E\u542E\u77AC"+
-        "\u987A\u821C\u8BF4\u7855\u6714\u70C1\u65AF\u6495"+
-        "\u5636\u601D\u79C1\u53F8\u4E1D\u6B7B\u8086\u5BFA"+
-        "\u55E3\u56DB\u4F3A\u4F3C\u9972\u5DF3\u677E\u8038"+
-        "\u6002\u9882\u9001\u5B8B\u8BBC\u8BF5\u641C\u8258"+
-        "\u64DE\u55FD\u82CF\u9165\u4FD7\u7D20\u901F\u7C9F"+
-        "\u50F3\u5851\u6EAF\u5BBF\u8BC9\u8083\u9178\u849C"+
-        "\u7B97\u867D\u968B\u968F\u7EE5\u9AD3\u788E\u5C81"+
-        "\u7A57\u9042\u96A7\u795F\u5B59\u635F\u7B0B\u84D1"+
-        "\u68AD\u5506\u7F29\u7410\u7D22\u9501\u6240\u584C"+
-        "\u4ED6\u5B83\u5979\u5854\u85F9\u85FA\u85FC\u85FD"+
-        "\u85FE\u8600\u8601\u8602\u8603\u8604\u8606\u8607"+
-        "\u8608\u8609\u860A\u860B\u860C\u860D\u860E\u860F"+
-        "\u8610\u8612\u8613\u8614\u8615\u8617\u8618\u8619"+
-        "\u861A\u861B\u861C\u861D\u861E\u861F\u8620\u8621"+
-        "\u8622\u8623\u8624\u8625\u8626\u8628\u862A\u862B"+
-        "\u862C\u862D\u862E\u862F\u8630\u8631\u8632\u8633"+
-        "\u8634\u8635\u8636\u8637\u8639\u863A\u863B\u863D"+
-        "\u863E\u863F\u8640\uFFFD\u8641\u8642\u8643\u8644"+
-        "\u8645\u8646\u8647\u8648\u8649\u864A\u864B\u864C"+
-        "\u8652\u8653\u8655\u8656\u8657\u8658\u8659\u865B"+
-        "\u865C\u865D\u865F\u8660\u8661\u8663\u8664\u8665"+
-        "\u8666\u8667\u8668\u8669\u866A\u736D\u631E\u8E4B"+
-        "\u8E0F\u80CE\u82D4\u62AC\u53F0\u6CF0\u915E\u592A"+
-        "\u6001\u6C70\u574D\u644A\u8D2A\u762B\u6EE9\u575B"+
-        "\u6A80\u75F0\u6F6D\u8C2D\u8C08\u5766\u6BEF\u8892"+
-        "\u78B3\u63A2\u53F9\u70AD\u6C64\u5858\u642A\u5802"+
-        "\u68E0\u819B\u5510\u7CD6\u5018\u8EBA\u6DCC\u8D9F"+
-        "\u70EB\u638F\u6D9B\u6ED4\u7EE6\u8404\u6843\u9003"+
-        "\u6DD8\u9676\u8BA8\u5957\u7279\u85E4\u817E\u75BC"+
-        "\u8A8A\u68AF\u5254\u8E22\u9511\u63D0\u9898\u8E44"+
-        "\u557C\u4F53\u66FF\u568F\u60D5\u6D95\u5243\u5C49"+
-        "\u5929\u6DFB\u586B\u7530\u751C\u606C\u8214\u8146"+
-        "\u6311\u6761\u8FE2\u773A\u8DF3\u8D34\u94C1\u5E16"+
-        "\u5385\u542C\u70C3\u866D\u866F\u8670\u8672\u8673"+
-        "\u8674\u8675\u8676\u8677\u8678\u8683\u8684\u8685"+
-        "\u8686\u8687\u8688\u8689\u868E\u868F\u8690\u8691"+
-        "\u8692\u8694\u8696\u8697\u8698\u8699\u869A\u869B"+
-        "\u869E\u869F\u86A0\u86A1\u86A2\u86A5\u86A6\u86AB"+
-        "\u86AD\u86AE\u86B2\u86B3\u86B7\u86B8\u86B9\u86BB"+
-        "\u86BC\u86BD\u86BE\u86BF\u86C1\u86C2\u86C3\u86C5"+
-        "\u86C8\u86CC\u86CD\u86D2\u86D3\u86D5\u86D6\u86D7"+
-        "\u86DA\u86DC\uFFFD\u86DD\u86E0\u86E1\u86E2\u86E3"+
-        "\u86E5\u86E6\u86E7\u86E8\u86EA\u86EB\u86EC\u86EF"+
-        "\u86F5\u86F6\u86F7\u86FA\u86FB\u86FC\u86FD\u86FF"+
-        "\u8701\u8704\u8705\u8706\u870B\u870C\u870E\u870F"+
-        "\u8710\u8711\u8714\u8716\u6C40\u5EF7\u505C\u4EAD"+
-        "\u5EAD\u633A\u8247\u901A\u6850\u916E\u77B3\u540C"+
-        "\u94DC\u5F64\u7AE5\u6876\u6345\u7B52\u7EDF\u75DB"+
-        "\u5077\u6295\u5934\u900F\u51F8\u79C3\u7A81\u56FE"+
-        "\u5F92\u9014\u6D82\u5C60\u571F\u5410\u5154\u6E4D"+
-        "\u56E2\u63A8\u9893\u817F\u8715\u892A\u9000\u541E"+
-        "\u5C6F\u81C0\u62D6\u6258\u8131\u9E35\u9640\u9A6E"+
-        "\u9A7C\u692D\u59A5\u62D3\u553E\u6316\u54C7\u86D9"+
-        "\u6D3C\u5A03\u74E6\u889C\u6B6A\u5916\u8C4C\u5F2F"+
-        "\u6E7E\u73A9\u987D\u4E38\u70F7\u5B8C\u7897\u633D"+
-        "\u665A\u7696\u60CB\u5B9B\u5A49\u4E07\u8155\u6C6A"+
-        "\u738B\u4EA1\u6789\u7F51\u5F80\u65FA\u671B\u5FD8"+
-        "\u5984\u5A01\u8719\u871B\u871D\u871F\u8720\u8724"+
-        "\u8726\u8727\u8728\u872A\u872B\u872C\u872D\u872F"+
-        "\u8730\u8732\u8733\u8735\u8736\u8738\u8739\u873A"+
-        "\u873C\u873D\u8740\u8741\u8742\u8743\u8744\u8745"+
-        "\u8746\u874A\u874B\u874D\u874F\u8750\u8751\u8752"+
-        "\u8754\u8755\u8756\u8758\u875A\u875B\u875C\u875D"+
-        "\u875E\u875F\u8761\u8762\u8766\u8767\u8768\u8769"+
-        "\u876A\u876B\u876C\u876D\u876F\u8771\u8772\u8773"+
-        "\u8775\uFFFD\u8777\u8778\u8779\u877A\u877F\u8780"+
-        "\u8781\u8784\u8786\u8787\u8789\u878A\u878C\u878E"+
-        "\u878F\u8790\u8791\u8792\u8794\u8795\u8796\u8798"+
-        "\u8799\u879A\u879B\u879C\u879D\u879E\u87A0\u87A1"+
-        "\u87A2\u87A3\u87A4\u5DCD\u5FAE\u5371\u97E6\u8FDD"+
-        "\u6845\u56F4\u552F\u60DF\u4E3A\u6F4D\u7EF4\u82C7"+
-        "\u840E\u59D4\u4F1F\u4F2A\u5C3E\u7EAC\u672A\u851A"+
-        "\u5473\u754F\u80C3\u5582\u9B4F\u4F4D\u6E2D\u8C13"+
-        "\u5C09\u6170\u536B\u761F\u6E29\u868A\u6587\u95FB"+
-        "\u7EB9\u543B\u7A33\u7D0A\u95EE\u55E1\u7FC1\u74EE"+
-        "\u631D\u8717\u6DA1\u7A9D\u6211\u65A1\u5367\u63E1"+
-        "\u6C83\u5DEB\u545C\u94A8\u4E4C\u6C61\u8BEC\u5C4B"+
-        "\u65E0\u829C\u68A7\u543E\u5434\u6BCB\u6B66\u4E94"+
-        "\u6342\u5348\u821E\u4F0D\u4FAE\u575E\u620A\u96FE"+
-        "\u6664\u7269\u52FF\u52A1\u609F\u8BEF\u6614\u7199"+
-        "\u6790\u897F\u7852\u77FD\u6670\u563B\u5438\u9521"+
-        "\u727A\u87A5\u87A6\u87A7\u87A9\u87AA\u87AE\u87B0"+
-        "\u87B1\u87B2\u87B4\u87B6\u87B7\u87B8\u87B9\u87BB"+
-        "\u87BC\u87BE\u87BF\u87C1\u87C2\u87C3\u87C4\u87C5"+
-        "\u87C7\u87C8\u87C9\u87CC\u87CD\u87CE\u87CF\u87D0"+
-        "\u87D4\u87D5\u87D6\u87D7\u87D8\u87D9\u87DA\u87DC"+
-        "\u87DD\u87DE\u87DF\u87E1\u87E2\u87E3\u87E4\u87E6"+
-        "\u87E7\u87E8\u87E9\u87EB\u87EC\u87ED\u87EF\u87F0"+
-        "\u87F1\u87F2\u87F3\u87F4\u87F5\u87F6\u87F7\u87F8"+
-        "\uFFFD\u87FA\u87FB\u87FC\u87FD\u87FF\u8800\u8801"+
-        "\u8802\u8804\u8805\u8806\u8807\u8808\u8809\u880B"+
-        "\u880C\u880D\u880E\u880F\u8810\u8811\u8812\u8814"+
-        "\u8817\u8818\u8819\u881A\u881C\u881D\u881E\u881F"+
-        "\u8820\u8823\u7A00\u606F\u5E0C\u6089\u819D\u5915"+
-        "\u60DC\u7184\u70EF\u6EAA\u6C50\u7280\u6A84\u88AD"+
-        "\u5E2D\u4E60\u5AB3\u559C\u94E3\u6D17\u7CFB\u9699"+
-        "\u620F\u7EC6\u778E\u867E\u5323\u971E\u8F96\u6687"+
-        "\u5CE1\u4FA0\u72ED\u4E0B\u53A6\u590F\u5413\u6380"+
-        "\u9528\u5148\u4ED9\u9C9C\u7EA4\u54B8\u8D24\u8854"+
-        "\u8237\u95F2\u6D8E\u5F26\u5ACC\u663E\u9669\u73B0"+
-        "\u732E\u53BF\u817A\u9985\u7FA1\u5BAA\u9677\u9650"+
-        "\u7EBF\u76F8\u53A2\u9576\u9999\u7BB1\u8944\u6E58"+
-        "\u4E61\u7FD4\u7965\u8BE6\u60F3\u54CD\u4EAB\u9879"+
-        "\u5DF7\u6A61\u50CF\u5411\u8C61\u8427\u785D\u9704"+
-        "\u524A\u54EE\u56A3\u9500\u6D88\u5BB5\u6DC6\u6653";
-
-    private final static String innerIndex5=
-        "\u8824\u8825\u8826\u8827\u8828\u8829\u882A\u882B"+
-        "\u882C\u882D\u882E\u882F\u8830\u8831\u8833\u8834"+
-        "\u8835\u8836\u8837\u8838\u883A\u883B\u883D\u883E"+
-        "\u883F\u8841\u8842\u8843\u8846\u8847\u8848\u8849"+
-        "\u884A\u884B\u884E\u884F\u8850\u8851\u8852\u8853"+
-        "\u8855\u8856\u8858\u885A\u885B\u885C\u885D\u885E"+
-        "\u885F\u8860\u8866\u8867\u886A\u886D\u886F\u8871"+
-        "\u8873\u8874\u8875\u8876\u8878\u8879\u887A\uFFFD"+
-        "\u887B\u887C\u8880\u8883\u8886\u8887\u8889\u888A"+
-        "\u888C\u888E\u888F\u8890\u8891\u8893\u8894\u8895"+
-        "\u8897\u8898\u8899\u889A\u889B\u889D\u889E\u889F"+
-        "\u88A0\u88A1\u88A3\u88A5\u88A6\u88A7\u88A8\u88A9"+
-        "\u88AA\u5C0F\u5B5D\u6821\u8096\u5578\u7B11\u6548"+
-        "\u6954\u4E9B\u6B47\u874E\u978B\u534F\u631F\u643A"+
-        "\u90AA\u659C\u80C1\u8C10\u5199\u68B0\u5378\u87F9"+
-        "\u61C8\u6CC4\u6CFB\u8C22\u5C51\u85AA\u82AF\u950C"+
-        "\u6B23\u8F9B\u65B0\u5FFB\u5FC3\u4FE1\u8845\u661F"+
-        "\u8165\u7329\u60FA\u5174\u5211\u578B\u5F62\u90A2"+
-        "\u884C\u9192\u5E78\u674F\u6027\u59D3\u5144\u51F6"+
-        "\u80F8\u5308\u6C79\u96C4\u718A\u4F11\u4FEE\u7F9E"+
-        "\u673D\u55C5\u9508\u79C0\u8896\u7EE3\u589F\u620C"+
-        "\u9700\u865A\u5618\u987B\u5F90\u8BB8\u84C4\u9157"+
-        "\u53D9\u65ED\u5E8F\u755C\u6064\u7D6E\u5A7F\u7EEA"+
-        "\u7EED\u8F69\u55A7\u5BA3\u60AC\u65CB\u7384\u88AC"+
-        "\u88AE\u88AF\u88B0\u88B2\u88B3\u88B4\u88B5\u88B6"+
-        "\u88B8\u88B9\u88BA\u88BB\u88BD\u88BE\u88BF\u88C0"+
-        "\u88C3\u88C4\u88C7\u88C8\u88CA\u88CB\u88CC\u88CD"+
-        "\u88CF\u88D0\u88D1\u88D3\u88D6\u88D7\u88DA\u88DB"+
-        "\u88DC\u88DD\u88DE\u88E0\u88E1\u88E6\u88E7\u88E9"+
-        "\u88EA\u88EB\u88EC\u88ED\u88EE\u88EF\u88F2\u88F5"+
-        "\u88F6\u88F7\u88FA\u88FB\u88FD\u88FF\u8900\u8901"+
-        "\u8903\u8904\u8905\u8906\u8907\u8908\uFFFD\u8909"+
-        "\u890B\u890C\u890D\u890E\u890F\u8911\u8914\u8915"+
-        "\u8916\u8917\u8918\u891C\u891D\u891E\u891F\u8920"+
-        "\u8922\u8923\u8924\u8926\u8927\u8928\u8929\u892C"+
-        "\u892D\u892E\u892F\u8931\u8932\u8933\u8935\u8937"+
-        "\u9009\u7663\u7729\u7EDA\u9774\u859B\u5B66\u7A74"+
-        "\u96EA\u8840\u52CB\u718F\u5FAA\u65EC\u8BE2\u5BFB"+
-        "\u9A6F\u5DE1\u6B89\u6C5B\u8BAD\u8BAF\u900A\u8FC5"+
-        "\u538B\u62BC\u9E26\u9E2D\u5440\u4E2B\u82BD\u7259"+
-        "\u869C\u5D16\u8859\u6DAF\u96C5\u54D1\u4E9A\u8BB6"+
-        "\u7109\u54BD\u9609\u70DF\u6DF9\u76D0\u4E25\u7814"+
-        "\u8712\u5CA9\u5EF6\u8A00\u989C\u960E\u708E\u6CBF"+
-        "\u5944\u63A9\u773C\u884D\u6F14\u8273\u5830\u71D5"+
-        "\u538C\u781A\u96C1\u5501\u5F66\u7130\u5BB4\u8C1A"+
-        "\u9A8C\u6B83\u592E\u9E2F\u79E7\u6768\u626C\u4F6F"+
-        "\u75A1\u7F8A\u6D0B\u9633\u6C27\u4EF0\u75D2\u517B"+
-        "\u6837\u6F3E\u9080\u8170\u5996\u7476\u8938\u8939"+
-        "\u893A\u893B\u893C\u893D\u893E\u893F\u8940\u8942"+
-        "\u8943\u8945\u8946\u8947\u8948\u8949\u894A\u894B"+
-        "\u894C\u894D\u894E\u894F\u8950\u8951\u8952\u8953"+
-        "\u8954\u8955\u8956\u8957\u8958\u8959\u895A\u895B"+
-        "\u895C\u895D\u8960\u8961\u8962\u8963\u8964\u8965"+
-        "\u8967\u8968\u8969\u896A\u896B\u896C\u896D\u896E"+
-        "\u896F\u8970\u8971\u8972\u8973\u8974\u8975\u8976"+
-        "\u8977\u8978\u8979\u897A\u897C\uFFFD\u897D\u897E"+
-        "\u8980\u8982\u8984\u8985\u8987\u8988\u8989\u898A"+
-        "\u898B\u898C\u898D\u898E\u898F\u8990\u8991\u8992"+
-        "\u8993\u8994\u8995\u8996\u8997\u8998\u8999\u899A"+
-        "\u899B\u899C\u899D\u899E\u899F\u89A0\u89A1\u6447"+
-        "\u5C27\u9065\u7A91\u8C23\u59DA\u54AC\u8200\u836F"+
-        "\u8981\u8000\u6930\u564E\u8036\u7237\u91CE\u51B6"+
-        "\u4E5F\u9875\u6396\u4E1A\u53F6\u66F3\u814B\u591C"+
-        "\u6DB2\u4E00\u58F9\u533B\u63D6\u94F1\u4F9D\u4F0A"+
-        "\u8863\u9890\u5937\u9057\u79FB\u4EEA\u80F0\u7591"+
-        "\u6C82\u5B9C\u59E8\u5F5D\u6905\u8681\u501A\u5DF2"+
-        "\u4E59\u77E3\u4EE5\u827A\u6291\u6613\u9091\u5C79"+
-        "\u4EBF\u5F79\u81C6\u9038\u8084\u75AB\u4EA6\u88D4"+
-        "\u610F\u6BC5\u5FC6\u4E49\u76CA\u6EA2\u8BE3\u8BAE"+
-        "\u8C0A\u8BD1\u5F02\u7FFC\u7FCC\u7ECE\u8335\u836B"+
-        "\u56E0\u6BB7\u97F3\u9634\u59FB\u541F\u94F6\u6DEB"+
-        "\u5BC5\u996E\u5C39\u5F15\u9690\u89A2\u89A3\u89A4"+
-        "\u89A5\u89A6\u89A7\u89A8\u89A9\u89AA\u89AB\u89AC"+
-        "\u89AD\u89AE\u89AF\u89B0\u89B1\u89B2\u89B3\u89B4"+
-        "\u89B5\u89B6\u89B7\u89B8\u89B9\u89BA\u89BB\u89BC"+
-        "\u89BD\u89BE\u89BF\u89C0\u89C3\u89CD\u89D3\u89D4"+
-        "\u89D5\u89D7\u89D8\u89D9\u89DB\u89DD\u89DF\u89E0"+
-        "\u89E1\u89E2\u89E4\u89E7\u89E8\u89E9\u89EA\u89EC"+
-        "\u89ED\u89EE\u89F0\u89F1\u89F2\u89F4\u89F5\u89F6"+
-        "\u89F7\u89F8\u89F9\u89FA\uFFFD\u89FB\u89FC\u89FD"+
-        "\u89FE\u89FF\u8A01\u8A02\u8A03\u8A04\u8A05\u8A06"+
-        "\u8A08\u8A09\u8A0A\u8A0B\u8A0C\u8A0D\u8A0E\u8A0F"+
-        "\u8A10\u8A11\u8A12\u8A13\u8A14\u8A15\u8A16\u8A17"+
-        "\u8A18\u8A19\u8A1A\u8A1B\u8A1C\u8A1D\u5370\u82F1"+
-        "\u6A31\u5A74\u9E70\u5E94\u7F28\u83B9\u8424\u8425"+
-        "\u8367\u8747\u8FCE\u8D62\u76C8\u5F71\u9896\u786C"+
-        "\u6620\u54DF\u62E5\u4F63\u81C3\u75C8\u5EB8\u96CD"+
-        "\u8E0A\u86F9\u548F\u6CF3\u6D8C\u6C38\u607F\u52C7"+
-        "\u7528\u5E7D\u4F18\u60A0\u5FE7\u5C24\u7531\u90AE"+
-        "\u94C0\u72B9\u6CB9\u6E38\u9149\u6709\u53CB\u53F3"+
-        "\u4F51\u91C9\u8BF1\u53C8\u5E7C\u8FC2\u6DE4\u4E8E"+
-        "\u76C2\u6986\u865E\u611A\u8206\u4F59\u4FDE\u903E"+
-        "\u9C7C\u6109\u6E1D\u6E14\u9685\u4E88\u5A31\u96E8"+
-        "\u4E0E\u5C7F\u79B9\u5B87\u8BED\u7FBD\u7389\u57DF"+
-        "\u828B\u90C1\u5401\u9047\u55BB\u5CEA\u5FA1\u6108"+
-        "\u6B32\u72F1\u80B2\u8A89\u8A1E\u8A1F\u8A20\u8A21"+
-        "\u8A22\u8A23\u8A24\u8A25\u8A26\u8A27\u8A28\u8A29"+
-        "\u8A2A\u8A2B\u8A2C\u8A2D\u8A2E\u8A2F\u8A30\u8A31"+
-        "\u8A32\u8A33\u8A34\u8A35\u8A36\u8A37\u8A38\u8A39"+
-        "\u8A3A\u8A3B\u8A3C\u8A3D\u8A3F\u8A40\u8A41\u8A42"+
-        "\u8A43\u8A44\u8A45\u8A46\u8A47\u8A49\u8A4A\u8A4B"+
-        "\u8A4C\u8A4D\u8A4E\u8A4F\u8A50\u8A51\u8A52\u8A53"+
-        "\u8A54\u8A55\u8A56\u8A57\u8A58\u8A59\u8A5A\u8A5B"+
-        "\u8A5C\u8A5D\u8A5E\uFFFD\u8A5F\u8A60\u8A61\u8A62"+
-        "\u8A63\u8A64\u8A65\u8A66\u8A67\u8A68\u8A69\u8A6A"+
-        "\u8A6B\u8A6C\u8A6D\u8A6E\u8A6F\u8A70\u8A71\u8A72"+
-        "\u8A73\u8A74\u8A75\u8A76\u8A77\u8A78\u8A7A\u8A7B"+
-        "\u8A7C\u8A7D\u8A7E\u8A7F\u8A80\u6D74\u5BD3\u88D5"+
-        "\u9884\u8C6B\u9A6D\u9E33\u6E0A\u51A4\u5143\u57A3"+
-        "\u8881\u539F\u63F4\u8F95\u56ED\u5458\u5706\u733F"+
-        "\u6E90\u7F18\u8FDC\u82D1\u613F\u6028\u9662\u66F0"+
-        "\u7EA6\u8D8A\u8DC3\u94A5\u5CB3\u7CA4\u6708\u60A6"+
-        "\u9605\u8018\u4E91\u90E7\u5300\u9668\u5141\u8FD0"+
-        "\u8574\u915D\u6655\u97F5\u5B55\u531D\u7838\u6742"+
-        "\u683D\u54C9\u707E\u5BB0\u8F7D\u518D\u5728\u54B1"+
-        "\u6512\u6682\u8D5E\u8D43\u810F\u846C\u906D\u7CDF"+
-        "\u51FF\u85FB\u67A3\u65E9\u6FA1\u86A4\u8E81\u566A"+
-        "\u9020\u7682\u7076\u71E5\u8D23\u62E9\u5219\u6CFD"+
-        "\u8D3C\u600E\u589E\u618E\u66FE\u8D60\u624E\u55B3"+
-        "\u6E23\u672D\u8F67\u8A81\u8A82\u8A83\u8A84\u8A85"+
-        "\u8A86\u8A87\u8A88\u8A8B\u8A8C\u8A8D\u8A8E\u8A8F"+
-        "\u8A90\u8A91\u8A92\u8A94\u8A95\u8A96\u8A97\u8A98"+
-        "\u8A99\u8A9A\u8A9B\u8A9C\u8A9D\u8A9E\u8A9F\u8AA0"+
-        "\u8AA1\u8AA2\u8AA3\u8AA4\u8AA5\u8AA6\u8AA7\u8AA8"+
-        "\u8AA9\u8AAA\u8AAB\u8AAC\u8AAD\u8AAE\u8AAF\u8AB0"+
-        "\u8AB1\u8AB2\u8AB3\u8AB4\u8AB5\u8AB6\u8AB7\u8AB8"+
-        "\u8AB9\u8ABA\u8ABB\u8ABC\u8ABD\u8ABE\u8ABF\u8AC0"+
-        "\u8AC1\u8AC2\uFFFD\u8AC3\u8AC4\u8AC5\u8AC6\u8AC7"+
-        "\u8AC8\u8AC9\u8ACA\u8ACB\u8ACC\u8ACD\u8ACE\u8ACF"+
-        "\u8AD0\u8AD1\u8AD2\u8AD3\u8AD4\u8AD5\u8AD6\u8AD7"+
-        "\u8AD8\u8AD9\u8ADA\u8ADB\u8ADC\u8ADD\u8ADE\u8ADF"+
-        "\u8AE0\u8AE1\u8AE2\u8AE3\u94E1\u95F8\u7728\u6805"+
-        "\u69A8\u548B\u4E4D\u70B8\u8BC8\u6458\u658B\u5B85"+
-        "\u7A84\u503A\u5BE8\u77BB\u6BE1\u8A79\u7C98\u6CBE"+
-        "\u76CF\u65A9\u8F97\u5D2D\u5C55\u8638\u6808\u5360"+
-        "\u6218\u7AD9\u6E5B\u7EFD\u6A1F\u7AE0\u5F70\u6F33"+
-        "\u5F20\u638C\u6DA8\u6756\u4E08\u5E10\u8D26\u4ED7"+
-        "\u80C0\u7634\u969C\u62DB\u662D\u627E\u6CBC\u8D75"+
-        "\u7167\u7F69\u5146\u8087\u53EC\u906E\u6298\u54F2"+
-        "\u86F0\u8F99\u8005\u9517\u8517\u8FD9\u6D59\u73CD"+
-        "\u659F\u771F\u7504\u7827\u81FB\u8D1E\u9488\u4FA6"+
-        "\u6795\u75B9\u8BCA\u9707\u632F\u9547\u9635\u84B8"+
-        "\u6323\u7741\u5F81\u72F0\u4E89\u6014\u6574\u62EF"+
-        "\u6B63\u653F\u8AE4\u8AE5\u8AE6\u8AE7\u8AE8\u8AE9"+
-        "\u8AEA\u8AEB\u8AEC\u8AED\u8AEE\u8AEF\u8AF0\u8AF1"+
-        "\u8AF2\u8AF3\u8AF4\u8AF5\u8AF6\u8AF7\u8AF8\u8AF9"+
-        "\u8AFA\u8AFB\u8AFC\u8AFD\u8AFE\u8AFF\u8B00\u8B01"+
-        "\u8B02\u8B03\u8B04\u8B05\u8B06\u8B08\u8B09\u8B0A"+
-        "\u8B0B\u8B0C\u8B0D\u8B0E\u8B0F\u8B10\u8B11\u8B12"+
-        "\u8B13\u8B14\u8B15\u8B16\u8B17\u8B18\u8B19\u8B1A"+
-        "\u8B1B\u8B1C\u8B1D\u8B1E\u8B1F\u8B20\u8B21\u8B22"+
-        "\u8B23\uFFFD\u8B24\u8B25\u8B27\u8B28\u8B29\u8B2A"+
-        "\u8B2B\u8B2C\u8B2D\u8B2E\u8B2F\u8B30\u8B31\u8B32"+
-        "\u8B33\u8B34\u8B35\u8B36\u8B37\u8B38\u8B39\u8B3A"+
-        "\u8B3B\u8B3C\u8B3D\u8B3E\u8B3F\u8B40\u8B41\u8B42"+
-        "\u8B43\u8B44\u8B45\u5E27\u75C7\u90D1\u8BC1\u829D"+
-        "\u679D\u652F\u5431\u8718\u77E5\u80A2\u8102\u6C41"+
-        "\u4E4B\u7EC7\u804C\u76F4\u690D\u6B96\u6267\u503C"+
-        "\u4F84\u5740\u6307\u6B62\u8DBE\u53EA\u65E8\u7EB8"+
-        "\u5FD7\u631A\u63B7\u81F3\u81F4\u7F6E\u5E1C\u5CD9"+
-        "\u5236\u667A\u79E9\u7A1A\u8D28\u7099\u75D4\u6EDE"+
-        "\u6CBB\u7A92\u4E2D\u76C5\u5FE0\u949F\u8877\u7EC8"+
-        "\u79CD\u80BF\u91CD\u4EF2\u4F17\u821F\u5468\u5DDE"+
-        "\u6D32\u8BCC\u7CA5\u8F74\u8098\u5E1A\u5492\u76B1"+
-        "\u5B99\u663C\u9AA4\u73E0\u682A\u86DB\u6731\u732A"+
-        "\u8BF8\u8BDB\u9010\u7AF9\u70DB\u716E\u62C4\u77A9"+
-        "\u5631\u4E3B\u8457\u67F1\u52A9\u86C0\u8D2E\u94F8"+
-        "\u7B51\u8B46\u8B47\u8B48\u8B49\u8B4A\u8B4B\u8B4C"+
-        "\u8B4D\u8B4E\u8B4F\u8B50\u8B51\u8B52\u8B53\u8B54"+
-        "\u8B55\u8B56\u8B57\u8B58\u8B59\u8B5A\u8B5B\u8B5C"+
-        "\u8B5D\u8B5E\u8B5F\u8B60\u8B61\u8B62\u8B63\u8B64"+
-        "\u8B65\u8B67\u8B68\u8B69\u8B6A\u8B6B\u8B6D\u8B6E"+
-        "\u8B6F\u8B70\u8B71\u8B72\u8B73\u8B74\u8B75\u8B76"+
-        "\u8B77\u8B78\u8B79\u8B7A\u8B7B\u8B7C\u8B7D\u8B7E"+
-        "\u8B7F\u8B80\u8B81\u8B82\u8B83\u8B84\u8B85\u8B86"+
-        "\uFFFD\u8B87\u8B88\u8B89\u8B8A\u8B8B\u8B8C\u8B8D"+
-        "\u8B8E\u8B8F\u8B90\u8B91\u8B92\u8B93\u8B94\u8B95"+
-        "\u8B96\u8B97\u8B98\u8B99\u8B9A\u8B9B\u8B9C\u8B9D"+
-        "\u8B9E\u8B9F\u8BAC\u8BB1\u8BBB\u8BC7\u8BD0\u8BEA"+
-        "\u8C09\u8C1E\u4F4F\u6CE8\u795D\u9A7B\u6293\u722A"+
-        "\u62FD\u4E13\u7816\u8F6C\u64B0\u8D5A\u7BC6\u6869"+
-        "\u5E84\u88C5\u5986\u649E\u58EE\u72B6\u690E\u9525"+
-        "\u8FFD\u8D58\u5760\u7F00\u8C06\u51C6\u6349\u62D9"+
-        "\u5353\u684C\u7422\u8301\u914C\u5544\u7740\u707C"+
-        "\u6D4A\u5179\u54A8\u8D44\u59FF\u6ECB\u6DC4\u5B5C"+
-        "\u7D2B\u4ED4\u7C7D\u6ED3\u5B50\u81EA\u6E0D\u5B57"+
-        "\u9B03\u68D5\u8E2A\u5B97\u7EFC\u603B\u7EB5\u90B9"+
-        "\u8D70\u594F\u63CD\u79DF\u8DB3\u5352\u65CF\u7956"+
-        "\u8BC5\u963B\u7EC4\u94BB\u7E82\u5634\u9189\u6700"+
-        "\u7F6A\u5C0A\u9075\u6628\u5DE6\u4F50\u67DE\u505A"+
-        "\u4F5C\u5750\u5EA7\uE810\uE811\uE812\uE813\uE814"+
-        "\u8C38\u8C39\u8C3A\u8C3B\u8C3C\u8C3D\u8C3E\u8C3F"+
-        "\u8C40\u8C42\u8C43\u8C44\u8C45\u8C48\u8C4A\u8C4B"+
-        "\u8C4D\u8C4E\u8C4F\u8C50\u8C51\u8C52\u8C53\u8C54"+
-        "\u8C56\u8C57\u8C58\u8C59\u8C5B\u8C5C\u8C5D\u8C5E"+
-        "\u8C5F\u8C60\u8C63\u8C64\u8C65\u8C66\u8C67\u8C68"+
-        "\u8C69\u8C6C\u8C6D\u8C6E\u8C6F\u8C70\u8C71\u8C72"+
-        "\u8C74\u8C75\u8C76\u8C77\u8C7B\u8C7C\u8C7D\u8C7E"+
-        "\u8C7F\u8C80\u8C81\u8C83\u8C84\u8C86\u8C87\uFFFD"+
-        "\u8C88\u8C8B\u8C8D\u8C8E\u8C8F\u8C90\u8C91\u8C92"+
-        "\u8C93\u8C95\u8C96\u8C97\u8C99\u8C9A\u8C9B\u8C9C"+
-        "\u8C9D\u8C9E\u8C9F\u8CA0\u8CA1\u8CA2\u8CA3\u8CA4"+
-        "\u8CA5\u8CA6\u8CA7\u8CA8\u8CA9\u8CAA\u8CAB\u8CAC"+
-        "\u8CAD\u4E8D\u4E0C\u5140\u4E10\u5EFF\u5345\u4E15"+
-        "\u4E98\u4E1E\u9B32\u5B6C\u5669\u4E28\u79BA\u4E3F"+
-        "\u5315\u4E47\u592D\u723B\u536E\u6C10\u56DF\u80E4"+
-        "\u9997\u6BD3\u777E\u9F17\u4E36\u4E9F\u9F10\u4E5C"+
-        "\u4E69\u4E93\u8288\u5B5B\u556C\u560F\u4EC4\u538D"+
-        "\u539D\u53A3\u53A5\u53AE\u9765\u8D5D\u531A\u53F5"+
-        "\u5326\u532E\u533E\u8D5C\u5366\u5363\u5202\u5208"+
-        "\u520E\u522D\u5233\u523F\u5240\u524C\u525E\u5261"+
-        "\u525C\u84AF\u527D\u5282\u5281\u5290\u5293\u5182"+
-        "\u7F54\u4EBB\u4EC3\u4EC9\u4EC2\u4EE8\u4EE1\u4EEB"+
-        "\u4EDE\u4F1B\u4EF3\u4F22\u4F64\u4EF5\u4F25\u4F27"+
-        "\u4F09\u4F2B\u4F5E\u4F67\u6538\u4F5A\u4F5D\u8CAE"+
-        "\u8CAF\u8CB0\u8CB1\u8CB2\u8CB3\u8CB4\u8CB5\u8CB6"+
-        "\u8CB7\u8CB8\u8CB9\u8CBA\u8CBB\u8CBC\u8CBD\u8CBE"+
-        "\u8CBF\u8CC0\u8CC1\u8CC2\u8CC3\u8CC4\u8CC5\u8CC6"+
-        "\u8CC7\u8CC8\u8CC9\u8CCA\u8CCB\u8CCC\u8CCD\u8CCE"+
-        "\u8CCF\u8CD0\u8CD1\u8CD2\u8CD3\u8CD4\u8CD5\u8CD6"+
-        "\u8CD7\u8CD8\u8CD9\u8CDA\u8CDB\u8CDC\u8CDD\u8CDE"+
-        "\u8CDF\u8CE0\u8CE1\u8CE2\u8CE3\u8CE4\u8CE5\u8CE6"+
-        "\u8CE7\u8CE8\u8CE9\u8CEA\u8CEB\u8CEC\uFFFD\u8CED"+
-        "\u8CEE\u8CEF\u8CF0\u8CF1\u8CF2\u8CF3\u8CF4\u8CF5"+
-        "\u8CF6\u8CF7\u8CF8\u8CF9\u8CFA\u8CFB\u8CFC\u8CFD"+
-        "\u8CFE\u8CFF\u8D00\u8D01\u8D02\u8D03\u8D04\u8D05"+
-        "\u8D06\u8D07\u8D08\u8D09\u8D0A\u8D0B\u8D0C\u8D0D"+
-        "\u4F5F\u4F57\u4F32\u4F3D\u4F76\u4F74\u4F91\u4F89"+
-        "\u4F83\u4F8F\u4F7E\u4F7B\u4FAA\u4F7C\u4FAC\u4F94"+
-        "\u4FE6\u4FE8\u4FEA\u4FC5\u4FDA\u4FE3\u4FDC\u4FD1"+
-        "\u4FDF\u4FF8\u5029\u504C\u4FF3\u502C\u500F\u502E"+
-        "\u502D\u4FFE\u501C\u500C\u5025\u5028\u507E\u5043"+
-        "\u5055\u5048\u504E\u506C\u507B\u50A5\u50A7\u50A9"+
-        "\u50BA\u50D6\u5106\u50ED\u50EC\u50E6\u50EE\u5107"+
-        "\u510B\u4EDD\u6C3D\u4F58\u4F65\u4FCE\u9FA0\u6C46"+