diff options
author | Lorry Tar Creator <lorry-tar-importer@baserock.org> | 2013-03-14 05:42:27 +0000 |
---|---|---|
committer | <> | 2013-04-03 16:25:08 +0000 |
commit | c4dd7a1a684490673e25aaf4fabec5df138854c4 (patch) | |
tree | 4d57c44caae4480efff02b90b9be86f44bf25409 /ext/mbstring/libmbfl | |
download | php2-master.tar.gz |
Imported from /home/lorry/working-area/delta_php2/php-5.4.13.tar.bz2.HEADphp-5.4.13master
Diffstat (limited to 'ext/mbstring/libmbfl')
250 files changed, 71482 insertions, 0 deletions
diff --git a/ext/mbstring/libmbfl/AUTHORS b/ext/mbstring/libmbfl/AUTHORS new file mode 100644 index 0000000..9a9f2f9 --- /dev/null +++ b/ext/mbstring/libmbfl/AUTHORS @@ -0,0 +1,13 @@ +Marcus Boerger <helly@php.net> +Hayk Chamyan <hamshen@gmail.com> +Wez Furlong <wez@thebrainroom.com> +Rui Hirokawa <hirokawa@php.net> +Shigeru Kanemoto <sgk@happysize.co.jp> +U. Kenkichi <kenkichi@axes.co.jp> +Moriyoshi Koizumi <moriyoshi@php.net> +Hironori Sato <satoh@jpnnet.com> +Tsukada Takuya <tsukada@fminn.nagano.nagano.jp> +Tateyama <tateyan@amy.hi-ho.ne.jp> +Den V. Tsopa <tdv@edisoft.ru> +Maksym Veremeyenko <verem@m1stereo.tv> +Haluk AKIN <halukakin@gmail.com> diff --git a/ext/mbstring/libmbfl/DISCLAIMER b/ext/mbstring/libmbfl/DISCLAIMER new file mode 100644 index 0000000..97fe77c --- /dev/null +++ b/ext/mbstring/libmbfl/DISCLAIMER @@ -0,0 +1,69 @@ +# charset=UTF-8 +# vim600: encoding=UTF-8 + + "streamable kanji code filter and converter" + + Copyright (c) 1998,1999,2000,2001 HappySize, Inc. All rights reserved. + + This software is released under the GNU Lesser General Public License. + (Version 2.1, February 1999) + Please read the following detail of the licence (in japanese). + + 雿輻刻迂隢暹∩辣 + + 柴賬艾扼U舀芸隡蝷整潦萸扎箝怒阡箝整芸隡蝷整 + 潦萸扎箝胯雿璅拇喃質雿璅拇∠桀怒柴賬艾扼U恍 + 嫘艾格貝押靽璅拙押∼怨雿踴整芸隡蝷整潦萸 + 箝臭誑銝急閮∩辣怠艾柴賬艾扼U雿輻具隞扼胯芥璅拙 + 摰X怨迂隢整整雿鈭箝具隞乩格∩辣怠艾柴賬艾扼U雿輻 + 具胯扼整 + + 柴賬艾扼UGNU Lesser General Public License (Version 2.1, February + 1999)怎內∩辣找蝙具具具艾格嫘怨迂隢整整GNU Lesser + General Public License皞芥雿輻具怒胯芸隡蝷整潦萸扎箝賊 + 怒閮梯姥敺敹閬整 + + GNU Lesser General Public License桀冽臭誑銝柴艾扼潦詻敺扼 + 整GNU Lesser General Public License具胯整兵ibrary General + Public License典潦啜艾柴扼 + http://www.gnu.org/ --- GNU艾扼萸扎 + http://www.gnu.org/copyleft/lesser.html --- 押扎颯喋寞 + 柴押扎颯喋嫘桀摰嫘芥嫘摰芥嫘怒臭蝙具閮梯姥整 + + 芥敶蝷整沁NU准詻扼胯具桃孵桅V蝷箏整臭蜓撘萸柴 + 胯整 + + 靽閮澆摰嫖 + + 柴賬艾扼U胯敺雿餅賬餅扯賬扎具格具西身閮 + 箝艾整靽閮潦柴扼胯整柴賬艾扼U胯 + 柴整整桃嗆扳靘艾具啜柴賬艾扼U格冽扼芥孵 + 桃怠氬具具雿桐閮澆摰嫘蝷箝暺怎內艾 + 游扼艾桐閮潦舐∪嫘扼柴賬艾扼U雿輻具蝯芥雿 + 具芥蝯怒艾湔乓舫乓怠頨思芸瑕拿鞎∠銝格摰 + 潦踴格憭晞胯桐桀具艾格摰喋怒扎艾胯格摰喋桀航賣扼雿輻刻 + 敶蝷整舐洵銝怒西郎艾游扼艾敶蝷整胯格摰喋株 + 唾憛怒銵整株摰臭桀具艾柴賊V整舀賊U怎∼靽閮潦 + 憟蝝餉摰怠芸整 + + 雿璅抵桅蝯∪喃蝙冽∩辣怒扎艾桀 + + 102-0073 + 曹漪賢隞啣箔畾萄1-13-5交砍唳蝚砌4F + 芸隡蝷整潦萸扎 + Phone: 03-3512-3655, Fax: 03-3512-3656 + Email: sales@happysize.co.jp + Web: http://happysize.com/ + + + + 研 <sgk@happysize.co.jp> + + 撅交韭 + + 1998/11/10 sgk implementation in C++ + 1999/4/25 sgk C扳詻芥 + 1999/4/26 sgk 亙怒踴摰鋆瞍W喋潦典芥怒踴餈賢 + 1999/6/?? Unicode萸潦 + 1999/6/22 sgk 押扎颯喋嫘LGPL怠氬 + diff --git a/ext/mbstring/libmbfl/INSTALL b/ext/mbstring/libmbfl/INSTALL new file mode 100644 index 0000000..b07c915 --- /dev/null +++ b/ext/mbstring/libmbfl/INSTALL @@ -0,0 +1,12 @@ + +For UNIX compatible system, + +./buildconf +./configure +make +make install + +For Windows, + +Visual C++ 6.0 and Borland C++ 5.0 is suppoted. + diff --git a/ext/mbstring/libmbfl/LICENSE b/ext/mbstring/libmbfl/LICENSE new file mode 100644 index 0000000..3b20440 --- /dev/null +++ b/ext/mbstring/libmbfl/LICENSE @@ -0,0 +1,458 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS diff --git a/ext/mbstring/libmbfl/Makefile.am b/ext/mbstring/libmbfl/Makefile.am new file mode 100644 index 0000000..7886104 --- /dev/null +++ b/ext/mbstring/libmbfl/Makefile.am @@ -0,0 +1,7 @@ +AUTOMAKE_OPTIONS=dejagnu +DEJATOOL=conv_encoding conv_kana strwidth strcut +RUNTESTDEFAULTFLAGS=--tool $$tool --srcdir "$$srcdir"/tests +LANG=C +EXTRA_DIST=AUTHORS DISCLAIMER LICENSE buildconf +SUBDIRS = nls filters mbfl tests +CLEANFILES=*.log *.sum diff --git a/ext/mbstring/libmbfl/NEWS b/ext/mbstring/libmbfl/NEWS new file mode 100644 index 0000000..fc16367 --- /dev/null +++ b/ext/mbstring/libmbfl/NEWS @@ -0,0 +1,30 @@ + +version 1.3.2 August 20, 2011 + +- added JISX-0213:2004 based encoding : Shift_JIS-2004, EUC-JP-2004, ISO-2022-JP-2004 (rui). +- added gb18030 encoding (rui). +- added CP950 with user user defined area based on Big5 (rui). +- added mapping for user defined character area to CP936 (rui). +- added UTF-8-Mobile to support the pictogram characters defined by mobile phone carrier in Japan (rui). + +version 1.3.1 August 5, 2011 + +- added check for invalid/obsolete utf-8 encoding (rui). + +version 1.3.0 August 1, 2011 + +- added encoding conversion between Shift_JIS and Unicode (6.0 or PUA) + for pictogram characters defined by mobile phone carrier in Japan (rui). + + Detailed info:https://github.com/hirokawa/libmbfl/wiki/Introduction-to-libmbflhttps:--github.com-hirokawa-libmbfl-wiki-Introduction-to-libmbfl-_edit%23 + +- fixed encoding conversion of cp5022x for user defined area (rui). +- added MacJapanese (SJIS-mac) for legacy encoding support (rui). +- backport from PHP 5.2 (rui). + +version 1.1.0 March 02, 2010 + +- added cp5022x encoding (moriyoshi) +- added ISO-2022-JP-MS (moriyoshi) +- moved to github.com from sourceforge.jp (moriyoshi) + diff --git a/ext/mbstring/libmbfl/README b/ext/mbstring/libmbfl/README new file mode 100644 index 0000000..5a32555 --- /dev/null +++ b/ext/mbstring/libmbfl/README @@ -0,0 +1,8 @@ +This is Libmbfl, a streamable multibyte character code filter and +converter library. + +See LICENSE and DISCLAIMER for licensing information. + +See the file INSTALL for building and installation instructions. + +# $Id$ diff --git a/ext/mbstring/libmbfl/buildconf b/ext/mbstring/libmbfl/buildconf new file mode 100755 index 0000000..981812a --- /dev/null +++ b/ext/mbstring/libmbfl/buildconf @@ -0,0 +1,6 @@ +#!/bin/sh +libtoolize -c -f --automake +aclocal +autoheader +automake -a -c --foreign +autoconf diff --git a/ext/mbstring/libmbfl/config.h.in b/ext/mbstring/libmbfl/config.h.in new file mode 100644 index 0000000..bded33a --- /dev/null +++ b/ext/mbstring/libmbfl/config.h.in @@ -0,0 +1,94 @@ +/* config.h.in. Generated from configure.in by autoheader. */ + +/* Define to 1 if you have the <assert.h> header file. */ +#undef HAVE_ASSERT_H + +/* Define to 1 if you have the <dlfcn.h> header file. */ +#undef HAVE_DLFCN_H + +/* Define to 1 if you have the <inttypes.h> header file. */ +#undef HAVE_INTTYPES_H + +/* Define to 1 if your system has a GNU libc compatible `malloc' function, and + to 0 otherwise. */ +#undef HAVE_MALLOC + +/* Define to 1 if you have the <memory.h> header file. */ +#undef HAVE_MEMORY_H + +/* Define to 1 if your system has a GNU libc compatible `realloc' function, + and to 0 otherwise. */ +#undef HAVE_REALLOC + +/* Define to 1 if you have the <stddef.h> header file. */ +#undef HAVE_STDDEF_H + +/* Define to 1 if you have the <stdint.h> header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the <stdlib.h> header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the `strcasecmp' function. */ +#undef HAVE_STRCASECMP + +/* Define to 1 if you have the `strchr' function. */ +#undef HAVE_STRCHR + +/* Define to 1 if you have the <strings.h> header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the <string.h> header file. */ +#undef HAVE_STRING_H + +/* Define to 1 if you have the <sys/stat.h> header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the <sys/types.h> header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if you have the <unistd.h> header file. */ +#undef HAVE_UNISTD_H + +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#undef LT_OBJDIR + +/* Name of package */ +#undef PACKAGE + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the home page for this package. */ +#undef PACKAGE_URL + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* Define to 1 if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Version number of package */ +#undef VERSION + +/* Define to empty if `const' does not conform to ANSI C. */ +#undef const + +/* Define to rpl_malloc if the replacement function should be used. */ +#undef malloc + +/* Define to rpl_realloc if the replacement function should be used. */ +#undef realloc + +/* Define to `unsigned int' if <sys/types.h> does not define. */ +#undef size_t diff --git a/ext/mbstring/libmbfl/config.h.w32 b/ext/mbstring/libmbfl/config.h.w32 new file mode 100644 index 0000000..7458e44 --- /dev/null +++ b/ext/mbstring/libmbfl/config.h.w32 @@ -0,0 +1,12 @@ +#define HAVE_STDIO_H 1 +#define HAVE_STDLIB_H 1 +#define HAVE_STDDEF_H 1 +#define HAVE_ASSERT_H 1 +#define HAVE_MEMORY_H 1 +/* #undef HAVE_STRINGS_H */ +#define HAVE_STRING_H 1 +/* #undef HAVE_STRCASECMP */ +#define HAVE_STRICMP 1 +#define HAVE_WIN32_NATIVE_THREAD 1 +#define USE_WIN32_NATIVE_THREAD 1 +#define ENABLE_THREADS 1 diff --git a/ext/mbstring/libmbfl/configure.in b/ext/mbstring/libmbfl/configure.in new file mode 100644 index 0000000..f7fd58f --- /dev/null +++ b/ext/mbstring/libmbfl/configure.in @@ -0,0 +1,49 @@ +# Process this file with autoconf to produce a configure script. +AC_INIT(mbfl/mbfilter.c) +AM_INIT_AUTOMAKE(libmbfl, 1.1.0) +AC_CONFIG_SRCDIR(mbfl/mbfilter.c) +AM_CONFIG_HEADER(config.h) + +# SHLIB isn't a version number but the API reference +# Read http://www.gnu.org/software/libtool/manual/libtool.html#Updating-version-info +SHLIB_VERSION="1:1:0" +AC_SUBST(SHLIB_VERSION) + +# Checks for programs. +AC_PROG_CC +AC_PROG_CXX +AC_PROG_LIBTOOL +AC_PROG_RANLIB + +# Checks for libraries. + +# Checks for header files. +AC_HEADER_STDC +AC_CHECK_HEADERS([stdlib.h stddef.h assert.h]) + +# Checks for typedefs, structures, and compiler characteristics. +AC_C_CONST +AC_TYPE_SIZE_T + +# Checks for library functions. +AC_FUNC_MALLOC +AC_FUNC_REALLOC +AC_CHECK_FUNCS([strcasecmp strchr]) + +AC_CHECK_PROGS([FETCH_VIA_FTP], [wget curl ncftpget]) + +if test "$FETCH_VIA_FTP" = "curl"; then + FETCH_VIA_FTP="curl -O" +fi + +AC_CONFIG_FILES([ + Makefile + mbfl/Makefile + filters/Makefile + nls/Makefile + tests/Makefile + tests/conv_encoding.tests/Makefile + tests/conv_kana.tests/Makefile + tests/strwidth.tests/Makefile + tests/strcut.tests/Makefile]) +AC_OUTPUT diff --git a/ext/mbstring/libmbfl/cvsclean b/ext/mbstring/libmbfl/cvsclean new file mode 100755 index 0000000..60ae246 --- /dev/null +++ b/ext/mbstring/libmbfl/cvsclean @@ -0,0 +1,14 @@ +#!/bin/sh +function cvsclean_sub() { + prev_pwd=`pwd` + cd $1 + cat .cvsignore | while read fname; do + rm -r -f $fname + done + cd "$prev_pwd" +} + +cvsclean_sub . +cvsclean_sub mbfl +cvsclean_sub filters +cvsclean_sub nls diff --git a/ext/mbstring/libmbfl/filters/Makefile.am b/ext/mbstring/libmbfl/filters/Makefile.am new file mode 100644 index 0000000..33f9049 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/Makefile.am @@ -0,0 +1,269 @@ +EXTRA_DIST=Makefile.bcc32 mk_sb_tbl.awk +noinst_LTLIBRARIES=libmbfl_filters.la +INCLUDES=-I../mbfl +PERL=perl +libmbfl_filters_la_LDFLAGS=-version-info $(SHLIB_VERSION) +libmbfl_filters_la_SOURCES=mbfilter_cp936.c \ + mbfilter_hz.c \ + mbfilter_euc_tw.c \ + mbfilter_big5.c \ + mbfilter_euc_jp.c \ + mbfilter_jis.c \ + mbfilter_iso8859_1.c \ + mbfilter_iso8859_2.c \ + mbfilter_cp1254.c \ + mbfilter_cp1252.c \ + mbfilter_cp1251.c \ + mbfilter_ascii.c \ + mbfilter_iso8859_3.c \ + mbfilter_iso8859_4.c \ + mbfilter_iso8859_5.c \ + mbfilter_iso8859_6.c \ + mbfilter_iso8859_7.c \ + mbfilter_iso8859_8.c \ + mbfilter_iso8859_9.c \ + mbfilter_iso8859_10.c \ + mbfilter_iso8859_13.c \ + mbfilter_iso8859_14.c \ + mbfilter_iso8859_15.c \ + mbfilter_iso8859_16.c \ + mbfilter_htmlent.c \ + mbfilter_byte2.c \ + mbfilter_byte4.c \ + mbfilter_uuencode.c \ + mbfilter_base64.c \ + mbfilter_sjis.c \ + mbfilter_sjis_2004.c \ + mbfilter_sjis_open.c \ + mbfilter_sjis_mobile.c \ + mbfilter_sjis_mac.c \ + mbfilter_7bit.c \ + mbfilter_qprint.c \ + mbfilter_ucs4.c \ + mbfilter_ucs2.c \ + mbfilter_utf32.c \ + mbfilter_utf16.c \ + mbfilter_utf8.c \ + mbfilter_utf8_mobile.c \ + mbfilter_utf7.c \ + mbfilter_utf7imap.c \ + mbfilter_euc_jp_win.c \ + mbfilter_euc_jp_2004.c \ + mbfilter_cp932.c \ + mbfilter_cp51932.c \ + mbfilter_euc_cn.c \ + mbfilter_euc_kr.c \ + mbfilter_uhc.c \ + mbfilter_iso2022_jp_ms.c \ + mbfilter_iso2022jp_2004.c \ + mbfilter_iso2022jp_mobile.c \ + mbfilter_gb18030.c \ + mbfilter_iso2022_kr.c \ + mbfilter_cp866.c \ + mbfilter_koi8r.c \ + mbfilter_koi8u.c \ + mbfilter_armscii8.c \ + mbfilter_cp850.c \ + mbfilter_cp5022x.c \ + mbfilter_tl_jisx0201_jisx0208.c \ + html_entities.c \ + cp932_table.h \ + html_entities.h \ + mbfilter_7bit.h \ + mbfilter_ascii.h \ + mbfilter_base64.h \ + mbfilter_big5.h \ + mbfilter_byte2.h \ + mbfilter_byte4.h \ + mbfilter_cp1251.h \ + mbfilter_cp1252.h \ + mbfilter_cp1254.h \ + mbfilter_cp866.h \ + mbfilter_cp932.h \ + mbfilter_cp936.h \ + mbfilter_gb18030.h \ + mbfilter_euc_cn.h \ + mbfilter_euc_jp.h \ + mbfilter_euc_jp_2004.h \ + mbfilter_euc_jp_win.h \ + mbfilter_euc_kr.h \ + mbfilter_euc_tw.h \ + mbfilter_htmlent.h \ + mbfilter_hz.h \ + mbfilter_iso2022_jp_ms.h \ + mbfilter_iso2022jp_2004.h \ + mbfilter_iso2022jp_mobile.h \ + mbfilter_iso2022_kr.h \ + mbfilter_iso8859_1.h \ + mbfilter_iso8859_10.h \ + mbfilter_iso8859_13.h \ + mbfilter_iso8859_14.h \ + mbfilter_iso8859_15.h \ + mbfilter_iso8859_16.h \ + mbfilter_iso8859_2.h \ + mbfilter_iso8859_3.h \ + mbfilter_iso8859_4.h \ + mbfilter_iso8859_5.h \ + mbfilter_iso8859_6.h \ + mbfilter_iso8859_7.h \ + mbfilter_iso8859_8.h \ + mbfilter_iso8859_9.h \ + mbfilter_jis.h \ + mbfilter_koi8r.h \ + mbfilter_koi8u.h \ + mbfilter_armscii8.h \ + mbfilter_qprint.h \ + mbfilter_sjis.h \ + mbfilter_sjis_open.h \ + mbfilter_sjis_mobile.h \ + mbfilter_sjis_mac.h \ + mbfilter_ucs2.h \ + mbfilter_ucs4.h \ + mbfilter_uhc.h \ + mbfilter_utf16.h \ + mbfilter_utf32.h \ + mbfilter_utf7.h \ + mbfilter_utf7imap.h \ + mbfilter_utf8.h \ + mbfilter_utf8_mobile.h \ + mbfilter_uuencode.h \ + mbfilter_cp5022x.h \ + mbfilter_cp51932.h \ + mbfilter_cp850.h \ + mbfilter_tl_jisx0201_jisx0208.h \ + unicode_prop.h \ + unicode_table_big5.h \ + unicode_table_cns11643.h \ + unicode_table_cp1251.h \ + unicode_table_cp1252.h \ + unicode_table_cp1254.h \ + unicode_table_cp866.h \ + unicode_table_cp932_ext.h \ + unicode_table_cp936.h \ + unicode_table_iso8859_10.h \ + unicode_table_iso8859_13.h \ + unicode_table_iso8859_14.h \ + unicode_table_iso8859_15.h \ + unicode_table_iso8859_16.h \ + unicode_table_iso8859_2.h \ + unicode_table_iso8859_3.h \ + unicode_table_iso8859_4.h \ + unicode_table_iso8859_5.h \ + unicode_table_iso8859_6.h \ + unicode_table_iso8859_7.h \ + unicode_table_iso8859_8.h \ + unicode_table_iso8859_9.h \ + unicode_table_jis.h \ + unicode_table_koi8r.h \ + unicode_table_koi8u.h \ + unicode_table_armscii8.h \ + unicode_table_cp850.h \ + unicode_table_uhc.h \ + unicode_table_gb18030.h \ + translit_kana_jisx0201_jisx0208.h \ + emoji2uni.h + +mbfilter_iso8859_2.c: unicode_table_iso8859_2.h + +mbfilter_iso8859_3.c: unicode_table_iso8859_3.h + +mbfilter_iso8859_4.c: unicode_table_iso8859_4.h + +mbfilter_iso8859_5.c: unicode_table_iso8859_5.h + +mbfilter_iso8859_6.c: unicode_table_iso8859_6.h + +mbfilter_iso8859_7.c: unicode_table_iso8859_7.h + +mbfilter_iso8859_8.c: unicode_table_iso8859_8.h + +mbfilter_iso8859_9.c: unicode_table_iso8859_9.h + +mbfilter_iso8859_10.c: unicode_table_iso8859_10.h + +mbfilter_iso8859_11.c: unicode_table_iso8859_11.h + +mbfilter_iso8859_13.c: unicode_table_iso8859_13.h + +mbfilter_iso8859_14.c: unicode_table_iso8859_13.h + +mbfilter_iso8859_15.c: unicode_table_iso8859_15.h + +mbfilter_iso8859_16.c: unicode_table_iso8859_16.h + +8859-1.TXT 8859-2.TXT 8859-3.TXT 8859-4.TXT 8859-5.TXT 8859-6.TXT \ +8859-7.TXT 8859-8.TXT 8859-9.TXT 8859-10.TXT 8859-11.TXT 8859-13.TXT \ +8859-14.TXT 8859-15.TXT 8859-16.TXT: + $(FETCH_VIA_FTP) ftp://ftp.unicode.org/Public/MAPPINGS/ISO8859/$@ + +unicode_table_iso8859_1.h: mk_sb_tbl.awk + $(AWK) -v TABLE_NAME=iso8859_1_ucs_table \ + -v IFNDEF_NAME=UNICODE_TABLE_ISO8859_1_H -f mk_sb_tbl.awk 8859-1.TXT > $@ + +unicode_table_iso8859_2.h: mk_sb_tbl.awk + $(AWK) -v TABLE_NAME=iso8859_2_ucs_table \ + -v IFNDEF_NAME=UNICODE_TABLE_ISO8859_2_H -f mk_sb_tbl.awk 8859-2.TXT > $@ + +unicode_table_iso8859_3.h: mk_sb_tbl.awk + $(AWK) -v TABLE_NAME=iso8859_3_ucs_table \ + -v IFNDEF_NAME=UNICODE_TABLE_ISO8859_3_H -f mk_sb_tbl.awk 8859-3.TXT > $@ + +unicode_table_iso8859_4.h: mk_sb_tbl.awk + $(AWK) -v TABLE_NAME=iso8859_4_ucs_table \ + -v IFNDEF_NAME=UNICODE_TABLE_ISO8859_4_H -f mk_sb_tbl.awk 8859-4.TXT > $@ + +unicode_table_iso8859_5.h: mk_sb_tbl.awk + $(AWK) -v TABLE_NAME=iso8859_5_ucs_table \ + -v IFNDEF_NAME=UNICODE_TABLE_ISO8859_5_H -f mk_sb_tbl.awk 8859-5.TXT > $@ + +unicode_table_iso8859_6.h: mk_sb_tbl.awk + $(AWK) -v TABLE_NAME=iso8859_6_ucs_table \ + -v IFNDEF_NAME=UNICODE_TABLE_ISO8859_6_H -f mk_sb_tbl.awk 8859-6.TXT > $@ + +unicode_table_iso8859_7.h: mk_sb_tbl.awk + $(AWK) -v TABLE_NAME=iso8859_7_ucs_table \ + -v IFNDEF_NAME=UNICODE_TABLE_ISO8859_7_H -f mk_sb_tbl.awk 8859-7.TXT > $@ + +unicode_table_iso8859_8.h: mk_sb_tbl.awk + $(AWK) -v TABLE_NAME=iso8859_8_ucs_table \ + -v IFNDEF_NAME=UNICODE_TABLE_ISO8859_8_H -f mk_sb_tbl.awk 8859-8.TXT > $@ + +unicode_table_iso8859_9.h: mk_sb_tbl.awk + $(AWK) -v TABLE_NAME=iso8859_9_ucs_table \ + -v IFNDEF_NAME=UNICODE_TABLE_ISO8859_9_H -f mk_sb_tbl.awk 8859-9.TXT > $@ + +unicode_table_iso8859_10.h: mk_sb_tbl.awk + $(AWK) -v TABLE_NAME=iso8859_10_ucs_table \ + -v IFNDEF_NAME=UNICODE_TABLE_ISO8859_10_H -f mk_sb_tbl.awk 8859-10.TXT > $@ + +unicode_table_iso8859_11.h: mk_sb_tbl.awk + $(AWK) -v TABLE_NAME=iso8859_11_ucs_table \ + -v IFNDEF_NAME=UNICODE_TABLE_ISO8859_11_H -f mk_sb_tbl.awk 8859-11.TXT > $@ + +unicode_table_iso8859_13.h: mk_sb_tbl.awk + $(AWK) -v TABLE_NAME=iso8859_13_ucs_table \ + -v IFNDEF_NAME=UNICODE_TABLE_ISO8859_13_H -f mk_sb_tbl.awk 8859-13.TXT > $@ + +unicode_table_iso8859_14.h: mk_sb_tbl.awk + $(AWK) -v TABLE_NAME=iso8859_14_ucs_table \ + -v IFNDEF_NAME=UNICODE_TABLE_ISO8859_14_H -f mk_sb_tbl.awk 8859-14.TXT > $@ + +unicode_table_iso8859_15.h: mk_sb_tbl.awk + $(AWK) -v TABLE_NAME=iso8859_15_ucs_table \ + -v IFNDEF_NAME=UNICODE_TABLE_ISO8859_15_H -f mk_sb_tbl.awk 8859-15.TXT > $@ + +unicode_table_iso8859_16.h: mk_sb_tbl.awk + $(AWK) -v TABLE_NAME=iso8859_16_ucs_table \ + -v IFNDEF_NAME=UNICODE_TABLEISO8859_16_H -f mk_sb_tbl.awk 8859-16.TXT > $@ + +EmojiSources.txt : + $(FETCH_VIA_FTP) ftp://ftp.unicode.org/Public/UNIDATA/$@ + +emoji2uni.h : mk_emoji_tbl.pl + $(PERL) mk_emoji_tbl.pl EmojiSources.txt + +unidata: 8859-1.TXT 8859-2.TXT 8859-3.TXT 8859-4.TXT 8859-5.TXT 8859-6.TXT \ +8859-7.TXT 8859-8.TXT 8859-9.TXT 8859-10.TXT 8859-11.TXT 8859-13.TXT \ +8859-14.TXT 8859-15.TXT 8859-16.TXT EmojiSources.txt + +.PHONY: unidata diff --git a/ext/mbstring/libmbfl/filters/cp932_table.h b/ext/mbstring/libmbfl/filters/cp932_table.h new file mode 100644 index 0000000..d8cbb7f --- /dev/null +++ b/ext/mbstring/libmbfl/filters/cp932_table.h @@ -0,0 +1,95 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ + +#ifndef CP932_TABLE_H +#define CP932_TABLE_H + +/* + * cp932 table + */ +static const unsigned short cp932ext3_eucjp_table[] = { + /* ku 115 */ + 0xF3F3,0xF3F4,0xF3F5,0xF3F6,0xF3F7,0xF3F8,0xF3F9,0xF3FA, + 0xF3FB,0xF3FC,0xF3FD,0xF3FE,0xF4A1,0xF4A2,0xF4A3,0xF4A4, + 0xF4A5,0xF4A6,0xF4A7,0xF4A8,0x224C,0xA2C3,0xF4A9,0xF4AA, + 0xF4AB,0xF4AC,0xF4AD,0x2268,0xD4E3,0xDCDF,0xE4E9,0xE3F8, + 0xD9A1,0xB1BB,0xF4AE,0xC2AD,0xC3FC,0xE4D0,0xC2BF,0xBCF4, + 0xB0A9,0xB0C8,0xF4AF,0xB0D2,0xB0D4,0xB0E3,0xB0EE,0xB1A7, + 0xB1A3,0xB1AC,0xB1A9,0xB1BE,0xB1DF,0xB1D8,0xB1C8,0xB1D7, + 0xB1E3,0xB1F4,0xB1E1,0xB2A3,0xF4B0,0xB2BB,0xB2E6,0xB2ED, + 0xB2F5,0xB2FC,0xF4B1,0xB3B5,0xB3D8,0xB3DB,0xB3E5,0xB3EE, + 0xB3FB,0xF4B2,0xF4B3,0xB4C0,0xB4C7,0xB4D0,0xB4DE,0xF4B4, + 0xB5AA,0xF4B5,0xB5AF,0xB5C4,0xB5E8,0xF4B6,0xB7C2,0xB7E4, + 0xB7E8,0xB7E7,0xF4B7,0xF4B8,0xF4B9,0xB8CE, + + /* ku 116 */ + 0xB8E1,0xB8F5,0xB8F7,0xB8F8,0xB8FC,0xB9AF,0xB9B7,0xBABE, + 0xBADB,0xCDAA,0xBAE1,0xF4BA,0xBAEB,0xBBB3,0xBBB8,0xF4BB, + 0xBBCA,0xF4BC,0xF4BD,0xBBD0,0xBBDE,0xBBF4,0xBBF5,0xBBF9, + 0xBCE4,0xBCED,0xBCFE,0xF4BE,0xBDC2,0xBDE7,0xF4BF,0xBDF0, + 0xBEB0,0xBEAC,0xF4C0,0xBEB3,0xBEBD,0xBECD,0xBEC9,0xBEE4, + 0xBFA8,0xBFC9,0xC0C4,0xC0E4,0xC0F4,0xC1A6,0xF4C1,0xC1F5, + 0xC1FC,0xF4C2,0xC1F8,0xC2AB,0xC2A1,0xC2A5,0xF4C3,0xC2B8, + 0xC2BA,0xF4C4,0xC2C4,0xC2D2,0xC2D7,0xC2DB,0xC2DE,0xC2ED, + 0xC2F0,0xF4C5,0xC3A1,0xC3B5,0xC3C9,0xC3B9,0xF4C6,0xC3D8, + 0xC3FE,0xF4C7,0xC4CC,0xF4C8,0xC4D9,0xC4EA,0xC4FD,0xF4C9, + 0xC5A7,0xC5B5,0xC5B6,0xF4CA,0xC5D5,0xC6B8,0xC6D7,0xC6E0, + 0xC6EA,0xC6E3,0xC7A1,0xC7AB,0xC7C7,0xC7C3, + + /* ku 117 */ + 0xC7CB,0xC7CF,0xC7D9,0xF4CB,0xF4CC,0xC7E6,0xC7EE,0xC7FC, + 0xC7EB,0xC7F0,0xC8B1,0xC8E5,0xC8F8,0xC9A6,0xC9AB,0xC9AD, + 0xF4CD,0xC9CA,0xC9D3,0xC9E9,0xC9E3,0xC9FC,0xC9F4,0xC9F5, + 0xF4CE,0xCAB3,0xCABD,0xCAEF,0xCAF1,0xCBAE,0xF4CF,0xCBCA, + 0xCBE6,0xCBEA,0xCBF0,0xCBF4,0xCBEE,0xCCA5,0xCBF9,0xCCAB, + 0xCCAE,0xCCAD,0xCCB2,0xCCC2,0xCCD0,0xCCD9,0xF4D0,0xCDBB, + 0xF4D1,0xCEBB,0xF4D2,0xCEBA,0xCEC3,0xF4D3,0xCEF2,0xB3DD, + 0xCFD5,0xCFE2,0xCFE9,0xCFED,0xF4D4,0xF4D5,0xF4D6,0xF4D7, + 0xD0E5,0xF4D8,0xD0E9,0xD1E8,0xF4D9,0xF4DA,0xD1EC,0xD2BB, + 0xF4DB,0xD3E1,0xD3E8,0xD4A7,0xF4DC,0xF4DD,0xD4D4,0xD4F2, + 0xD5AE,0xF4DE,0xD7DE,0xF4DF,0xD8A2,0xD8B7,0xD8C1,0xD8D1, + 0xD8F4,0xD9C6,0xD9C8,0xD9D1,0xF4E0,0xF4E1, + + /* ku 118 */ + 0xF4E2,0xF4E3,0xF4E4,0xDCD3,0xDDC8,0xDDD4,0xDDEA,0xDDFA, + 0xDEA4,0xDEB0,0xF4E5,0xDEB5,0xDECB,0xF4E6,0xDFB9,0xF4E7, + 0xDFC3,0xF4E8,0xF4E9,0xE0D9,0xF4EA,0xF4EB,0xE1E2,0xF4EC, + 0xF4ED,0xF4EE,0xE2C7,0xE3A8,0xE3A6,0xE3A9,0xE3AF,0xE3B0, + 0xE3AA,0xE3AB,0xE3BC,0xE3C1,0xE3BF,0xE3D5,0xE3D8,0xE3D6, + 0xE3DF,0xE3E3,0xE3E1,0xE3D4,0xE3E9,0xE4A6,0xE3F1,0xE3F2, + 0xE4CB,0xE4C1,0xE4C3,0xE4BE,0xF4EF,0xE4C0,0xE4C7,0xE4BF, + 0xE4E0,0xE4DE,0xE4D1,0xF4F0,0xE4DC,0xE4D2,0xE4DB,0xE4D4, + 0xE4FA,0xE4EF,0xE5B3,0xE5BF,0xE5C9,0xE5D0,0xE5E2,0xE5EA, + 0xE5EB,0xF4F1,0xF4F2,0xF4F3,0xE6E8,0xE6EF,0xE7AC,0xF4F4, + 0xE7AE,0xF4F5,0xE7B1,0xF4F6,0xE7B2,0xE8B1,0xE8B6,0xF4F7, + 0xF4F8,0xE8DD,0xF4F9,0xF4FA,0xE9D1,0xF4FB, + + /* ku 119 */ + 0xE9ED,0xEACD,0xF4FC,0xEADB,0xEAE6,0xEAEA,0xEBA5,0xEBFB, + 0xEBFA,0xF4FD,0xECD6,0xF4FE +}; + +static const int cp932ext3_eucjp_table_size = (sizeof (cp932ext3_eucjp_table) / sizeof (unsigned short)); + +#endif /* CP932_TABLE_H */ diff --git a/ext/mbstring/libmbfl/filters/emoji2uni.h b/ext/mbstring/libmbfl/filters/emoji2uni.h new file mode 100644 index 0000000..37f44c5 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/emoji2uni.h @@ -0,0 +1,1227 @@ +static const int mb_tbl_code2uni_docomo1_min = 0x28c2; +static const int mb_tbl_code2uni_docomo1_max = 0x29db; + +static const unsigned short mb_tbl_code2uni_docomo1[] = { // 0x28c2 - 0x29db + 0x2600, 0x2601, 0x2614, 0x26c4, + 0x26a1, 0xf300, 0xf301, 0xf302, + 0x2648, 0x2649, 0x264a, 0x264b, + 0x264c, 0x264d, 0x264e, 0x264f, + 0x2650, 0x2651, 0x2652, 0x2653, + 0xf3bd, 0x26be, 0x26f3, 0xf3be, + 0x26bd, 0xf3bf, 0xf3c0, 0xf3c1, + 0xf4df, 0xf683, 0x24c2, 0xf684, + 0xf697, 0xf699, 0xf68c, 0xf6a2, + 0x2708, 0xf3e0, 0xf3e2, 0xf3e3, + 0xf3e5, 0xf3e6, 0xf3e7, 0xf3e8, + 0xf3ea, 0x26fd, 0xf17f, 0xf6a5, + 0xf6bb, 0xf374, 0x2615, 0xf378, + 0xf37a, 0xf354, 0xf460, 0x2702, + 0xf3a4, 0xf3a5, 0x2197, 0xf3a0, + 0xf3a7, 0xf3a8, 0xf3a9, 0xf3aa, + 0xf3ab, 0xf6ac, 0xf6ad, 0xf4f7, + 0xf45c, 0xf4d6, 0xf380, 0xf381, + 0xf382, 0x260e, 0xf4f1, 0xf4dd, + 0xf4fa, 0xf3ae, 0xf4bf, 0x2665, + 0x2660, 0x2666, 0x2663, 0xf440, + 0xf442, 0x270a, 0x270c, 0x270b, + 0x2198, 0x2196, 0xf463, 0xf45f, + 0xf453, 0x267f, 0xf311, 0xf314, + 0xf313, 0xf319, 0xf315, 0xf436, + 0xf431, 0x26f5, 0xf384, 0x2199, + 0xEE16, 0xEE17, 0xEE18, 0xEE19, + 0xEE1A, 0xEE1B, 0xf3ac, 0xf45d, + 0x2712, 0xEE1C, 0xEE1D, 0xf464, + 0xf4ba, 0xf303, 0xEE1E, 0xEE1F, + 0xEE20, 0xf51c, 0xf51b, 0xf51a, + 0x23f0, 0xEE21, 0xEE22, 0xEE23, + 0xEE24, 0xEE25, 0xEE26, 0xEE27, + 0xEE28, 0xEE29, 0xEE2A, 0xEE2B, + 0xEE2C, 0xEE2D, 0xEE2E, 0xEE2F, + 0xEE30, 0xEE31, 0xEE32, 0xEE33, + 0xf4f2, 0xf4e9, 0xf4e0, 0xEE10, + 0xEE11, 0x2709, 0xEE12, 0xEE13, + 0xf4b4, 0xf193, 0xf194, 0xf511, + 0x21a9, 0xf191, 0xf50d, 0xf195, + 0xf6a9, 0x27bf, 0x0023, 0xE82D, + 0x0031, 0x0032, 0x0033, 0x0034, + 0x0035, 0x0036, 0x0037, 0x0038, + 0x0039, 0x0030, 0x2764, 0xf493, + 0xf494, 0xf495, 0xf603, 0xf620, + 0xf61e, 0xf616, 0xf635, 0x2934, + 0xf3b5, 0x2668, 0xf4a0, 0xf48b, + 0x2728, 0xf4a1, 0xf4a2, 0xf44a, + 0xf4a3, 0xf3b6, 0x2935, 0xf4a4, + 0x2757, 0x2049, 0x203c, 0xf4a5, + 0xf4a6, 0xf4a7, 0xf4a8, 0x3030, + 0x27b0, 0xf197, 0xEE14, 0xEE15, + 0xf455, 0xf45b, 0xf484, 0xf456, + 0xf3c2, 0xf514, 0xf6aa, 0xf4b0, + 0xf4bb, 0xf48c, 0xf527, 0x270f, + 0xf451, 0xf48d, 0x23f3, 0xf6b2, + 0xf375, 0x231a, 0xf614, 0xf60c, + 0xf605, 0xf613, 0xf621, 0xf612, + 0xf60d, 0xf44d, 0xf61c, 0xf609, + 0xf606, 0xf623, 0xf60f, 0xf62d, + 0xf622, 0xf196, 0xf4ce, 0x00a9, + 0x2122, 0xf3c3, 0x3299, 0x267b, + 0x00ae, 0x26a0, 0xf232, 0xf233, + 0xf234, 0xf235, 0x2194, 0x2195, + 0xf3eb, 0xf30a, 0xf5fb, 0xf340, + 0xf352, 0xf337, 0xf34c, 0xf34e, + 0xf331, 0xf341, 0xf338, 0xf359, + 0xf370, 0xf376, 0xf35c, 0xf35e, + 0xf40c, 0xf424, 0xf427, 0xf41f, + 0xf60b, 0xf601, 0xf434, 0xf437, + 0xf377, 0xf631, }; +static const int mb_tbl_code2uni_kddi1_min = 0x24b8; +static const int mb_tbl_code2uni_kddi1_max = 0x25c6; + +static const unsigned short mb_tbl_code2uni_kddi1[] = { // 0x24b8 - 0x25c6 + 0xf342, 0xf4bc, 0x26f2, 0x26fa, + 0xf004, 0xf19a, 0xf3c6, 0xf422, + 0xf1ea, 0xf1f7, 0xf6a7, 0xf6c0, + 0xf38c, 0xf306, 0xf423, 0xf4b9, + 0xf46e, 0xf3e3, 0xf3e5, 0xf3eb, + 0xf3e8, 0xf6a2, 0xf51e, 0xf4f6, + 0xf192, 0xf239, 0xf202, 0xf194, + 0xf235, 0xf233, 0xf22f, 0xf23a, + 0xf446, 0xf447, 0xf52e, 0xf4f3, + 0xf4f4, 0xf4dd, 0xf454, 0xf33a, + 0xf490, 0xf335, 0xf376, 0xf37b, + 0x3297, 0xf48a, 0xf388, 0xf389, + 0xEE42, 0xf452, 0xf462, 0xf485, + 0xf487, 0xf488, 0xf458, 0xf459, + 0x2665, 0xf496, 0xf499, 0xf49a, + 0xf49b, 0xf49c, 0x2728, 0xf3bf, + 0x2b55, 0xf375, 0xf35e, 0xf366, + 0xf35f, 0xf361, 0xf358, 0xf35a, + 0xf35d, 0xf35b, 0xf362, 0xf363, + 0xf34e, 0xf34a, 0xf345, 0xf346, + 0xf371, 0xf372, 0xf60f, 0xf614, + 0xf624, 0xf623, 0xf616, 0xf62a, + 0xf60c, 0xf628, 0xf637, 0xf633, + 0xf612, 0xf632, 0xf630, 0xf3bc, + 0xf60a, 0xf61a, 0xf618, 0xf443, + 0xf444, 0xf64f, 0xf44f, 0xf44c, + 0xf44e, 0xf44b, 0xf645, 0xf646, + 0xf647, 0xf491, 0xf46f, 0xf3ba, + 0xf3b1, 0xf3ca, 0xf692, 0xf691, + 0xf693, 0xf3a2, 0xf38d, 0xf38e, + 0xf393, 0xf392, 0xf38f, 0xf302, + 0xf470, 0xf367, 0xf387, 0xf41a, + 0xf390, 0xf383, 0xf391, 0xf385, + 0xf303, 0xf308, 0xf3e9, 0xf305, + 0xf3a9, 0xf3ec, 0xf3ef, 0xf3f0, + 0xf3ed, 0xf1eb, 0xf1e9, 0xf1ee, + 0xf1ec, 0xf1e8, 0xf1f0, 0xf471, + 0xf472, 0xf473, 0xf474, 0xf475, + 0xf476, 0xf477, 0xf478, 0xf42c, + 0xf483, 0xf420, 0xf41b, 0xf418, + 0xf428, 0xf42e, 0xf40d, 0xf414, + 0xf417, 0xf42b, 0xf170, 0xf171, + 0xf17e, 0xf18e, 0xf463, 0xf45f, + 0xf6a9, 0x2934, 0x2935, 0x2049, + 0x203c, 0x27b0, 0xf348, 0xf34d, + 0xf347, 0xf34c, 0xf33d, 0xf344, + 0xf330, 0xf351, 0xf360, 0xf355, + 0xf357, 0xf38b, 0xf379, 0xf432, + 0xf3b9, 0xf3c4, 0xf3a3, 0xf3b3, + 0xf479, 0xf47a, 0xf43c, 0xf445, + 0xf43d, 0xf33c, 0xf368, 0xf369, + 0xf36a, 0xf36b, 0xf36c, 0xf36d, + 0xf648, 0xf64a, 0xf649, 0xf30b, + 0xf49d, 0xf524, 0xf36e, 0xf41d, + 0xf41e, 0xf36f, 0xf34f, 0xf4b8, + 0xf4ab, 0xf621, 0xf63e, 0xf30c, + 0xf63d, 0xf63a, 0xf4e9, 0xf639, + 0xf602, 0xf63b, 0xf640, 0xf629, + 0xf63f, 0xf622, 0xf63c, 0xf457, + 0xf5ff, 0xf689, 0xf3b4, 0xf0cf, + 0xf364, 0xf4e7, 0xf6b6, 0xf6a8, + 0xEE43, 0xf493, 0xf425, 0xf456, + 0xf48c, 0x267b, 0x2194, 0x2195, + 0xf30a, 0xf331, 0xf40c, 0xf638, + 0xf601, 0xEE44, 0xf33f, 0x270a, + 0x0023, 0xf64b, 0xf64c, 0xf64d, + 0xf64e, 0xEE45, 0xEE46, 0xEE47, + 0xEE48, 0xEE49, 0xEE4A}; +static const int mb_tbl_code2uni_kddi2_min = 0x26ec; +static const int mb_tbl_code2uni_kddi2_max = 0x2863; + +static const unsigned short mb_tbl_code2uni_kddi2[] = { // 0x26ec - 0x2863 + 0xf320, 0xf300, 0xf6a5, 0xf3c3, + 0x2747, 0xf3a1, 0xf3b0, 0xf38a, + 0xf433, 0xf603, 0xf620, 0xf62d, + 0xf62b, 0xf4a4, 0xf4a1, 0xf494, + 0xf495, 0x2734, 0xf4a3, 0xf525, + 0x23f3, 0xf6ac, 0xf6ad, 0x267f, + 0xf530, 0x26a0, 0x2757, 0x2753, + 0x26d4, 0x26c4, 0xf319, 0x26a1, + 0x2600, 0xf31b, 0x2744, 0x2b50, + 0x2614, 0x2601, 0x26c5, 0x2648, + 0x2649, 0x264a, 0x264b, 0x264c, + 0x264d, 0x264e, 0x264f, 0x2650, + 0x2651, 0x2652, 0x2653, 0x26ce, + 0xf45c, 0xf4d4, 0xf3ab, 0xf4d6, + 0xf4ce, 0x270f, 0xf4d0, 0xf3e7, + 0xf3ea, 0xf6bb, 0xf17f, 0xf68f, + 0xf4e1, 0x2693, 0xf3e6, 0xf3e0, + 0xf374, 0xf3e2, 0xf6b2, 0xf68c, + 0xf685, 0xf697, 0xf69a, 0x2708, + 0x26f5, 0xf683, 0x26bd, 0xf3be, + 0xf3c2, 0xf3c1, 0x26be, 0xf3c8, + 0x2668, 0xf3ee, 0xf3ac, 0xf309, + 0xf5fc, 0xf377, 0xf378, 0xf37a, + 0xf356, 0xf3af, 0xf3ae, 0xf4b0, + 0xf3b2, 0xf384, 0xf338, 0xf47b, + 0xf1ef, 0xf349, 0xf341, 0xf381, + 0xf370, 0xf373, 0xf352, 0xf421, + 0xf353, 0xf359, 0xf354, 0xf430, + 0xf434, 0xf435, 0xf438, 0xf431, + 0xf427, 0xf41c, 0xf437, 0xf429, + 0xf424, 0xf436, 0xf334, 0xf33b, + 0xf337, 0xf4a2, 0xf4a7, 0xf61c, + 0xf198, 0xf4aa, 0xf498, 0xf48b, + 0xf47e, 0xf365, 0xf43e, 0xf47f, + 0xf4ae, 0x3299, 0xf4af, 0xf44a, + 0xf4a8, 0xf4a9, 0x261d, 0xf250, + 0xf480, 0xf44d, 0xf469, 0x263a, + 0xf468, 0xf4ac, 0xf453, 0xf448, + 0xf449, 0xf46a, 0xf4fa, 0xf3a4, + 0xf45b, 0xf3b6, 0xf3b8, 0xf3bb, + 0xf3a7, 0xf484, 0xf52b, 0xf486, + 0xf4bf, 0xf45a, 0xf47d, 0xf199, + 0xf489, 0xf50a, 0xf514, 0xf340, + 0xf48d, 0xf4f7, 0x2702, 0xf3a5, + 0xf50d, 0xf511, 0xf460, 0xf4ea, + 0xf512, 0xf4db, 0xf4de, 0xf4e6, + 0xf4e0, 0x2709, 0x0031, 0x0032, + 0x0033, 0x0034, 0x0035, 0x0036, + 0x0037, 0x0038, 0x0039, 0xf51f, + 0xE82D, 0x25c0, 0x25b6, 0x23ea, + 0x23e9, 0x25ab, 0x25aa, 0x2139, + 0x25fd, 0x25fe, 0xf538, 0xf539, + 0x25fb, 0x25fc, 0x26aa, 0x26ab, + 0x2795, 0x2796, 0x2733, 0x2b06, + 0x2b07, 0xf6ab, 0xf53d, 0xf53c, + 0x23ec, 0x23eb, 0xf536, 0xf537, + 0x2b1c, 0x2b1b, 0xf534, 0xf535, + 0x2196, 0x2198, 0x2122, 0x2716, + 0x274c, 0x274e, 0x27a1, 0x2b05, + 0x2797, 0x2197, 0x2199, 0x2714, + 0x00a9, 0x00ae, 0xf53a, 0xf53b, + 0x21aa, 0x21a9, 0x2705, 0xf4dc, + 0xf4cd, 0xf4c3, 0xf4be, 0xf4c5, + 0xf4cb, 0xf4d7, 0xf4d8, 0xf4d9, + 0xf4d5, 0xf4c4, 0xf4c6, 0xf4d3, + 0xf4c7, 0xf4cc, 0xf4d2, 0xf4da, + 0xf4cf, 0x26fd, 0xf5fe, 0xf1fa, + 0xf4ca, 0xf4c8, 0xf4c9, 0xEE40, + 0xf193, 0xf4b2, 0x231a, 0x231b, + 0xf4b3, 0xf4b4, 0xf4f9, 0xf52a, + 0xf4fc, 0xf529, 0xf4bd, 0xf526, + 0xf50b, 0xf4b5, 0xE83C, 0xf527, + 0xf4f1, 0xf50c, 0xf517, 0xf4f0, + 0x2003, 0x2002, 0x2005, 0xf4c1, + 0xf4c2, 0xf4e8, 0xf4e4, 0xf4e5, + 0x23f0, 0x2764, 0x260e, 0x2615, + 0xf301, 0x26f3, 0xf3c0, 0xf4df, + 0xf3a8, 0xf3ad, 0xf3aa, 0xf380, + 0xf382, 0x2660, 0x2666, 0x2663, + 0xf440, 0xf442, 0x270c, 0x270b, + 0xf311, 0xf314, 0xf313, 0xf191, + 0x0030, 0xf197, 0xf635, 0xf49e, + 0xf4a5, 0xf4a6, 0xEE41, 0xf30f, + 0xf35c, 0xEB89, 0xf510, 0xf520, + 0xf521, 0xf522, 0xf523, 0xf251, + 0x2611, 0x2712, 0xf518, 0xf50e, + 0xf519, 0xf516, 0xf4f2, 0xf3e1, + 0xf4eb, 0xf4d1, 0xf50f, 0xf503, + 0xf195, 0xf455, 0xf45e, 0xf4bb, + 0xf4fb, 0xf339, 0x26ea, 0xf687, + 0xf5fb, 0xf3b5, 0xf47c, 0xf42f, + 0xf43b, 0xf42d, 0xf609, 0xf60d, + 0xf631, 0xf613, 0xf419, 0xf680, + 0xf451, 0xf48f, 0xf528, 0xf386, + }; +static const int mb_tbl_code2uni_sb1_min = 0x27a9; +static const int mb_tbl_code2uni_sb1_max = 0x2861; + +static const unsigned short mb_tbl_code2uni_sb1[] = { // 0x27a9 - 0x2861 + 0xf4eb, 0xf4ee, 0xf4e9, 0xf4f2, + 0xf61c, 0xf60d, 0xf631, 0xf613, + 0xf435, 0xf419, 0xf437, 0xf47d, + 0xf680, 0xf451, 0xf4a1, 0xf340, + 0xf48f, 0xf381, 0xf52b, 0xf50d, + 0xf3c3, 0xf528, 0xf386, 0xf341, + 0xf342, 0xf47f, 0xf47b, 0xf480, + 0xf525, 0xf4bc, 0xf4ba, 0xf354, + 0x26f2, 0x26fa, 0x2668, 0xf3a1, + 0xf3ab, 0xf4bf, 0xf4c0, 0xf4fb, + 0xf4fc, 0xf4fa, 0xf47e, 0x303d, + 0xf004, 0xf19a, 0xf4b0, 0xf3af, + 0xf3c6, 0xf3c1, 0xf3b0, 0xf40e, + 0xf6a4, 0xf6b2, 0xf6a7, 0xf6b9, + 0xf6ba, 0xf6bc, 0xf489, 0xf4a4, + 0x26a1, 0xf460, 0xf6c0, 0xf6bd, + 0xf50a, 0xf4e2, 0xf38c, 0xf512, + 0xf513, 0xf306, 0xf373, 0xf4d6, + 0xf4b1, 0xf4b9, 0xf4e1, 0xf4aa, + 0xf3e6, 0xf6a5, 0xf17f, 0xf68f, + 0xf6bb, 0xf46e, 0xf3e3, 0xf3e7, + 0xf3e5, 0xf3ea, 0xf3eb, 0xf3e8, + 0xf68c, 0xf695, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0xf6b6, + 0xf6a2, 0xf201, 0xf49f, 0x2734, + 0x2733, 0xf51e, 0xf6ad, 0xf530, + 0x267f, 0xf4f6, 0x2665, 0x2666, + 0x2660, 0x2663, 0x0023, 0x27bf, + 0xf195, 0xf199, 0xf192, 0xf236, + 0xf21a, 0xf237, 0xf238, 0xf534, + 0xf532, 0xf533, 0x0031, 0x0032, + 0x0033, 0x0034, 0x0035, 0x0036, + 0x0037, 0x0038, 0x0039, 0x0030, + 0xf250, 0xf239, 0xf202, 0xf194, + 0xf235, 0xf233, 0xf22f, 0xf23a, + 0xf446, 0xf447, 0xf448, 0xf449, + 0x2b06, 0x2b07, 0x27a1, 0x2b05, + 0x2197, 0x2196, 0x2198, 0x2199, + 0x25b6, 0x25c0, 0x23e9, 0x23ea, + 0xf52f, 0x2648, 0x2649, 0x264a, + 0x264b, 0x264c, 0x264d, 0x264e, + 0x264f, 0x2650, 0x2651, 0x2652, + 0x2653, 0x26ce, 0xf51d, 0xf197, + 0x00a9, 0x00ae, 0xf4f3, 0xf4f4, + 0x26a0, 0xf481, 0xEE77, 0xEE78, + 0xEE79, 0xEE7A, 0xEE7B, 0xEE7C, + 0xEE7D}; + +static const int mb_tbl_code2uni_sb2_min = 0x2921; +static const int mb_tbl_code2uni_sb2_max = 0x29cc; + +static const unsigned short mb_tbl_code2uni_sb2[] = { // 0x2921 - 0x29cc + 0xf466, 0xf467, 0xf48b, 0xf468, + 0xf469, 0xf455, 0xf45f, 0xf4f7, + 0x260e, 0xf4f1, 0xf4e0, 0xf4bb, + 0xf44a, 0xf44d, 0x261d, 0x270a, + 0x270c, 0x270b, 0xf3bf, 0x26f3, + 0xf3be, 0x26be, 0xf3c4, 0x26bd, + 0xf41f, 0xf434, 0xf697, 0x26f5, + 0x2708, 0xf683, 0xf685, 0x2753, + 0x2757, 0x2764, 0xf494, 0xf550, + 0xf551, 0xf552, 0xf553, 0xf554, + 0xf555, 0xf556, 0xf557, 0xf558, + 0xf559, 0xf55a, 0xf55b, 0xf338, + 0xf531, 0xf339, 0xf384, 0xf48d, + 0xf48e, 0xf3e0, 0x26ea, 0xf3e2, + 0xf689, 0x26fd, 0xf5fb, 0xf3a4, + 0xf3a5, 0xf3b5, 0xf511, 0xf3b7, + 0xf3b8, 0xf3ba, 0xf374, 0xf378, + 0x2615, 0xf370, 0xf37a, 0x26c4, + 0x2601, 0x2600, 0x2614, 0xf319, + 0xf304, 0xf47c, 0xf431, 0xf42f, + 0xf43b, 0xf436, 0xf42d, 0xf433, + 0xf427, 0xf60a, 0xf603, 0xf61e, + 0xf620, 0xf4a9, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0xf4dd, + 0xf454, 0xf33a, 0xf337, 0xf33b, + 0xf490, 0xf334, 0xf335, 0xf6be, + 0xf3a7, 0xf376, 0xf37b, 0x3297, + 0xf6ac, 0xf48a, 0xf388, 0xf4a3, + 0xf389, 0x2702, 0xf380, 0x3299, + 0xf4bd, 0xf4e3, 0xf452, 0xf457, + 0xf461, 0xf462, 0xf484, 0xf485, + 0xf486, 0xf487, 0xf488, 0xf458, + 0xf459, 0xf45c, 0xf3ac, 0xf514, + 0xf3b6, 0xf493, 0xf497, 0xf498, + 0xf499, 0xf49a, 0xf49b, 0xf49c, + 0x2728, 0x2b50, 0xf4a8, 0xf4a6, + 0x2b55, 0x274c, 0xf4a2, 0xf31f, + 0x2754, 0x2755, 0xf375, 0xf35e, + 0xf366, 0xf35f, 0xf361, 0xf358, + 0xf35a, 0xf35d, 0xf35c, 0xf35b, + 0xf359, 0xf362, 0xf363, 0xf34e, + 0xf34a, 0xf353, 0xf349, 0xf345, + 0xf346, 0xf382, 0xf371, 0xf372, + }; +static const int mb_tbl_code2uni_sb3_min = 0x2a99; +static const int mb_tbl_code2uni_sb3_max = 0x2b35; + +static const unsigned short mb_tbl_code2uni_sb3[] = { // 0x2a99 - 0x2b35 + 0xf625, 0xf60f, 0xf614, 0xf601, + 0xf609, 0xf623, 0xf616, 0xf62a, + 0xf61d, 0xf60c, 0xf628, 0xf637, + 0xf633, 0xf612, 0xf630, 0xf632, + 0xf62d, 0xf602, 0xf622, 0x263a, + 0xf604, 0xf621, 0xf61a, 0xf618, + 0xf440, 0xf443, 0xf442, 0xf444, + 0xf64f, 0xf44b, 0xf44f, 0xf44c, + 0xf44e, 0xf450, 0xf645, 0xf646, + 0xf491, 0xf647, 0xf64c, 0xf46b, + 0xf46f, 0xf3c0, 0xf3c8, 0xf3b1, + 0xf3ca, 0xf699, 0xf69a, 0xf692, + 0xf691, 0xf693, 0xf3a2, 0xf687, + 0xf684, 0xf38d, 0xf49d, 0xf38e, + 0xf393, 0xf392, 0xf38f, 0xf302, + 0xf492, 0xf30a, 0xf367, 0xf387, + 0xf41a, 0xf390, 0xf300, 0xf33e, + 0xf383, 0xf391, 0xf343, 0xf385, + 0xf305, 0xf307, 0xf303, 0xf308, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0xf3e9, + 0xf3a8, 0xf3a9, 0xf3ec, 0xf3ef, + 0xf3f0, 0xf3a6, 0xf3ed, 0xf5fc, + 0xE4C5, 0xf1ef, 0xf1fa, 0xf1eb, + 0xf1e9, 0xf1ee, 0xf1ec, 0xf1ea, + 0xf1f7, 0xf1e8, 0xf1f0, 0xf471, + 0xf472, 0xf473, 0xf474, 0xf475, + 0xf476, 0xf477, 0xf478, 0xf5fd, + 0xf482, 0xf483, 0xf42c, 0xf426, + 0xf420, 0xf424, 0xf439, 0xf41b, + 0xf418, 0xf428, 0xf412, 0xf411, + 0xf43a, 0xf42e, 0xf430, 0xf40d, + 0xf414, 0xf417, 0xf42b, 0xf438, + 0xf170, 0xf171, 0xf18e, 0xf17e, + 0xf463, 0x2122, 0xEE70, 0xEE71, + 0xEE72, 0xEE73, 0xEE74, 0xEE75, + 0xEE76}; + + + +static const int mb_tbl_uni_docomo2code1_min = 0x0023; +static const int mb_tbl_uni_docomo2code1_max = 0x00ae; + +static const unsigned short mb_tbl_uni_docomo2code1_key[] = { // 0x0023 - 0x00ae + 0x0023, 0x0030, 0x0031, 0x0032, + 0x0033, 0x0034, 0x0035, 0x0036, + 0x0037, 0x0038, 0x0039, 0x00a9, + 0x00ae, }; + +static const unsigned short mb_tbl_uni_docomo2code1_value[] = { // 0x0023 - 0x00ae + 0x2964, 0x296f, 0x2966, 0x2967, + 0x2968, 0x2969, 0x296a, 0x296b, + 0x296c, 0x296d, 0x296e, 0x29b5, + 0x29ba, }; + +static const int mb_tbl_uni_docomo2code1_len = sizeof(mb_tbl_uni_docomo2code1_key)/sizeof(unsigned short); + +static const int mb_tbl_uni_docomo2code2_min = 0x203c; +static const int mb_tbl_uni_docomo2code2_max = 0x3299; + +static const unsigned short mb_tbl_uni_docomo2code2_key[] = { // 0x203c - 0x3299 + 0x203c, 0x2049, 0x2122, 0x2194, + 0x2195, 0x2196, 0x2197, 0x2198, + 0x2199, 0x21a9, 0x231a, 0x23f0, + 0x23f3, 0x24c2, 0x2600, 0x2601, + 0x260e, 0x2614, 0x2615, 0x2648, + 0x2649, 0x264a, 0x264b, 0x264c, + 0x264d, 0x264e, 0x264f, 0x2650, + 0x2651, 0x2652, 0x2653, 0x2660, + 0x2663, 0x2665, 0x2666, 0x2668, + 0x267b, 0x267f, 0x26a0, 0x26a1, + 0x26bd, 0x26be, 0x26c4, 0x26f3, + 0x26f5, 0x26fd, 0x2702, 0x2708, + 0x2709, 0x270a, 0x270b, 0x270c, + 0x270f, 0x2712, 0x2728, 0x2757, + 0x2764, 0x27b0, 0x27bf, 0x2934, + 0x2935, 0x3030, 0x3299, }; + +static const unsigned short mb_tbl_uni_docomo2code2_value[] = { // 0x203c - 0x3299 + 0x2988, 0x2987, 0x29b6, 0x29c0, + 0x29c1, 0x291b, 0x28fc, 0x291a, + 0x2929, 0x295e, 0x29a3, 0x293e, + 0x29a0, 0x28e0, 0x28c2, 0x28c3, + 0x290b, 0x28c4, 0x28f4, 0x28ca, + 0x28cb, 0x28cc, 0x28cd, 0x28ce, + 0x28cf, 0x28d0, 0x28d1, 0x28d2, + 0x28d3, 0x28d4, 0x28d5, 0x2912, + 0x2914, 0x2911, 0x2913, 0x297b, + 0x29b9, 0x291f, 0x29bb, 0x28c6, + 0x28da, 0x28d7, 0x28c5, 0x28d8, + 0x2927, 0x28ef, 0x28f9, 0x28e6, + 0x2957, 0x2917, 0x2919, 0x2918, + 0x299d, 0x2932, 0x297e, 0x2986, + 0x2970, 0x298e, 0x2963, 0x2979, + 0x2984, 0x298d, 0x29b8, }; + +static const int mb_tbl_uni_docomo2code2_len = sizeof(mb_tbl_uni_docomo2code2_key)/sizeof(unsigned short); + +static const int mb_tbl_uni_docomo2code3_min = 0x1f17f; +static const int mb_tbl_uni_docomo2code3_max = 0x1f6bb; + +static const unsigned short mb_tbl_uni_docomo2code3_key[] = { // 0x1f17f - 0x1f6bb + 0xf17f, 0xf191, 0xf193, 0xf194, + 0xf195, 0xf196, 0xf197, 0xf232, + 0xf233, 0xf234, 0xf235, 0xf300, + 0xf301, 0xf302, 0xf303, 0xf30a, + 0xf311, 0xf313, 0xf314, 0xf315, + 0xf319, 0xf331, 0xf337, 0xf338, + 0xf340, 0xf341, 0xf34c, 0xf34e, + 0xf352, 0xf354, 0xf359, 0xf35c, + 0xf35e, 0xf370, 0xf374, 0xf375, + 0xf376, 0xf377, 0xf378, 0xf37a, + 0xf380, 0xf381, 0xf382, 0xf384, + 0xf3a0, 0xf3a4, 0xf3a5, 0xf3a7, + 0xf3a8, 0xf3a9, 0xf3aa, 0xf3ab, + 0xf3ac, 0xf3ae, 0xf3b5, 0xf3b6, + 0xf3bd, 0xf3be, 0xf3bf, 0xf3c0, + 0xf3c1, 0xf3c2, 0xf3c3, 0xf3e0, + 0xf3e2, 0xf3e3, 0xf3e5, 0xf3e6, + 0xf3e7, 0xf3e8, 0xf3ea, 0xf3eb, + 0xf40c, 0xf41f, 0xf424, 0xf427, + 0xf431, 0xf434, 0xf436, 0xf437, + 0xf440, 0xf442, 0xf44a, 0xf44d, + 0xf451, 0xf453, 0xf455, 0xf456, + 0xf45b, 0xf45c, 0xf45d, 0xf45f, + 0xf460, 0xf463, 0xf464, 0xf484, + 0xf48b, 0xf48c, 0xf48d, 0xf493, + 0xf494, 0xf495, 0xf4a0, 0xf4a1, + 0xf4a2, 0xf4a3, 0xf4a4, 0xf4a5, + 0xf4a6, 0xf4a7, 0xf4a8, 0xf4b0, + 0xf4b4, 0xf4ba, 0xf4bb, 0xf4bf, + 0xf4ce, 0xf4d6, 0xf4dd, 0xf4df, + 0xf4e0, 0xf4e9, 0xf4f1, 0xf4f2, + 0xf4f7, 0xf4fa, 0xf50d, 0xf511, + 0xf514, 0xf51a, 0xf51b, 0xf51c, + 0xf527, 0xf5fb, 0xf601, 0xf603, + 0xf605, 0xf606, 0xf609, 0xf60b, + 0xf60c, 0xf60d, 0xf60f, 0xf612, + 0xf613, 0xf614, 0xf616, 0xf61c, + 0xf61e, 0xf620, 0xf621, 0xf622, + 0xf623, 0xf62d, 0xf631, 0xf635, + 0xf683, 0xf684, 0xf68c, 0xf697, + 0xf699, 0xf6a2, 0xf6a5, 0xf6a9, + 0xf6aa, 0xf6ac, 0xf6ad, 0xf6b2, + 0xf6bb, }; + +static const unsigned short mb_tbl_uni_docomo2code3_value[] = { // 0x1f17f - 0x1f6bb + 0x28f0, 0x295f, 0x295b, 0x295c, + 0x2961, 0x29b3, 0x298f, 0x29bc, + 0x29bd, 0x29be, 0x29bf, 0x28c7, + 0x28c8, 0x28c9, 0x2937, 0x29c3, + 0x2920, 0x2922, 0x2921, 0x2924, + 0x2923, 0x29ca, 0x29c7, 0x29cc, + 0x29c5, 0x29cb, 0x29c8, 0x29c9, + 0x29c6, 0x28f7, 0x29cd, 0x29d0, + 0x29d1, 0x29ce, 0x28f3, 0x29a2, + 0x29cf, 0x29da, 0x28f5, 0x28f6, + 0x2908, 0x2909, 0x290a, 0x2928, + 0x28fd, 0x28fa, 0x28fb, 0x28fe, + 0x28ff, 0x2900, 0x2901, 0x2902, + 0x2930, 0x290f, 0x297a, 0x2983, + 0x28d6, 0x28d9, 0x28db, 0x28dc, + 0x28dd, 0x2996, 0x29b7, 0x28e7, + 0x28e8, 0x28e9, 0x28ea, 0x28eb, + 0x28ec, 0x28ed, 0x28ee, 0x29c2, + 0x29d2, 0x29d5, 0x29d3, 0x29d4, + 0x2926, 0x29d8, 0x2925, 0x29d9, + 0x2915, 0x2916, 0x2981, 0x29ab, + 0x299e, 0x291e, 0x2992, 0x2995, + 0x2993, 0x2906, 0x2931, 0x291d, + 0x28f8, 0x291c, 0x2935, 0x2994, + 0x297d, 0x299b, 0x299f, 0x2971, + 0x2972, 0x2973, 0x297c, 0x297f, + 0x2980, 0x2982, 0x2985, 0x2989, + 0x298a, 0x298b, 0x298c, 0x2999, + 0x295a, 0x2936, 0x299a, 0x2910, + 0x29b4, 0x2907, 0x290d, 0x28de, + 0x2954, 0x2953, 0x290c, 0x2952, + 0x2905, 0x290e, 0x2960, 0x295d, + 0x2997, 0x293d, 0x293c, 0x293b, + 0x299c, 0x29c4, 0x29d7, 0x2974, + 0x29a6, 0x29ae, 0x29ad, 0x29d6, + 0x29a5, 0x29aa, 0x29b0, 0x29a9, + 0x29a7, 0x29a4, 0x2977, 0x29ac, + 0x2976, 0x2975, 0x29a8, 0x29b2, + 0x29af, 0x29b1, 0x29db, 0x2978, + 0x28df, 0x28e1, 0x28e4, 0x28e2, + 0x28e3, 0x28e5, 0x28f1, 0x2962, + 0x2998, 0x2903, 0x2904, 0x29a1, + 0x28f2, }; + +static const int mb_tbl_uni_docomo2code3_len = sizeof(mb_tbl_uni_docomo2code3_key)/sizeof(unsigned short); + +static const int mb_tbl_uni_kddi2code1_min = 0x0023; +static const int mb_tbl_uni_kddi2code1_max = 0x00ae; + +static const unsigned short mb_tbl_uni_kddi2code1_key[] = { // 0x0023 - 0x00ae + 0x0023, 0x0030, 0x0031, 0x0032, + 0x0033, 0x0034, 0x0035, 0x0036, + 0x0037, 0x0038, 0x0039, 0x00a9, + 0x00ae, }; + +static const unsigned short mb_tbl_uni_kddi2code1_value[] = { // 0x0023 - 0x00ae + 0x25bc, 0x2830, 0x27a6, 0x27a7, + 0x27a8, 0x27a9, 0x27aa, 0x27ab, + 0x27ac, 0x27ad, 0x27ae, 0x27dc, + 0x27dd, }; + +static const int mb_tbl_uni_kddi2code1_len = sizeof(mb_tbl_uni_kddi2code1_key)/sizeof(unsigned short); + +static const int mb_tbl_uni_kddi2code2_min = 0x2002; +static const int mb_tbl_uni_kddi2code2_max = 0x3299; + +static const unsigned short mb_tbl_uni_kddi2code2_key[] = { // 0x2002 - 0x3299 + 0x2002, 0x2003, 0x2005, 0x203c, + 0x2049, 0x2122, 0x2139, 0x2194, + 0x2195, 0x2196, 0x2197, 0x2198, + 0x2199, 0x21a9, 0x21aa, 0x231a, + 0x231b, 0x23e9, 0x23ea, 0x23eb, + 0x23ec, 0x23f0, 0x23f3, 0x25aa, + 0x25ab, 0x25b6, 0x25c0, 0x25fb, + 0x25fc, 0x25fd, 0x25fe, 0x2600, + 0x2601, 0x260e, 0x2611, 0x2614, + 0x2615, 0x261d, 0x263a, 0x2648, + 0x2649, 0x264a, 0x264b, 0x264c, + 0x264d, 0x264e, 0x264f, 0x2650, + 0x2651, 0x2652, 0x2653, 0x2660, + 0x2663, 0x2665, 0x2666, 0x2668, + 0x267b, 0x267f, 0x2693, 0x26a0, + 0x26a1, 0x26aa, 0x26ab, 0x26bd, + 0x26be, 0x26c4, 0x26c5, 0x26ce, + 0x26d4, 0x26ea, 0x26f2, 0x26f3, + 0x26f5, 0x26fa, 0x26fd, 0x2702, + 0x2705, 0x2708, 0x2709, 0x270a, + 0x270b, 0x270c, 0x270f, 0x2712, + 0x2714, 0x2716, 0x2728, 0x2733, + 0x2734, 0x2744, 0x2747, 0x274c, + 0x274e, 0x2753, 0x2757, 0x2764, + 0x2795, 0x2796, 0x2797, 0x27a1, + 0x27b0, 0x2934, 0x2935, 0x2b05, + 0x2b06, 0x2b07, 0x2b1b, 0x2b1c, + 0x2b50, 0x2b55, 0x3297, 0x3299, + }; + +static const unsigned short mb_tbl_uni_kddi2code2_value[] = { // 0x2002 - 0x3299 + 0x2811, 0x2810, 0x2812, 0x2568, + 0x2567, 0x27d2, 0x27b7, 0x25b2, + 0x25b3, 0x27d0, 0x27d9, 0x27d1, + 0x27da, 0x27e1, 0x27e0, 0x27fe, + 0x27ff, 0x27b4, 0x27b3, 0x27c9, + 0x27c8, 0x2818, 0x2700, 0x27b6, + 0x27b5, 0x27b2, 0x27b1, 0x27bc, + 0x27bd, 0x27b8, 0x27b9, 0x270c, + 0x2711, 0x281a, 0x2840, 0x2710, + 0x281b, 0x277a, 0x277f, 0x2713, + 0x2714, 0x2715, 0x2716, 0x2717, + 0x2718, 0x2719, 0x271a, 0x271b, + 0x271c, 0x271d, 0x271e, 0x2825, + 0x2827, 0x24f0, 0x2826, 0x2740, + 0x25b1, 0x2703, 0x272d, 0x2705, + 0x270b, 0x27be, 0x27bf, 0x273a, + 0x273e, 0x2709, 0x2712, 0x271f, + 0x2708, 0x2852, 0x24ba, 0x281d, + 0x2738, 0x24bb, 0x27f5, 0x279a, + 0x27e2, 0x2737, 0x27a5, 0x25bb, + 0x282b, 0x282a, 0x2725, 0x2841, + 0x27db, 0x27d3, 0x24f6, 0x27c2, + 0x26fd, 0x270e, 0x26f0, 0x27d4, + 0x27d5, 0x2707, 0x2706, 0x2819, + 0x27c0, 0x27c1, 0x27d8, 0x27d6, + 0x2569, 0x2565, 0x2566, 0x27d7, + 0x27c3, 0x27c4, 0x27cd, 0x27cc, + 0x270f, 0x24f8, 0x24e4, 0x2775, + }; + +static const int mb_tbl_uni_kddi2code2_len = sizeof(mb_tbl_uni_kddi2code2_key)/sizeof(unsigned short); + +static const int mb_tbl_uni_kddi2code3_min = 0x1f004; +static const int mb_tbl_uni_kddi2code3_max = 0x1f6c0; + +static const unsigned short mb_tbl_uni_kddi2code3_key[] = { // 0x1f004 - 0x1f6c0 + 0xf004, 0xf0cf, 0xf170, 0xf171, + 0xf17e, 0xf17f, 0xf18e, 0xf191, + 0xf192, 0xf193, 0xf194, 0xf195, + 0xf197, 0xf198, 0xf199, 0xf19a, + 0xf1e8, 0xf1e9, 0xf1ea, 0xf1eb, + 0xf1ec, 0xf1ee, 0xf1ef, 0xf1f0, + 0xf1f7, 0xf1fa, 0xf202, 0xf22f, + 0xf233, 0xf235, 0xf239, 0xf23a, + 0xf250, 0xf251, 0xf300, 0xf301, + 0xf302, 0xf303, 0xf305, 0xf306, + 0xf308, 0xf309, 0xf30a, 0xf30b, + 0xf30c, 0xf30f, 0xf311, 0xf313, + 0xf314, 0xf319, 0xf31b, 0xf320, + 0xf330, 0xf331, 0xf334, 0xf335, + 0xf337, 0xf338, 0xf339, 0xf33a, + 0xf33b, 0xf33c, 0xf33d, 0xf33f, + 0xf340, 0xf341, 0xf342, 0xf344, + 0xf345, 0xf346, 0xf347, 0xf348, + 0xf349, 0xf34a, 0xf34c, 0xf34d, + 0xf34e, 0xf34f, 0xf351, 0xf352, + 0xf353, 0xf354, 0xf355, 0xf356, + 0xf357, 0xf358, 0xf359, 0xf35a, + 0xf35b, 0xf35c, 0xf35d, 0xf35e, + 0xf35f, 0xf360, 0xf361, 0xf362, + 0xf363, 0xf364, 0xf365, 0xf366, + 0xf367, 0xf368, 0xf369, 0xf36a, + 0xf36b, 0xf36c, 0xf36d, 0xf36e, + 0xf36f, 0xf370, 0xf371, 0xf372, + 0xf373, 0xf374, 0xf375, 0xf376, + 0xf377, 0xf378, 0xf379, 0xf37a, + 0xf37b, 0xf380, 0xf381, 0xf382, + 0xf383, 0xf384, 0xf385, 0xf386, + 0xf387, 0xf388, 0xf389, 0xf38a, + 0xf38b, 0xf38c, 0xf38d, 0xf38e, + 0xf38f, 0xf390, 0xf391, 0xf392, + 0xf393, 0xf3a1, 0xf3a2, 0xf3a3, + 0xf3a4, 0xf3a5, 0xf3a7, 0xf3a8, + 0xf3a9, 0xf3aa, 0xf3ab, 0xf3ac, + 0xf3ad, 0xf3ae, 0xf3af, 0xf3b0, + 0xf3b1, 0xf3b2, 0xf3b3, 0xf3b4, + 0xf3b5, 0xf3b6, 0xf3b8, 0xf3b9, + 0xf3ba, 0xf3bb, 0xf3bc, 0xf3be, + 0xf3bf, 0xf3c0, 0xf3c1, 0xf3c2, + 0xf3c3, 0xf3c4, 0xf3c6, 0xf3c8, + 0xf3ca, 0xf3e0, 0xf3e1, 0xf3e2, + 0xf3e3, 0xf3e5, 0xf3e6, 0xf3e7, + 0xf3e8, 0xf3e9, 0xf3ea, 0xf3eb, + 0xf3ec, 0xf3ed, 0xf3ee, 0xf3ef, + 0xf3f0, 0xf40c, 0xf40d, 0xf414, + 0xf417, 0xf418, 0xf419, 0xf41a, + 0xf41b, 0xf41c, 0xf41d, 0xf41e, + 0xf420, 0xf421, 0xf422, 0xf423, + 0xf424, 0xf425, 0xf427, 0xf428, + 0xf429, 0xf42b, 0xf42c, 0xf42d, + 0xf42e, 0xf42f, 0xf430, 0xf431, + 0xf432, 0xf433, 0xf434, 0xf435, + 0xf436, 0xf437, 0xf438, 0xf43b, + 0xf43c, 0xf43d, 0xf43e, 0xf440, + 0xf442, 0xf443, 0xf444, 0xf445, + 0xf446, 0xf447, 0xf448, 0xf449, + 0xf44a, 0xf44b, 0xf44c, 0xf44d, + 0xf44e, 0xf44f, 0xf451, 0xf452, + 0xf453, 0xf454, 0xf455, 0xf456, + 0xf457, 0xf458, 0xf459, 0xf45a, + 0xf45b, 0xf45c, 0xf45e, 0xf45f, + 0xf460, 0xf462, 0xf463, 0xf468, + 0xf469, 0xf46a, 0xf46e, 0xf46f, + 0xf470, 0xf471, 0xf472, 0xf473, + 0xf474, 0xf475, 0xf476, 0xf477, + 0xf478, 0xf479, 0xf47a, 0xf47b, + 0xf47c, 0xf47d, 0xf47e, 0xf47f, + 0xf480, 0xf483, 0xf484, 0xf485, + 0xf486, 0xf487, 0xf488, 0xf489, + 0xf48a, 0xf48b, 0xf48c, 0xf48d, + 0xf48f, 0xf490, 0xf491, 0xf493, + 0xf494, 0xf495, 0xf496, 0xf498, + 0xf499, 0xf49a, 0xf49b, 0xf49c, + 0xf49d, 0xf49e, 0xf4a1, 0xf4a2, + 0xf4a3, 0xf4a4, 0xf4a5, 0xf4a6, + 0xf4a7, 0xf4a8, 0xf4a9, 0xf4aa, + 0xf4ab, 0xf4ac, 0xf4ae, 0xf4af, + 0xf4b0, 0xf4b2, 0xf4b3, 0xf4b4, + 0xf4b5, 0xf4b8, 0xf4b9, 0xf4bb, + 0xf4bc, 0xf4bd, 0xf4be, 0xf4bf, + 0xf4c1, 0xf4c2, 0xf4c3, 0xf4c4, + 0xf4c5, 0xf4c6, 0xf4c7, 0xf4c8, + 0xf4c9, 0xf4ca, 0xf4cb, 0xf4cc, + 0xf4cd, 0xf4ce, 0xf4cf, 0xf4d0, + 0xf4d1, 0xf4d2, 0xf4d3, 0xf4d4, + 0xf4d5, 0xf4d6, 0xf4d7, 0xf4d8, + 0xf4d9, 0xf4da, 0xf4db, 0xf4dc, + 0xf4dd, 0xf4de, 0xf4df, 0xf4e0, + 0xf4e1, 0xf4e4, 0xf4e5, 0xf4e6, + 0xf4e7, 0xf4e8, 0xf4e9, 0xf4ea, + 0xf4eb, 0xf4f0, 0xf4f1, 0xf4f2, + 0xf4f3, 0xf4f4, 0xf4f6, 0xf4f7, + 0xf4f9, 0xf4fa, 0xf4fb, 0xf4fc, + 0xf503, 0xf50a, 0xf50b, 0xf50c, + 0xf50d, 0xf50e, 0xf50f, 0xf510, + 0xf511, 0xf512, 0xf514, 0xf516, + 0xf517, 0xf518, 0xf519, 0xf51e, + 0xf51f, 0xf520, 0xf521, 0xf522, + 0xf523, 0xf524, 0xf525, 0xf526, + 0xf527, 0xf528, 0xf529, 0xf52a, + 0xf52b, 0xf52e, 0xf530, 0xf534, + 0xf535, 0xf536, 0xf537, 0xf538, + 0xf539, 0xf53a, 0xf53b, 0xf53c, + 0xf53d, 0xf5fb, 0xf5fc, 0xf5fe, + 0xf5ff, 0xf601, 0xf602, 0xf603, + 0xf609, 0xf60a, 0xf60c, 0xf60d, + 0xf60f, 0xf612, 0xf613, 0xf614, + 0xf616, 0xf618, 0xf61a, 0xf61c, + 0xf620, 0xf621, 0xf622, 0xf623, + 0xf624, 0xf628, 0xf629, 0xf62a, + 0xf62b, 0xf62d, 0xf630, 0xf631, + 0xf632, 0xf633, 0xf635, 0xf637, + 0xf638, 0xf639, 0xf63a, 0xf63b, + 0xf63c, 0xf63d, 0xf63e, 0xf63f, + 0xf640, 0xf645, 0xf646, 0xf647, + 0xf648, 0xf649, 0xf64a, 0xf64b, + 0xf64c, 0xf64d, 0xf64e, 0xf64f, + 0xf680, 0xf683, 0xf685, 0xf687, + 0xf689, 0xf68c, 0xf68f, 0xf691, + 0xf692, 0xf693, 0xf697, 0xf69a, + 0xf6a2, 0xf6a5, 0xf6a7, 0xf6a8, + 0xf6a9, 0xf6ab, 0xf6ac, 0xf6ad, + 0xf6b2, 0xf6b6, 0xf6bb, 0xf6c0, + }; + +static const unsigned short mb_tbl_uni_kddi2code3_value[] = { // 0x1f004 - 0x1f6c0 + 0x24bc, 0x25a7, 0x255e, 0x255f, + 0x2560, 0x272a, 0x2561, 0x282f, + 0x24d0, 0x27fc, 0x24d3, 0x284c, + 0x2831, 0x276c, 0x2793, 0x24bd, + 0x2549, 0x2546, 0x24c0, 0x2545, + 0x2548, 0x2547, 0x2750, 0x254a, + 0x24c1, 0x27f7, 0x24d2, 0x24d6, + 0x24d5, 0x24d4, 0x24d1, 0x24d7, + 0x277b, 0x283f, 0x26ed, 0x281c, + 0x2533, 0x253c, 0x253f, 0x24c5, + 0x253d, 0x2743, 0x25b4, 0x258b, + 0x2597, 0x2837, 0x282c, 0x282e, + 0x282d, 0x270a, 0x270d, 0x26ec, + 0x2570, 0x25b5, 0x2766, 0x24e1, + 0x2768, 0x274e, 0x2851, 0x24df, + 0x2767, 0x2581, 0x256e, 0x25ba, + 0x2797, 0x2752, 0x24b8, 0x256f, + 0x2506, 0x2507, 0x256c, 0x256a, + 0x2751, 0x2505, 0x256d, 0x256b, + 0x2504, 0x2592, 0x2571, 0x2756, + 0x2758, 0x275a, 0x2573, 0x2748, + 0x2574, 0x24fe, 0x2759, 0x24ff, + 0x2501, 0x2838, 0x2500, 0x24fa, + 0x24fc, 0x2572, 0x24fd, 0x2502, + 0x2503, 0x25a8, 0x2771, 0x24fb, + 0x2535, 0x2582, 0x2583, 0x2584, + 0x2585, 0x2586, 0x2587, 0x258e, + 0x2591, 0x2754, 0x2508, 0x2509, + 0x2755, 0x2730, 0x24f9, 0x24e2, + 0x2745, 0x2746, 0x2576, 0x2747, + 0x24e3, 0x2823, 0x2753, 0x2824, + 0x2539, 0x274d, 0x253b, 0x2863, + 0x2536, 0x24e6, 0x24e7, 0x26f3, + 0x2575, 0x24c4, 0x252e, 0x252f, + 0x2532, 0x2538, 0x253a, 0x2531, + 0x2530, 0x26f1, 0x252d, 0x257a, + 0x2787, 0x279b, 0x278c, 0x2820, + 0x2540, 0x2822, 0x2722, 0x2742, + 0x2821, 0x274a, 0x2749, 0x26f2, + 0x2528, 0x274c, 0x257b, 0x25a6, + 0x2855, 0x2789, 0x278a, 0x2578, + 0x2527, 0x278b, 0x2517, 0x273b, + 0x24f7, 0x281e, 0x273d, 0x273c, + 0x26ef, 0x2579, 0x24be, 0x273f, + 0x2529, 0x272f, 0x2847, 0x2731, + 0x24c9, 0x24ca, 0x272e, 0x2727, + 0x24cc, 0x253e, 0x2728, 0x24cb, + 0x2541, 0x2544, 0x2741, 0x2542, + 0x2543, 0x25b6, 0x255a, 0x255b, + 0x255c, 0x2557, 0x285e, 0x2537, + 0x2556, 0x2761, 0x258f, 0x2590, + 0x2555, 0x2757, 0x24bf, 0x24c6, + 0x2764, 0x25ae, 0x2760, 0x2558, + 0x2763, 0x255d, 0x2553, 0x2859, + 0x2559, 0x2857, 0x275b, 0x275f, + 0x2577, 0x26f4, 0x275c, 0x275d, + 0x2765, 0x2762, 0x275e, 0x2858, + 0x257e, 0x2580, 0x2772, 0x2828, + 0x2829, 0x251b, 0x251c, 0x257f, + 0x24d8, 0x24d9, 0x2783, 0x2784, + 0x2777, 0x2521, 0x251f, 0x277d, + 0x2520, 0x251e, 0x2860, 0x24e9, + 0x2782, 0x24de, 0x284d, 0x25af, + 0x25a3, 0x24ee, 0x24ef, 0x2791, + 0x2788, 0x2720, 0x284e, 0x2563, + 0x279e, 0x24ea, 0x2562, 0x2780, + 0x277e, 0x2785, 0x24c8, 0x2526, + 0x2534, 0x254b, 0x254c, 0x254d, + 0x254e, 0x254f, 0x2550, 0x2551, + 0x2552, 0x257c, 0x257d, 0x274f, + 0x2856, 0x2792, 0x2770, 0x2773, + 0x277c, 0x2554, 0x278d, 0x24eb, + 0x278f, 0x24ec, 0x24ed, 0x2794, + 0x24e5, 0x276f, 0x25b0, 0x2798, + 0x2861, 0x24e0, 0x2525, 0x25ad, + 0x26fb, 0x26fc, 0x24f1, 0x276e, + 0x24f2, 0x24f3, 0x24f4, 0x24f5, + 0x258c, 0x2833, 0x26fa, 0x2769, + 0x26fe, 0x26f9, 0x2834, 0x2835, + 0x276a, 0x2778, 0x2779, 0x276d, + 0x2594, 0x2781, 0x2774, 0x2776, + 0x274b, 0x27fd, 0x2800, 0x2801, + 0x2809, 0x2593, 0x24c7, 0x284f, + 0x24b9, 0x2806, 0x27e6, 0x2790, + 0x2813, 0x2814, 0x27e5, 0x27ed, + 0x27e7, 0x27ee, 0x27f0, 0x27f9, + 0x27fa, 0x27f8, 0x27e8, 0x27f1, + 0x27e4, 0x2724, 0x27f4, 0x2726, + 0x2849, 0x27f2, 0x27ef, 0x2721, + 0x27ec, 0x2723, 0x27e9, 0x27ea, + 0x27eb, 0x27f3, 0x27a1, 0x27e3, + 0x24dd, 0x27a2, 0x281f, 0x27a4, + 0x272c, 0x2816, 0x2817, 0x27a3, + 0x25a9, 0x2815, 0x259a, 0x279f, + 0x2848, 0x280f, 0x280c, 0x2846, + 0x24db, 0x24dc, 0x24cf, 0x2799, + 0x2802, 0x2786, 0x2850, 0x2804, + 0x284b, 0x2795, 0x2808, 0x280d, + 0x279c, 0x2843, 0x284a, 0x283a, + 0x279d, 0x27a0, 0x2796, 0x2845, + 0x280e, 0x2842, 0x2844, 0x24ce, + 0x27af, 0x283b, 0x283c, 0x283d, + 0x283e, 0x258d, 0x26ff, 0x2807, + 0x280b, 0x2862, 0x2805, 0x2803, + 0x278e, 0x24da, 0x2704, 0x27ce, + 0x27cf, 0x27ca, 0x27cb, 0x27ba, + 0x27bb, 0x27de, 0x27df, 0x27c7, + 0x27c6, 0x2854, 0x2744, 0x27f6, + 0x25a4, 0x25b8, 0x259c, 0x26f5, + 0x285a, 0x2518, 0x2510, 0x285b, + 0x250a, 0x2514, 0x285d, 0x250b, + 0x250e, 0x251a, 0x2519, 0x276b, + 0x26f6, 0x2595, 0x25a1, 0x250d, + 0x250c, 0x2511, 0x259f, 0x250f, + 0x26f8, 0x26f7, 0x2516, 0x285c, + 0x2515, 0x2513, 0x2832, 0x2512, + 0x25b7, 0x259b, 0x2599, 0x259d, + 0x25a2, 0x2598, 0x2596, 0x25a0, + 0x259e, 0x2522, 0x2523, 0x2524, + 0x2588, 0x258a, 0x2589, 0x25bd, + 0x25be, 0x25bf, 0x25c0, 0x251d, + 0x285f, 0x2739, 0x2734, 0x2853, + 0x25a5, 0x2733, 0x272b, 0x252b, + 0x252a, 0x252c, 0x2735, 0x2736, + 0x24cd, 0x26ee, 0x24c2, 0x25ab, + 0x2564, 0x27c5, 0x2701, 0x2702, + 0x2732, 0x25aa, 0x2729, 0x24c3, + }; + +static const int mb_tbl_uni_kddi2code3_len = sizeof(mb_tbl_uni_kddi2code3_key)/sizeof(unsigned short); + +static const int mb_tbl_uni_sb2code1_min = 0x0023; +static const int mb_tbl_uni_sb2code1_max = 0x00ae; + +static const unsigned short mb_tbl_uni_sb2code1_key[] = { // 0x0023 - 0x00ae + 0x0023, 0x0030, 0x0031, 0x0032, + 0x0033, 0x0034, 0x0035, 0x0036, + 0x0037, 0x0038, 0x0039, 0x00a9, + 0x00ae, }; + +static const unsigned short mb_tbl_uni_sb2code1_value[] = { // 0x0023 - 0x00ae + 0x2817, 0x282c, 0x2823, 0x2824, + 0x2825, 0x2826, 0x2827, 0x2828, + 0x2829, 0x282a, 0x282b, 0x2855, + 0x2856, }; + +static const int mb_tbl_uni_sb2code1_len = sizeof(mb_tbl_uni_sb2code1_key)/sizeof(unsigned short); + +static const int mb_tbl_uni_sb2code2_min = 0x2122; +static const int mb_tbl_uni_sb2code2_max = 0x3299; + +static const unsigned short mb_tbl_uni_sb2code2_key[] = { // 0x2122 - 0x3299 + 0x2122, 0x2196, 0x2197, 0x2198, + 0x2199, 0x23e9, 0x23ea, 0x25b6, + 0x25c0, 0x2600, 0x2601, 0x260e, + 0x2614, 0x2615, 0x261d, 0x263a, + 0x2648, 0x2649, 0x264a, 0x264b, + 0x264c, 0x264d, 0x264e, 0x264f, + 0x2650, 0x2651, 0x2652, 0x2653, + 0x2660, 0x2663, 0x2665, 0x2666, + 0x2668, 0x267f, 0x26a0, 0x26a1, + 0x26bd, 0x26be, 0x26c4, 0x26ce, + 0x26ea, 0x26f2, 0x26f3, 0x26f5, + 0x26fa, 0x26fd, 0x2702, 0x2708, + 0x270a, 0x270b, 0x270c, 0x2728, + 0x2733, 0x2734, 0x274c, 0x2753, + 0x2754, 0x2755, 0x2757, 0x2764, + 0x27a1, 0x27bf, 0x2b05, 0x2b06, + 0x2b07, 0x2b50, 0x2b55, 0x303d, + 0x3297, 0x3299, }; + +static const unsigned short mb_tbl_uni_sb2code2_value[] = { // 0x2122 - 0x3299 + 0x2b2e, 0x283e, 0x283d, 0x283f, + 0x2840, 0x2843, 0x2844, 0x2841, + 0x2842, 0x296a, 0x2969, 0x2929, + 0x296b, 0x2965, 0x292f, 0x2aac, + 0x2846, 0x2847, 0x2848, 0x2849, + 0x284a, 0x284b, 0x284c, 0x284d, + 0x284e, 0x284f, 0x2850, 0x2851, + 0x2815, 0x2816, 0x2813, 0x2814, + 0x27cb, 0x2811, 0x2859, 0x27e5, + 0x2938, 0x2936, 0x2968, 0x2852, + 0x2957, 0x27c9, 0x2934, 0x293c, + 0x27ca, 0x295a, 0x2992, 0x293d, + 0x2930, 0x2932, 0x2931, 0x29ad, + 0x280d, 0x280c, 0x29b2, 0x2940, + 0x29b5, 0x29b6, 0x2941, 0x2942, + 0x283b, 0x2818, 0x283c, 0x2839, + 0x283a, 0x29ae, 0x29b1, 0x27d4, + 0x298c, 0x2994, }; + +static const int mb_tbl_uni_sb2code2_len = sizeof(mb_tbl_uni_sb2code2_key)/sizeof(unsigned short); + +static const int mb_tbl_uni_sb2code3_min = 0x1f004; +static const int mb_tbl_uni_sb2code3_max = 0x1f6c0; + +static const unsigned short mb_tbl_uni_sb2code3_key[] = { // 0x1f004 - 0x1f6c0 + 0xf004, 0xf170, 0xf171, 0xf17e, + 0xf17f, 0xf18e, 0xf192, 0xf194, + 0xf195, 0xf197, 0xf199, 0xf19a, + 0xf1e8, 0xf1e9, 0xf1ea, 0xf1eb, + 0xf1ec, 0xf1ee, 0xf1ef, 0xf1f0, + 0xf1f7, 0xf1fa, 0xf201, 0xf202, + 0xf21a, 0xf22f, 0xf233, 0xf235, + 0xf236, 0xf237, 0xf238, 0xf239, + 0xf23a, 0xf250, 0xf300, 0xf302, + 0xf303, 0xf304, 0xf305, 0xf306, + 0xf307, 0xf308, 0xf30a, 0xf319, + 0xf31f, 0xf334, 0xf335, 0xf337, + 0xf338, 0xf339, 0xf33a, 0xf33b, + 0xf33e, 0xf340, 0xf341, 0xf342, + 0xf343, 0xf345, 0xf346, 0xf349, + 0xf34a, 0xf34e, 0xf353, 0xf354, + 0xf358, 0xf359, 0xf35a, 0xf35b, + 0xf35c, 0xf35d, 0xf35e, 0xf35f, + 0xf361, 0xf362, 0xf363, 0xf366, + 0xf367, 0xf370, 0xf371, 0xf372, + 0xf373, 0xf374, 0xf375, 0xf376, + 0xf378, 0xf37a, 0xf37b, 0xf380, + 0xf381, 0xf382, 0xf383, 0xf384, + 0xf385, 0xf386, 0xf387, 0xf388, + 0xf389, 0xf38c, 0xf38d, 0xf38e, + 0xf38f, 0xf390, 0xf391, 0xf392, + 0xf393, 0xf3a1, 0xf3a2, 0xf3a4, + 0xf3a5, 0xf3a6, 0xf3a7, 0xf3a8, + 0xf3a9, 0xf3ab, 0xf3ac, 0xf3af, + 0xf3b0, 0xf3b1, 0xf3b5, 0xf3b6, + 0xf3b7, 0xf3b8, 0xf3ba, 0xf3be, + 0xf3bf, 0xf3c0, 0xf3c1, 0xf3c3, + 0xf3c4, 0xf3c6, 0xf3c8, 0xf3ca, + 0xf3e0, 0xf3e2, 0xf3e3, 0xf3e5, + 0xf3e6, 0xf3e7, 0xf3e8, 0xf3e9, + 0xf3ea, 0xf3eb, 0xf3ec, 0xf3ed, + 0xf3ef, 0xf3f0, 0xf40d, 0xf40e, + 0xf411, 0xf412, 0xf414, 0xf417, + 0xf418, 0xf419, 0xf41a, 0xf41b, + 0xf41f, 0xf420, 0xf424, 0xf426, + 0xf427, 0xf428, 0xf42b, 0xf42c, + 0xf42d, 0xf42e, 0xf42f, 0xf430, + 0xf431, 0xf433, 0xf434, 0xf435, + 0xf436, 0xf437, 0xf438, 0xf439, + 0xf43a, 0xf43b, 0xf440, 0xf442, + 0xf443, 0xf444, 0xf446, 0xf447, + 0xf448, 0xf449, 0xf44a, 0xf44b, + 0xf44c, 0xf44d, 0xf44e, 0xf44f, + 0xf450, 0xf451, 0xf452, 0xf454, + 0xf455, 0xf457, 0xf458, 0xf459, + 0xf45c, 0xf45f, 0xf460, 0xf461, + 0xf462, 0xf463, 0xf466, 0xf467, + 0xf468, 0xf469, 0xf46b, 0xf46e, + 0xf46f, 0xf471, 0xf472, 0xf473, + 0xf474, 0xf475, 0xf476, 0xf477, + 0xf478, 0xf47b, 0xf47c, 0xf47d, + 0xf47e, 0xf47f, 0xf480, 0xf481, + 0xf482, 0xf483, 0xf484, 0xf485, + 0xf486, 0xf487, 0xf488, 0xf489, + 0xf48a, 0xf48b, 0xf48d, 0xf48e, + 0xf48f, 0xf490, 0xf491, 0xf492, + 0xf493, 0xf494, 0xf497, 0xf498, + 0xf499, 0xf49a, 0xf49b, 0xf49c, + 0xf49d, 0xf49f, 0xf4a1, 0xf4a2, + 0xf4a3, 0xf4a4, 0xf4a6, 0xf4a8, + 0xf4a9, 0xf4aa, 0xf4b0, 0xf4b1, + 0xf4b9, 0xf4ba, 0xf4bb, 0xf4bc, + 0xf4bd, 0xf4bf, 0xf4c0, 0xf4d6, + 0xf4dd, 0xf4e0, 0xf4e1, 0xf4e2, + 0xf4e3, 0xf4e9, 0xf4eb, 0xf4ee, + 0xf4f1, 0xf4f2, 0xf4f3, 0xf4f4, + 0xf4f6, 0xf4f7, 0xf4fa, 0xf4fb, + 0xf4fc, 0xf50a, 0xf50d, 0xf511, + 0xf512, 0xf513, 0xf514, 0xf51d, + 0xf51e, 0xf525, 0xf528, 0xf52b, + 0xf52f, 0xf530, 0xf531, 0xf532, + 0xf533, 0xf534, 0xf550, 0xf551, + 0xf552, 0xf553, 0xf554, 0xf555, + 0xf556, 0xf557, 0xf558, 0xf559, + 0xf55a, 0xf55b, 0xf5fb, 0xf5fc, + 0xf5fd, 0xf601, 0xf602, 0xf603, + 0xf604, 0xf609, 0xf60a, 0xf60c, + 0xf60d, 0xf60f, 0xf612, 0xf613, + 0xf614, 0xf616, 0xf618, 0xf61a, + 0xf61c, 0xf61d, 0xf61e, 0xf620, + 0xf621, 0xf622, 0xf623, 0xf625, + 0xf628, 0xf62a, 0xf62d, 0xf630, + 0xf631, 0xf632, 0xf633, 0xf637, + 0xf645, 0xf646, 0xf647, 0xf64c, + 0xf64f, 0xf680, 0xf683, 0xf684, + 0xf685, 0xf687, 0xf689, 0xf68c, + 0xf68f, 0xf691, 0xf692, 0xf693, + 0xf695, 0xf697, 0xf699, 0xf69a, + 0xf6a2, 0xf6a4, 0xf6a5, 0xf6a7, + 0xf6ac, 0xf6ad, 0xf6b2, 0xf6b6, + 0xf6b9, 0xf6ba, 0xf6bb, 0xf6bc, + 0xf6bd, 0xf6be, 0xf6c0, }; + +static const unsigned short mb_tbl_uni_sb2code3_value[] = { // 0x1f004 - 0x1f6c0 + 0x27d5, 0x2b29, 0x2b2a, 0x2b2c, + 0x27f7, 0x2b2b, 0x281b, 0x2830, + 0x2819, 0x2854, 0x281a, 0x27d6, + 0x2b0a, 0x2b05, 0x2b08, 0x2b04, + 0x2b07, 0x2b06, 0x2b02, 0x2b0b, + 0x2b09, 0x2b03, 0x280a, 0x282f, + 0x281d, 0x2833, 0x2832, 0x2831, + 0x281c, 0x281e, 0x281f, 0x282e, + 0x2834, 0x282d, 0x2adb, 0x2ad4, + 0x2ae3, 0x296d, 0x2ae1, 0x27ee, + 0x2ae2, 0x2ae4, 0x2ad6, 0x296c, + 0x29b4, 0x2986, 0x2987, 0x2983, + 0x2950, 0x2952, 0x2982, 0x2984, + 0x2adc, 0x27b8, 0x27c0, 0x27c1, + 0x2adf, 0x29c8, 0x29c9, 0x29c7, + 0x29c5, 0x29c4, 0x29c6, 0x27c8, + 0x29bc, 0x29c1, 0x29bd, 0x29c0, + 0x29bf, 0x29be, 0x29b8, 0x29ba, + 0x29bb, 0x29c2, 0x29c3, 0x29b9, + 0x2ad7, 0x2966, 0x29cb, 0x29cc, + 0x27ef, 0x2963, 0x29b7, 0x298a, + 0x2964, 0x2967, 0x298b, 0x2993, + 0x27ba, 0x29ca, 0x2add, 0x2953, + 0x2ae0, 0x27bf, 0x2ad8, 0x298f, + 0x2991, 0x27eb, 0x2ace, 0x2ad0, + 0x2ad3, 0x2ada, 0x2ade, 0x2ad2, + 0x2ad1, 0x27cc, 0x2acb, 0x295c, + 0x295d, 0x2afe, 0x2989, 0x2af9, + 0x2afa, 0x27cd, 0x29a3, 0x27d8, + 0x27db, 0x2ac4, 0x295e, 0x29a5, + 0x2960, 0x2961, 0x2962, 0x2935, + 0x2933, 0x2ac2, 0x27da, 0x27bd, + 0x2937, 0x27d9, 0x2ac3, 0x2ac5, + 0x2956, 0x2958, 0x27fb, 0x27fd, + 0x27f5, 0x27fc, 0x2800, 0x2af8, + 0x27fe, 0x27ff, 0x2afb, 0x2aff, + 0x2afc, 0x2afd, 0x2b24, 0x27dc, + 0x2b20, 0x2b1f, 0x2b25, 0x2b26, + 0x2b1d, 0x27b2, 0x2ad9, 0x2b1c, + 0x2939, 0x2b19, 0x2b1a, 0x2b18, + 0x2975, 0x2b1e, 0x2b27, 0x2b17, + 0x2973, 0x2b22, 0x2970, 0x2b23, + 0x296f, 0x2974, 0x293a, 0x27b1, + 0x2972, 0x27b3, 0x2b28, 0x2b1b, + 0x2b21, 0x2971, 0x2ab1, 0x2ab3, + 0x2ab2, 0x2ab4, 0x2835, 0x2836, + 0x2837, 0x2838, 0x292d, 0x2ab6, + 0x2ab8, 0x292e, 0x2ab9, 0x2ab7, + 0x2aba, 0x27b6, 0x2997, 0x2981, + 0x2926, 0x2998, 0x29a0, 0x29a1, + 0x29a2, 0x2927, 0x27e6, 0x2999, + 0x299a, 0x2b2d, 0x2921, 0x2922, + 0x2924, 0x2925, 0x2ac0, 0x27fa, + 0x2ac1, 0x2b0c, 0x2b0d, 0x2b0e, + 0x2b0f, 0x2b10, 0x2b11, 0x2b12, + 0x2b13, 0x27c3, 0x296e, 0x27b4, + 0x27d3, 0x27c2, 0x27c4, 0x285a, + 0x2b15, 0x2b16, 0x299b, 0x299c, + 0x299d, 0x299e, 0x299f, 0x27e3, + 0x298e, 0x2923, 0x2954, 0x2955, + 0x27b9, 0x2985, 0x2abd, 0x2ad5, + 0x29a6, 0x2943, 0x29a7, 0x29a8, + 0x29a9, 0x29aa, 0x29ab, 0x29ac, + 0x2acf, 0x280b, 0x27b7, 0x29b3, + 0x2990, 0x27e4, 0x29b0, 0x29af, + 0x297a, 0x27f4, 0x27d7, 0x27f1, + 0x27f2, 0x27c7, 0x292c, 0x27c6, + 0x2995, 0x27ce, 0x27cf, 0x27f0, + 0x2980, 0x292b, 0x27f3, 0x27ea, + 0x2996, 0x27ab, 0x27a9, 0x27aa, + 0x292a, 0x27ac, 0x2857, 0x2858, + 0x2812, 0x2928, 0x27d2, 0x27d0, + 0x27d1, 0x27e9, 0x27bc, 0x295f, + 0x27ec, 0x27ed, 0x29a4, 0x2853, + 0x280e, 0x27c5, 0x27be, 0x27bb, + 0x2845, 0x2810, 0x2951, 0x2821, + 0x2822, 0x2820, 0x2944, 0x2945, + 0x2946, 0x2947, 0x2948, 0x2949, + 0x294a, 0x294b, 0x294c, 0x294d, + 0x294e, 0x294f, 0x295b, 0x2b00, + 0x2b14, 0x2a9c, 0x2aaa, 0x2977, + 0x2aad, 0x2a9d, 0x2976, 0x2aa2, + 0x27ae, 0x2a9a, 0x2aa6, 0x27b0, + 0x2a9b, 0x2a9f, 0x2ab0, 0x2aaf, + 0x27ad, 0x2aa1, 0x2978, 0x2979, + 0x2aae, 0x2aab, 0x2a9e, 0x2a99, + 0x2aa3, 0x2aa0, 0x2aa9, 0x2aa7, + 0x27af, 0x2aa8, 0x2aa5, 0x2aa4, + 0x2abb, 0x2abc, 0x2abe, 0x2abf, + 0x2ab5, 0x27b5, 0x293e, 0x2acd, + 0x293f, 0x2acc, 0x2959, 0x2801, + 0x27f8, 0x2ac9, 0x2ac8, 0x2aca, + 0x2802, 0x293b, 0x2ac6, 0x2ac7, + 0x2809, 0x27dd, 0x27f6, 0x27df, + 0x298d, 0x280f, 0x27de, 0x2808, + 0x27e0, 0x27e1, 0x27f9, 0x27e2, + 0x27e8, 0x2988, 0x27e7, }; + +static const int mb_tbl_uni_sb2code3_len = sizeof(mb_tbl_uni_sb2code3_key)/sizeof(unsigned short); + +/* unsupported in Unicode 6.0 */ + +static const int mb_tbl_uni_docomo2code5_min = 0xfe82d; +static const int mb_tbl_uni_docomo2code5_max = 0xfee33; + +static const unsigned short mb_tbl_uni_docomo2code5_key[] = { // 0xfe82d - 0xfee33 + 0xE82D, 0xEE10, 0xEE11, 0xEE12, + 0xEE13, 0xEE14, 0xEE15, 0xEE16, + 0xEE17, 0xEE18, 0xEE19, 0xEE1A, + 0xEE1B, 0xEE1C, 0xEE1D, 0xEE1E, + 0xEE1F, 0xEE20, 0xEE21, 0xEE22, + 0xEE23, 0xEE24, 0xEE25, 0xEE26, + 0xEE27, 0xEE28, 0xEE29, 0xEE2A, + 0xEE2B, 0xEE2C, 0xEE2D, 0xEE2E, + 0xEE2F, 0xEE30, 0xEE31, 0xEE32, + 0xEE33, }; + +static const unsigned short mb_tbl_uni_docomo2code5_val[] = { // 0xfe82d - 0xfee33 + 0x2965, 0x2955, 0x2956, 0x2958, + 0x2959, 0x2990, 0x2991, 0x292A, + 0x292B, 0x292C, 0x292D, 0x292E, + 0x292F, 0x2933, 0x2934, 0x2938, + 0x2939, 0x293A, 0x293F, 0x2940, + 0x2941, 0x2942, 0x2943, 0x2944, + 0x2945, 0x2946, 0x2947, 0x2948, + 0x2949, 0x294A, 0x294B, 0x294C, + 0x294D, 0x294E, 0x294F, 0x2950, + 0x2951, }; + +static const unsigned short mb_tbl_uni_docomo2code5_len = sizeof(mb_tbl_uni_docomo2code5_key)/sizeof(unsigned short); + + +static const int mb_tbl_uni_kddi2code5_min = 0xfe82d; +static const int mb_tbl_uni_kddi2code5_max = 0xfee4a; + +static const unsigned short mb_tbl_uni_kddi2code5_key[] = { // 0xfe82d - 0xfee4a + 0xE82D, 0xE83C, 0xEB89, 0xEE40, + 0xEE41, 0xEE42, 0xEE43, 0xEE44, + 0xEE45, 0xEE46, 0xEE47, 0xEE48, + 0xEE49, 0xEE4A, }; + +static const unsigned short mb_tbl_uni_kddi2code5_val[] = { // 0xfe82d - 0xfee4a + 0x27B0, 0x280A, 0x2839, 0x27FB, + 0x2836, 0x24E8, 0x25AC, 0x25B9, + 0x25C1, 0x25C2, 0x25C3, 0x25C4, + 0x25C5, 0x25C6, }; + +static const unsigned short mb_tbl_uni_kddi2code5_len = sizeof(mb_tbl_uni_kddi2code5_key)/sizeof(unsigned short); + + +static const int mb_tbl_uni_sb2code5_min = 0xfe4c5; +static const int mb_tbl_uni_sb2code5_max = 0xfee7d; + +static const unsigned short mb_tbl_uni_sb2code5_key[] = { // 0xfe4c5 - 0xfee7d + 0xE4C5, 0xEE70, 0xEE71, 0xEE72, + 0xEE73, 0xEE74, 0xEE75, 0xEE76, + 0xEE77, 0xEE78, 0xEE79, 0xEE7A, + 0xEE7B, 0xEE7C, 0xEE7D, }; + +static const unsigned short mb_tbl_uni_sb2code5_val[] = { // 0xfe4c5 - 0xfee7d + 0x2B01, 0x2B2F, 0x2B30, 0x2B31, + 0x2B32, 0x2B33, 0x2B34, 0x2B35, + 0x285B, 0x285C, 0x285D, 0x285E, + 0x285F, 0x2860, 0x2861, }; + +static const unsigned short mb_tbl_uni_sb2code5_len = sizeof(mb_tbl_uni_sb2code5_key)/sizeof(unsigned short); + diff --git a/ext/mbstring/libmbfl/filters/html_entities.c b/ext/mbstring/libmbfl/filters/html_entities.c new file mode 100644 index 0000000..5551952 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/html_entities.c @@ -0,0 +1,298 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this part: Marcus Boerger <helly@php.net> + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "html_entities.h" + +const mbfl_html_entity_entry mbfl_html_entity_list[] = { + {"quot", 34}, + {"amp", 38}, + {"lt", 60}, + {"gt", 62}, + {"nbsp", 160}, + {"iexcl", 161}, + {"cent", 162}, + {"pound", 163}, + {"curren", 164}, + {"yen", 165}, + {"brvbar", 166}, + {"sect", 167}, + {"uml", 168}, + {"copy", 169}, + {"ordf", 170}, + {"laquo", 171}, + {"not", 172}, + {"shy", 173}, + {"reg", 174}, + {"macr", 175}, + {"deg", 176}, + {"plusmn", 177}, + {"sup2", 178}, + {"sup3", 179}, + {"acute", 180}, + {"micro", 181}, + {"para", 182}, + {"middot", 183}, + {"cedil", 184}, + {"sup1", 185}, + {"ordm", 186}, + {"raquo", 187}, + {"frac14", 188}, + {"frac12", 189}, + {"frac34", 190}, + {"iquest", 191}, + {"Agrave", 192}, + {"Aacute", 193}, + {"Acirc", 194}, + {"Atilde", 195}, + {"Auml", 196}, + {"Aring", 197}, + {"AElig", 198}, + {"Ccedil", 199}, + {"Egrave", 200}, + {"Eacute", 201}, + {"Ecirc", 202}, + {"Euml", 203}, + {"Igrave", 204}, + {"Iacute", 205}, + {"Icirc", 206}, + {"Iuml", 207}, + {"ETH", 208}, + {"Ntilde", 209}, + {"Ograve", 210}, + {"Oacute", 211}, + {"Ocirc", 212}, + {"Otilde", 213}, + {"Ouml", 214}, + {"times", 215}, + {"Oslash", 216}, + {"Ugrave", 217}, + {"Uacute", 218}, + {"Ucirc", 219}, + {"Uuml", 220}, + {"Yacute", 221}, + {"THORN", 222}, + {"szlig", 223}, + {"agrave", 224}, + {"aacute", 225}, + {"acirc", 226}, + {"atilde", 227}, + {"auml", 228}, + {"aring", 229}, + {"aelig", 230}, + {"ccedil", 231}, + {"egrave", 232}, + {"eacute", 233}, + {"ecirc", 234}, + {"euml", 235}, + {"igrave", 236}, + {"iacute", 237}, + {"icirc", 238}, + {"iuml", 239}, + {"eth", 240}, + {"ntilde", 241}, + {"ograve", 242}, + {"oacute", 243}, + {"ocirc", 244}, + {"otilde", 245}, + {"ouml", 246}, + {"divide", 247}, + {"oslash", 248}, + {"ugrave", 249}, + {"uacute", 250}, + {"ucirc", 251}, + {"uuml", 252}, + {"yacute", 253}, + {"thorn", 254}, + {"yuml", 255}, + {"OElig", 338}, + {"oelig", 339}, + {"Scaron", 352}, + {"scaron", 353}, + {"Yuml", 376}, + {"fnof", 402}, + {"circ", 710}, + {"tilde", 732}, + {"Alpha", 913}, + {"Beta", 914}, + {"Gamma", 915}, + {"Delta", 916}, + {"Epsilon", 917}, + {"Zeta", 918}, + {"Eta", 919}, + {"Theta", 920}, + {"Iota", 921}, + {"Kappa", 922}, + {"Lambda", 923}, + {"Mu", 924}, + {"Nu", 925}, + {"Xi", 926}, + {"Omicron", 927}, + {"Pi", 928}, + {"Rho", 929}, + {"Sigma", 931}, + {"Tau", 932}, + {"Upsilon", 933}, + {"Phi", 934}, + {"Chi", 935}, + {"Psi", 936}, + {"Omega", 937}, + {"alpha", 945}, + {"beta", 946}, + {"gamma", 947}, + {"delta", 948}, + {"epsilon", 949}, + {"zeta", 950}, + {"eta", 951}, + {"theta", 952}, + {"iota", 953}, + {"kappa", 954}, + {"lambda", 955}, + {"mu", 956}, + {"nu", 957}, + {"xi", 958}, + {"omicron", 959}, + {"pi", 960}, + {"rho", 961}, + {"sigmaf", 962}, + {"sigma", 963}, + {"tau", 964}, + {"upsilon", 965}, + {"phi", 966}, + {"chi", 967}, + {"psi", 968}, + {"omega", 969}, + {"thetasym", 977}, + {"upsih", 978}, + {"piv", 982}, + {"ensp", 8194}, + {"emsp", 8195}, + {"thinsp", 8201}, + {"zwnj", 8204}, + {"zwj", 8205}, + {"lrm", 8206}, + {"rlm", 8207}, + {"ndash", 8211}, + {"mdash", 8212}, + {"lsquo", 8216}, + {"rsquo", 8217}, + {"sbquo", 8218}, + {"ldquo", 8220}, + {"rdquo", 8221}, + {"bdquo", 8222}, + {"dagger", 8224}, + {"Dagger", 8225}, + {"bull", 8226}, + {"hellip", 8230}, + {"permil", 8240}, + {"prime", 8242}, + {"Prime", 8243}, + {"lsaquo", 8249}, + {"rsaquo", 8250}, + {"oline", 8254}, + {"frasl", 8260}, + {"euro", 8364}, + {"weierp", 8472}, + {"image", 8465}, + {"real", 8476}, + {"trade", 8482}, + {"alefsym", 8501}, + {"larr", 8592}, + {"uarr", 8593}, + {"rarr", 8594}, + {"darr", 8595}, + {"harr", 8596}, + {"crarr", 8629}, + {"lArr", 8656}, + {"uArr", 8657}, + {"rArr", 8658}, + {"dArr", 8659}, + {"hArr", 8660}, + {"forall", 8704}, + {"part", 8706}, + {"exist", 8707}, + {"empty", 8709}, + {"nabla", 8711}, + {"isin", 8712}, + {"notin", 8713}, + {"ni", 8715}, + {"prod", 8719}, + {"sum", 8721}, + {"minus", 8722}, + {"lowast", 8727}, + {"radic", 8730}, + {"prop", 8733}, + {"infin", 8734}, + {"ang", 8736}, + {"and", 8743}, + {"or", 8744}, + {"cap", 8745}, + {"cup", 8746}, + {"int", 8747}, + {"there4", 8756}, + {"sim", 8764}, + {"cong", 8773}, + {"asymp", 8776}, + {"ne", 8800}, + {"equiv", 8801}, + {"le", 8804}, + {"ge", 8805}, + {"sub", 8834}, + {"sup", 8835}, + {"nsub", 8836}, + {"sube", 8838}, + {"supe", 8839}, + {"oplus", 8853}, + {"otimes", 8855}, + {"perp", 8869}, + {"sdot", 8901}, + {"lceil", 8968}, + {"rceil", 8969}, + {"lfloor", 8970}, + {"rfloor", 8971}, + {"lang", 9001}, + {"rang", 9002}, + {"loz", 9674}, + {"spades", 9824}, + {"clubs", 9827}, + {"hearts", 9829}, + {"diams", 9830}, + {NULL, -1} /* mark end of table */ +}; + +/* + * Local variables: + * tab-width: 4 + * c-basic-offset: 4 + * End: + */ diff --git a/ext/mbstring/libmbfl/filters/html_entities.h b/ext/mbstring/libmbfl/filters/html_entities.h new file mode 100644 index 0000000..a73b9d5 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/html_entities.h @@ -0,0 +1,41 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this part: Marcus Boerger <helly@php.net> + * + */ +/* + * The source code included in this files was separated from mbfilter.h + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifndef MBFL_HTML_ENTITIES_H +#define MBFL_HTML_ENTITIES_H + +typedef struct _mbfl_html_entity_entry { + char * name; + int code; +} mbfl_html_entity_entry; + +extern const mbfl_html_entity_entry mbfl_html_entity_list[]; + +#endif /* MBFL_HTML_ENTITIES_H */ + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_7bit.c b/ext/mbstring/libmbfl/filters/mbfilter_7bit.c new file mode 100644 index 0000000..7b793cd --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_7bit.c @@ -0,0 +1,82 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by Moriyoshi Koizumi <moriyoshi@php.net> on 4 Dec 2002. The file + * mbfilter.c is included in this package . + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_7bit.h" + +const mbfl_encoding mbfl_encoding_7bit = { + mbfl_no_encoding_7bit, + "7bit", + "7bit", + NULL, + NULL, + MBFL_ENCTYPE_SBCS +}; + +const struct mbfl_convert_vtbl vtbl_8bit_7bit = { + mbfl_no_encoding_8bit, + mbfl_no_encoding_7bit, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_any_7bit, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_7bit_8bit = { + mbfl_no_encoding_7bit, + mbfl_no_encoding_8bit, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_7bit_any, + mbfl_filt_conv_common_flush +}; + + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +int mbfl_filt_conv_7bit_any(int c, mbfl_convert_filter *filter) +{ + return (*filter->output_function)(c, filter->data); +} + + +int mbfl_filt_conv_any_7bit(int c, mbfl_convert_filter *filter) +{ + if (c >= 0 && c < 0x80) { + CK((*filter->output_function)(c, filter->data)); + } + return c; +} + + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_7bit.h b/ext/mbstring/libmbfl/filters/mbfilter_7bit.h new file mode 100644 index 0000000..d9a285f --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_7bit.h @@ -0,0 +1,43 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by Moriyoshi Koizumi <moriyoshi@php.net> on 4 Dec 2002. The file + * mbfilter.c is included in this package . + * + */ + +#ifndef MBFL_MBFILTER_7BIT_H +#define MBFL_MBFILTER_7BIT_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_7bit; +extern const struct mbfl_convert_vtbl vtbl_8bit_7bit; +extern const struct mbfl_convert_vtbl vtbl_7bit_8bit; + +int mbfl_filt_conv_7bit_any(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_any_7bit(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_7BIT_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_armscii8.c b/ext/mbstring/libmbfl/filters/mbfilter_armscii8.c new file mode 100644 index 0000000..2d1fc8d --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_armscii8.c @@ -0,0 +1,149 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: Hayk Chamyan <hamshen@gmail.com> + * + */ + +/* + * "armenian code filter and converter" + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_armscii8.h" +#include "unicode_table_armscii8.h" + +static int mbfl_filt_ident_armscii8(int c, mbfl_identify_filter *filter); + +static const char *mbfl_encoding_armscii8_aliases[] = {"ArmSCII-8", "ArmSCII8", "ARMSCII-8", "ARMSCII8", NULL}; + +const mbfl_encoding mbfl_encoding_armscii8 = { + mbfl_no_encoding_armscii8, + "ArmSCII-8", + "ArmSCII-8", + (const char *(*)[])&mbfl_encoding_armscii8_aliases, + NULL, + MBFL_ENCTYPE_SBCS +}; + +const struct mbfl_identify_vtbl vtbl_identify_armscii8 = { + mbfl_no_encoding_armscii8, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_armscii8 +}; + +const struct mbfl_convert_vtbl vtbl_wchar_armscii8 = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_armscii8, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_armscii8, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_armscii8_wchar = { + mbfl_no_encoding_armscii8, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_armscii8_wchar, + mbfl_filt_conv_common_flush +}; + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +/* + * armscii8 => wchar + */ +int mbfl_filt_conv_armscii8_wchar(int c, mbfl_convert_filter *filter) +{ + int s; + + if (c >= 0 && c < armscii8_ucs_table_min) { + s = c; + } else if (c >= armscii8_ucs_table_min && c < 0x100) { + s = armscii8_ucs_table[c - armscii8_ucs_table_min]; + if (s <= 0) { + s = c; + s &= MBFL_WCSPLANE_MASK; + s |= MBFL_WCSPLANE_ARMSCII8; + } + } else { + s = c; + s &= MBFL_WCSGROUP_MASK; + s |= MBFL_WCSGROUP_THROUGH; + } + + CK((*filter->output_function)(s, filter->data)); + + return c; +} + +/* + * wchar => armscii8 + */ +int mbfl_filt_conv_wchar_armscii8(int c, mbfl_convert_filter *filter) +{ + + int s, n; + + if (c >= 0x28 && c < 0x30) { + s = ucs_armscii8_table[c-0x28]; + } else if (c < armscii8_ucs_table_min) { + s = c; + } else { + s = -1; + n = armscii8_ucs_table_len-1; + while (n >= 0) { + if (c == armscii8_ucs_table[n]) { + s = armscii8_ucs_table_min + n; + break; + } + n--; + } + if (s <= 0 && (c & ~MBFL_WCSPLANE_MASK) == MBFL_WCSPLANE_ARMSCII8) { + s = c & MBFL_WCSPLANE_MASK; + } + } + + if (s >= 0) { + CK((*filter->output_function)(s, filter->data)); + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + +static int mbfl_filt_ident_armscii8(int c, mbfl_identify_filter *filter) +{ + if (c >= armscii8_ucs_table_min && c <= 0xff) + filter->flag = 0; + else + filter->flag = 1; /* not it */ + return c; +} diff --git a/ext/mbstring/libmbfl/filters/mbfilter_armscii8.h b/ext/mbstring/libmbfl/filters/mbfilter_armscii8.h new file mode 100644 index 0000000..fc84827 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_armscii8.h @@ -0,0 +1,45 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: Hayk Chamyan <hamshen@gmail.com> + * + */ + +#ifndef MBFL_MBFILTER_ARMSCII8_H +#define MBFL_MBFILTER_ARMSCII8_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_armscii8; +extern const struct mbfl_identify_vtbl vtbl_identify_armscii8; +extern const struct mbfl_convert_vtbl vtbl_wchar_armscii8; +extern const struct mbfl_convert_vtbl vtbl_armscii8_wchar; + +int mbfl_filt_conv_armscii8_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_armscii8(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_ARMSCII8_H */ + +/* + * Local variables: + * tab-width: 4 + * c-basic-offset: 4 + * End: + */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_ascii.c b/ext/mbstring/libmbfl/filters/mbfilter_ascii.c new file mode 100644 index 0000000..77871fb --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_ascii.c @@ -0,0 +1,114 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by Moriyoshi Koizumi <moriyoshi@php.net> on 4 Dec 2002. The file + * mbfilter.c is included in this package . + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_ascii.h" + +static int mbfl_filt_ident_ascii(int c, mbfl_identify_filter *filter); + +static const char *mbfl_encoding_ascii_aliases[] = {"ANSI_X3.4-1968", "iso-ir-6", "ANSI_X3.4-1986", "ISO_646.irv:1991", "US-ASCII", "ISO646-US", "us", "IBM367", "IBM-367", "cp367", "csASCII", NULL}; + +const mbfl_encoding mbfl_encoding_ascii = { + mbfl_no_encoding_ascii, + "ASCII", + "US-ASCII", /* preferred MIME name */ + (const char *(*)[])&mbfl_encoding_ascii_aliases, + NULL, + MBFL_ENCTYPE_SBCS +}; + +const struct mbfl_identify_vtbl vtbl_identify_ascii = { + mbfl_no_encoding_ascii, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_ascii +}; + +const struct mbfl_convert_vtbl vtbl_ascii_wchar = { + mbfl_no_encoding_ascii, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_ascii_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_ascii = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_ascii, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_ascii, + mbfl_filt_conv_common_flush +}; + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +/* + * ASCII => wchar + */ +int mbfl_filt_conv_ascii_wchar(int c, mbfl_convert_filter *filter) +{ + return (*filter->output_function)(c, filter->data); +} + + +/* + * wchar => ASCII + */ +int mbfl_filt_conv_wchar_ascii(int c, mbfl_convert_filter *filter) +{ + if (c >= 0 && c < 0x80) { + CK((*filter->output_function)(c, filter->data)); + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + +static int mbfl_filt_ident_ascii(int c, mbfl_identify_filter *filter) +{ + if (c >= 0x20 && c < 0x80) { + ; + } else if (c == 0x0d || c == 0x0a || c == 0x09 || c == 0) { /* CR or LF or HTAB or null */ + ; + } else { + filter->flag = 1; + } + + return c; +} diff --git a/ext/mbstring/libmbfl/filters/mbfilter_ascii.h b/ext/mbstring/libmbfl/filters/mbfilter_ascii.h new file mode 100644 index 0000000..c48ced6 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_ascii.h @@ -0,0 +1,46 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by Moriyoshi Koizumi <moriyoshi@php.net> on 4 Dec 2002. The file + * mbfilter.c is included in this package . + * + */ + +#ifndef MBFL_MBFILTER_ASCII_H +#define MBFL_MBFILTER_ASCII_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_ascii; +extern const struct mbfl_identify_vtbl vtbl_identify_ascii; +extern const struct mbfl_convert_vtbl vtbl_ascii_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_ascii; + +int mbfl_filt_conv_ascii_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_ascii(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_ASCII_H */ + + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_base64.c b/ext/mbstring/libmbfl/filters/mbfilter_base64.c new file mode 100644 index 0000000..198f38c --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_base64.c @@ -0,0 +1,214 @@ + /* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by Moriyoshi Koizumi <moriyoshi@php.net> on 4 Dec 2002. The file + * mbfilter.c is included in this package . + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_base64.h" + +const mbfl_encoding mbfl_encoding_base64 = { + mbfl_no_encoding_base64, + "BASE64", + "BASE64", + NULL, + NULL, + MBFL_ENCTYPE_ENC_STRM | MBFL_ENCTYPE_GL_UNSAFE +}; + +const struct mbfl_convert_vtbl vtbl_8bit_b64 = { + mbfl_no_encoding_8bit, + mbfl_no_encoding_base64, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_base64enc, + mbfl_filt_conv_base64enc_flush +}; + +const struct mbfl_convert_vtbl vtbl_b64_8bit = { + mbfl_no_encoding_base64, + mbfl_no_encoding_8bit, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_base64dec, + mbfl_filt_conv_base64dec_flush +}; + + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +/* + * any => BASE64 + */ +static const unsigned char mbfl_base64_table[] = { + /* 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', */ + 0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d, + /* 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', */ + 0x4e,0x4f,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a, + /* 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', */ + 0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d, + /* 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', */ + 0x6e,0x6f,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a, + /* '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/', '\0' */ + 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x2b,0x2f,0x00 +}; + +int mbfl_filt_conv_base64enc(int c, mbfl_convert_filter *filter) +{ + int n; + + n = (filter->status & 0xff); + if (n == 0) { + filter->status++; + filter->cache = (c & 0xff) << 16; + } else if (n == 1) { + filter->status++; + filter->cache |= (c & 0xff) << 8; + } else { + filter->status &= ~0xff; + if ((filter->status & MBFL_BASE64_STS_MIME_HEADER) == 0) { + n = (filter->status & 0xff00) >> 8; + if (n > 72) { + CK((*filter->output_function)(0x0d, filter->data)); /* CR */ + CK((*filter->output_function)(0x0a, filter->data)); /* LF */ + filter->status &= ~0xff00; + } + filter->status += 0x400; + } + n = filter->cache | (c & 0xff); + CK((*filter->output_function)(mbfl_base64_table[(n >> 18) & 0x3f], filter->data)); + CK((*filter->output_function)(mbfl_base64_table[(n >> 12) & 0x3f], filter->data)); + CK((*filter->output_function)(mbfl_base64_table[(n >> 6) & 0x3f], filter->data)); + CK((*filter->output_function)(mbfl_base64_table[n & 0x3f], filter->data)); + } + + return c; +} + +int mbfl_filt_conv_base64enc_flush(mbfl_convert_filter *filter) +{ + int status, cache, len; + + status = filter->status & 0xff; + cache = filter->cache; + len = (filter->status & 0xff00) >> 8; + filter->status &= ~0xffff; + filter->cache = 0; + /* flush fragments */ + if (status >= 1) { + if ((filter->status & MBFL_BASE64_STS_MIME_HEADER) == 0) { + if (len > 72){ + CK((*filter->output_function)(0x0d, filter->data)); /* CR */ + CK((*filter->output_function)(0x0a, filter->data)); /* LF */ + } + } + CK((*filter->output_function)(mbfl_base64_table[(cache >> 18) & 0x3f], filter->data)); + CK((*filter->output_function)(mbfl_base64_table[(cache >> 12) & 0x3f], filter->data)); + if (status == 1) { + CK((*filter->output_function)(0x3d, filter->data)); /* '=' */ + CK((*filter->output_function)(0x3d, filter->data)); /* '=' */ + } else { + CK((*filter->output_function)(mbfl_base64_table[(cache >> 6) & 0x3f], filter->data)); + CK((*filter->output_function)(0x3d, filter->data)); /* '=' */ + } + } + return 0; +} + +/* + * BASE64 => any + */ +int mbfl_filt_conv_base64dec(int c, mbfl_convert_filter *filter) +{ + int n; + + if (c == 0x0d || c == 0x0a || c == 0x20 || c == 0x09 || c == 0x3d) { /* CR or LF or SPACE or HTAB or '=' */ + return c; + } + + n = 0; + if (c >= 0x41 && c <= 0x5a) { /* A - Z */ + n = c - 65; + } else if (c >= 0x61 && c <= 0x7a) { /* a - z */ + n = c - 71; + } else if (c >= 0x30 && c <= 0x39) { /* 0 - 9 */ + n = c + 4; + } else if (c == 0x2b) { /* '+' */ + n = 62; + } else if (c == 0x2f) { /* '/' */ + n = 63; + } + n &= 0x3f; + + switch (filter->status) { + case 0: + filter->status = 1; + filter->cache = n << 18; + break; + case 1: + filter->status = 2; + filter->cache |= n << 12; + break; + case 2: + filter->status = 3; + filter->cache |= n << 6; + break; + default: + filter->status = 0; + n |= filter->cache; + CK((*filter->output_function)((n >> 16) & 0xff, filter->data)); + CK((*filter->output_function)((n >> 8) & 0xff, filter->data)); + CK((*filter->output_function)(n & 0xff, filter->data)); + break; + } + + return c; +} + +int mbfl_filt_conv_base64dec_flush(mbfl_convert_filter *filter) +{ + int status, cache; + + status = filter->status; + cache = filter->cache; + filter->status = 0; + filter->cache = 0; + /* flush fragments */ + if (status >= 2) { + CK((*filter->output_function)((cache >> 16) & 0xff, filter->data)); + if (status >= 3) { + CK((*filter->output_function)((cache >> 8) & 0xff, filter->data)); + } + } + return 0; +} + + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_base64.h b/ext/mbstring/libmbfl/filters/mbfilter_base64.h new file mode 100644 index 0000000..6bd525f --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_base64.h @@ -0,0 +1,45 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by Moriyoshi Koizumi <moriyoshi@php.net> on 4 Dec 2002. The file + * mbfilter.c is included in this package . + * + */ + +#ifndef MBFL_MBFILTER_BASE64_H +#define MBFL_MBFILTER_BASE64_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_base64; +extern const struct mbfl_convert_vtbl vtbl_b64_8bit; +extern const struct mbfl_convert_vtbl vtbl_8bit_b64; + +int mbfl_filt_conv_base64enc(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_base64enc_flush(mbfl_convert_filter *filter); +int mbfl_filt_conv_base64dec(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_base64dec_flush(mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_BASE64_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_big5.c b/ext/mbstring/libmbfl/filters/mbfilter_big5.c new file mode 100644 index 0000000..099f8e6 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_big5.c @@ -0,0 +1,344 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: Rui Hirokawa <hirokawa@php.net> + * + */ +/* + * The source code included in this files was separated from mbfilter_tw.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_big5.h" + +#include "unicode_table_big5.h" + +static int mbfl_filt_ident_big5(int c, mbfl_identify_filter *filter); + +static const unsigned char mblen_table_big5[] = { /* 0x81-0xFE */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 +}; + +static const char *mbfl_encoding_big5_aliases[] = {"CN-BIG5", "BIG-FIVE", "BIGFIVE", NULL}; + +const mbfl_encoding mbfl_encoding_big5 = { + mbfl_no_encoding_big5, + "BIG-5", + "BIG5", + (const char *(*)[])&mbfl_encoding_big5_aliases, + mblen_table_big5, + MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_GL_UNSAFE +}; + +const mbfl_encoding mbfl_encoding_cp950 = { + mbfl_no_encoding_cp950, + "CP950", + "BIG5", + NULL, + mblen_table_big5, + MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_GL_UNSAFE +}; + +const struct mbfl_identify_vtbl vtbl_identify_big5 = { + mbfl_no_encoding_big5, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_big5 +}; + +const struct mbfl_identify_vtbl vtbl_identify_cp950 = { + mbfl_no_encoding_cp950, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_big5 +}; + +const struct mbfl_convert_vtbl vtbl_big5_wchar = { + mbfl_no_encoding_big5, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_big5_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_big5 = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_big5, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_big5, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_cp950_wchar = { + mbfl_no_encoding_cp950, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_big5_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_cp950 = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_cp950, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_big5, + mbfl_filt_conv_common_flush +}; + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +/* 63 + 94 = 157 or 94 */ +static unsigned short cp950_pua_tbl[][4] = { + {0xe000,0xe310,0xfa40,0xfefe}, + {0xe311,0xeeb7,0x8e40,0xa0fe}, + {0xeeb8,0xf6b0,0x8140,0x8dfe}, + {0xf6b1,0xf70e,0xc6a1,0xc6fe}, + {0xf70f,0xf848,0xc740,0xc8fe}, +}; + +/* + * Big5 => wchar + */ +int +mbfl_filt_conv_big5_wchar(int c, mbfl_convert_filter *filter) +{ + int k; + int c1, w, c2; + + switch (filter->status) { + case 0: + if (filter->from->no_encoding == mbfl_no_encoding_cp950) { + c1 = 0x80; + } else { + c1 = 0xa0; + } + + if (c >= 0 && c <= 0x80) { /* latin */ + CK((*filter->output_function)(c, filter->data)); + } else if (c == 0xff) { + CK((*filter->output_function)(0xf8f8, filter->data)); + } else if (c > c1 && c < 0xff) { /* dbcs lead byte */ + filter->status = 1; + filter->cache = c; + } else { + w = c & MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + + case 1: /* dbcs second byte */ + filter->status = 0; + c1 = filter->cache; + if ((c > 0x39 && c < 0x7f) | (c > 0xa0 && c < 0xff)) { + if (c < 0x7f){ + w = (c1 - 0xa1)*157 + (c - 0x40); + } else { + w = (c1 - 0xa1)*157 + (c - 0xa1) + 0x3f; + } + if (w >= 0 && w < big5_ucs_table_size) { + w = big5_ucs_table[w]; + } else { + w = 0; + } + + if (filter->from->no_encoding == mbfl_no_encoding_cp950) { + /* PUA for CP950 */ + if (w <= 0 && + (((c1 >= 0xfa && c1 <= 0xfe) || (c1 >= 0x8e && c1 <= 0xa0) || + (c1 >= 0x81 && c1 <= 0x8d) ||(c1 >= 0xc7 && c1 <= 0xc8)) + && ((c > 0x39 && c < 0x7f) || (c > 0xa0 && c < 0xff))) || + ((c1 == 0xc6) && (c > 0xa0 && c < 0xff))) { + c2 = c1 << 8 | c; + for (k = 0; k < sizeof(cp950_pua_tbl)/(sizeof(unsigned short)*4); k++) { + if (c2 >= cp950_pua_tbl[k][2] && c2 <= cp950_pua_tbl[k][3]) { + break; + } + } + + if ((cp950_pua_tbl[k][2] & 0xff) == 0x40) { + w = 157*(c1 - (cp950_pua_tbl[k][2]>>8)) + c - (c >= 0xa1 ? 0x62 : 0x40) + + cp950_pua_tbl[k][0]; + } else { + w = c2 - cp950_pua_tbl[k][2] + cp950_pua_tbl[k][0]; + } + } + } + + if (w <= 0) { + w = (c1 << 8) | c; + w &= MBFL_WCSPLANE_MASK; + w |= MBFL_WCSPLANE_BIG5; + } + CK((*filter->output_function)(w, filter->data)); + } else if ((c >= 0 && c < 0x21) || c == 0x7f) { /* CTLs */ + CK((*filter->output_function)(c, filter->data)); + } else { + w = (c1 << 8) | c; + w &= MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + + default: + filter->status = 0; + break; + } + + return c; +} + +/* + * wchar => Big5 + */ +int +mbfl_filt_conv_wchar_big5(int c, mbfl_convert_filter *filter) +{ + int k; + int c1, s, c2; + + s = 0; + if (c >= ucs_a1_big5_table_min && c < ucs_a1_big5_table_max) { + s = ucs_a1_big5_table[c - ucs_a1_big5_table_min]; + } else if (c >= ucs_a2_big5_table_min && c < ucs_a2_big5_table_max) { + s = ucs_a2_big5_table[c - ucs_a2_big5_table_min]; + } else if (c >= ucs_a3_big5_table_min && c < ucs_a3_big5_table_max) { + s = ucs_a3_big5_table[c - ucs_a3_big5_table_min]; + } else if (c >= ucs_i_big5_table_min && c < ucs_i_big5_table_max) { + s = ucs_i_big5_table[c - ucs_i_big5_table_min]; + } else if (c >= ucs_pua_big5_table_min && c < ucs_pua_big5_table_max) { + s = ucs_pua_big5_table[c - ucs_pua_big5_table_min]; + } else if (c >= ucs_r1_big5_table_min && c < ucs_r1_big5_table_max) { + s = ucs_r1_big5_table[c - ucs_r1_big5_table_min]; + } else if (c >= ucs_r2_big5_table_min && c < ucs_r2_big5_table_max) { + s = ucs_r2_big5_table[c - ucs_r2_big5_table_min]; + } + + if (filter->to->no_encoding == mbfl_no_encoding_cp950) { + if (c >= 0xe000 && c <= 0xf848) { /* PUA for CP950 */ + for (k = 0; k < sizeof(cp950_pua_tbl)/(sizeof(unsigned short)*4); k++) { + if (c <= cp950_pua_tbl[k][1]) { + break; + } + } + c1 = c - cp950_pua_tbl[k][0]; + if ((cp950_pua_tbl[k][2] & 0xff) == 0x40) { + c2 = cp950_pua_tbl[k][2] >> 8; + s = ((c1 / 157) + c2) << 8; c1 %= 157; + s |= c1 + (c1 >= 0x3f ? 0x62 : 0x40); + } else { + s = c1 + cp950_pua_tbl[k][2]; + } + } + + if (c == 0x80) { + s = 0x80; + } else if (c == 0xf8f8) { + s = 0xff; + } else if (c == 0x256d) { + s = 0xa27e; + } else if (c == 0x256e) { + s = 0xa2a1; + } else if (c == 0x256f) { + s = 0xa2a3; + } else if (c == 0x2570) { + s = 0xa2a2; + } + } + + if (s <= 0) { + c1 = c & ~MBFL_WCSPLANE_MASK; + if (c1 == MBFL_WCSPLANE_BIG5) { + s = c & MBFL_WCSPLANE_MASK; + } + if (c == 0) { + s = 0; + } else if (s <= 0) { + s = -1; + } + } + if (s >= 0) { + if (s <= 0x80 || s == 0xff) { /* latin */ + CK((*filter->output_function)(s, filter->data)); + } else { + CK((*filter->output_function)((s >> 8) & 0xff, filter->data)); + CK((*filter->output_function)(s & 0xff, filter->data)); + } + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + +static int mbfl_filt_ident_big5(int c, mbfl_identify_filter *filter) +{ + int c1; + if (filter->encoding->no_encoding == mbfl_no_encoding_cp950) { + c1 = 0x80; + } else { + c1 = 0xa0; + } + + if (filter->status) { /* kanji second char */ + if (c < 0x40 || (c > 0x7e && c < 0xa1) ||c > 0xfe) { /* bad */ + filter->flag = 1; + } + filter->status = 0; + } else if (c >= 0 && c < 0x80) { /* latin ok */ + ; + } else if (c > c1 && c < 0xff) { /* DBCS lead byte */ + filter->status = 1; + } else { /* bad */ + filter->flag = 1; + } + + return c; +} + + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_big5.h b/ext/mbstring/libmbfl/filters/mbfilter_big5.h new file mode 100644 index 0000000..93d10de --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_big5.h @@ -0,0 +1,48 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: Rui Hirokawa <hirokawa@php.net> + * + */ +/* + * The source code included in this files was separated from mbfilter_tw.h + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_BIG5_H +#define MBFL_MBFILTER_BIG5_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_big5; +extern const struct mbfl_identify_vtbl vtbl_identify_big5; +extern const struct mbfl_convert_vtbl vtbl_big5_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_big5; + +extern const mbfl_encoding mbfl_encoding_cp950; +extern const struct mbfl_identify_vtbl vtbl_identify_cp950; +extern const struct mbfl_convert_vtbl vtbl_cp950_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_cp950; + +int mbfl_filt_conv_big5_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_big5(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_BIG5_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_byte2.c b/ext/mbstring/libmbfl/filters/mbfilter_byte2.c new file mode 100644 index 0000000..03b471b --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_byte2.c @@ -0,0 +1,137 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by Moriyoshi Koizumi <moriyoshi@php.net> on 4 Dec 2002. The file + * mbfilter.c is included in this package . + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_byte2.h" + +const mbfl_encoding mbfl_encoding_byte2be = { + mbfl_no_encoding_byte2be, + "byte2be", + NULL, + NULL, + NULL, + MBFL_ENCTYPE_SBCS +}; + +const mbfl_encoding mbfl_encoding_byte2le = { + mbfl_no_encoding_byte2le, + "byte2le", + NULL, + NULL, + NULL, + MBFL_ENCTYPE_SBCS +}; + +const struct mbfl_convert_vtbl vtbl_byte2be_wchar = { + mbfl_no_encoding_byte2be, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_byte2be_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_byte2be = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_byte2be, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_byte2be, + mbfl_filt_conv_common_flush }; + +const struct mbfl_convert_vtbl vtbl_byte2le_wchar = { + mbfl_no_encoding_byte2le, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_byte2le_wchar, + mbfl_filt_conv_common_flush }; + +const struct mbfl_convert_vtbl vtbl_wchar_byte2le = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_byte2le, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_byte2le, + mbfl_filt_conv_common_flush }; + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +int mbfl_filt_conv_byte2be_wchar(int c, mbfl_convert_filter *filter) +{ + int n; + + if (filter->status == 0) { + filter->status = 1; + n = (c & 0xff) << 8; + filter->cache = n; + } else { + filter->status = 0; + n = (c & 0xff) | filter->cache; + CK((*filter->output_function)(n, filter->data)); + } + return c; +} + +int mbfl_filt_conv_wchar_byte2be(int c, mbfl_convert_filter *filter) +{ + CK((*filter->output_function)((c >> 8) & 0xff, filter->data)); + CK((*filter->output_function)(c & 0xff, filter->data)); + return c; +} + +int mbfl_filt_conv_byte2le_wchar(int c, mbfl_convert_filter *filter) +{ + int n; + + if (filter->status == 0) { + filter->status = 1; + n = c & 0xff; + filter->cache = n; + } else { + filter->status = 0; + n = ((c & 0xff) << 8) | filter->cache; + CK((*filter->output_function)(n, filter->data)); + } + return c; +} + +int mbfl_filt_conv_wchar_byte2le(int c, mbfl_convert_filter *filter) +{ + CK((*filter->output_function)(c & 0xff, filter->data)); + CK((*filter->output_function)((c >> 8) & 0xff, filter->data)); + return c; +} + + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_byte2.h b/ext/mbstring/libmbfl/filters/mbfilter_byte2.h new file mode 100644 index 0000000..e762a9d --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_byte2.h @@ -0,0 +1,48 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by Moriyoshi Koizumi <moriyoshi@php.net> on 4 Dec 2002. The file + * mbfilter.c is included in this package . + * + */ + +#ifndef MBFL_MBFILTER_BYTE2_H +#define MBFL_MBFILTER_BYTE2_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_byte2be; +extern const mbfl_encoding mbfl_encoding_byte2le; +extern const struct mbfl_convert_vtbl vtbl_byte2be_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_byte2be; +extern const struct mbfl_convert_vtbl vtbl_byte2le_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_byte2le; + +int mbfl_filt_conv_wchar_byte2be(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_byte2be_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_byte2le(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_byte2le_wchar(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_BYTE2_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_byte4.c b/ext/mbstring/libmbfl/filters/mbfilter_byte4.c new file mode 100644 index 0000000..24b7367 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_byte4.c @@ -0,0 +1,159 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by Moriyoshi Koizumi <moriyoshi@php.net> on 4 Dec 2002. The file + * mbfilter.c is included in this package . + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_byte4.h" + +const mbfl_encoding mbfl_encoding_byte4be = { + mbfl_no_encoding_byte4be, + "byte4be", + NULL, + NULL, + NULL, + MBFL_ENCTYPE_SBCS +}; + +const mbfl_encoding mbfl_encoding_byte4le = { + mbfl_no_encoding_byte4le, + "byte4le", + NULL, + NULL, + NULL, + MBFL_ENCTYPE_SBCS +}; + +const struct mbfl_convert_vtbl vtbl_byte4be_wchar = { + mbfl_no_encoding_byte4be, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_byte4be_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_byte4be = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_byte4be, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_byte4be, + mbfl_filt_conv_common_flush }; + +const struct mbfl_convert_vtbl vtbl_byte4le_wchar = { + mbfl_no_encoding_byte4le, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_byte4le_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_byte4le = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_byte4le, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_byte4le, + mbfl_filt_conv_common_flush +}; + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +int mbfl_filt_conv_byte4be_wchar(int c, mbfl_convert_filter *filter) +{ + int n; + + if (filter->status == 0) { + filter->status = 1; + n = (c & 0xff) << 24; + filter->cache = n; + } else if (filter->status == 1) { + filter->status = 2; + n = (c & 0xff) << 16; + filter->cache |= n; + } else if (filter->status == 2) { + filter->status = 3; + n = (c & 0xff) << 8; + filter->cache |= n; + } else { + filter->status = 0; + n = (c & 0xff) | filter->cache; + CK((*filter->output_function)(n, filter->data)); + } + return c; +} + +int mbfl_filt_conv_wchar_byte4be(int c, mbfl_convert_filter *filter) +{ + CK((*filter->output_function)((c >> 24) & 0xff, filter->data)); + CK((*filter->output_function)((c >> 16) & 0xff, filter->data)); + CK((*filter->output_function)((c >> 8) & 0xff, filter->data)); + CK((*filter->output_function)(c & 0xff, filter->data)); + return c; +} + +int mbfl_filt_conv_byte4le_wchar(int c, mbfl_convert_filter *filter) +{ + int n; + + if (filter->status == 0) { + filter->status = 1; + n = (c & 0xff); + filter->cache = n; + } else if (filter->status == 1) { + filter->status = 2; + n = (c & 0xff) << 8; + filter->cache |= n; + } else if (filter->status == 2) { + filter->status = 3; + n = (c & 0xff) << 16; + filter->cache |= n; + } else { + filter->status = 0; + n = ((c & 0xff) << 24) | filter->cache; + CK((*filter->output_function)(n, filter->data)); + } + return c; +} + +int mbfl_filt_conv_wchar_byte4le(int c, mbfl_convert_filter *filter) +{ + CK((*filter->output_function)(c & 0xff, filter->data)); + CK((*filter->output_function)((c >> 8) & 0xff, filter->data)); + CK((*filter->output_function)((c >> 16) & 0xff, filter->data)); + CK((*filter->output_function)((c >> 24) & 0xff, filter->data)); + return c; +} + + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_byte4.h b/ext/mbstring/libmbfl/filters/mbfilter_byte4.h new file mode 100644 index 0000000..f6c0aed --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_byte4.h @@ -0,0 +1,46 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by Moriyoshi Koizumi <moriyoshi@php.net> on 4 Dec 2002. The file + * mbfilter.c is included in this package . + * + */ + +#ifndef MBFL_MBFILTER_BYTE4_H +#define MBFL_MBFILTER_BYTE4_H + +extern const mbfl_encoding mbfl_encoding_byte4be; +extern const mbfl_encoding mbfl_encoding_byte4le; +extern const struct mbfl_convert_vtbl vtbl_byte4be_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_byte4be; +extern const struct mbfl_convert_vtbl vtbl_byte4le_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_byte4le; + +int mbfl_filt_conv_wchar_byte4be(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_byte4be_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_byte4le(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_byte4le_wchar(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_BYTE4_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_cp1251.c b/ext/mbstring/libmbfl/filters/mbfilter_cp1251.c new file mode 100644 index 0000000..b5ab8e7 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_cp1251.c @@ -0,0 +1,152 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this part: Den V. Tsopa <tdv@edisoft.ru> + * + */ +/* + * The source code included in this files was separated from mbfilter_ru.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_cp1251.h" +#include "unicode_table_cp1251.h" + +static int mbfl_filt_ident_cp1251(int c, mbfl_identify_filter *filter); + +static const char *mbfl_encoding_cp1251_aliases[] = {"CP1251", "CP-1251", "WINDOWS-1251", NULL}; + +const mbfl_encoding mbfl_encoding_cp1251 = { + mbfl_no_encoding_cp1251, + "Windows-1251", + "Windows-1251", + (const char *(*)[])&mbfl_encoding_cp1251_aliases, + NULL, + MBFL_ENCTYPE_SBCS +}; + +const struct mbfl_identify_vtbl vtbl_identify_cp1251 = { + mbfl_no_encoding_cp1251, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_cp1251 +}; + +const struct mbfl_convert_vtbl vtbl_wchar_cp1251 = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_cp1251, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_cp1251, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_cp1251_wchar = { + mbfl_no_encoding_cp1251, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_cp1251_wchar, + mbfl_filt_conv_common_flush +}; + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +/* + * cp1251 => wchar + */ +int +mbfl_filt_conv_cp1251_wchar(int c, mbfl_convert_filter *filter) +{ + int s; + + if (c >= 0 && c < cp1251_ucs_table_min) { + s = c; + } else if (c >= cp1251_ucs_table_min && c < 0x100) { + s = cp1251_ucs_table[c - cp1251_ucs_table_min]; + if (s <= 0) { + s = c; + s &= MBFL_WCSPLANE_MASK; + s |= MBFL_WCSPLANE_CP1251; + } + } else { + s = c; + s &= MBFL_WCSGROUP_MASK; + s |= MBFL_WCSGROUP_THROUGH; + } + + CK((*filter->output_function)(s, filter->data)); + + return c; +} + +/* + * wchar => cp1251 + */ +int +mbfl_filt_conv_wchar_cp1251(int c, mbfl_convert_filter *filter) +{ + int s, n; + + if (c < 0x80) { + s = c; + } else { + s = -1; + n = cp1251_ucs_table_len-1; + while (n >= 0) { + if (c == cp1251_ucs_table[n]) { + s = cp1251_ucs_table_min + n; + break; + } + n--; + } + if (s <= 0 && (c & ~MBFL_WCSPLANE_MASK) == MBFL_WCSPLANE_CP1251) { + s = c & MBFL_WCSPLANE_MASK; + } + } + + if (s >= 0) { + CK((*filter->output_function)(s, filter->data)); + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + +/* all of this is so ugly now! */ +static int mbfl_filt_ident_cp1251(int c, mbfl_identify_filter *filter) +{ + if (c >= 0x80 && c < 0xff) + filter->flag = 0; + else + filter->flag = 1; /* not it */ + return c; +} + + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_cp1251.h b/ext/mbstring/libmbfl/filters/mbfilter_cp1251.h new file mode 100644 index 0000000..6c0f680 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_cp1251.h @@ -0,0 +1,44 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this part: Den V. Tsopa <tdv@edisoft.ru> + * + */ +/* + * the source code included in this files was separated from mbfilter_ru.h + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_CP1251_H +#define MBFL_MBFILTER_CP1251_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_cp1251; +extern const struct mbfl_identify_vtbl vtbl_identify_cp1251; +extern const struct mbfl_convert_vtbl vtbl_wchar_cp1251; +extern const struct mbfl_convert_vtbl vtbl_cp1251_wchar; + +int mbfl_filt_conv_wchar_cp1251(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_cp1251_wchar(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_CP1251_H */ + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_cp1252.c b/ext/mbstring/libmbfl/filters/mbfilter_cp1252.c new file mode 100644 index 0000000..ad16082 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_cp1252.c @@ -0,0 +1,147 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this part: Wez Furlong <wez@thebrainroom.com> + * + */ +/* + * the source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_cp1252.h" +#include "unicode_table_cp1252.h" + +static int mbfl_filt_ident_cp1252(int c, mbfl_identify_filter *filter); + +static const char *mbfl_encoding_cp1252_aliases[] = {"cp1252", NULL}; + +const mbfl_encoding mbfl_encoding_cp1252 = { + mbfl_no_encoding_cp1252, + "Windows-1252", + "Windows-1252", + (const char *(*)[])&mbfl_encoding_cp1252_aliases, + NULL, + MBFL_ENCTYPE_SBCS +}; + +const struct mbfl_identify_vtbl vtbl_identify_cp1252 = { + mbfl_no_encoding_cp1252, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_cp1252 +}; + +const struct mbfl_convert_vtbl vtbl_cp1252_wchar = { + mbfl_no_encoding_cp1252, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_cp1252_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_cp1252 = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_cp1252, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_cp1252, + mbfl_filt_conv_common_flush +}; + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +/* + * wchar => cp1252 + */ +int mbfl_filt_conv_wchar_cp1252(int c, mbfl_convert_filter *filter) +{ + int s=-1, n; + + if (c >= 0x100) { + /* look it up from the cp1252 table */ + s = -1; + n = 31; + while (n >= 0) { + if (c == cp1252_ucs_table[n] && c != 0xfffe) { + s = 0x80 + n; + break; + } + n--; + } + if (s <= 0 && (c & ~MBFL_WCSPLANE_MASK) == MBFL_WCSPLANE_8859_1) + { + s = c & MBFL_WCSPLANE_MASK; + } + } + else if (c >= 0 && c < 0x100) { + s = c; + } + if (s >= 0) { + CK((*filter->output_function)(s, filter->data)); + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + return c; +} + +/* + * cp1252 => wchar + */ +int mbfl_filt_conv_cp1252_wchar(int c, mbfl_convert_filter *filter) +{ + int s; + + if (c >= 0x80 && c < 0xa0) { + s = cp1252_ucs_table[c - 0x80]; + } else { + s = c; + } + + CK((*filter->output_function)(s, filter->data)); + + return c; +} + +/* We only distinguish the MS extensions to ISO-8859-1. + * Actually, this is pretty much a NO-OP, since the identification + * system doesn't allow us to discriminate between a positive match, + * a possible match and a definite non-match. + * The problem here is that cp1252 looks like SJIS for certain chars. + * */ +static int mbfl_filt_ident_cp1252(int c, mbfl_identify_filter *filter) +{ + if (c >= 0x80 && c < 0xa0) + filter->flag = 0; + else + filter->flag = 1; /* not it */ + return c; +} + + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_cp1252.h b/ext/mbstring/libmbfl/filters/mbfilter_cp1252.h new file mode 100644 index 0000000..032c30e --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_cp1252.h @@ -0,0 +1,43 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this part: Wez Furlong <wez@thebrainroom.com> + * + */ +/* + * the source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_CP1252_H +#define MBFL_MBFILTER_CP1252_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_cp1252; +extern const struct mbfl_identify_vtbl vtbl_identify_cp1252; +extern const struct mbfl_convert_vtbl vtbl_cp1252_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_cp1252; + +int mbfl_filt_conv_wchar_cp1252(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_cp1252_wchar(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_CP1252_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_cp1254.c b/ext/mbstring/libmbfl/filters/mbfilter_cp1254.c new file mode 100644 index 0000000..7e93342 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_cp1254.c @@ -0,0 +1,157 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this part: Haluk AKIN <halukakin@gmail.com> + * + */ +/* + * The source code included in this files was separated from mbfilter_ru.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_cp1254.h" +#include "unicode_table_cp1254.h" + +static int mbfl_filt_ident_cp1254(int c, mbfl_identify_filter *filter); + +static const char *mbfl_encoding_cp1254_aliases[] = {"CP1254", "CP-1254", "WINDOWS-1254", NULL}; + +const mbfl_encoding mbfl_encoding_cp1254 = { + mbfl_no_encoding_cp1254, + "Windows-1254", + "Windows-1254", + (const char *(*)[])&mbfl_encoding_cp1254_aliases, + NULL, + MBFL_ENCTYPE_SBCS +}; + +const struct mbfl_identify_vtbl vtbl_identify_cp1254 = { + mbfl_no_encoding_cp1254, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_cp1254 +}; + +const struct mbfl_convert_vtbl vtbl_cp1254_wchar = { + mbfl_no_encoding_cp1254, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_cp1254_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_cp1254 = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_cp1254, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_cp1254, + mbfl_filt_conv_common_flush +}; + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +/* + * wchar => cp1254 + */ +int +mbfl_filt_conv_wchar_cp1254(int c, mbfl_convert_filter *filter) +{ + int s, n; + + if (c < 0x80) { + s = c; + } else { + s = -1; + n = cp1254_ucs_table_len-1; + while (n >= 0) { + if (c == cp1254_ucs_table[n] && c != 0xfffe) { + s = cp1254_ucs_table_min + n; + break; + } + n--; + } + if (s <= 0 && (c & ~MBFL_WCSPLANE_MASK) == MBFL_WCSPLANE_CP1254) { + s = c & MBFL_WCSPLANE_MASK; + } + } + + if (s >= 0) { + CK((*filter->output_function)(s, filter->data)); + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + +/* + * cp1254 => wchar + */ +int +mbfl_filt_conv_cp1254_wchar(int c, mbfl_convert_filter *filter) +{ + int s; + + if (c >= 0 && c < cp1254_ucs_table_min) { + s = c; + } else if (c >= cp1254_ucs_table_min && c < 0x100) { + s = cp1254_ucs_table[c - cp1254_ucs_table_min]; + if (s <= 0) { + s = c; + s &= MBFL_WCSPLANE_MASK; + s |= MBFL_WCSPLANE_CP1254; + } + } else { + s = c; + s &= MBFL_WCSGROUP_MASK; + s |= MBFL_WCSGROUP_THROUGH; + } + + CK((*filter->output_function)(s, filter->data)); + + return c; +} + +/* We only distinguish the MS extensions to ISO-8859-1. + * Actually, this is pretty much a NO-OP, since the identification + * system doesn't allow us to discriminate between a positive match, + * a possible match and a definite non-match. + * The problem here is that cp1254 looks like SJIS for certain chars. + * */ +static int mbfl_filt_ident_cp1254(int c, mbfl_identify_filter *filter) +{ + if (c >= 0x80 && c < 0xff) + filter->flag = 0; + else + filter->flag = 1; /* not it */ + return c; +} + + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_cp1254.h b/ext/mbstring/libmbfl/filters/mbfilter_cp1254.h new file mode 100644 index 0000000..3200d52 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_cp1254.h @@ -0,0 +1,43 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this part: Haluk AKIN <halukakin@gmail.com> + * + */ +/* + * the source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_CP1254_H +#define MBFL_MBFILTER_CP1254_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_cp1254; +extern const struct mbfl_identify_vtbl vtbl_identify_cp1254; +extern const struct mbfl_convert_vtbl vtbl_cp1254_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_cp1254; + +int mbfl_filt_conv_wchar_cp1254(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_cp1254_wchar(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_CP1254_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_cp5022x.c b/ext/mbstring/libmbfl/filters/mbfilter_cp5022x.c new file mode 100644 index 0000000..8d733a9 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_cp5022x.c @@ -0,0 +1,1296 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: Moriyoshi Koizumi <koizumi@gree.co.jp> + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_cp5022x.h" +#include "mbfilter_jis.h" +#include "mbfilter_tl_jisx0201_jisx0208.h" + +#include "unicode_table_cp932_ext.h" +#include "unicode_table_jis.h" +#include "cp932_table.h" + +typedef struct _mbfl_filt_conv_wchar_cp50220_ctx { + mbfl_filt_tl_jisx0201_jisx0208_param tl_param; + mbfl_convert_filter last; +} mbfl_filt_conv_wchar_cp50220_ctx; + +static int mbfl_filt_ident_jis_ms(int c, mbfl_identify_filter *filter); +static int mbfl_filt_ident_cp50220(int c, mbfl_identify_filter *filter); +static int mbfl_filt_ident_cp50221(int c, mbfl_identify_filter *filter); +static int mbfl_filt_ident_cp50222(int c, mbfl_identify_filter *filter); +static void mbfl_filt_conv_wchar_cp50220_ctor(mbfl_convert_filter *filt); +static void mbfl_filt_conv_wchar_cp50220_dtor(mbfl_convert_filter *filt); +static void mbfl_filt_conv_wchar_cp50220_copy(mbfl_convert_filter *src, mbfl_convert_filter *dest); + +const mbfl_encoding mbfl_encoding_jis_ms = { + mbfl_no_encoding_jis_ms, + "JIS-ms", + "ISO-2022-JP", + NULL, + NULL, + MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_SHFTCODE | MBFL_ENCTYPE_GL_UNSAFE +}; + +const mbfl_encoding mbfl_encoding_cp50220 = { + mbfl_no_encoding_cp50220, + "CP50220", + "ISO-2022-JP", + (const char *(*)[])NULL, + NULL, + MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_SHFTCODE | MBFL_ENCTYPE_GL_UNSAFE +}; + +const mbfl_encoding mbfl_encoding_cp50220raw = { + mbfl_no_encoding_cp50220raw, + "CP50220raw", + "ISO-2022-JP", + (const char *(*)[])NULL, + NULL, + MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_SHFTCODE | MBFL_ENCTYPE_GL_UNSAFE +}; + +const mbfl_encoding mbfl_encoding_cp50221 = { + mbfl_no_encoding_cp50221, + "CP50221", + "ISO-2022-JP", + NULL, + NULL, + MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_SHFTCODE | MBFL_ENCTYPE_GL_UNSAFE +}; + +const mbfl_encoding mbfl_encoding_cp50222 = { + mbfl_no_encoding_cp50222, + "CP50222", + "ISO-2022-JP", + NULL, + NULL, + MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_SHFTCODE | MBFL_ENCTYPE_GL_UNSAFE +}; + +const struct mbfl_identify_vtbl vtbl_identify_jis_ms = { + mbfl_no_encoding_jis_ms, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_jis_ms +}; + +const struct mbfl_identify_vtbl vtbl_identify_cp50220 = { + mbfl_no_encoding_cp50220, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_cp50220 +}; + +const struct mbfl_identify_vtbl vtbl_identify_cp50220raw = { + mbfl_no_encoding_cp50220raw, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_cp50220 +}; + +const struct mbfl_identify_vtbl vtbl_identify_cp50221 = { + mbfl_no_encoding_cp50221, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_cp50221 +}; + +const struct mbfl_identify_vtbl vtbl_identify_cp50222 = { + mbfl_no_encoding_cp50222, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_cp50222 +}; + +const struct mbfl_convert_vtbl vtbl_jis_ms_wchar = { + mbfl_no_encoding_jis_ms, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_jis_ms_wchar, + mbfl_filt_conv_common_flush, +}; + +const struct mbfl_convert_vtbl vtbl_wchar_jis_ms = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_jis_ms, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_jis_ms, + mbfl_filt_conv_any_jis_flush +}; + +const struct mbfl_convert_vtbl vtbl_cp50220_wchar = { + mbfl_no_encoding_cp50220, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_jis_ms_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_cp50220 = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_cp50220, + mbfl_filt_conv_wchar_cp50220_ctor, + mbfl_filt_conv_wchar_cp50220_dtor, + mbfl_filt_conv_wchar_cp50221, + mbfl_filt_conv_any_jis_flush, + mbfl_filt_conv_wchar_cp50220_copy +}; + +const struct mbfl_convert_vtbl vtbl_cp50220raw_wchar = { + mbfl_no_encoding_cp50220raw, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_jis_ms_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_cp50220raw = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_cp50220raw, + mbfl_filt_conv_wchar_cp50220_ctor, + mbfl_filt_conv_wchar_cp50220_dtor, + mbfl_filt_conv_wchar_cp50220raw, + mbfl_filt_conv_any_jis_flush, + mbfl_filt_conv_wchar_cp50220_copy +}; + +const struct mbfl_convert_vtbl vtbl_cp50221_wchar = { + mbfl_no_encoding_cp50221, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_jis_ms_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_cp50221 = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_cp50221, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_cp50221, + mbfl_filt_conv_any_jis_flush +}; + +const struct mbfl_convert_vtbl vtbl_cp50222_wchar = { + mbfl_no_encoding_cp50222, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_jis_ms_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_cp50222 = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_cp50222, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_cp50222, + mbfl_filt_conv_wchar_cp50222_flush +}; + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +/* + * JIS-ms => wchar + */ +int +mbfl_filt_conv_jis_ms_wchar(int c, mbfl_convert_filter *filter) +{ + int c1, s, w; + +retry: + switch (filter->status & 0xf) { +/* case 0x00: ASCII */ +/* case 0x10: X 0201 latin */ +/* case 0x20: X 0201 kana */ +/* case 0x80: X 0208 */ +/* case 0x90: X 0212 */ + case 0: + if (c == 0x1b) { + filter->status += 2; + } else if (c == 0x0e) { /* "kana in" */ + filter->status = 0x20; + } else if (c == 0x0f) { /* "kana out" */ + filter->status = 0; + } else if (filter->status == 0x10 && c == 0x5c) { /* YEN SIGN */ + CK((*filter->output_function)(0xa5, filter->data)); + } else if (filter->status == 0x10 && c == 0x7e) { /* OVER LINE */ + CK((*filter->output_function)(0x203e, filter->data)); + } else if (filter->status == 0x20 && c > 0x20 && c < 0x60) { /* kana */ + CK((*filter->output_function)(0xff40 + c, filter->data)); + } else if ((filter->status == 0x80 || filter->status == 0x90) && c > 0x20 && c < 0x93) { /* kanji first char */ + filter->cache = c; + filter->status += 1; + } else if (c >= 0 && c < 0x80) { /* latin, CTLs */ + CK((*filter->output_function)(c, filter->data)); + } else if (c > 0xa0 && c < 0xe0) { /* GR kana */ + CK((*filter->output_function)(0xfec0 + c, filter->data)); + } else { + w = c & MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + +/* case 0x81: X 0208 second char */ +/* case 0x91: X 0212 second char */ + case 1: + filter->status &= ~0xf; + c1 = filter->cache; + if (c > 0x20 && c < 0x7f) { + s = (c1 - 0x21)*94 + c - 0x21; + if (filter->status == 0x80) { + if (s >= 0 && s < jisx0208_ucs_table_size) { + w = jisx0208_ucs_table[s]; + } else if (s >= cp932ext1_ucs_table_min && s < cp932ext1_ucs_table_max) { + w = cp932ext1_ucs_table[s - cp932ext1_ucs_table_min]; + } else if (s >= cp932ext2_ucs_table_min && s < cp932ext2_ucs_table_max) { + w = cp932ext2_ucs_table[s - cp932ext2_ucs_table_min]; + } else if (s >= cp932ext3_ucs_table_min && s < cp932ext2_ucs_table_max) { + w = cp932ext3_ucs_table[s - cp932ext3_ucs_table_min]; + } else if (s >= 94 * 94 && s < 114 * 94) { + /* user-defined => PUA (Microsoft extended) */ + w = s - 94*94 + 0xe000; + } else { + w = 0; + } + if (w <= 0) { + w = (c1 << 8) | c; + w &= MBFL_WCSPLANE_MASK; + w |= MBFL_WCSPLANE_JIS0208; + } + } else { + if (s >= 0 && s < jisx0212_ucs_table_size) { + w = jisx0212_ucs_table[s]; + } else { + w = 0; + } + if (w <= 0) { + w = (c1 << 8) | c; + w &= MBFL_WCSPLANE_MASK; + w |= MBFL_WCSPLANE_JIS0212; + } + } + CK((*filter->output_function)(w, filter->data)); + } else if (c == 0x1b) { + filter->status += 2; + } else if ((c >= 0 && c < 0x21) || c == 0x7f) { /* CTLs */ + CK((*filter->output_function)(c, filter->data)); + } else { + w = (c1 << 8) | c; + w &= MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + + /* ESC */ +/* case 0x02: */ +/* case 0x12: */ +/* case 0x22: */ +/* case 0x82: */ +/* case 0x92: */ + case 2: + if (c == 0x24) { /* '$' */ + filter->status++; + } else if (c == 0x28) { /* '(' */ + filter->status += 3; + } else { + filter->status &= ~0xf; + CK((*filter->output_function)(0x1b, filter->data)); + goto retry; + } + break; + + /* ESC $ */ +/* case 0x03: */ +/* case 0x13: */ +/* case 0x23: */ +/* case 0x83: */ +/* case 0x93: */ + case 3: + if (c == 0x40 || c == 0x42) { /* '@' or 'B' */ + filter->status = 0x80; + } else if (c == 0x28) { /* '(' */ + filter->status++; + } else { + filter->status &= ~0xf; + CK((*filter->output_function)(0x1b, filter->data)); + CK((*filter->output_function)(0x24, filter->data)); + goto retry; + } + break; + + /* ESC $ ( */ +/* case 0x04: */ +/* case 0x14: */ +/* case 0x24: */ +/* case 0x84: */ +/* case 0x94: */ + case 4: + if (c == 0x40 || c == 0x42) { /* '@' or 'B' */ + filter->status = 0x80; + } else if (c == 0x44) { /* 'D' */ + filter->status = 0x90; + } else { + filter->status &= ~0xf; + CK((*filter->output_function)(0x1b, filter->data)); + CK((*filter->output_function)(0x24, filter->data)); + CK((*filter->output_function)(0x28, filter->data)); + goto retry; + } + break; + + /* ESC ( */ +/* case 0x05: */ +/* case 0x15: */ +/* case 0x25: */ +/* case 0x85: */ +/* case 0x95: */ + case 5: + if (c == 0x42 || c == 0x48) { /* 'B' or 'H' */ + filter->status = 0; + } else if (c == 0x4a) { /* 'J' */ + filter->status = 0x10; + } else if (c == 0x49) { /* 'I' */ + filter->status = 0x20; + } else { + filter->status &= ~0xf; + CK((*filter->output_function)(0x1b, filter->data)); + CK((*filter->output_function)(0x28, filter->data)); + goto retry; + } + break; + + default: + filter->status = 0; + break; + } + + return c; +} + +/* + * wchar => JIS + */ +int +mbfl_filt_conv_wchar_jis_ms(int c, mbfl_convert_filter *filter) +{ + int c1, s; + + s = 0; + if (c >= ucs_a1_jis_table_min && c < ucs_a1_jis_table_max) { + s = ucs_a1_jis_table[c - ucs_a1_jis_table_min]; + } else if (c >= ucs_a2_jis_table_min && c < ucs_a2_jis_table_max) { + s = ucs_a2_jis_table[c - ucs_a2_jis_table_min]; + } else if (c >= ucs_i_jis_table_min && c < ucs_i_jis_table_max) { + s = ucs_i_jis_table[c - ucs_i_jis_table_min]; + } else if (c >= ucs_r_jis_table_min && c < ucs_r_jis_table_max) { + s = ucs_r_jis_table[c - ucs_r_jis_table_min]; + } else if (c >= 0xe000 && c < (0xe000 + 10 * 94)) { + /* PUE => Microsoft extended (pseudo 95ku - 114ku) */ + /* See http://www.opengroup.or.jp/jvc/cde/ucs-conv.html#ch4_2 */ + s = c - 0xe000; + s = (s / 94 + 0x75) << 8 | (s % 94 + 0x21); + } else if (c >= (0xe000 + 10 * 94) && c <= (0xe000 + 20 * 94)) { + /* PUE => JISX0212 user-defined (G3 85ku - 94ku) */ + /* See http://www.opengroup.or.jp/jvc/cde/ucs-conv.html#ch4_2 */ + s = c - (0xe000 + 10 * 94); + s = (s / 94 + 0xf5) << 8 | (s % 94 + 0xa1); + } + + /* do some transliteration */ + if (s <= 0) { + c1 = c & ~MBFL_WCSPLANE_MASK; + if (c1 == MBFL_WCSPLANE_JIS0208) { + s = c & MBFL_WCSPLANE_MASK; + } else if (c1 == MBFL_WCSPLANE_JIS0212) { + s = c & MBFL_WCSPLANE_MASK; + s |= 0x8080; + } else if (c == 0xa5) { /* YEN SIGN */ + s = 0x1005c; + } else if (c == 0x203e) { /* OVER LINE */ + s = 0x1007e; + } else if (c == 0xff3c) { /* FULLWIDTH REVERSE SOLIDUS */ + s = 0x2140; + } else if (c == 0xff5e) { /* FULLWIDTH TILDE */ + s = 0x2141; + } else if (c == 0x2225) { /* PARALLEL TO */ + s = 0x2142; + } else if (c == 0xff0d) { /* FULLWIDTH HYPHEN-MINUS */ + s = 0x215d; + } else if (c == 0xffe0) { /* FULLWIDTH CENT SIGN */ + s = 0x2171; + } else if (c == 0xffe1) { /* FULLWIDTH POUND SIGN */ + s = 0x2172; + } else if (c == 0xffe2) { /* FULLWIDTH NOT SIGN */ + s = 0x224c; + } + } + if (s <= 0 || (s >= 0x8080 && s < 0x10000)) { + int i; + s = -1; + + for (i = 0; + i < cp932ext1_ucs_table_max - cp932ext1_ucs_table_min; i++) { + const int oh = cp932ext1_ucs_table_min / 94; + + if (c == cp932ext1_ucs_table[i]) { + s = ((i / 94 + oh + 0x21) << 8) + (i % 94 + 0x21); + break; + } + } + + if (s < 0) { + const int oh = cp932ext2_ucs_table_min / 94; + const int cp932ext2_ucs_table_size = + cp932ext2_ucs_table_max - cp932ext2_ucs_table_min; + for (i = 0; i < cp932ext2_ucs_table_size; i++) { + if (c == cp932ext2_ucs_table[i]) { + s = ((i / 94 + oh + 0x21) << 8) + (i % 94 + 0x21); + break; + } + } + } + + if (s < 0) { + const int cp932ext3_ucs_table_size = + cp932ext3_ucs_table_max - cp932ext3_ucs_table_min; + const int limit = cp932ext3_ucs_table_size > + cp932ext3_eucjp_table_size ? + cp932ext3_eucjp_table_size: + cp932ext3_ucs_table_size; + for (i = 0; i < limit; i++) { + if (c == cp932ext3_ucs_table[i]) { + s = cp932ext3_eucjp_table[i]; + break; + } + } + } + + if (c == 0) { + s = 0; + } else if (s <= 0) { + s = -1; + } + } + + if (s >= 0) { + if (s < 0x80) { /* ASCII */ + if ((filter->status & 0xff00) != 0) { + CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ + CK((*filter->output_function)(0x28, filter->data)); /* '(' */ + CK((*filter->output_function)(0x42, filter->data)); /* 'B' */ + } + filter->status = 0; + CK((*filter->output_function)(s, filter->data)); + } else if (s < 0x100) { /* kana */ + if ((filter->status & 0xff00) != 0x100) { + CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ + CK((*filter->output_function)(0x28, filter->data)); /* '(' */ + CK((*filter->output_function)(0x49, filter->data)); /* 'I' */ + } + filter->status = 0x100; + CK((*filter->output_function)(s & 0x7f, filter->data)); + } else if (s < 0x8080) { /* X 0208 */ + if ((filter->status & 0xff00) != 0x200) { + CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ + CK((*filter->output_function)(0x24, filter->data)); /* '$' */ + CK((*filter->output_function)(0x42, filter->data)); /* 'B' */ + } + filter->status = 0x200; + CK((*filter->output_function)((s >> 8) & 0x7f, filter->data)); + CK((*filter->output_function)(s & 0x7f, filter->data)); + } else if (s < 0x10000) { /* X 0212 */ + if ((filter->status & 0xff00) != 0x300) { + CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ + CK((*filter->output_function)(0x24, filter->data)); /* '$' */ + CK((*filter->output_function)(0x28, filter->data)); /* '(' */ + CK((*filter->output_function)(0x44, filter->data)); /* 'D' */ + } + filter->status = 0x300; + CK((*filter->output_function)((s >> 8) & 0x7f, filter->data)); + CK((*filter->output_function)(s & 0x7f, filter->data)); + } else { /* X 0201 latin */ + if ((filter->status & 0xff00) != 0x400) { + CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ + CK((*filter->output_function)(0x28, filter->data)); /* '(' */ + CK((*filter->output_function)(0x4a, filter->data)); /* 'J' */ + } + filter->status = 0x400; + CK((*filter->output_function)(s & 0x7f, filter->data)); + } + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + +/* + * wchar => CP50220 + */ +static void +mbfl_filt_conv_wchar_cp50220_ctor(mbfl_convert_filter *filt) +{ + mbfl_filt_conv_wchar_cp50220_ctx *ctx; + + mbfl_filt_conv_common_ctor(filt); + + ctx = mbfl_malloc(sizeof(mbfl_filt_conv_wchar_cp50220_ctx)); + if (ctx == NULL) { + mbfl_filt_conv_common_dtor(filt); + return; + } + + ctx->tl_param.mode = MBFL_FILT_TL_HAN2ZEN_KATAKANA | MBFL_FILT_TL_HAN2ZEN_GLUE; + + ctx->last = *filt; + ctx->last.opaque = ctx; + ctx->last.data = filt->data; + filt->filter_function = vtbl_tl_jisx0201_jisx0208.filter_function; + filt->filter_flush = vtbl_tl_jisx0201_jisx0208.filter_flush; + filt->output_function = (int(*)(int, void *))ctx->last.filter_function; + filt->flush_function = (int(*)(void *))ctx->last.filter_flush; + filt->data = &ctx->last; + filt->opaque = ctx; + vtbl_tl_jisx0201_jisx0208.filter_ctor(filt); +} + +static void +mbfl_filt_conv_wchar_cp50220_copy(mbfl_convert_filter *src, mbfl_convert_filter *dest) +{ + mbfl_filt_conv_wchar_cp50220_ctx *ctx; + + *dest = *src; + ctx = mbfl_malloc(sizeof(mbfl_filt_conv_wchar_cp50220_ctx)); + if (ctx != NULL) { + *ctx = *(mbfl_filt_conv_wchar_cp50220_ctx*)src->opaque; + } + + dest->opaque = ctx; + dest->data = &ctx->last; +} + +static void +mbfl_filt_conv_wchar_cp50220_dtor(mbfl_convert_filter *filt) +{ + vtbl_tl_jisx0201_jisx0208.filter_dtor(filt); + + if (filt->opaque != NULL) { + mbfl_free(filt->opaque); + } + + mbfl_filt_conv_common_dtor(filt); +} + +/* + * wchar => cp50220raw + */ +int +mbfl_filt_conv_wchar_cp50220raw(int c, mbfl_convert_filter *filter) +{ + if (c & MBFL_WCSPLANE_JIS0208) { + const int s = c & MBFL_WCSPLANE_MASK; + + if ((filter->status & 0xff00) != 0x200) { + CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ + CK((*filter->output_function)(0x24, filter->data)); /* '$' */ + CK((*filter->output_function)(0x42, filter->data)); /* 'B' */ + filter->status = 0x200; + } + CK((*filter->output_function)((s >> 8) & 0x7f, filter->data)); + CK((*filter->output_function)(s & 0x7f, filter->data)); + return c; + } else { + return mbfl_filt_conv_wchar_cp50221(c, filter); + } +} + +/* + * wchar => CP50221 + */ +int +mbfl_filt_conv_wchar_cp50221(int c, mbfl_convert_filter *filter) +{ + int s = 0; + + if (c >= ucs_a1_jis_table_min && c < ucs_a1_jis_table_max) { + s = ucs_a1_jis_table[c - ucs_a1_jis_table_min]; + } else if (c >= ucs_a2_jis_table_min && c < ucs_a2_jis_table_max) { + s = ucs_a2_jis_table[c - ucs_a2_jis_table_min]; + } else if (c >= ucs_i_jis_table_min && c < ucs_i_jis_table_max) { + s = ucs_i_jis_table[c - ucs_i_jis_table_min]; + } else if (c >= ucs_r_jis_table_min && c < ucs_r_jis_table_max) { + s = ucs_r_jis_table[c - ucs_r_jis_table_min]; + } else if (c >= 0xe000 && c < (0xe000 + 10 * 94)) { + /* PUE => Microsoft extended */ + /* See http://www.opengroup.or.jp/jvc/cde/ucs-conv.html#ch4_2 */ + s = c - 0xe000; + s = (s / 94 + 0x75) << 8 | (s % 94 + 0x21); + } else if (c >= (0xe000 + 10 * 94) && c <= (0xe000 + 20 * 94)) { + /* PUE => JISX0212 user-defined (G3 85ku - 94ku) */ + /* See http://www.opengroup.or.jp/jvc/cde/ucs-conv.html#ch4_2 */ + s = c - (0xe000 + 10 * 94); + s = (s / 94 + 0xf5) << 8 | (s % 94 + 0xa1); + } + + if (s <= 0) { + if (c == 0xa5) { /* YEN SIGN */ + s = 0x1005c; + } else if (c == 0x203e) { /* OVER LINE */ + s = 0x1007e; + } else if (c == 0xff3c) { /* FULLWIDTH REVERSE SOLIDUS */ + s = 0x2140; + } else if (c == 0xff5e) { /* FULLWIDTH TILDE */ + s = 0x2141; + } else if (c == 0x2225) { /* PARALLEL TO */ + s = 0x2142; + } else if (c == 0xff0d) { /* FULLWIDTH HYPHEN-MINUS */ + s = 0x215d; + } else if (c == 0xffe0) { /* FULLWIDTH CENT SIGN */ + s = 0x2171; + } else if (c == 0xffe1) { /* FULLWIDTH POUND SIGN */ + s = 0x2172; + } else if (c == 0xffe2) { /* FULLWIDTH NOT SIGN */ + s = 0x224c; + } + } + if (s <= 0 || (s >= 0x8080 && s < 0x10000)) { + int i; + s = -1; + + for (i = 0; + i < cp932ext1_ucs_table_max - cp932ext1_ucs_table_min; + i++) { + const int oh = cp932ext1_ucs_table_min / 94; + + if (c == cp932ext1_ucs_table[i]) { + s = ((i / 94 + oh + 0x21) << 8) + (i % 94 + 0x21); + break; + } + } + + if (s < 0) { + const int oh = cp932ext2_ucs_table_min / 94; + const int cp932ext2_ucs_table_size = + cp932ext2_ucs_table_max - cp932ext2_ucs_table_min; + for (i = 0; i < cp932ext2_ucs_table_size; i++) { + if (c == cp932ext2_ucs_table[i]) { + s = ((i / 94 + oh + 0x21) << 8) + (i % 94 + 0x21); + break; + } + } + } + + if (s < 0) { + const int cp932ext3_ucs_table_size = + cp932ext3_ucs_table_max - cp932ext3_ucs_table_min; + const int limit = cp932ext3_ucs_table_size > + cp932ext3_eucjp_table_size ? + cp932ext3_eucjp_table_size: + cp932ext3_ucs_table_size; + for (i = 0; i < limit; i++) { + if (c == cp932ext3_ucs_table[i]) { + s = cp932ext3_eucjp_table[i]; + break; + } + } + } + + if (c == 0) { + s = 0; + } else if (s <= 0) { + s = -1; + } + } + + if (s >= 0) { + if (s < 0x80) { /* ASCII */ + if ((filter->status & 0xff00) != 0) { + CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ + CK((*filter->output_function)(0x28, filter->data)); /* '(' */ + CK((*filter->output_function)(0x42, filter->data)); /* 'B' */ + filter->status = 0; + } + CK((*filter->output_function)(s, filter->data)); + } else if (s >= 0xa0 && s < 0xe0) { /* X 0201 kana */ + if ((filter->status & 0xff00) != 0x500) { + CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ + CK((*filter->output_function)(0x28, filter->data)); /* '(' */ + CK((*filter->output_function)(0x49, filter->data)); /* 'I' */ + filter->status = 0x500; + } + CK((*filter->output_function)(s - 0x80, filter->data)); + } else if (s < 0x8080) { /* X 0208 */ + if ((filter->status & 0xff00) != 0x200) { + CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ + CK((*filter->output_function)(0x24, filter->data)); /* '$' */ + CK((*filter->output_function)(0x42, filter->data)); /* 'B' */ + filter->status = 0x200; + } + CK((*filter->output_function)((s >> 8) & 0x7f, filter->data)); + CK((*filter->output_function)(s & 0x7f, filter->data)); + } else if (s < 0x10000) { /* X0212 */ + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } else { /* X 0201 latin */ + if ((filter->status & 0xff00) != 0x400) { + CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ + CK((*filter->output_function)(0x28, filter->data)); /* '(' */ + CK((*filter->output_function)(0x4a, filter->data)); /* 'J' */ + } + filter->status = 0x400; + CK((*filter->output_function)(s & 0x7f, filter->data)); + } + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + +/* + * wchar => CP50222 + */ +int +mbfl_filt_conv_wchar_cp50222(int c, mbfl_convert_filter *filter) +{ + int s; + + s = 0; + + if (c >= ucs_a1_jis_table_min && c < ucs_a1_jis_table_max) { + s = ucs_a1_jis_table[c - ucs_a1_jis_table_min]; + } else if (c >= ucs_a2_jis_table_min && c < ucs_a2_jis_table_max) { + s = ucs_a2_jis_table[c - ucs_a2_jis_table_min]; + } else if (c >= ucs_i_jis_table_min && c < ucs_i_jis_table_max) { + s = ucs_i_jis_table[c - ucs_i_jis_table_min]; + } else if (c >= ucs_r_jis_table_min && c < ucs_r_jis_table_max) { + s = ucs_r_jis_table[c - ucs_r_jis_table_min]; + } else if (c >= 0xe000 && c < (0xe000 + 10 * 94)) { + /* PUE => Microsoft extended */ + /* See http://www.opengroup.or.jp/jvc/cde/ucs-conv.html#ch4_2 */ + s = c - 0xe000; + s = (s / 94 + 0x75) << 8 | (s % 94 + 0x21); + } else if (c >= (0xe000 + 10 * 94) && c <= (0xe000 + 20 * 94)) { + /* PUE => JISX0212 user-defined (G3 85ku - 94ku) */ + /* See http://www.opengroup.or.jp/jvc/cde/ucs-conv.html#ch4_2 */ + s = c - (0xe000 + 10 * 94); + s = (s / 94 + 0xf5) << 8 | (s % 94 + 0xa1); + } + + if (s <= 0) { + if (c == 0xa5) { /* YEN SIGN */ + s = 0x1005c; + } else if (c == 0x203e) { /* OVER LINE */ + s = 0x1007e; + } else if (c == 0xff3c) { /* FULLWIDTH REVERSE SOLIDUS */ + s = 0x2140; + } else if (c == 0xff5e) { /* FULLWIDTH TILDE */ + s = 0x2141; + } else if (c == 0x2225) { /* PARALLEL TO */ + s = 0x2142; + } else if (c == 0xff0d) { /* FULLWIDTH HYPHEN-MINUS */ + s = 0x215d; + } else if (c == 0xffe0) { /* FULLWIDTH CENT SIGN */ + s = 0x2171; + } else if (c == 0xffe1) { /* FULLWIDTH POUND SIGN */ + s = 0x2172; + } else if (c == 0xffe2) { /* FULLWIDTH NOT SIGN */ + s = 0x224c; + } + } + if (s <= 0 || (s >= 0x8080 && s < 0x10000)) { + int i; + s = -1; + + for (i = 0; + i < cp932ext1_ucs_table_max - cp932ext1_ucs_table_min; i++) { + const int oh = cp932ext1_ucs_table_min / 94; + + if (c == cp932ext1_ucs_table[i]) { + s = ((i / 94 + oh + 0x21) << 8) + (i % 94 + 0x21); + break; + } + } + + if (s <= 0) { + const int oh = cp932ext2_ucs_table_min / 94; + const int cp932ext2_ucs_table_size = + cp932ext2_ucs_table_max - cp932ext2_ucs_table_min; + for (i = 0; i < cp932ext2_ucs_table_size; i++) { + if (c == cp932ext2_ucs_table[i]) { + s = ((i / 94 + oh + 0x21) << 8) + (i % 94 + 0x21); + break; + } + } + } + + if (s <= 0) { + const int cp932ext3_ucs_table_size = + cp932ext3_ucs_table_max - cp932ext3_ucs_table_min; + const int limit = cp932ext3_ucs_table_size > + cp932ext3_eucjp_table_size ? + cp932ext3_eucjp_table_size: + cp932ext3_ucs_table_size; + for (i = 0; i < limit; i++) { + if (c == cp932ext3_ucs_table[i]) { + s = cp932ext3_eucjp_table[i]; + break; + } + } + } + + if (c == 0) { + s = 0; + } else if (s <= 0) { + s = -1; + } + } + + if (s >= 0) { + if (s < 0x80) { /* ASCII */ + if ((filter->status & 0xff00) == 0x500) { + CK((*filter->output_function)(0x0f, filter->data)); /* SO */ + filter->status = 0; + } else if ((filter->status & 0xff00) != 0) { + CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ + CK((*filter->output_function)(0x28, filter->data)); /* '(' */ + CK((*filter->output_function)(0x42, filter->data)); /* 'B' */ + filter->status = 0; + } + CK((*filter->output_function)(s, filter->data)); + } else if (s >= 0xa0 && s < 0xe0) { /* X 0201 kana */ + if ((filter->status & 0xff00) != 0x500) { + CK((*filter->output_function)(0x0e, filter->data)); /* SI */ + filter->status = 0x500; + } + CK((*filter->output_function)(s - 0x80, filter->data)); + } else if (s < 0x8080) { /* X 0208 */ + if ((filter->status & 0xff00) == 0x500) { + CK((*filter->output_function)(0x0f, filter->data)); /* SO */ + filter->status = 0; + } + if ((filter->status & 0xff00) != 0x200) { + CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ + CK((*filter->output_function)(0x24, filter->data)); /* '$' */ + CK((*filter->output_function)(0x42, filter->data)); /* 'B' */ + filter->status = 0x200; + } + CK((*filter->output_function)((s >> 8) & 0x7f, filter->data)); + CK((*filter->output_function)(s & 0x7f, filter->data)); + } else if (s < 0x10000) { /* X0212 */ + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } else { /* X 0201 latin */ + if ((filter->status & 0xff00) == 0x500) { + CK((*filter->output_function)(0x0f, filter->data)); /* SO */ + filter->status = 0; + } + if ((filter->status & 0xff00) != 0x400) { + CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ + CK((*filter->output_function)(0x28, filter->data)); /* '(' */ + CK((*filter->output_function)(0x4a, filter->data)); /* 'J' */ + } + filter->status = 0x400; + CK((*filter->output_function)(s & 0x7f, filter->data)); + } + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + +int +mbfl_filt_conv_wchar_cp50222_flush(mbfl_convert_filter *filter) +{ + /* back to latin */ + if ((filter->status & 0xff00) == 0x500) { + CK((*filter->output_function)(0x0f, filter->data)); /* SO */ + } else if ((filter->status & 0xff00) != 0) { + CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ + CK((*filter->output_function)(0x28, filter->data)); /* '(' */ + CK((*filter->output_function)(0x42, filter->data)); /* 'B' */ + } + filter->status &= 0xff; + + if (filter->flush_function != NULL) { + return (*filter->flush_function)(filter->data); + } + + return 0; +} + + +static int mbfl_filt_ident_jis_ms(int c, mbfl_identify_filter *filter) +{ +retry: + switch (filter->status & 0xf) { +/* case 0x00: ASCII */ +/* case 0x10: X 0201 latin */ +/* case 0x20: X 0201 kana */ +/* case 0x80: X 0208 */ +/* case 0x90: X 0212 */ + case 0: + if (c == 0x1b) { + filter->status += 2; + } else if (c == 0x0e) { /* "kana in" */ + filter->status = 0x20; + } else if (c == 0x0f) { /* "kana out" */ + filter->status = 0; + } else if ((filter->status == 0x80 || filter->status == 0x90) && c > 0x20 && c < 0x7f) { /* kanji first char */ + filter->status += 1; + } else if (c >= 0 && c < 0x80) { /* latin, CTLs */ + ; + } else { + filter->flag = 1; /* bad */ + } + break; + +/* case 0x81: X 0208 second char */ +/* case 0x91: X 0212 second char */ + case 1: + filter->status &= ~0xf; + if (c == 0x1b) { + goto retry; + } else if (c < 0x21 || c > 0x7e) { /* bad */ + filter->flag = 1; + } + break; + + /* ESC */ + case 2: + if (c == 0x24) { /* '$' */ + filter->status++; + } else if (c == 0x28) { /* '(' */ + filter->status += 3; + } else { + filter->flag = 1; /* bad */ + filter->status &= ~0xf; + goto retry; + } + break; + + /* ESC $ */ + case 3: + if (c == 0x40 || c == 0x42) { /* '@' or 'B' */ + filter->status = 0x80; + } else if (c == 0x28) { /* '(' */ + filter->status++; + } else { + filter->flag = 1; /* bad */ + filter->status &= ~0xf; + goto retry; + } + break; + + /* ESC $ ( */ + case 4: + if (c == 0x40 || c == 0x42) { /* '@' or 'B' */ + filter->status = 0x80; + } else if (c == 0x44) { /* 'D' */ + filter->status = 0x90; + } else { + filter->flag = 1; /* bad */ + filter->status &= ~0xf; + goto retry; + } + break; + + /* ESC ( */ + case 5: + if (c == 0x42 || c == 0x48) { /* 'B' or 'H' */ + filter->status = 0; + } else if (c == 0x4a) { /* 'J' */ + filter->status = 0x10; + } else if (c == 0x49) { /* 'I' */ + filter->status = 0x20; + } else { + filter->flag = 1; /* bad */ + filter->status &= ~0xf; + goto retry; + } + break; + + default: + filter->status = 0; + break; + } + + return c; +} + +static int mbfl_filt_ident_cp50220(int c, mbfl_identify_filter *filter) +{ +retry: + switch (filter->status & 0xf) { +/* case 0x00: ASCII */ +/* case 0x10: X 0201 latin */ +/* case 0x80: X 0208 */ + case 0: + if (c == 0x1b) { + filter->status += 2; + } else if (filter->status == 0x80 && c > 0x20 && c < 0x7f) { /* kanji first char */ + filter->status += 1; + } else if (c >= 0 && c < 0x80) { /* latin, CTLs */ + ; + } else { + filter->flag = 1; /* bad */ + } + break; + +/* case 0x81: X 0208 second char */ + case 1: + if (c == 0x1b) { + filter->status++; + } else { + filter->status &= ~0xf; + if (c < 0x21 || c > 0x7e) { /* bad */ + filter->flag = 1; + } + } + break; + + /* ESC */ + case 2: + if (c == 0x24) { /* '$' */ + filter->status++; + } else if (c == 0x28) { /* '(' */ + filter->status += 3; + } else { + filter->flag = 1; /* bad */ + filter->status &= ~0xf; + goto retry; + } + break; + + /* ESC $ */ + case 3: + if (c == 0x40 || c == 0x42) { /* '@' or 'B' */ + filter->status = 0x80; + } else { + filter->flag = 1; /* bad */ + filter->status &= ~0xf; + goto retry; + } + break; + + /* ESC ( */ + case 5: + if (c == 0x42) { /* 'B' */ + filter->status = 0; + } else if (c == 0x4a) { /* 'J' */ + filter->status = 0x10; + } else { + filter->flag = 1; /* bad */ + filter->status &= ~0xf; + goto retry; + } + break; + + default: + filter->status = 0; + break; + } + + return c; +} + +static int mbfl_filt_ident_cp50221(int c, mbfl_identify_filter *filter) +{ +retry: + switch (filter->status & 0xf) { +/* case 0x00: ASCII */ +/* case 0x10: X 0201 latin */ +/* case 0x80: X 0208 */ + case 0: + if (c == 0x1b) { + filter->status += 2; + } else if (filter->status == 0x80 && c > 0x20 && c < 0x7f) { /* kanji first char */ + filter->status += 1; + } else if (c >= 0 && c < 0x80) { /* latin, CTLs */ + ; + } else { + filter->flag = 1; /* bad */ + } + break; + +/* case 0x81: X 0208 second char */ + case 1: + if (c == 0x1b) { + filter->status++; + } else { + filter->status &= ~0xf; + if (c < 0x21 || c > 0x7e) { /* bad */ + filter->flag = 1; + } + } + break; + + /* ESC */ + case 2: + if (c == 0x24) { /* '$' */ + filter->status++; + } else if (c == 0x28) { /* '(' */ + filter->status += 3; + } else { + filter->flag = 1; /* bad */ + filter->status &= ~0xf; + goto retry; + } + break; + + /* ESC $ */ + case 3: + if (c == 0x40 || c == 0x42) { /* '@' or 'B' */ + filter->status = 0x80; + } else { + filter->flag = 1; /* bad */ + filter->status &= ~0xf; + goto retry; + } + break; + + /* ESC ( */ + case 5: + if (c == 0x42) { /* 'B' */ + filter->status = 0; + } else if (c == 0x4a) { /* 'J' */ + filter->status = 0x10; + } else if (c == 0x49) { /* 'I' */ + filter->status = 0x20; + } else { + filter->flag = 1; /* bad */ + filter->status &= ~0xf; + goto retry; + } + break; + + default: + filter->status = 0; + break; + } + + return c; +} + +static int mbfl_filt_ident_cp50222(int c, mbfl_identify_filter *filter) +{ +retry: + switch (filter->status & 0xf) { +/* case 0x00: ASCII */ +/* case 0x10: X 0201 latin */ +/* case 0x80: X 0208 */ + case 0: + if (c == 0x1b) { + filter->status += 2; + } else if (filter->status == 0x80 && c > 0x20 && c < 0x7f) { /* kanji first char */ + filter->status += 1; + } else if (c >= 0 && c < 0x80) { /* latin, CTLs */ + ; + } else { + filter->flag = 1; /* bad */ + } + break; + +/* case 0x81: X 0208 second char */ + case 1: + if (c == 0x1b) { + filter->status++; + } else { + filter->status &= ~0xf; + if (c < 0x21 || c > 0x7e) { /* bad */ + filter->flag = 1; + } + } + break; + + /* ESC */ + case 2: + if (c == 0x24) { /* '$' */ + filter->status++; + } else if (c == 0x28) { /* '(' */ + filter->status += 3; + } else { + filter->flag = 1; /* bad */ + filter->status &= ~0xf; + goto retry; + } + break; + + /* ESC $ */ + case 3: + if (c == 0x40 || c == 0x42) { /* '@' or 'B' */ + filter->status = 0x80; + } else { + filter->flag = 1; /* bad */ + filter->status &= ~0xf; + goto retry; + } + break; + + /* ESC ( */ + case 5: + if (c == 0x42) { /* 'B' */ + filter->status = 0; + } else if (c == 0x4a) { /* 'J' */ + filter->status = 0x10; + } else { + filter->flag = 1; /* bad */ + filter->status &= ~0xf; + goto retry; + } + break; + + default: + filter->status = 0; + break; + } + + return c; +} + + + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_cp5022x.h b/ext/mbstring/libmbfl/filters/mbfilter_cp5022x.h new file mode 100644 index 0000000..a462f70 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_cp5022x.h @@ -0,0 +1,64 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter_ja.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_CP50221_h +#define MBFL_MBFILTER_CP50221_h + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_jis_ms; +extern const mbfl_encoding mbfl_encoding_cp50220; +extern const mbfl_encoding mbfl_encoding_cp50220raw; +extern const mbfl_encoding mbfl_encoding_cp50221; +extern const mbfl_encoding mbfl_encoding_cp50222; +extern const struct mbfl_identify_vtbl vtbl_identify_jis_ms; +extern const struct mbfl_identify_vtbl vtbl_identify_cp50220; +extern const struct mbfl_identify_vtbl vtbl_identify_cp50220raw; +extern const struct mbfl_identify_vtbl vtbl_identify_cp50221; +extern const struct mbfl_identify_vtbl vtbl_identify_cp50222; +extern const struct mbfl_convert_vtbl vtbl_jis_ms_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_jis_ms; +extern const struct mbfl_convert_vtbl vtbl_cp50220_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_cp50220; +extern const struct mbfl_convert_vtbl vtbl_cp50220raw_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_cp50220raw; +extern const struct mbfl_convert_vtbl vtbl_cp50221_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_cp50221; +extern const struct mbfl_convert_vtbl vtbl_cp50222_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_cp50222; + +int mbfl_filt_conv_jis_ms_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_jis_ms(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_cp50220(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_cp50220raw(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_cp50221(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_cp50222(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_cp50222_flush(mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_CP50221_h */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_cp51932.c b/ext/mbstring/libmbfl/filters/mbfilter_cp51932.c new file mode 100644 index 0000000..f84be1e --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_cp51932.c @@ -0,0 +1,345 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter_ja.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_cp51932.h" + +#include "unicode_table_cp932_ext.h" +#include "unicode_table_jis.h" +#include "cp932_table.h" + +static int mbfl_filt_ident_cp51932(int c, mbfl_identify_filter *filter); + +static const unsigned char mblen_table_eucjp[] = { /* 0xA1-0xFE */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 +}; + + +static const char *mbfl_encoding_cp51932_aliases[] = {"cp51932", NULL}; + +const struct mbfl_identify_vtbl vtbl_identify_cp51932 = { + mbfl_no_encoding_cp51932, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_cp51932 +}; + +const mbfl_encoding mbfl_encoding_cp51932 = { + mbfl_no_encoding_cp51932, + "CP51932", + "CP51932", + (const char *(*)[])&mbfl_encoding_cp51932_aliases, + mblen_table_eucjp, + MBFL_ENCTYPE_MBCS +}; + +const struct mbfl_convert_vtbl vtbl_cp51932_wchar = { + mbfl_no_encoding_cp51932, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_cp51932_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_cp51932 = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_cp51932, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_cp51932, + mbfl_filt_conv_common_flush +}; + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +#define sjistoidx(c1, c2) \ + (((c1) > 0x9f) \ + ? (((c1) - 0xc1) * 188 + (c2) - (((c2) > 0x7e) ? 0x41 : 0x40)) \ + : (((c1) - 0x81) * 188 + (c2) - (((c2) > 0x7e) ? 0x41 : 0x40))) +#define idxtoeuc1(c) (((c) / 94) + 0xa1) +#define idxtoeuc2(c) (((c) % 94) + 0xa1) + +/* + * cp51932 => wchar + */ +int +mbfl_filt_conv_cp51932_wchar(int c, mbfl_convert_filter *filter) +{ + int c1, s, w; + + switch (filter->status) { + case 0: + if (c >= 0 && c < 0x80) { /* latin */ + CK((*filter->output_function)(c, filter->data)); + } else if (c > 0xa0 && c < 0xff) { /* CP932 first char */ + filter->status = 1; + filter->cache = c; + } else if (c == 0x8e) { /* kana first char */ + filter->status = 2; + } else { + w = c & MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + + case 1: /* got first half */ + filter->status = 0; + c1 = filter->cache; + if (c > 0xa0 && c < 0xff) { + w = 0; + s = (c1 - 0xa1)*94 + c - 0xa1; + if (s <= 137) { + if (s == 31) { + w = 0xff3c; /* FULLWIDTH REVERSE SOLIDUS */ + } else if (s == 32) { + w = 0xff5e; /* FULLWIDTH TILDE */ + } else if (s == 33) { + w = 0x2225; /* PARALLEL TO */ + } else if (s == 60) { + w = 0xff0d; /* FULLWIDTH HYPHEN-MINUS */ + } else if (s == 80) { + w = 0xffe0; /* FULLWIDTH CENT SIGN */ + } else if (s == 81) { + w = 0xffe1; /* FULLWIDTH POUND SIGN */ + } else if (s == 137) { + w = 0xffe2; /* FULLWIDTH NOT SIGN */ + } + } + if (w == 0) { + if (s >= cp932ext1_ucs_table_min && s < cp932ext1_ucs_table_max) { /* vendor ext1 (13ku) */ + w = cp932ext1_ucs_table[s - cp932ext1_ucs_table_min]; + } else if (s >= 0 && s < jisx0208_ucs_table_size) { /* X 0208 */ + w = jisx0208_ucs_table[s]; + } else if (s >= cp932ext2_ucs_table_min && s < cp932ext2_ucs_table_max) { /* vendor ext2 (89ku - 92ku) */ + w = cp932ext2_ucs_table[s - cp932ext2_ucs_table_min]; + } + } + if (w <= 0) { + w = ((c1 & 0x7f) << 8) | (c & 0x7f); + w &= MBFL_WCSPLANE_MASK; + w |= MBFL_WCSPLANE_WINCP932; + } + CK((*filter->output_function)(w, filter->data)); + } else if ((c >= 0 && c < 0x21) || c == 0x7f) { /* CTLs */ + CK((*filter->output_function)(c, filter->data)); + } else { + w = (c1 << 8) | c; + w &= MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + + case 2: /* got 0x8e, X0201 kana */ + filter->status = 0; + if (c > 0xa0 && c < 0xe0) { + w = 0xfec0 + c; + CK((*filter->output_function)(w, filter->data)); + } else if ((c >= 0 && c < 0x21) || c == 0x7f) { /* CTLs */ + CK((*filter->output_function)(c, filter->data)); + } else { + w = 0x8e00 | c; + w &= MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + + default: + filter->status = 0; + break; + } + + return c; +} + +/* + * wchar => cp51932 + */ +int +mbfl_filt_conv_wchar_cp51932(int c, mbfl_convert_filter *filter) +{ + int c1, c2, s1; + + s1 = 0; + if (c >= ucs_a1_jis_table_min && c < ucs_a1_jis_table_max) { + s1 = ucs_a1_jis_table[c - ucs_a1_jis_table_min]; + } else if (c >= ucs_a2_jis_table_min && c < ucs_a2_jis_table_max) { + s1 = ucs_a2_jis_table[c - ucs_a2_jis_table_min]; + } else if (c >= ucs_i_jis_table_min && c < ucs_i_jis_table_max) { + s1 = ucs_i_jis_table[c - ucs_i_jis_table_min]; + } else if (c >= ucs_r_jis_table_min && c < ucs_r_jis_table_max) { + s1 = ucs_r_jis_table[c - ucs_r_jis_table_min]; + } + if (s1 >= 0x8080) s1 = -1; /* we don't support JIS X0213 */ + if (s1 <= 0) { + c1 = c & ~MBFL_WCSPLANE_MASK; + if (c1 == MBFL_WCSPLANE_WINCP932) { + s1 = c & MBFL_WCSPLANE_MASK; + if (s1 >= ((85 + 0x20) << 8)) { /* 85ku - 120ku */ + s1 = -1; + } + } else if (c1 == MBFL_WCSPLANE_JIS0208) { + s1 = c & MBFL_WCSPLANE_MASK; + if ((s1 >= ((85 + 0x20) << 8) && /* 85ku - 94ku */ + s1 <= ((88 + 0x20) << 8)) ||/* IBM extension */ + (s1 >= ((93 + 0x20) << 8) && /* 89ku - 92ku */ + s1 <= ((94 + 0x20) << 8))) { + s1 = -1; + } + } else if (c == 0xa5) { /* YEN SIGN */ + s1 = 0x005c; /* YEN SIGN */ + } else if (c == 0x203e) { /* OVER LINE */ + s1 = 0x007e; /* FULLWIDTH MACRON */ + } else if (c == 0xff3c) { /* FULLWIDTH REVERSE SOLIDUS */ + s1 = 0x2140; + } else if (c == 0xff5e) { /* FULLWIDTH TILDE */ + s1 = 0x2141; + } else if (c == 0x2225) { /* PARALLEL TO */ + s1 = 0x2142; + } else if (c == 0xff0d) { /* FULLWIDTH HYPHEN-MINUS */ + s1 = 0x215d; + } else if (c == 0xffe0) { /* FULLWIDTH CENT SIGN */ + s1 = 0x2171; + } else if (c == 0xffe1) { /* FULLWIDTH POUND SIGN */ + s1 = 0x2172; + } else if (c == 0xffe2) { /* FULLWIDTH NOT SIGN */ + s1 = 0x224c; + } else { + s1 = -1; + c1 = 0; + c2 = cp932ext1_ucs_table_max - cp932ext1_ucs_table_min; + while (c1 < c2) { /* CP932 vendor ext1 (13ku) */ + if (c == cp932ext1_ucs_table[c1]) { + s1 = ((c1/94 + 0x2d) << 8) + (c1%94 + 0x21); + break; + } + c1++; + } + if (s1 < 0) { + c1 = 0; + c2 = cp932ext2_ucs_table_max - cp932ext2_ucs_table_min; + while (c1 < c2) { /* CP932 vendor ext3 (115ku - 119ku) */ + if (c == cp932ext2_ucs_table[c1]) { + s1 = ((c1/94 + 0x79) << 8) +(c1%94 + 0x21); + break; + } + c1++; + } + } + } + if (c == 0) { + s1 = 0; + } else if (s1 <= 0) { + s1 = -1; + } + } + + if (s1 >= 0) { + if (s1 < 0x80) { /* latin */ + CK((*filter->output_function)(s1, filter->data)); + } else if (s1 < 0x100) { /* kana */ + CK((*filter->output_function)(0x8e, filter->data)); + CK((*filter->output_function)(s1, filter->data)); + } else if (s1 < 0x8080) { /* X 0208 */ + CK((*filter->output_function)(((s1 >> 8) & 0xff) | 0x80, filter->data)); + CK((*filter->output_function)((s1 & 0xff) | 0x80, filter->data)); + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + +static int mbfl_filt_ident_cp51932(int c, mbfl_identify_filter *filter) +{ + switch (filter->status) { + case 0: /* latin */ + if (c >= 0 && c < 0x80) { /* ok */ + ; + } else if (c > 0xa0 && c < 0xff) { /* kanji first char */ + filter->status = 1; + } else if (c == 0x8e) { /* kana first char */ + filter->status = 2; + } else { /* bad */ + filter->flag = 1; + } + break; + + case 1: /* got first half */ + if (c < 0xa1 || c > 0xfe) { /* bad */ + filter->flag = 1; + } + filter->status = 0; + break; + + case 2: /* got 0x8e */ + if (c < 0xa1 || c > 0xdf) { /* bad */ + filter->flag = 1; + } + filter->status = 0; + break; + + default: + filter->status = 0; + break; + } + + return c; +} + + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_cp51932.h b/ext/mbstring/libmbfl/filters/mbfilter_cp51932.h new file mode 100644 index 0000000..be86b82 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_cp51932.h @@ -0,0 +1,43 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter_ja.h + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_CP51932_H +#define MBFL_MBFILTER_CP51932_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_cp51932; +extern const struct mbfl_identify_vtbl vtbl_identify_cp51932; +extern const struct mbfl_convert_vtbl vtbl_cp51932_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_cp51932; + +int mbfl_filt_conv_cp51932_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_cp51932(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_CP51932_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_cp850.c b/ext/mbstring/libmbfl/filters/mbfilter_cp850.c new file mode 100644 index 0000000..9e4696a --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_cp850.c @@ -0,0 +1,147 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this part: Den V. Tsopa <tdv@edisoft.ru> + * Adaption for CP850: D. Giffeler <dg@artegic.de> + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_cp850.h" +#include "unicode_table_cp850.h" + +static int mbfl_filt_ident_cp850(int c, mbfl_identify_filter *filter); + +static const char *mbfl_encoding_cp850_aliases[] = {"CP850", "CP-850", "IBM850", "IBM-850", NULL}; + +const mbfl_encoding mbfl_encoding_cp850 = { + mbfl_no_encoding_cp850, + "CP850", + "CP850", + (const char *(*)[])&mbfl_encoding_cp850_aliases, + NULL, + MBFL_ENCTYPE_SBCS +}; + +const struct mbfl_identify_vtbl vtbl_identify_cp850 = { + mbfl_no_encoding_cp850, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_cp850 +}; + +const struct mbfl_convert_vtbl vtbl_wchar_cp850 = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_cp850, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_cp850, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_cp850_wchar = { + mbfl_no_encoding_cp850, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_cp850_wchar, + mbfl_filt_conv_common_flush +}; + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +/* + * cp850 => wchar + */ +int +mbfl_filt_conv_cp850_wchar(int c, mbfl_convert_filter *filter) +{ + int s; + + if (c >= 0 && c < cp850_ucs_table_min) { + s = c; + } else if (c >= cp850_ucs_table_min && c < 0x100) { + s = cp850_ucs_table[c - cp850_ucs_table_min]; + if (s <= 0) { + s = c; + s &= MBFL_WCSPLANE_MASK; + s |= MBFL_WCSPLANE_CP850; + } + } else { + s = c; + s &= MBFL_WCSGROUP_MASK; + s |= MBFL_WCSGROUP_THROUGH; + } + + CK((*filter->output_function)(s, filter->data)); + + return c; +} + +/* + * wchar => cp850 + */ +int +mbfl_filt_conv_wchar_cp850(int c, mbfl_convert_filter *filter) +{ + int s, n; + + if (c < 0x80) { + s = c; + } else { + s = -1; + n = cp850_ucs_table_len-1; + while (n >= 0) { + if (c == cp850_ucs_table[n]) { + s = cp850_ucs_table_min + n; + break; + } + n--; + } + if (s <= 0 && (c & ~MBFL_WCSPLANE_MASK) == MBFL_WCSPLANE_CP850) { + s = c & MBFL_WCSPLANE_MASK; + } + } + + if (s >= 0) { + CK((*filter->output_function)(s, filter->data)); + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + +static int mbfl_filt_ident_cp850(int c, mbfl_identify_filter *filter) +{ + if (c >= 0x80 && c < 0xff) + filter->flag = 0; + else + filter->flag = 1; /* not it */ + return c; +} + + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_cp850.h b/ext/mbstring/libmbfl/filters/mbfilter_cp850.h new file mode 100644 index 0000000..a1e0f9c --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_cp850.h @@ -0,0 +1,37 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this part: Den V. Tsopa <tdv@edisoft.ru> + * Adaption for CP850: D. Giffeler <dg@artegic.de> + * + */ + +#ifndef MBFL_MBFILTER_CP850_H +#define MBFL_MBFILTER_CP850_H + +extern const mbfl_encoding mbfl_encoding_cp850; +extern const struct mbfl_identify_vtbl vtbl_identify_cp850; +extern const struct mbfl_convert_vtbl vtbl_wchar_cp850; +extern const struct mbfl_convert_vtbl vtbl_cp850_wchar; + +int mbfl_filt_conv_cp850_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_cp850(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_CP850_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_cp866.c b/ext/mbstring/libmbfl/filters/mbfilter_cp866.c new file mode 100644 index 0000000..22e109f --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_cp866.c @@ -0,0 +1,151 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this part: Den V. Tsopa <tdv@edisoft.ru> + * + */ +/* + * The source code included in this files was separated from mbfilter_ru.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_cp866.h" +#include "unicode_table_cp866.h" + +static int mbfl_filt_ident_cp866(int c, mbfl_identify_filter *filter); + +static const char *mbfl_encoding_cp866_aliases[] = {"CP866", "CP-866", "IBM866", "IBM-866", NULL}; + +const mbfl_encoding mbfl_encoding_cp866 = { + mbfl_no_encoding_cp866, + "CP866", + "CP866", + (const char *(*)[])&mbfl_encoding_cp866_aliases, + NULL, + MBFL_ENCTYPE_SBCS +}; + +const struct mbfl_identify_vtbl vtbl_identify_cp866 = { + mbfl_no_encoding_cp866, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_cp866 +}; + +const struct mbfl_convert_vtbl vtbl_wchar_cp866 = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_cp866, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_cp866, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_cp866_wchar = { + mbfl_no_encoding_cp866, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_cp866_wchar, + mbfl_filt_conv_common_flush +}; + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +/* + * cp866 => wchar + */ +int +mbfl_filt_conv_cp866_wchar(int c, mbfl_convert_filter *filter) +{ + int s; + + if (c >= 0 && c < cp866_ucs_table_min) { + s = c; + } else if (c >= cp866_ucs_table_min && c < 0x100) { + s = cp866_ucs_table[c - cp866_ucs_table_min]; + if (s <= 0) { + s = c; + s &= MBFL_WCSPLANE_MASK; + s |= MBFL_WCSPLANE_CP866; + } + } else { + s = c; + s &= MBFL_WCSGROUP_MASK; + s |= MBFL_WCSGROUP_THROUGH; + } + + CK((*filter->output_function)(s, filter->data)); + + return c; +} + +/* + * wchar => cp866 + */ +int +mbfl_filt_conv_wchar_cp866(int c, mbfl_convert_filter *filter) +{ + int s, n; + + if (c < 0x80) { + s = c; + } else { + s = -1; + n = cp866_ucs_table_len-1; + while (n >= 0) { + if (c == cp866_ucs_table[n]) { + s = cp866_ucs_table_min + n; + break; + } + n--; + } + if (s <= 0 && (c & ~MBFL_WCSPLANE_MASK) == MBFL_WCSPLANE_CP866) { + s = c & MBFL_WCSPLANE_MASK; + } + } + + if (s >= 0) { + CK((*filter->output_function)(s, filter->data)); + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + +static int mbfl_filt_ident_cp866(int c, mbfl_identify_filter *filter) +{ + if (c >= 0x80 && c < 0xff) + filter->flag = 0; + else + filter->flag = 1; /* not it */ + return c; +} + + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_cp866.h b/ext/mbstring/libmbfl/filters/mbfilter_cp866.h new file mode 100644 index 0000000..9cb4e25 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_cp866.h @@ -0,0 +1,41 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this part: Den V. Tsopa <tdv@edisoft.ru> + * + */ +/* + * The source code included in this files was separated from mbfilter_ru.h + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_CP866_H +#define MBFL_MBFILTER_CP866_H + +extern const mbfl_encoding mbfl_encoding_cp866; +extern const struct mbfl_identify_vtbl vtbl_identify_cp866; +extern const struct mbfl_convert_vtbl vtbl_wchar_cp866; +extern const struct mbfl_convert_vtbl vtbl_cp866_wchar; + +int mbfl_filt_conv_cp866_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_cp866(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_CP866_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_cp932.c b/ext/mbstring/libmbfl/filters/mbfilter_cp932.c new file mode 100644 index 0000000..40ba849 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_cp932.c @@ -0,0 +1,350 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * the source code included in this files was separated from mbfilter_ja.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_cp932.h" + +#include "unicode_table_cp932_ext.h" +#include "unicode_table_jis.h" + +static int mbfl_filt_ident_cp932(int c, mbfl_identify_filter *filter); + +static const unsigned char mblen_table_sjis[] = { /* 0x80-0x9f,0xE0-0xFF */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +}; + +static const char *mbfl_encoding_cp932_aliases[] = {"MS932", "Windows-31J", "MS_Kanji", NULL}; + +const mbfl_encoding mbfl_encoding_cp932 = { + mbfl_no_encoding_cp932, + "CP932", + "Shift_JIS", + (const char *(*)[])&mbfl_encoding_cp932_aliases, + mblen_table_sjis, + MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_GL_UNSAFE +}; + +const struct mbfl_identify_vtbl vtbl_identify_cp932 = { + mbfl_no_encoding_cp932, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_cp932 +}; + +const struct mbfl_convert_vtbl vtbl_cp932_wchar = { + mbfl_no_encoding_cp932, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_cp932_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_cp932 = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_cp932, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_cp932, + mbfl_filt_conv_common_flush +}; + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +#define SJIS_ENCODE(c1,c2,s1,s2) \ + do { \ + s1 = c1; \ + s1--; \ + s1 >>= 1; \ + if ((c1) < 0x5f) { \ + s1 += 0x71; \ + } else { \ + s1 += 0xb1; \ + } \ + s2 = c2; \ + if ((c1) & 1) { \ + if ((c2) < 0x60) { \ + s2--; \ + } \ + s2 += 0x20; \ + } else { \ + s2 += 0x7e; \ + } \ + } while (0) + +#define SJIS_DECODE(c1,c2,s1,s2) \ + do { \ + s1 = c1; \ + if (s1 < 0xa0) { \ + s1 -= 0x81; \ + } else { \ + s1 -= 0xc1; \ + } \ + s1 <<= 1; \ + s1 += 0x21; \ + s2 = c2; \ + if (s2 < 0x9f) { \ + if (s2 < 0x7f) { \ + s2++; \ + } \ + s2 -= 0x20; \ + } else { \ + s1++; \ + s2 -= 0x7e; \ + } \ + } while (0) + + +/* + * SJIS-win => wchar + */ +int +mbfl_filt_conv_cp932_wchar(int c, mbfl_convert_filter *filter) +{ + int c1, s, s1, s2, w; + + switch (filter->status) { + case 0: + if (c >= 0 && c < 0x80) { /* latin */ + CK((*filter->output_function)(c, filter->data)); + } else if (c > 0xa0 && c < 0xe0) { /* kana */ + CK((*filter->output_function)(0xfec0 + c, filter->data)); + } else if (c > 0x80 && c < 0xfd && c != 0xa0) { /* kanji first char */ + filter->status = 1; + filter->cache = c; + } else { + w = c & MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + + case 1: /* kanji second char */ + filter->status = 0; + c1 = filter->cache; + if (c >= 0x40 && c <= 0xfc && c != 0x7f) { + w = 0; + SJIS_DECODE(c1, c, s1, s2); + s = (s1 - 0x21)*94 + s2 - 0x21; + if (s <= 137) { + if (s == 31) { + w = 0xff3c; /* FULLWIDTH REVERSE SOLIDUS */ + } else if (s == 32) { + w = 0xff5e; /* FULLWIDTH TILDE */ + } else if (s == 33) { + w = 0x2225; /* PARALLEL TO */ + } else if (s == 60) { + w = 0xff0d; /* FULLWIDTH HYPHEN-MINUS */ + } else if (s == 80) { + w = 0xffe0; /* FULLWIDTH CENT SIGN */ + } else if (s == 81) { + w = 0xffe1; /* FULLWIDTH POUND SIGN */ + } else if (s == 137) { + w = 0xffe2; /* FULLWIDTH NOT SIGN */ + } + } + if (w == 0) { + if (s >= cp932ext1_ucs_table_min && s < cp932ext1_ucs_table_max) { /* vendor ext1 (13ku) */ + w = cp932ext1_ucs_table[s - cp932ext1_ucs_table_min]; + } else if (s >= 0 && s < jisx0208_ucs_table_size) { /* X 0208 */ + w = jisx0208_ucs_table[s]; + } else if (s >= cp932ext2_ucs_table_min && s < cp932ext2_ucs_table_max) { /* vendor ext2 (89ku - 92ku) */ + w = cp932ext2_ucs_table[s - cp932ext2_ucs_table_min]; + } else if (s >= cp932ext3_ucs_table_min && s < cp932ext3_ucs_table_max) { /* vendor ext3 (115ku - 119ku) */ + w = cp932ext3_ucs_table[s - cp932ext3_ucs_table_min]; + } else if (s >= (94*94) && s < (114*94)) { /* user (95ku - 114ku) */ + w = s - (94*94) + 0xe000; + } + } + if (w <= 0) { + w = (s1 << 8) | s2; + w &= MBFL_WCSPLANE_MASK; + w |= MBFL_WCSPLANE_WINCP932; + } + CK((*filter->output_function)(w, filter->data)); + } else if ((c >= 0 && c < 0x21) || c == 0x7f) { /* CTLs */ + CK((*filter->output_function)(c, filter->data)); + } else { + w = (c1 << 8) | c; + w &= MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + + default: + filter->status = 0; + break; + } + + return c; +} + +/* + * wchar => SJIS-win + */ +int +mbfl_filt_conv_wchar_cp932(int c, mbfl_convert_filter *filter) +{ + int c1, c2, s1, s2; + + s1 = 0; + s2 = 0; + if (c >= ucs_a1_jis_table_min && c < ucs_a1_jis_table_max) { + s1 = ucs_a1_jis_table[c - ucs_a1_jis_table_min]; + } else if (c >= ucs_a2_jis_table_min && c < ucs_a2_jis_table_max) { + s1 = ucs_a2_jis_table[c - ucs_a2_jis_table_min]; + } else if (c >= ucs_i_jis_table_min && c < ucs_i_jis_table_max) { + s1 = ucs_i_jis_table[c - ucs_i_jis_table_min]; + } else if (c >= ucs_r_jis_table_min && c < ucs_r_jis_table_max) { + s1 = ucs_r_jis_table[c - ucs_r_jis_table_min]; + } else if (c >= 0xe000 && c < (0xe000 + 20*94)) { /* user (95ku - 114ku) */ + s1 = c - 0xe000; + c1 = s1/94 + 0x7f; + c2 = s1%94 + 0x21; + s1 = (c1 << 8) | c2; + s2 = 1; + } + if (s1 <= 0) { + c1 = c & ~MBFL_WCSPLANE_MASK; + if (c1 == MBFL_WCSPLANE_WINCP932) { + s1 = c & MBFL_WCSPLANE_MASK; + s2 = 1; + } else if (c1 == MBFL_WCSPLANE_JIS0208) { + s1 = c & MBFL_WCSPLANE_MASK; + } else if (c1 == MBFL_WCSPLANE_JIS0212) { + s1 = c & MBFL_WCSPLANE_MASK; + s1 |= 0x8080; + } else if (c == 0xa5) { /* YEN SIGN */ + s1 = 0x005c; /* YEN SIGN */ + } else if (c == 0x203e) { /* OVER LINE */ + s1 = 0x007e; /* FULLWIDTH MACRON */ + } else if (c == 0xff3c) { /* FULLWIDTH REVERSE SOLIDUS */ + s1 = 0x2140; + } else if (c == 0xff5e) { /* FULLWIDTH TILDE */ + s1 = 0x2141; + } else if (c == 0x2225) { /* PARALLEL TO */ + s1 = 0x2142; + } else if (c == 0xff0d) { /* FULLWIDTH HYPHEN-MINUS */ + s1 = 0x215d; + } else if (c == 0xffe0) { /* FULLWIDTH CENT SIGN */ + s1 = 0x2171; + } else if (c == 0xffe1) { /* FULLWIDTH POUND SIGN */ + s1 = 0x2172; + } else if (c == 0xffe2) { /* FULLWIDTH NOT SIGN */ + s1 = 0x224c; + } + } + if ((s1 <= 0) || (s1 >= 0x8080 && s2 == 0)) { /* not found or X 0212 */ + s1 = -1; + c1 = 0; + c2 = cp932ext1_ucs_table_max - cp932ext1_ucs_table_min; + while (c1 < c2) { /* CP932 vendor ext1 (13ku) */ + if (c == cp932ext1_ucs_table[c1]) { + s1 = ((c1/94 + 0x2d) << 8) + (c1%94 + 0x21); + break; + } + c1++; + } + if (s1 <= 0) { + c1 = 0; + c2 = cp932ext3_ucs_table_max - cp932ext3_ucs_table_min; + while (c1 < c2) { /* CP932 vendor ext3 (115ku - 119ku) */ + if (c == cp932ext3_ucs_table[c1]) { + s1 = ((c1/94 + 0x93) << 8) + (c1%94 + 0x21); + break; + } + c1++; + } + } + if (c == 0) { + s1 = 0; + } else if (s1 <= 0) { + s1 = -1; + } + } + if (s1 >= 0) { + if (s1 < 0x100) { /* latin or kana */ + CK((*filter->output_function)(s1, filter->data)); + } else { /* kanji */ + c1 = (s1 >> 8) & 0xff; + c2 = s1 & 0xff; + SJIS_ENCODE(c1, c2, s1, s2); + CK((*filter->output_function)(s1, filter->data)); + CK((*filter->output_function)(s2, filter->data)); + } + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + +static int mbfl_filt_ident_cp932(int c, mbfl_identify_filter *filter) +{ + if (filter->status) { /* kanji second char */ + if (c < 0x40 || c > 0xfc || c == 0x7f) { /* bad */ + filter->flag = 1; + } + filter->status = 0; + } else if (c >= 0 && c < 0x80) { /* latin ok */ + ; + } else if (c > 0xa0 && c < 0xe0) { /* kana ok */ + ; + } else if (c > 0x80 && c < 0xfd && c != 0xa0) { /* kanji first char */ + filter->status = 1; + } else { /* bad */ + filter->flag = 1; + } + + return c; +} + + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_cp932.h b/ext/mbstring/libmbfl/filters/mbfilter_cp932.h new file mode 100644 index 0000000..b6a2114 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_cp932.h @@ -0,0 +1,43 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * the source code included in this files was separated from mbfilter_ja.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_CP932_H +#define MBFL_MBFILTER_CP932_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_cp932; +extern const struct mbfl_identify_vtbl vtbl_identify_cp932; +extern const struct mbfl_convert_vtbl vtbl_cp932_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_cp932; + +int mbfl_filt_conv_cp932_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_cp932(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_CP932_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_cp936.c b/ext/mbstring/libmbfl/filters/mbfilter_cp936.c new file mode 100644 index 0000000..caf26e3 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_cp936.c @@ -0,0 +1,306 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * the source code included in this files was separated from mbfilter_cn.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_cp936.h" +#define UNICODE_TABLE_CP936_DEF +#include "unicode_table_cp936.h" + +static int mbfl_filt_ident_cp936(int c, mbfl_identify_filter *filter); + +static const unsigned char mblen_table_cp936[] = { /* 0x81-0xFE */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 +}; + +static const char *mbfl_encoding_cp936_aliases[] = {"CP-936", "GBK", NULL}; + +const mbfl_encoding mbfl_encoding_cp936 = { + mbfl_no_encoding_cp936, + "CP936", + "CP936", + (const char *(*)[])&mbfl_encoding_cp936_aliases, + mblen_table_cp936, + MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_GL_UNSAFE +}; + +const struct mbfl_identify_vtbl vtbl_identify_cp936 = { + mbfl_no_encoding_cp936, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_cp936 +}; + +const struct mbfl_convert_vtbl vtbl_cp936_wchar = { + mbfl_no_encoding_cp936, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_cp936_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_cp936 = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_cp936, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_cp936, + mbfl_filt_conv_common_flush +}; + + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +/* + * CP936 => wchar + */ +int +mbfl_filt_conv_cp936_wchar(int c, mbfl_convert_filter *filter) +{ + int k; + int c1, c2, w = -1; + + switch (filter->status) { + case 0: + if (c >= 0 && c < 0x80) { /* latin */ + CK((*filter->output_function)(c, filter->data)); + } else if (c == 0x80) { /* euro sign */ + CK((*filter->output_function)(0x20ac, filter->data)); + } else if (c < 0xff) { /* dbcs lead byte */ + filter->status = 1; + filter->cache = c; + } else { /* 0xff */ + CK((*filter->output_function)(0xf8f5, filter->data)); + } + break; + + case 1: /* dbcs second byte */ + filter->status = 0; + c1 = filter->cache; + + if (((c1 >= 0xaa && c1 <= 0xaf) || (c1 >= 0xf8 && c1 <= 0xfe)) && + (c >= 0xa1 && c <= 0xfe)) { + /* UDA part1,2: U+E000-U+E4C5 */ + w = 94*(c1 >= 0xf8 ? c1 - 0xf2 : c1 - 0xaa) + (c - 0xa1) + 0xe000; + CK((*filter->output_function)(w, filter->data)); + } else if (c1 >= 0xa1 && c1 <= 0xa7 && c >= 0x40 && c < 0xa1 && c != 0x7f) { + /* UDA part3 : U+E4C6-U+E765*/ + w = 96*(c1 - 0xa1) + c - (c >= 0x80 ? 0x41 : 0x40) + 0xe4c6; + CK((*filter->output_function)(w, filter->data)); + } + + c2 = (c1 << 8) | c; + + if (w <= 0 && + ((c2 >= 0xa2ab && c2 <= 0xa9f0 + (0xe80f-0xe801)) || + (c2 >= 0xd7fa && c2 <= 0xd7fa + (0xe814-0xe810)) || + (c2 >= 0xfe50 && c2 <= 0xfe80 + (0xe864-0xe844)))) { + for (k = 0; k < mbfl_cp936_pua_tbl_max; k++) { + if (c2 >= mbfl_cp936_pua_tbl[k][2] && + c2 <= mbfl_cp936_pua_tbl[k][2] + + mbfl_cp936_pua_tbl[k][1] - mbfl_cp936_pua_tbl[k][0]) { + w = c2 - mbfl_cp936_pua_tbl[k][2] + mbfl_cp936_pua_tbl[k][0]; + CK((*filter->output_function)(w, filter->data)); + break; + } + } + } + + if (w <= 0) { + if (c1 < 0xff && c1 > 0x80 && c > 0x39 && c < 0xff && c != 0x7f) { + w = (c1 - 0x81)*192 + (c - 0x40); + if (w >= 0 && w < cp936_ucs_table_size) { + w = cp936_ucs_table[w]; + } else { + w = 0; + } + if (w <= 0) { + w = (c1 << 8) | c; + w &= MBFL_WCSPLANE_MASK; + w |= MBFL_WCSPLANE_WINCP936; + } + CK((*filter->output_function)(w, filter->data)); + } else if ((c >= 0 && c < 0x21) || c == 0x7f) { /* CTLs */ + CK((*filter->output_function)(c, filter->data)); + } else { + w = (c1 << 8) | c; + w &= MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + } + break; + + default: + filter->status = 0; + break; + } + + return c; +} + +/* + * wchar => CP936 + */ +int +mbfl_filt_conv_wchar_cp936(int c, mbfl_convert_filter *filter) +{ + int k, k1, k2; + int c1, s = 0; + + if (c >= ucs_a1_cp936_table_min && c < ucs_a1_cp936_table_max) { + /* U+0000 - U+0451 */ + s = ucs_a1_cp936_table[c - ucs_a1_cp936_table_min]; + } else if (c >= ucs_a2_cp936_table_min && c < ucs_a2_cp936_table_max) { + /* U+2000 - U+26FF */ + if (c == 0x203e) { + s = 0xa3fe; + } else if (c == 0x2218) { + s = 0xa1e3; + } else if (c == 0x223c) { + s = 0xa1ab; + } else { + s = ucs_a2_cp936_table[c - ucs_a2_cp936_table_min]; + } + } else if (c >= ucs_a3_cp936_table_min && c < ucs_a3_cp936_table_max) { + /* U+2F00 - U+33FF */ + s = ucs_a3_cp936_table[c - ucs_a3_cp936_table_min]; + } else if (c >= ucs_i_cp936_table_min && c < ucs_i_cp936_table_max) { + /* U+4D00-9FFF CJK Unified Ideographs (+ Extension A) */ + s = ucs_i_cp936_table[c - ucs_i_cp936_table_min]; + } else if (c >= 0xe000 && c <= 0xe864) { /* PUA */ + if (c < 0xe766) { + if (c < 0xe4c6) { + c1 = c - 0xe000; + s = (c1 % 94) + 0xa1; c1 /= 94; + s |= (c1 < 0x06 ? c1 + 0xaa : c1 + 0xf2) << 8; + } else { + c1 = c - 0xe4c6; + s = ((c1 / 96) + 0xa1) << 8; c1 %= 96; + s |= c1 + (c1 >= 0x3f ? 0x41 : 0x40); + } + } else { + /* U+E766..U+E864 */ + k1 = 0; k2 = mbfl_cp936_pua_tbl_max; + while (k1 < k2) { + k = (k1 + k2) >> 1; + if (c < mbfl_cp936_pua_tbl[k][0]) { + k2 = k; + } else if (c > mbfl_cp936_pua_tbl[k][1]) { + k1 = k + 1; + } else { + s = c - mbfl_cp936_pua_tbl[k][0] + mbfl_cp936_pua_tbl[k][2]; + break; + } + } + } + } else if (c == 0xf8f5) { + s = 0xff; + } else if (c >= ucs_ci_cp936_table_min && c < ucs_ci_cp936_table_max) { + /* U+F900-FA2F CJK Compatibility Ideographs */ + s = ucs_ci_cp936_table[c - ucs_ci_cp936_table_min]; + } else if (c >= ucs_cf_cp936_table_min && c < ucs_cf_cp936_table_max) { + s = ucs_cf_cp936_table[c - ucs_cf_cp936_table_min]; + } else if (c >= ucs_sfv_cp936_table_min && c < ucs_sfv_cp936_table_max) { + s = ucs_sfv_cp936_table[c - ucs_sfv_cp936_table_min]; /* U+FE50-FE6F Small Form Variants */ + } else if (c >= ucs_hff_cp936_table_min && c < ucs_hff_cp936_table_max) { + /* U+FF00-FFFF HW/FW Forms */ + if (c == 0xff04) { + s = 0xa1e7; + } else if (c == 0xff5e) { + s = 0xa1ab; + } else if (c >= 0xff01 && c <= 0xff5d) { + s = c - 0xff01 + 0xa3a1; + } else if (c >= 0xffe0 && c <= 0xffe5) { + s = ucs_hff_s_cp936_table[c-0xffe0]; + } + } + if (s <= 0) { + c1 = c & ~MBFL_WCSPLANE_MASK; + if (c1 == MBFL_WCSPLANE_WINCP936) { + s = c & MBFL_WCSPLANE_MASK; + } + if (c == 0) { + s = 0; + } else if (s <= 0) { + s = -1; + } + } + if (s >= 0) { + if (s <= 0x80 || s == 0xff) { /* latin */ + CK((*filter->output_function)(s, filter->data)); + } else { + CK((*filter->output_function)((s >> 8) & 0xff, filter->data)); + CK((*filter->output_function)(s & 0xff, filter->data)); + } + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + +static int mbfl_filt_ident_cp936(int c, mbfl_identify_filter *filter) +{ + if (filter->status) { /* kanji second char */ + if (c < 0x40 || c > 0xfe || c == 0x7f) { /* bad */ + filter->flag = 1; + } + filter->status = 0; + } else if (c >= 0 && c < 0x80) { /* latin ok */ + ; + } else if (c > 0x80 && c < 0xff) { /* DBCS lead byte */ + filter->status = 1; + } else { /* bad */ + filter->flag = 1; + } + + return c; +} diff --git a/ext/mbstring/libmbfl/filters/mbfilter_cp936.h b/ext/mbstring/libmbfl/filters/mbfilter_cp936.h new file mode 100644 index 0000000..1bd603d --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_cp936.h @@ -0,0 +1,43 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * the source code included in this files was separated from mbfilter_cn.h + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_CP936_H +#define MBFL_MBFILTER_CP936_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_cp936; +extern const struct mbfl_identify_vtbl vtbl_identify_cp936; +extern const struct mbfl_convert_vtbl vtbl_cp936_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_cp936; + +int mbfl_filt_conv_cp936_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_cp936(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_CP936_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_euc_cn.c b/ext/mbstring/libmbfl/filters/mbfilter_euc_cn.c new file mode 100644 index 0000000..f91edf3 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_euc_cn.c @@ -0,0 +1,244 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter_cn.c + * by Moriyoshi Koizumi <moriyoshi@php.net> on 4 Dec 2002. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_euc_cn.h" + +#include "unicode_table_cp936.h" + +static int mbfl_filt_ident_euccn(int c, mbfl_identify_filter *filter); + +static const unsigned char mblen_table_euccn[] = { /* 0xA1-0xFE */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 +}; + +static const char *mbfl_encoding_euc_cn_aliases[] = {"CN-GB", "EUC_CN", "eucCN", "x-euc-cn", "gb2312", NULL}; + +const mbfl_encoding mbfl_encoding_euc_cn = { + mbfl_no_encoding_euc_cn, + "EUC-CN", + "CN-GB", + (const char *(*)[])&mbfl_encoding_euc_cn_aliases, + mblen_table_euccn, + MBFL_ENCTYPE_MBCS +}; + +const struct mbfl_identify_vtbl vtbl_identify_euccn = { + mbfl_no_encoding_euc_cn, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_euccn +}; + +const struct mbfl_convert_vtbl vtbl_euccn_wchar = { + mbfl_no_encoding_euc_cn, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_euccn_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_euccn = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_euc_cn, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_euccn, + mbfl_filt_conv_common_flush +}; + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +/* + * EUC-CN => wchar + */ +int +mbfl_filt_conv_euccn_wchar(int c, mbfl_convert_filter *filter) +{ + int c1, w; + + switch (filter->status) { + case 0: + if (c >= 0 && c < 0x80) { /* latin */ + CK((*filter->output_function)(c, filter->data)); + } else if (c > 0xa0 && c < 0xff) { /* dbcs lead byte */ + filter->status = 1; + filter->cache = c; + } else { + w = c & MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + + case 1: /* dbcs second byte */ + filter->status = 0; + c1 = filter->cache; + if (c1 > 0xa0 && c1 < 0xff && c > 0xa0 && c < 0xff) { + w = (c1 - 0x81)*192 + (c - 0x40); + if (w >= 0 && w < cp936_ucs_table_size) { + w = cp936_ucs_table[w]; + } else { + w = 0; + } + if (w <= 0) { + w = (c1 << 8) | c; + w &= MBFL_WCSPLANE_MASK; + w |= MBFL_WCSPLANE_GB2312; + } + CK((*filter->output_function)(w, filter->data)); + } else if ((c >= 0 && c < 0x21) || c == 0x7f) { /* CTLs */ + CK((*filter->output_function)(c, filter->data)); + } else { + w = (c1 << 8) | c; + w &= MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + + default: + filter->status = 0; + break; + } + + return c; +} + +/* + * wchar => EUC-CN + */ +int +mbfl_filt_conv_wchar_euccn(int c, mbfl_convert_filter *filter) +{ + int c1, c2, s; + + s = 0; + if (c >= ucs_a1_cp936_table_min && c < ucs_a1_cp936_table_max) { + s = ucs_a1_cp936_table[c - ucs_a1_cp936_table_min]; + } else if (c >= ucs_a2_cp936_table_min && c < ucs_a2_cp936_table_max) { + s = ucs_a2_cp936_table[c - ucs_a2_cp936_table_min]; + } else if (c >= ucs_a3_cp936_table_min && c < ucs_a3_cp936_table_max) { + s = ucs_a3_cp936_table[c - ucs_a3_cp936_table_min]; + } else if (c >= ucs_i_cp936_table_min && c < ucs_i_cp936_table_max) { + s = ucs_i_cp936_table[c - ucs_i_cp936_table_min]; + } else if (c >= ucs_hff_cp936_table_min && c < ucs_hff_cp936_table_max) { + if (c == 0xff04) { + s = 0xa1e7; + } else if (c == 0xff5e) { + s = 0xa1ab; + } else if (c >= 0xff01 && c <= 0xff5d) { + s = c - 0xff01 + 0xa3a1; + } else if (c >= 0xffe0 && c <= 0xffe5) { + s = ucs_hff_s_cp936_table[c-0xffe0]; + } + } + c1 = (s >> 8) & 0xff; + c2 = s & 0xff; + + if (c1 < 0xa1 || c2 < 0xa1) { /* exclude CP936 extension */ + s = c; + } + + if (s <= 0) { + c1 = c & ~MBFL_WCSPLANE_MASK; + if (c1 == MBFL_WCSPLANE_GB2312) { + s = c & MBFL_WCSPLANE_MASK; + } + if (c == 0) { + s = 0; + } else if (s <= 0) { + s = -1; + } + } + if (s >= 0) { + if (s < 0x80) { /* latin */ + CK((*filter->output_function)(s, filter->data)); + } else { + CK((*filter->output_function)((s >> 8) & 0xff, filter->data)); + CK((*filter->output_function)(s & 0xff, filter->data)); + } + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + +static int mbfl_filt_ident_euccn(int c, mbfl_identify_filter *filter) +{ + switch (filter->status) { + case 0: /* latin */ + if (c >= 0 && c < 0x80) { /* ok */ + ; + } else if (c > 0xa0 && c < 0xff) { /* DBCS lead byte */ + filter->status = 1; + } else { /* bad */ + filter->flag = 1; + } + break; + + case 1: /* got lead byte */ + if (c < 0xa1 || c > 0xfe) { /* bad */ + filter->flag = 1; + } + filter->status = 0; + break; + + default: + filter->status = 0; + break; + } + + return c; +} + + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_euc_cn.h b/ext/mbstring/libmbfl/filters/mbfilter_euc_cn.h new file mode 100644 index 0000000..e72bc08 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_euc_cn.h @@ -0,0 +1,43 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter_euc_cn.h + * by Moriyoshi Koizumi <moriyoshi@php.net> on 4 Dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_EUC_CN_H +#define MBFL_MBFILTER_EUC_CN_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_euc_cn; +extern const struct mbfl_identify_vtbl vtbl_identify_euccn; +extern const struct mbfl_convert_vtbl vtbl_euccn_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_euccn; + +int mbfl_filt_conv_euccn_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_euccn(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_EUC_CN_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_euc_jp.c b/ext/mbstring/libmbfl/filters/mbfilter_euc_jp.c new file mode 100644 index 0000000..7015df4 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_euc_jp.c @@ -0,0 +1,331 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter_ja.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_euc_jp.h" + +#include "unicode_table_cp932_ext.h" +#include "unicode_table_jis.h" + +int mbfl_filt_ident_eucjp(int c, mbfl_identify_filter *filter); + +const unsigned char mblen_table_eucjp[] = { /* 0xA1-0xFE */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 +}; + +static const char *mbfl_encoding_euc_jp_aliases[] = {"EUC", "EUC_JP", "eucJP", "x-euc-jp", NULL}; + +const mbfl_encoding mbfl_encoding_euc_jp = { + mbfl_no_encoding_euc_jp, + "EUC-JP", + "EUC-JP", + (const char *(*)[])&mbfl_encoding_euc_jp_aliases, + mblen_table_eucjp, + MBFL_ENCTYPE_MBCS +}; + +const struct mbfl_identify_vtbl vtbl_identify_eucjp = { + mbfl_no_encoding_euc_jp, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_eucjp +}; + +const struct mbfl_convert_vtbl vtbl_eucjp_wchar = { + mbfl_no_encoding_euc_jp, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_eucjp_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_eucjp = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_euc_jp, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_eucjp, + mbfl_filt_conv_common_flush +}; + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +/* + * EUC-JP => wchar + */ +int +mbfl_filt_conv_eucjp_wchar(int c, mbfl_convert_filter *filter) +{ + int c1, s, w; + + switch (filter->status) { + case 0: + if (c >= 0 && c < 0x80) { /* latin */ + CK((*filter->output_function)(c, filter->data)); + } else if (c > 0xa0 && c < 0xff) { /* X 0208 first char */ + filter->status = 1; + filter->cache = c; + } else if (c == 0x8e) { /* kana first char */ + filter->status = 2; + } else if (c == 0x8f) { /* X 0212 first char */ + filter->status = 3; + } else { + w = c & MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + + case 1: /* got first half */ + filter->status = 0; + c1 = filter->cache; + if (c > 0xa0 && c < 0xff) { + s = (c1 - 0xa1)*94 + c - 0xa1; + if (s >= 0 && s < jisx0208_ucs_table_size) { + w = jisx0208_ucs_table[s]; + } else { + w = 0; + } + if (w <= 0) { + w = ((c1 & 0x7f) << 8) | (c & 0x7f); + w &= MBFL_WCSPLANE_MASK; + w |= MBFL_WCSPLANE_JIS0208; + } + CK((*filter->output_function)(w, filter->data)); + } else if ((c >= 0 && c < 0x21) || c == 0x7f) { /* CTLs */ + CK((*filter->output_function)(c, filter->data)); + } else { + w = (c1 << 8) | c; + w &= MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + + case 2: /* got 0x8e */ + filter->status = 0; + if (c > 0xa0 && c < 0xe0) { + w = 0xfec0 + c; + CK((*filter->output_function)(w, filter->data)); + } else if ((c >= 0 && c < 0x21) || c == 0x7f) { /* CTLs */ + CK((*filter->output_function)(c, filter->data)); + } else { + w = 0x8e00 | c; + w &= MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + + case 3: /* got 0x8f, X 0212 first char */ + if ((c >= 0 && c < 0x21) || c == 0x7f) { /* CTLs */ + CK((*filter->output_function)(c, filter->data)); + filter->status = 0; + } else { + filter->status++; + filter->cache = c; + } + break; + case 4: /* got 0x8f, X 0212 second char */ + filter->status = 0; + c1 = filter->cache; + if (c1 > 0xa0 && c1 < 0xff && c > 0xa0 && c < 0xff) { + s = (c1 - 0xa1)*94 + c - 0xa1; + if (s >= 0 && s < jisx0212_ucs_table_size) { + w = jisx0212_ucs_table[s]; + } else { + w = 0; + } + if (w <= 0) { + w = ((c1 & 0x7f) << 8) | (c & 0x7f); + w &= MBFL_WCSPLANE_MASK; + w |= MBFL_WCSPLANE_JIS0212; + } + CK((*filter->output_function)(w, filter->data)); + } else if ((c >= 0 && c < 0x21) || c == 0x7f) { /* CTLs */ + CK((*filter->output_function)(c, filter->data)); + } else { + w = (c1 << 8) | c | 0x8f0000; + w &= MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + + default: + filter->status = 0; + break; + } + + return c; +} + +/* + * wchar => EUC-JP + */ +int +mbfl_filt_conv_wchar_eucjp(int c, mbfl_convert_filter *filter) +{ + int c1, s; + + s = 0; + if (c >= ucs_a1_jis_table_min && c < ucs_a1_jis_table_max) { + s = ucs_a1_jis_table[c - ucs_a1_jis_table_min]; + } else if (c >= ucs_a2_jis_table_min && c < ucs_a2_jis_table_max) { + s = ucs_a2_jis_table[c - ucs_a2_jis_table_min]; + } else if (c >= ucs_i_jis_table_min && c < ucs_i_jis_table_max) { + s = ucs_i_jis_table[c - ucs_i_jis_table_min]; + } else if (c >= ucs_r_jis_table_min && c < ucs_r_jis_table_max) { + s = ucs_r_jis_table[c - ucs_r_jis_table_min]; + } + if (s <= 0) { + c1 = c & ~MBFL_WCSPLANE_MASK; + if (c1 == MBFL_WCSPLANE_JIS0208) { + s = c & MBFL_WCSPLANE_MASK; + } else if (c1 == MBFL_WCSPLANE_JIS0212) { + s = c & MBFL_WCSPLANE_MASK; + s |= 0x8080; + } else if (c == 0xff3c) { /* FULLWIDTH REVERSE SOLIDUS */ + s = 0x2140; + } else if (c == 0xff5e) { /* FULLWIDTH TILDE */ + s = 0x2141; + } else if (c == 0x2225) { /* PARALLEL TO */ + s = 0x2142; + } else if (c == 0xff0d) { /* FULLWIDTH HYPHEN-MINUS */ + s = 0x215d; + } else if (c == 0xffe0) { /* FULLWIDTH CENT SIGN */ + s = 0x2171; + } else if (c == 0xffe1) { /* FULLWIDTH POUND SIGN */ + s = 0x2172; + } else if (c == 0xffe2) { /* FULLWIDTH NOT SIGN */ + s = 0x224c; + } + if (c == 0) { + s = 0; + } else if (s <= 0) { + s = -1; + } + } + if (s >= 0) { + if (s < 0x80) { /* latin */ + CK((*filter->output_function)(s, filter->data)); + } else if (s < 0x100) { /* kana */ + CK((*filter->output_function)(0x8e, filter->data)); + CK((*filter->output_function)(s, filter->data)); + } else if (s < 0x8080) { /* X 0208 */ + CK((*filter->output_function)(((s >> 8) & 0xff) | 0x80, filter->data)); + CK((*filter->output_function)((s & 0xff) | 0x80, filter->data)); + } else { /* X 0212 */ + CK((*filter->output_function)(0x8f, filter->data)); + CK((*filter->output_function)(((s >> 8) & 0xff) | 0x80, filter->data)); + CK((*filter->output_function)((s & 0xff) | 0x80, filter->data)); + } + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + +int mbfl_filt_ident_eucjp(int c, mbfl_identify_filter *filter) +{ + switch (filter->status) { + case 0: /* latin */ + if (c >= 0 && c < 0x80) { /* ok */ + ; + } else if (c > 0xa0 && c < 0xff) { /* kanji first char */ + filter->status = 1; + } else if (c == 0x8e) { /* kana first char */ + filter->status = 2; + } else if (c == 0x8f) { /* X 0212 first char */ + filter->status = 3; + } else { /* bad */ + filter->flag = 1; + } + break; + + case 1: /* got first half */ + if (c < 0xa1 || c > 0xfe) { /* bad */ + filter->flag = 1; + } + filter->status = 0; + break; + + case 2: /* got 0x8e */ + if (c < 0xa1 || c > 0xdf) { /* bad */ + filter->flag = 1; + } + filter->status = 0; + break; + + case 3: /* got 0x8f */ + if (c < 0xa1 || c > 0xfe) { /* bad */ + filter->flag = 1; + } + filter->status++; + break; + case 4: /* got 0x8f */ + if (c < 0xa1 || c > 0xfe) { /* bad */ + filter->flag = 1; + } + filter->status = 0; + break; + + default: + filter->status = 0; + break; + } + + return c; +} + + + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_euc_jp.h b/ext/mbstring/libmbfl/filters/mbfilter_euc_jp.h new file mode 100644 index 0000000..de1212d --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_euc_jp.h @@ -0,0 +1,43 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter_ja.h + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_EUC_JP_H +#define MBFL_MBFILTER_EUC_JP_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_euc_jp; +extern const struct mbfl_identify_vtbl vtbl_identify_eucjp; +extern const struct mbfl_convert_vtbl vtbl_eucjp_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_eucjp; + +int mbfl_filt_conv_eucjp_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_eucjp(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_EUC_JP_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_euc_jp_2004.c b/ext/mbstring/libmbfl/filters/mbfilter_euc_jp_2004.c new file mode 100644 index 0000000..2905ce8 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_euc_jp_2004.c @@ -0,0 +1,78 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter_ja.c + * by rui hirokawa <hirokawa@php.net> on 16 aug 2011. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_euc_jp_2004.h" +#include "mbfilter_sjis_2004.h" + +#include "unicode_table_jis2004.h" + +extern int mbfl_filt_ident_eucjp(int c, mbfl_identify_filter *filter); +extern const unsigned char mblen_table_eucjp[]; + +static const char *mbfl_encoding_eucjp2004_aliases[] = {"EUC_JP-2004", NULL}; + +const mbfl_encoding mbfl_encoding_eucjp2004 = { + mbfl_no_encoding_eucjp2004, + "EUC-JP-2004", + "EUC-JP", + (const char *(*)[])&mbfl_encoding_eucjp2004_aliases, + mblen_table_eucjp, + MBFL_ENCTYPE_MBCS +}; + +const struct mbfl_identify_vtbl vtbl_identify_eucjp2004 = { + mbfl_no_encoding_eucjp2004, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_eucjp +}; + +const struct mbfl_convert_vtbl vtbl_eucjp2004_wchar = { + mbfl_no_encoding_eucjp2004, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_jis2004_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_eucjp2004 = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_eucjp2004, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_jis2004, + mbfl_filt_conv_jis2004_flush +}; + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_euc_jp_2004.h b/ext/mbstring/libmbfl/filters/mbfilter_euc_jp_2004.h new file mode 100644 index 0000000..ce4b60a --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_euc_jp_2004.h @@ -0,0 +1,43 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter_ja.h + * by rui hirokawa <hirokawa@php.net> on 15 aug 2011. + * + */ + +#ifndef MBFL_MBFILTER_EUC_JP_2004_H +#define MBFL_MBFILTER_EUC_JP_2004_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_eucjp2004; +extern const struct mbfl_identify_vtbl vtbl_identify_eucjp2004; +extern const struct mbfl_convert_vtbl vtbl_eucjp2004_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_eucjp2004; + +int mbfl_filt_conv_eucjp2004_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_eucjp2004(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_EUC_JP_2004_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_euc_jp_win.c b/ext/mbstring/libmbfl/filters/mbfilter_euc_jp_win.c new file mode 100644 index 0000000..eb8949a --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_euc_jp_win.c @@ -0,0 +1,434 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter_ja.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_euc_jp_win.h" + +#include "unicode_table_cp932_ext.h" +#include "unicode_table_jis.h" +#include "cp932_table.h" + +static int mbfl_filt_ident_eucjp_win(int c, mbfl_identify_filter *filter); + +static const unsigned char mblen_table_eucjp[] = { /* 0xA1-0xFE */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 +}; + + +static const char *mbfl_encoding_eucjp_win_aliases[] = {"eucJP-open", + "eucJP-ms", NULL}; + +const struct mbfl_identify_vtbl vtbl_identify_eucjpwin = { + mbfl_no_encoding_eucjp_win, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_eucjp_win +}; + +const mbfl_encoding mbfl_encoding_eucjp_win = { + mbfl_no_encoding_eucjp_win, + "eucJP-win", + "EUC-JP", + (const char *(*)[])&mbfl_encoding_eucjp_win_aliases, + mblen_table_eucjp, + MBFL_ENCTYPE_MBCS +}; + +const struct mbfl_convert_vtbl vtbl_eucjpwin_wchar = { + mbfl_no_encoding_eucjp_win, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_eucjpwin_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_eucjpwin = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_eucjp_win, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_eucjpwin, + mbfl_filt_conv_common_flush +}; + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +/* + * eucJP-win => wchar + */ +int +mbfl_filt_conv_eucjpwin_wchar(int c, mbfl_convert_filter *filter) +{ + int c1, s, w, n; + + switch (filter->status) { + case 0: + if (c >= 0 && c < 0x80) { /* latin */ + CK((*filter->output_function)(c, filter->data)); + } else if (c > 0xa0 && c < 0xff) { /* CP932 first char */ + filter->status = 1; + filter->cache = c; + } else if (c == 0x8e) { /* kana first char */ + filter->status = 2; + } else if (c == 0x8f) { /* X 0212 first char */ + filter->status = 3; + } else { + w = c & MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + + case 1: /* got first half */ + filter->status = 0; + c1 = filter->cache; + if (c > 0xa0 && c < 0xff) { + w = 0; + s = (c1 - 0xa1)*94 + c - 0xa1; + if (s <= 137) { + if (s == 31) { + w = 0xff3c; /* FULLWIDTH REVERSE SOLIDUS */ + } else if (s == 32) { + w = 0xff5e; /* FULLWIDTH TILDE */ + } else if (s == 33) { + w = 0x2225; /* PARALLEL TO */ + } else if (s == 60) { + w = 0xff0d; /* FULLWIDTH HYPHEN-MINUS */ + } else if (s == 80) { + w = 0xffe0; /* FULLWIDTH CENT SIGN */ + } else if (s == 81) { + w = 0xffe1; /* FULLWIDTH POUND SIGN */ + } else if (s == 137) { + w = 0xffe2; /* FULLWIDTH NOT SIGN */ + } + } + if (w == 0) { + if (s >= cp932ext1_ucs_table_min && s < cp932ext1_ucs_table_max) { /* vendor ext1 (13ku) */ + w = cp932ext1_ucs_table[s - cp932ext1_ucs_table_min]; + } else if (s >= 0 && s < jisx0208_ucs_table_size) { /* X 0208 */ + w = jisx0208_ucs_table[s]; + } else if (s >= (84 * 94)) { /* user (85ku - 94ku) */ + w = s - (84 * 94) + 0xe000; + } + } + if (w <= 0) { + w = ((c1 & 0x7f) << 8) | (c & 0x7f); + w &= MBFL_WCSPLANE_MASK; + w |= MBFL_WCSPLANE_WINCP932; + } + CK((*filter->output_function)(w, filter->data)); + } else if ((c >= 0 && c < 0x21) || c == 0x7f) { /* CTLs */ + CK((*filter->output_function)(c, filter->data)); + } else { + w = (c1 << 8) | c; + w &= MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + + case 2: /* got 0x8e, X0201 kana */ + filter->status = 0; + if (c > 0xa0 && c < 0xe0) { + w = 0xfec0 + c; + CK((*filter->output_function)(w, filter->data)); + } else if ((c >= 0 && c < 0x21) || c == 0x7f) { /* CTLs */ + CK((*filter->output_function)(c, filter->data)); + } else { + w = 0x8e00 | c; + w &= MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + + case 3: /* got 0x8f, X 0212 first char */ + if ((c >= 0 && c < 0x21) || c == 0x7f) { /* CTLs */ + CK((*filter->output_function)(c, filter->data)); + filter->status = 0; + } else { + filter->status++; + filter->cache = c; + } + break; + case 4: /* got 0x8f, X 0212 second char */ + filter->status = 0; + c1 = filter->cache; + if (c1 > 0xa0 && c1 < 0xff && c > 0xa0 && c < 0xff) { + s = (c1 - 0xa1)*94 + c - 0xa1; + if (s >= 0 && s < jisx0212_ucs_table_size) { + w = jisx0212_ucs_table[s]; + if (w == 0x007e) { + w = 0xff5e; /* FULLWIDTH TILDE */ + } + } else if (s >= (82*94) && s < (84*94)) { /* vender ext3 (83ku - 84ku) <-> CP932 (115ku -120ku) */ + s = (c1<< 8) | c; + w = 0; + n = 0; + while (n < cp932ext3_eucjp_table_size) { + if (s == cp932ext3_eucjp_table[n]) { + if (n < (cp932ext3_ucs_table_max - cp932ext3_ucs_table_min)) { + w = cp932ext3_ucs_table[n]; + } + break; + } + n++; + } + } else if (s >= (84*94)) { /* user (85ku - 94ku) */ + w = s - (84*94) + (0xe000 + (94*10)); + } else { + w = 0; + } + if (w == 0x00A6) { + w = 0xFFE4; /* FULLWIDTH BROKEN BAR */ + } + if (w <= 0) { + w = ((c1 & 0x7f) << 8) | (c & 0x7f); + w &= MBFL_WCSPLANE_MASK; + w |= MBFL_WCSPLANE_JIS0212; + } + CK((*filter->output_function)(w, filter->data)); + } else if ((c >= 0 && c < 0x21) || c == 0x7f) { /* CTLs */ + CK((*filter->output_function)(c, filter->data)); + } else { + w = (c1 << 8) | c | 0x8f0000; + w &= MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + + default: + filter->status = 0; + break; + } + + return c; +} + +/* + * wchar => eucJP-win + */ +int +mbfl_filt_conv_wchar_eucjpwin(int c, mbfl_convert_filter *filter) +{ + int c1, c2, s1; + + s1 = 0; + if (c >= ucs_a1_jis_table_min && c < ucs_a1_jis_table_max) { + s1 = ucs_a1_jis_table[c - ucs_a1_jis_table_min]; + } else if (c >= ucs_a2_jis_table_min && c < ucs_a2_jis_table_max) { + s1 = ucs_a2_jis_table[c - ucs_a2_jis_table_min]; + } else if (c >= ucs_i_jis_table_min && c < ucs_i_jis_table_max) { + s1 = ucs_i_jis_table[c - ucs_i_jis_table_min]; + } else if (c >= ucs_r_jis_table_min && c < ucs_r_jis_table_max) { + s1 = ucs_r_jis_table[c - ucs_r_jis_table_min]; + } else if (c >= 0xe000 && c < (0xe000 + 10*94)) { /* user (X0208 85ku - 94ku) */ + s1 = c - 0xe000; + c1 = s1/94 + 0x75; + c2 = s1%94 + 0x21; + s1 = (c1 << 8) | c2; + } else if (c >= (0xe000 + 10*94) && c < (0xe000 + 20*94)) { /* user (X0212 85ku - 94ku) */ + s1 = c - (0xe000 + 10*94); + c1 = s1/94 + 0xf5; + c2 = s1%94 + 0xa1; + s1 = (c1 << 8) | c2; + } + if (s1 == 0xa2f1) { + s1 = 0x2d62; /* NUMERO SIGN */ + } + if (s1 <= 0) { + c1 = c & ~MBFL_WCSPLANE_MASK; + if (c1 == MBFL_WCSPLANE_WINCP932) { + s1 = c & MBFL_WCSPLANE_MASK; + if (s1 >= ((85 + 0x20) << 8)) { /* 85ku - 120ku */ + s1 = -1; + } + } else if (c1 == MBFL_WCSPLANE_JIS0208) { + s1 = c & MBFL_WCSPLANE_MASK; + if (s1 >= ((85 + 0x20) << 8)) { /* 85ku - 94ku */ + s1 = -1; + } + } else if (c1 == MBFL_WCSPLANE_JIS0212) { + s1 = c & MBFL_WCSPLANE_MASK; + if (s1 >= ((83 + 0x20) << 8)) { /* 83ku - 94ku */ + s1 = -1; + } else { + s1 |= 0x8080; + } + } else if (c == 0xa5) { /* YEN SIGN */ + s1 = 0x216f; /* FULLWIDTH YEN SIGN */ + } else if (c == 0x203e) { /* OVER LINE */ + s1 = 0x2131; /* FULLWIDTH MACRON */ + } else if (c == 0xff3c) { /* FULLWIDTH REVERSE SOLIDUS */ + s1 = 0x2140; + } else if (c == 0xff5e) { /* FULLWIDTH TILDE */ + s1 = 0x2141; + } else if (c == 0x2225) { /* PARALLEL TO */ + s1 = 0x2142; + } else if (c == 0xff0d) { /* FULLWIDTH HYPHEN-MINUS */ + s1 = 0x215d; + } else if (c == 0xffe0) { /* FULLWIDTH CENT SIGN */ + s1 = 0x2171; + } else if (c == 0xffe1) { /* FULLWIDTH POUND SIGN */ + s1 = 0x2172; + } else if (c == 0xffe2) { /* FULLWIDTH NOT SIGN */ + s1 = 0x224c; + } else if (c == 0xff5e) { /* FULLWIDTH TILDE */ + s1 = 0x2141; + } else { + s1 = -1; + c1 = 0; + c2 = cp932ext1_ucs_table_max - cp932ext1_ucs_table_min; + while (c1 < c2) { /* CP932 vendor ext1 (13ku) */ + const int oh = cp932ext1_ucs_table_min / 94; + + if (c == cp932ext1_ucs_table[c1]) { + s1 = ((c1 / 94 + oh + 0x21) << 8) + (c1 % 94 + 0x21); + break; + } + c1++; + } + if (s1 < 0) { + c1 = 0; + c2 = cp932ext3_ucs_table_max - cp932ext3_ucs_table_min; + while (c1 < c2) { /* CP932 vendor ext3 (115ku - 119ku) */ + if (c == cp932ext3_ucs_table[c1]) { + if (c1 < cp932ext3_eucjp_table_size) { + s1 = cp932ext3_eucjp_table[c1]; + } + break; + } + c1++; + } + } + } + if (c == 0) { + s1 = 0; + } else if (s1 <= 0) { + s1 = -1; + } + } + + if (s1 >= 0) { + if (s1 < 0x80) { /* latin */ + CK((*filter->output_function)(s1, filter->data)); + } else if (s1 < 0x100) { /* kana */ + CK((*filter->output_function)(0x8e, filter->data)); + CK((*filter->output_function)(s1, filter->data)); + } else if (s1 < 0x8080) { /* X 0208 */ + CK((*filter->output_function)(((s1 >> 8) & 0xff) | 0x80, filter->data)); + CK((*filter->output_function)((s1 & 0xff) | 0x80, filter->data)); + } else { /* X 0212 */ + CK((*filter->output_function)(0x8f, filter->data)); + CK((*filter->output_function)(((s1 >> 8) & 0xff) | 0x80, filter->data)); + CK((*filter->output_function)((s1 & 0xff) | 0x80, filter->data)); + } + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + +static int mbfl_filt_ident_eucjp_win(int c, mbfl_identify_filter *filter) +{ + switch (filter->status) { + case 0: /* latin */ + if (c >= 0 && c < 0x80) { /* ok */ + ; + } else if (c > 0xa0 && c < 0xff) { /* kanji first char */ + filter->status = 1; + } else if (c == 0x8e) { /* kana first char */ + filter->status = 2; + } else if (c == 0x8f) { /* X 0212 first char */ + filter->status = 3; + } else { /* bad */ + filter->flag = 1; + } + break; + + case 1: /* got first half */ + if (c < 0xa1 || c > 0xfe) { /* bad */ + filter->flag = 1; + } + filter->status = 0; + break; + + case 2: /* got 0x8e */ + if (c < 0xa1 || c > 0xdf) { /* bad */ + filter->flag = 1; + } + filter->status = 0; + break; + + case 3: /* got 0x8f */ + if (c < 0xa1 || c > 0xfe) { /* bad */ + filter->flag = 1; + } + filter->status++; + break; + case 4: /* got 0x8f */ + if (c < 0xa1 || c > 0xfe) { /* bad */ + filter->flag = 1; + } + filter->status = 0; + break; + + default: + filter->status = 0; + break; + } + + return c; +} + + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_euc_jp_win.h b/ext/mbstring/libmbfl/filters/mbfilter_euc_jp_win.h new file mode 100644 index 0000000..8b79a72 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_euc_jp_win.h @@ -0,0 +1,43 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter_ja.h + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_EUC_JP_WIN_H +#define MBFL_MBFILTER_EUC_JP_WIN_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_eucjp_win; +extern const struct mbfl_identify_vtbl vtbl_identify_eucjpwin; +extern const struct mbfl_convert_vtbl vtbl_eucjpwin_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_eucjpwin; + +int mbfl_filt_conv_eucjpwin_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_eucjpwin(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_EUC_JP_WIN_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_euc_kr.c b/ext/mbstring/libmbfl/filters/mbfilter_euc_kr.c new file mode 100644 index 0000000..211a3ad --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_euc_kr.c @@ -0,0 +1,256 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter_kr.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_euc_kr.h" +#include "unicode_table_uhc.h" + +static int mbfl_filt_ident_euckr(int c, mbfl_identify_filter *filter); + +static const unsigned char mblen_table_euckr[] = { /* 0xA1-0xFE */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 +}; + +static const char *mbfl_encoding_euc_kr_aliases[] = {"EUC_KR", "eucKR", "x-euc-kr", NULL}; + +const mbfl_encoding mbfl_encoding_euc_kr = { + mbfl_no_encoding_euc_kr, + "EUC-KR", + "EUC-KR", + (const char *(*)[])&mbfl_encoding_euc_kr_aliases, + mblen_table_euckr, + MBFL_ENCTYPE_MBCS +}; + +const struct mbfl_identify_vtbl vtbl_identify_euckr = { + mbfl_no_encoding_euc_kr, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_euckr +}; + +const struct mbfl_convert_vtbl vtbl_euckr_wchar = { + mbfl_no_encoding_euc_kr, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_euckr_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_euckr = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_euc_kr, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_euckr, + mbfl_filt_conv_common_flush +}; + + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +/* + * EUC-KR => wchar + */ +int +mbfl_filt_conv_euckr_wchar(int c, mbfl_convert_filter *filter) +{ + int c1, w, flag; + + switch (filter->status) { + case 0: + if (c >= 0 && c < 0x80) { /* latin */ + CK((*filter->output_function)(c, filter->data)); + } else if (c > 0xa0 && c < 0xff && c != 0xc9) { /* dbcs lead byte */ + filter->status = 1; + filter->cache = c; + } else { + w = c & MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + + case 1: /* dbcs second byte */ + filter->status = 0; + c1 = filter->cache; + flag = 0; + if (c1 >= 0xa1 && c1 <= 0xc6) { + flag = 1; + } else if (c1 >= 0xc7 && c1 <= 0xfe && c1 != 0xc9) { + flag = 2; + } + if (flag > 0 && c >= 0xa1 && c <= 0xfe) { + if (flag == 1){ /* 1st: 0xa1..0xc6, 2nd: 0x41..0x7a, 0x81..0xfe */ + w = (c1 - 0xa1)*190 + (c - 0x41); + if (w >= 0 && w < uhc2_ucs_table_size) { + w = uhc2_ucs_table[w]; + } else { + w = 0; + } + } else { /* 1st: 0xc7..0xc8,0xca..0xfe, 2nd: 0xa1..0xfe */ + w = (c1 - 0xc7)*94 + (c - 0xa1); + if (w >= 0 && w < uhc3_ucs_table_size) { + w = uhc3_ucs_table[w]; + } else { + w = 0; + } + } + + if (w <= 0) { + w = (c1 << 8) | c; + w &= MBFL_WCSPLANE_MASK; + w |= MBFL_WCSPLANE_KSC5601; + } + CK((*filter->output_function)(w, filter->data)); + } else if ((c >= 0 && c < 0x21) || c == 0x7f) { /* CTLs */ + CK((*filter->output_function)(c, filter->data)); + } else { + w = (c1 << 8) | c; + w &= MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + + default: + filter->status = 0; + break; + } + + return c; +} + +/* + * wchar => EUC-KR + */ +int +mbfl_filt_conv_wchar_euckr(int c, mbfl_convert_filter *filter) +{ + int c1, c2, s; + + s = 0; + + if (c >= ucs_a1_uhc_table_min && c < ucs_a1_uhc_table_max) { + s = ucs_a1_uhc_table[c - ucs_a1_uhc_table_min]; + } else if (c >= ucs_a2_uhc_table_min && c < ucs_a2_uhc_table_max) { + s = ucs_a2_uhc_table[c - ucs_a2_uhc_table_min]; + } else if (c >= ucs_a3_uhc_table_min && c < ucs_a3_uhc_table_max) { + s = ucs_a3_uhc_table[c - ucs_a3_uhc_table_min]; + } else if (c >= ucs_i_uhc_table_min && c < ucs_i_uhc_table_max) { + s = ucs_i_uhc_table[c - ucs_i_uhc_table_min]; + } else if (c >= ucs_s_uhc_table_min && c < ucs_s_uhc_table_max) { + s = ucs_s_uhc_table[c - ucs_s_uhc_table_min]; + } else if (c >= ucs_r1_uhc_table_min && c < ucs_r1_uhc_table_max) { + s = ucs_r1_uhc_table[c - ucs_r1_uhc_table_min]; + } else if (c >= ucs_r2_uhc_table_min && c < ucs_r2_uhc_table_max) { + s = ucs_r2_uhc_table[c - ucs_r2_uhc_table_min]; + } + + c1 = (s >> 8) & 0xff; + c2 = s & 0xff; + /* exclude UHC extension area */ + if (c1 < 0xa1 || c2 < 0xa1){ + s = c; + } + + if (s <= 0) { + c1 = c & ~MBFL_WCSPLANE_MASK; + if (c1 == MBFL_WCSPLANE_KSC5601) { + s = c & MBFL_WCSPLANE_MASK; + } + if (c == 0) { + s = 0; + } else if (s <= 0) { + s = -1; + } + } + if (s >= 0) { + if (s < 0x80) { /* latin */ + CK((*filter->output_function)(s, filter->data)); + } else { + CK((*filter->output_function)((s >> 8) & 0xff, filter->data)); + CK((*filter->output_function)(s & 0xff, filter->data)); + } + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + +static int mbfl_filt_ident_euckr(int c, mbfl_identify_filter *filter) +{ + switch (filter->status) { + case 0: /* latin */ + if (c >= 0 && c < 0x80) { /* ok */ + ; + } else if (c > 0xa0 && c < 0xff) { /* DBCS lead byte */ + filter->status = 1; + } else { /* bad */ + filter->flag = 1; + } + break; + + case 1: /* got lead byte */ + if (c < 0xa1 || c > 0xfe) { /* bad */ + filter->flag = 1; + } + filter->status = 0; + break; + + default: + filter->status = 0; + break; + } + + return c; +} diff --git a/ext/mbstring/libmbfl/filters/mbfilter_euc_kr.h b/ext/mbstring/libmbfl/filters/mbfilter_euc_kr.h new file mode 100644 index 0000000..5ccbe79 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_euc_kr.h @@ -0,0 +1,43 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter_kr.h + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_EUC_KR_H +#define MBFL_MBFILTER_EUC_KR_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_euc_kr; +extern const struct mbfl_identify_vtbl vtbl_identify_euckr; +extern const struct mbfl_convert_vtbl vtbl_euckr_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_euckr; + +int mbfl_filt_conv_euckr_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_euckr(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_EUC_KR_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_euc_tw.c b/ext/mbstring/libmbfl/filters/mbfilter_euc_tw.c new file mode 100644 index 0000000..95665d0 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_euc_tw.c @@ -0,0 +1,329 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: Rui Hirokawa <hirokawa@php.net> + * + */ +/* + * The source code included in this files was separated from mbfilter_tw.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_euc_tw.h" + +#include "unicode_table_cns11643.h" + +static int mbfl_filt_ident_euctw(int c, mbfl_identify_filter *filter); + +static const unsigned char mblen_table_euctw[] = { /* 0xA1-0xFE */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 +}; + + +static const char *mbfl_encoding_euc_tw_aliases[] = {"EUC_TW", "eucTW", "x-euc-tw", NULL}; + +const mbfl_encoding mbfl_encoding_euc_tw = { + mbfl_no_encoding_euc_tw, + "EUC-TW", + "EUC-TW", + (const char *(*)[])&mbfl_encoding_euc_tw_aliases, + mblen_table_euctw, + MBFL_ENCTYPE_MBCS +}; + +const struct mbfl_identify_vtbl vtbl_identify_euctw = { + mbfl_no_encoding_euc_tw, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_euctw +}; + +const struct mbfl_convert_vtbl vtbl_euctw_wchar = { + mbfl_no_encoding_euc_tw, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_euctw_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_euctw = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_euc_tw, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_euctw, + mbfl_filt_conv_common_flush +}; + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +/* + * EUC-TW => wchar + */ +int +mbfl_filt_conv_euctw_wchar(int c, mbfl_convert_filter *filter) +{ + int c1, s, w, plane; + + switch (filter->status) { + case 0: + if (c >= 0 && c < 0x80) { /* latin */ + CK((*filter->output_function)(c, filter->data)); + } else if (c > 0xa0 && c < 0xff) { /* dbcs first byte */ + filter->status = 1; + filter->cache = c; + } else if (c == 0x8e) { /* mbcs first byte */ + filter->status = 2; + filter->cache = c; + } else { + w = c & MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + + case 1: /* mbcs second byte */ + filter->status = 0; + c1 = filter->cache; + if (c > 0xa0 && c < 0xff) { + w = (c1 - 0xa1)*94 + (c - 0xa1); + if (w >= 0 && w < cns11643_1_ucs_table_size) { + w = cns11643_1_ucs_table[w]; + } else { + w = 0; + } + if (w <= 0) { + w = (c1 << 8) | c; + w &= MBFL_WCSPLANE_MASK; + w |= MBFL_WCSPLANE_CNS11643; + } + CK((*filter->output_function)(w, filter->data)); + } else if ((c >= 0 && c < 0x21) || c == 0x7f) { /* CTLs */ + CK((*filter->output_function)(c, filter->data)); + } else { + w = (c1 << 8) | c; + w &= MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + + case 2: /* got 0x8e, first char */ + c1 = filter->cache; + if ((c >= 0 && c < 0x21) || c == 0x7f) { /* CTLs */ + CK((*filter->output_function)(c, filter->data)); + filter->status = 0; + } else if (c > 0xa0 && c < 0xaf) { + filter->status = 3; + filter->cache = c - 0xa1; + } else { + w = (c1 << 8) | c; + w &= MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + + case 3: /* got 0x8e, third char */ + filter->status = 0; + c1 = filter->cache; + if ((c >= 0 && c < 0x21) || c == 0x7f) { /* CTLs */ + CK((*filter->output_function)(c, filter->data)); + filter->status = 0; + } else if (c > 0xa0 && c < 0xff) { + filter->status = 4; + filter->cache = (c1 << 8) + c - 0xa1; + } else { + w = (c1 << 8) | c; + w &= MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + + case 4: /* mbcs fourth char */ + filter->status = 0; + c1 = filter->cache; + if (c1 >= 0x100 && c1 <= 0xdff && c > 0xa0 && c < 0xff) { + plane = (c1 & 0xf00) >> 8; + s = (c1 & 0xff)*94 + c - 0xa1; + w = 0; + if (s >= 0) { + if (plane == 1 && s < cns11643_2_ucs_table_size) { + w = cns11643_2_ucs_table[s]; + } + if (plane == 13 && s < cns11643_14_ucs_table_size) { + w = cns11643_14_ucs_table[s]; + } + } + if (w <= 0) { + w = ((c1 & 0x7f) << 8) | (c & 0x7f); + w &= MBFL_WCSPLANE_MASK; + w |= MBFL_WCSPLANE_CNS11643; + } + CK((*filter->output_function)(w, filter->data)); + } else if ((c >= 0 && c < 0x21) || c == 0x7f) { /* CTLs */ + CK((*filter->output_function)(c, filter->data)); + } else { + w = (c1 << 8) | c | 0x8e0000; + w &= MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + + default: + filter->status = 0; + break; + } + + return c; +} + +/* + * wchar => EUC-TW + */ +int +mbfl_filt_conv_wchar_euctw(int c, mbfl_convert_filter *filter) +{ + int c1, s, plane; + + s = 0; + if (c >= ucs_a1_cns11643_table_min && c < ucs_a1_cns11643_table_max) { + s = ucs_a1_cns11643_table[c - ucs_a1_cns11643_table_min]; + } else if (c >= ucs_a2_cns11643_table_min && c < ucs_a2_cns11643_table_max) { + s = ucs_a2_cns11643_table[c - ucs_a2_cns11643_table_min]; + } else if (c >= ucs_a3_cns11643_table_min && c < ucs_a3_cns11643_table_max) { + s = ucs_a3_cns11643_table[c - ucs_a3_cns11643_table_min]; + } else if (c >= ucs_i_cns11643_table_min && c < ucs_i_cns11643_table_max) { + s = ucs_i_cns11643_table[c - ucs_i_cns11643_table_min]; + } else if (c >= ucs_r_cns11643_table_min && c < ucs_r_cns11643_table_max) { + s = ucs_r_cns11643_table[c - ucs_r_cns11643_table_min]; + } + if (s <= 0) { + c1 = c & ~MBFL_WCSPLANE_MASK; + if (c1 == MBFL_WCSPLANE_CNS11643) { + s = c & MBFL_WCSPLANE_MASK; + } + if (c == 0) { + s = 0; + } else if (s <= 0) { + s = -1; + } + } + if (s >= 0) { + plane = (s & 0x1f0000) >> 16; + if (plane <= 1){ + if (s < 0x80) { /* latin */ + CK((*filter->output_function)(s, filter->data)); + } else { + s = (s & 0xffff) | 0x8080; + CK((*filter->output_function)((s >> 8) & 0xff, filter->data)); + CK((*filter->output_function)(s & 0xff, filter->data)); + } + } else { + s = (0x8ea00000 + (plane << 16)) | ((s & 0xffff) | 0x8080); + CK((*filter->output_function)(0x8e , filter->data)); + CK((*filter->output_function)((s >> 16) & 0xff, filter->data)); + CK((*filter->output_function)((s >> 8) & 0xff, filter->data)); + CK((*filter->output_function)(s & 0xff, filter->data)); + } + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + return c; +} + +static int mbfl_filt_ident_euctw(int c, mbfl_identify_filter *filter) +{ + switch (filter->status) { + case 0: /* latin */ + if (c >= 0 && c < 0x80) { /* ok */ + ; + } else if (c > 0xa0 && c < 0xff) { /* DBCS lead byte */ + filter->status = 1; + } else if (c == 0x8e) { /* DBCS lead byte */ + filter->status = 2; + } else { /* bad */ + filter->flag = 1; + } + break; + + case 1: /* got lead byte */ + if (c < 0xa1 || c > 0xfe) { /* bad */ + filter->flag = 1; + } + filter->status = 0; + break; + + case 2: /* got lead byte */ + if (c >= 0xa1 && c < 0xaf) { /* ok */ + filter->status = 3; + } else { + filter->flag = 1; /* bad */ + } + break; + + case 3: /* got lead byte */ + if (c < 0xa1 || c > 0xfe) { /* bad */ + filter->flag = 1; + } + filter->status = 4; + break; + + case 4: /* got lead byte */ + if (c < 0xa1 || c > 0xfe) { /* bad */ + filter->flag = 1; + } + filter->status = 0; + break; + + default: + filter->status = 0; + break; + } + + return c; +} + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_euc_tw.h b/ext/mbstring/libmbfl/filters/mbfilter_euc_tw.h new file mode 100644 index 0000000..6407180 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_euc_tw.h @@ -0,0 +1,43 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: Rui Hirokawa <hirokawa@php.net> + * + */ +/* + * The source code included in this files was separated from mbfilter_tw.h + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_EUC_TW_H +#define MBFL_MBFILTER_EUC_TW_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_euc_tw; +extern const struct mbfl_identify_vtbl vtbl_identify_euctw; +extern const struct mbfl_convert_vtbl vtbl_euctw_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_euctw; + +int mbfl_filt_conv_euctw_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_euctw(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_EUC_TW_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_gb18030.c b/ext/mbstring/libmbfl/filters/mbfilter_gb18030.c new file mode 100644 index 0000000..f6f12be --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_gb18030.c @@ -0,0 +1,473 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * the source code included in this files was separated from mbfilter_cp936.c + * by rui hirokawa <hirokawa@php.net> on 11 Aug 2011. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_gb18030.h" + +#include "unicode_table_cp936.h" +#include "unicode_table_gb18030.h" + +static int mbfl_filt_ident_gb18030(int c, mbfl_identify_filter *filter); + +static const char *mbfl_encoding_gb18030_aliases[] = {"gb-18030", "gb-18030-2000", NULL}; + +const mbfl_encoding mbfl_encoding_gb18030 = { + mbfl_no_encoding_gb18030, + "GB18030", + "GB18030", + (const char *(*)[])&mbfl_encoding_gb18030_aliases, + NULL, + MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_GL_UNSAFE +}; + +const struct mbfl_identify_vtbl vtbl_identify_gb18030 = { + mbfl_no_encoding_gb18030, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_gb18030 +}; + +const struct mbfl_convert_vtbl vtbl_gb18030_wchar = { + mbfl_no_encoding_gb18030, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_gb18030_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_gb18030 = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_gb18030, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_gb18030, + mbfl_filt_conv_common_flush +}; + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + + +int +mbfl_bisec_srch(int w, const unsigned short *tbl, int n) +{ + int k, k1 = 0, k2 = n-1; + + while (k1 < k2) { + k = (k1+k2) >> 1; + if (w <= tbl[2*k+1]) { + k2 = k; + } else if (w >= tbl[2*k+2]) { + k1 = k + 1; + } else { + return -1; + } + } + return k1; +} + +int +mbfl_bisec_srch2(int w, const unsigned short tbl[], int n) +{ + int k, k1 = 0, k2 = n; + + if (w == tbl[0]) { + return 0; + } + + while (k2 - k1 > 1) { + k = (k1 + k2) >> 1; + if (w < tbl[k]) { + k2 = k; + } else if (w > tbl[k]) { + k1 = k; + } else { + return k; + } + } + return -1; +} + +/* + * GB18030 => wchar + */ +int +mbfl_filt_conv_gb18030_wchar(int c, mbfl_convert_filter *filter) +{ + int k; + int c1, c2, c3, w = -1; + + switch (filter->status) { + case 0: + if (c >= 0 && c < 0x80) { /* latin */ + CK((*filter->output_function)(c, filter->data)); + } else if (c == 0x80) { /* euro sign */ + CK((*filter->output_function)(0x20ac, filter->data)); + } else if (c == 0xff) { + CK((*filter->output_function)(0x00ff, filter->data)); + } else if (c > 0x80 && c < 0xff) { /* dbcs/qbcs lead byte */ + filter->status = 1; + filter->cache = c; + } else { + w = c & MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + + case 1: /* dbcs/qbcs second byte */ + c1 = filter->cache; + filter->status = 0; + + if (c1 >= 0x81 && c1 <= 0x84 && c >= 0x30 && c <= 0x39) { /* 4 byte range: Unicode BMP */ + filter->status = 2; + filter->cache = (c1 << 8) | c; + return c; + } else if (c1 >= 0x90 && c1 <= 0xe3 && c >= 0x30 && c <= 0x39) { + /* 4 byte range: Unicode 16 planes */ + filter->status = 2; + filter->cache = (c1 << 8) | c; + return c; + } else if (((c1 >= 0xaa && c1 <= 0xaf) || (c1 >= 0xf8 && c1 <= 0xfe)) && + (c >= 0xa1 && c <= 0xfe)) { /* UDA part1,2: U+E000-U+E4C5 */ + w = 94*(c1 >= 0xf8 ? c1 - 0xf2 : c1 - 0xaa) + (c - 0xa1) + 0xe000; + CK((*filter->output_function)(w, filter->data)); + } else if (c1 >= 0xa1 && c1 <= 0xa7 && c >= 0x40 && c < 0xa1 && c != 0x7f) { + /* UDA part3 : U+E4C6-U+E765*/ + w = 96*(c1 - 0xa1) + c - (c >= 0x80 ? 0x41 : 0x40) + 0xe4c6; + CK((*filter->output_function)(w, filter->data)); + } + + c2 = (c1 << 8) | c; + + if (w <= 0 && + ((c2 >= 0xa2ab && c2 <= 0xa9f0 + (0xe80f-0xe801)) || + (c2 >= 0xd7fa && c2 <= 0xd7fa + (0xe814-0xe810)) || + (c2 >= 0xfe50 && c2 <= 0xfe80 + (0xe864-0xe844)))) { + for (k = 0; k < mbfl_gb18030_pua_tbl_max; k++) { + if (c2 >= mbfl_gb18030_pua_tbl[k][2] && + c2 <= mbfl_gb18030_pua_tbl[k][2] + mbfl_gb18030_pua_tbl[k][1] + - mbfl_gb18030_pua_tbl[k][0]) { + w = c2 - mbfl_gb18030_pua_tbl[k][2] + mbfl_gb18030_pua_tbl[k][0]; + CK((*filter->output_function)(w, filter->data)); + break; + } + } + } + + if (w <= 0) { + if ((c1 >= 0xa1 && c1 <= 0xa9 && c >= 0xa1 && c <= 0xfe) || + (c1 >= 0xb0 && c1 <= 0xf7 && c >= 0xa1 && c <= 0xfe) || + (c1 >= 0x81 && c1 <= 0xa0 && c >= 0x40 && c <= 0xfe && c != 0x7f) || + (c1 >= 0xaa && c1 <= 0xfe && c >= 0x40 && c <= 0xa0 && c != 0x7f) || + (c1 >= 0xa8 && c1 <= 0xa9 && c >= 0x40 && c <= 0xa0 && c != 0x7f)) { + w = (c1 - 0x81)*192 + (c - 0x40); + if (w >= 0 && w < cp936_ucs_table_size) { + w = cp936_ucs_table[w]; + } else { + w = 0; + } + if (w <= 0) { + w = (c1 << 8) | c; + w &= MBFL_WCSPLANE_MASK; + w |= MBFL_WCSPLANE_GB18030; + } + CK((*filter->output_function)(w, filter->data)); + } else if ((c >= 0 && c < 0x21) || c == 0x7f) { /* CTLs */ + CK((*filter->output_function)(c, filter->data)); + } else { + w = (c1 << 8) | c; + w &= MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + } + break; + case 2: /* qbcs third byte */ + c1 = (filter->cache >> 8) & 0xff; + c2 = filter->cache & 0xff; + filter->status = 0; + filter->cache = 0; + if (((c1 >= 0x81 && c1 <= 0x84) || (c1 >= 0x90 && c1 <= 0xe3)) && + c2 >= 0x30 && c2 <= 0x39 && c >= 0x81 && c <= 0xfe) { + filter->cache = (c1 << 16) | (c2 << 8) | c; + filter->status = 3; + } else { + w = (c1 << 16) | (c2 << 8) | c; + w &= MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + + case 3: /* qbcs fourth byte */ + c1 = (filter->cache >> 16) & 0xff; + c2 = (filter->cache >> 8) & 0xff; + c3 = filter->cache & 0xff; + filter->status = 0; + filter->cache = 0; + if (((c1 >= 0x81 && c1 <= 0x84) || (c1 >= 0x90 && c1 <= 0xe3)) && + c2 >= 0x30 && c2 <= 0x39 && c3 >= 0x81 && c3 <= 0xfe && c >= 0x30 && c <= 0x39) { + if (c1 >= 0x90 && c1 <= 0xe3) { + w = ((c1 - 0x90)*10 + (c2 - 0x30)*126 + (c3 - 0x81))*10 + (c - 0x30) + 0x10000; + } else { /* Unicode BMP */ + w = (((c1 - 0x81)*10 + (c2 - 0x30))*126 + (c3 - 0x81))*10 + (c - 0x30); + if (w >= 0 && w <= 39419) { + k = mbfl_bisec_srch(w, mbfl_gb2uni_tbl, mbfl_gb_uni_max); + if (k<0) { + /* error */ + w = (c1 << 24) | (c2 << 16) | (c3 << 8) | c; + w &= MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + return c; + } + w += mbfl_gb_uni_ofst[k]; + } else { + w = (c1 << 24) | (c2 << 16) | (c3 << 8) | c; + w &= MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + return c; + } + } + CK((*filter->output_function)(w, filter->data)); + } else { + w = (c1 << 24) | (c2 << 16) | (c3 << 8) | c; + w &= MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + + default: + filter->status = 0; + break; + } + + return c; +} + +/* + * wchar => GB18030 + */ +int +mbfl_filt_conv_wchar_gb18030(int c, mbfl_convert_filter *filter) +{ + int k, k1, k2; + int c1, s = 0, s1 = 0; + + if (c >= ucs_a1_cp936_table_min && c < ucs_a1_cp936_table_max) { + s = ucs_a1_cp936_table[c - ucs_a1_cp936_table_min]; + } else if (c >= ucs_a2_cp936_table_min && c < ucs_a2_cp936_table_max) { + s = ucs_a2_cp936_table[c - ucs_a2_cp936_table_min]; + } else if (c >= ucs_a3_cp936_table_min && c < ucs_a3_cp936_table_max) { + s = ucs_a3_cp936_table[c - ucs_a3_cp936_table_min]; + } else if (c >= ucs_i_cp936_table_min && c < ucs_i_cp936_table_max) { + s = ucs_i_cp936_table[c - ucs_i_cp936_table_min]; + } else if (c >= ucs_ci_cp936_table_min && c < ucs_ci_cp936_table_max) { + /* U+F900-FA2F CJK Compatibility Ideographs */ + if (c == 0xf92c) { + s = 0xfd9c; + } else if (c == 0xf979) { + s = 0xfd9d; + } else if (c == 0xf995) { + s = 0xfd9e; + } else if (c == 0xf9e7) { + s = 0xfd9f; + } else if (c == 0xf9f1) { + s = 0xfda0; + } else if (c >= 0xfa0c && c <= 0xfa29) { + s = ucs_ci_s_cp936_table[c - 0xfa0c]; + } + } else if (c >= ucs_cf_cp936_table_min && c < ucs_cf_cp936_table_max) { + /* FE30h CJK Compatibility Forms */ + s = ucs_cf_cp936_table[c - ucs_cf_cp936_table_min]; + } else if (c >= ucs_sfv_cp936_table_min && c < ucs_sfv_cp936_table_max) { + /* U+FE50-FE6F Small Form Variants */ + s = ucs_sfv_cp936_table[c - ucs_sfv_cp936_table_min]; + } else if (c >= ucs_hff_cp936_table_min && c < ucs_hff_cp936_table_max) { + /* U+FF00-FFFF HW/FW Forms */ + if (c == 0xff04) { + s = 0xa1e7; + } else if (c == 0xff5e) { + s = 0xa1ab; + } else if (c >= 0xff01 && c <= 0xff5d) { + s = c - 0xff01 + 0xa3a1; + } else if (c >= 0xffe0 && c <= 0xffe5) { + s = ucs_hff_s_cp936_table[c-0xffe0]; + } + } + + if (c == 0x20ac) { /* euro-sign */ + s = 0xa2e3; + } + + if (s <= 0 && c >= mbfl_gb18030_c_tbl_key[0] && + c <= mbfl_gb18030_c_tbl_key[mbfl_gb18030_c_tbl_max-1]) { + k1 = mbfl_bisec_srch2(c, mbfl_gb18030_c_tbl_key, mbfl_gb18030_c_tbl_max); + if (k1 >= 0) { + s = mbfl_gb18030_c_tbl_val[k1]; + } + } + + if (c >= 0xe000 && c <= 0xe864) { /* PUA */ + if (c < 0xe766) { + if (c < 0xe4c6) { + c1 = c - 0xe000; + s = (c1 % 94) + 0xa1; c1 /= 94; + s |= (c1 < 0x06 ? c1 + 0xaa : c1 + 0xf2) << 8; + } else { + c1 = c - 0xe4c6; + s = ((c1 / 96) + 0xa1) << 8; c1 %= 96; + s |= c1 + (c1 >= 0x3f ? 0x41 : 0x40); + } + } else { + /* U+E766..U+E864 */ + k1 = 0; k2 = mbfl_gb18030_pua_tbl_max; + while (k1 < k2) { + k = (k1 + k2) >> 1; + if (c < mbfl_gb18030_pua_tbl[k][0]) { + k2 = k; + } else if (c > mbfl_gb18030_pua_tbl[k][1]) { + k1 = k + 1; + } else { + s = c - mbfl_gb18030_pua_tbl[k][0] + mbfl_gb18030_pua_tbl[k][2]; + break; + } + } + } + } + + if (s <= 0 && c >= 0x0080 && c <= 0xffff) { /* BMP */ + s = mbfl_bisec_srch(c, mbfl_uni2gb_tbl, mbfl_gb_uni_max); + if (s >= 0) { + c1 = c - mbfl_gb_uni_ofst[s]; + s = (c1 % 10) + 0x30; c1 /= 10; + s |= ((c1 % 126) + 0x81) << 8; c1 /= 126; + s |= ((c1 % 10) + 0x30) << 16; c1 /= 10; + s1 = c1 + 0x81; + } + } else if (c >= 0x10000 && c <= 0x10ffff) { /* Code set 3: Unicode U+10000..U+10FFFF */ + c1 = c - 0x10000; + s = (c1 % 10) + 0x30; c1 /= 10; + s |= ((c1 % 126) + 0x81) << 8; c1 /= 126; + s |= ((c1 % 10) + 0x30) << 16; c1 /= 10; + s1 = c1 + 0x90; + } + + if (s <= 0) { + c1 = c & ~MBFL_WCSPLANE_MASK; + if (c1 == MBFL_WCSPLANE_WINCP936) { + s = c & MBFL_WCSPLANE_MASK; + } + if (c == 0) { + s = 0; + } else if (s <= 0) { + s = -1; + } + } + if (s >= 0) { + if (s <= 0x80) { /* latin */ + CK((*filter->output_function)(s, filter->data)); + } else if (s1 > 0) { /* qbcs */ + CK((*filter->output_function)(s1 & 0xff, filter->data)); + CK((*filter->output_function)((s >> 16) & 0xff, filter->data)); + CK((*filter->output_function)((s >> 8) & 0xff, filter->data)); + CK((*filter->output_function)(s & 0xff, filter->data)); + } else { /* dbcs */ + CK((*filter->output_function)((s >> 8) & 0xff, filter->data)); + CK((*filter->output_function)(s & 0xff, filter->data)); + } + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + +static int mbfl_filt_ident_gb18030(int c, mbfl_identify_filter *filter) +{ + int c1; + + c1 = (filter->status >> 8) & 0xff; + filter->status &= 0xff; + + if (filter->status == 0) { + if (c <= 0x80 || c == 0xff) { + filter->status = 0; + } else { + filter->status = 1; + filter->status |= (c << 8); + } + } else if (filter->status == 1) { /* dbcs/qbcs 2nd byte */ + if (((c1 >= 0x81 && c1 <= 0x84) || (c1 >= 0x90 && c1 <= 0xe3)) && c >= 0x30 && c <= 0x39) { /* qbcs */ + filter->status = 2; + } else if (((c1 >= 0xaa && c1 <= 0xaf) || (c1 >= 0xf8 && c1 <= 0xfe)) && (c >= 0xa1 && c <= 0xfe)) { + filter->status = 0; /* UDA part 1,2 */ + } else if (c1 >= 0xa1 && c1 <= 0xa7 && c >= 0x40 && c < 0xa1 && c != 0x7f) { + filter->status = 0; /* UDA part 3 */ + } else if ((c1 >= 0xa1 && c1 <= 0xa9 && c >= 0xa1 && c <= 0xfe) || + (c1 >= 0xb0 && c1 <= 0xf7 && c >= 0xa1 && c <= 0xfe) || + (c1 >= 0x81 && c1 <= 0xa0 && c >= 0x40 && c <= 0xfe && c != 0x7f) || + (c1 >= 0xaa && c1 <= 0xfe && c >= 0x40 && c <= 0xa0 && c != 0x7f) || + (c1 >= 0xa8 && c1 <= 0xa9 && c >= 0x40 && c <= 0xa0 && c != 0x7f)) { + filter->status = 0; /* DBCS */ + } else { + filter->flag = 1; /* bad */ + filter->status = 0; + } + } else if (filter->status == 2) { /* qbcs 3rd byte */ + if (c > 0x80 && c < 0xff) { + filter->status = 3; + } else { + filter->flag = 1; /* bad */ + filter->status = 0; + } + } else if (filter->status == 3) { /* qbcs 4th byte */ + if (c >= 0x30 && c < 0x40) { + filter->status = 0; + } else { + filter->flag = 1; /* bad */ + filter->status = 0; + } + } else { /* bad */ + filter->flag = 1; + } + + return c; +} + + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_gb18030.h b/ext/mbstring/libmbfl/filters/mbfilter_gb18030.h new file mode 100644 index 0000000..e182a39 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_gb18030.h @@ -0,0 +1,43 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * the source code included in this files was separated from mbfilter_cn.h + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_GB18030_H +#define MBFL_MBFILTER_GB18030_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_gb18030; +extern const struct mbfl_identify_vtbl vtbl_identify_gb18030; +extern const struct mbfl_convert_vtbl vtbl_gb18030_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_gb18030; + +int mbfl_filt_conv_gb18030_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_gb18030(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_GB18030_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_htmlent.c b/ext/mbstring/libmbfl/filters/mbfilter_htmlent.c new file mode 100644 index 0000000..56c364d --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_htmlent.c @@ -0,0 +1,312 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this part: Marcus Boerger <helly@php.net> + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#ifdef HAVE_STRING_H +#include <string.h> +#endif + +#ifdef HAVE_STRINGS_H +#include <strings.h> +#endif + +#include "mbfilter.h" +#include "mbfilter_htmlent.h" +#include "html_entities.h" + +static const int htmlentitifieds[256] = { + 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 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, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 +}; + +static const char *mbfl_encoding_html_ent_aliases[] = {"HTML", "html", NULL}; + +const mbfl_encoding mbfl_encoding_html_ent = { + mbfl_no_encoding_html_ent, + "HTML-ENTITIES", + "HTML-ENTITIES", + (const char *(*)[])&mbfl_encoding_html_ent_aliases, + NULL, + MBFL_ENCTYPE_ENC_STRM | MBFL_ENCTYPE_GL_UNSAFE +}; + +const struct mbfl_convert_vtbl vtbl_wchar_html = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_html_ent, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_html_enc, + mbfl_filt_conv_html_enc_flush +}; + +const struct mbfl_convert_vtbl vtbl_html_wchar = { + mbfl_no_encoding_html_ent, + mbfl_no_encoding_wchar, + mbfl_filt_conv_html_dec_ctor, + mbfl_filt_conv_html_dec_dtor, + mbfl_filt_conv_html_dec, + mbfl_filt_conv_html_dec_flush }; + + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +/* + * any => HTML + */ +int mbfl_filt_conv_html_enc(int c, mbfl_convert_filter *filter) +{ + int tmp[64]; + int i; + unsigned int uc; + const mbfl_html_entity_entry *e; + + if (c < sizeof(htmlentitifieds) / sizeof(htmlentitifieds[0]) && + htmlentitifieds[c] != 1) { + CK((*filter->output_function)(c, filter->data)); + } else { + CK((*filter->output_function)('&', filter->data)); + for (i = 0; (e = &mbfl_html_entity_list[i])->name != NULL; i++) { + if (c == e->code) { + char *p; + + for (p = e->name; *p != '\0'; p++) { + CK((*filter->output_function)((int)*p, filter->data)); + } + goto last; + } + } + + { + int *p = tmp + sizeof(tmp) / sizeof(tmp[0]); + + CK((*filter->output_function)('#', filter->data)); + + uc = (unsigned int)c; + + *(--p) = '\0'; + do { + *(--p) = "0123456789"[uc % 10]; + uc /= 10; + } while (uc); + + for (; *p != '\0'; p++) { + CK((*filter->output_function)(*p, filter->data)); + } + } + last: + CK((*filter->output_function)(';', filter->data)); + } + return c; +} + +int mbfl_filt_conv_html_enc_flush(mbfl_convert_filter *filter) +{ + filter->status = 0; + filter->opaque = NULL; + + if (filter->flush_function != NULL) { + (*filter->flush_function)(filter->data); + } + + return 0; +} + +/* + * HTML => any + */ +#define html_enc_buffer_size 16 +static const char html_entity_chars[] = "#0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; + +void mbfl_filt_conv_html_dec_ctor(mbfl_convert_filter *filter) +{ + filter->status = 0; + filter->opaque = mbfl_malloc(html_enc_buffer_size+1); +} + +void mbfl_filt_conv_html_dec_dtor(mbfl_convert_filter *filter) +{ + filter->status = 0; + if (filter->opaque) + { + mbfl_free((void*)filter->opaque); + } + filter->opaque = NULL; +} + +int mbfl_filt_conv_html_dec(int c, mbfl_convert_filter *filter) +{ + int pos, ent = 0; + mbfl_html_entity_entry *entity; + char *buffer = (char*)filter->opaque; + + if (!filter->status) { + if (c == '&' ) { + filter->status = 1; + buffer[0] = '&'; + } else { + CK((*filter->output_function)(c, filter->data)); + } + } else { + if (c == ';') { + if (buffer[1]=='#') { + if (filter->status > 2 && (buffer[2] == 'x' || buffer[2] == 'X')) { + if (filter->status > 3) { + /* numeric entity */ + for (pos=3; pos<filter->status; pos++) { + int v = buffer[pos]; + if (v >= '0' && v <= '9') { + v = v - '0'; + } else if (v >= 'A' && v <= 'F') { + v = v - 'A' + 10; + } else if (v >= 'a' && v <= 'f') { + v = v - 'a' + 10; + } else { + ent = -1; + break; + } + ent = ent * 16 + v; + } + } else { + ent = -1; + } + } else { + /* numeric entity */ + if (filter->status > 2) { + for (pos=2; pos<filter->status; pos++) { + int v = buffer[pos]; + if (v >= '0' && v <= '9') { + v = v - '0'; + } else { + ent = -1; + break; + } + ent = ent*10 + v; + } + } else { + ent = -1; + } + } + if (ent >= 0 && ent < 0x110000) { + CK((*filter->output_function)(ent, filter->data)); + } else { + for (pos = 0; pos < filter->status; pos++) { + CK((*filter->output_function)(buffer[pos], filter->data)); + } + CK((*filter->output_function)(c, filter->data)); + } + filter->status = 0; + /*php_error_docref("ref.mbstring" TSRMLS_CC, E_NOTICE, "mbstring decoded '%s'=%d", buffer, ent);*/ + } else { + /* named entity */ + buffer[filter->status] = 0; + entity = (mbfl_html_entity_entry *)mbfl_html_entity_list; + while (entity->name) { + if (!strcmp(buffer+1, entity->name)) { + ent = entity->code; + break; + } + entity++; + } + if (ent) { + /* decoded */ + CK((*filter->output_function)(ent, filter->data)); + filter->status = 0; + /*php_error_docref("ref.mbstring" TSRMLS_CC, E_NOTICE,"mbstring decoded '%s'=%d", buffer, ent);*/ + } else { + /* failure */ + buffer[filter->status++] = ';'; + buffer[filter->status] = 0; + /* php_error_docref("ref.mbstring" TSRMLS_CC, E_WARNING, "mbstring cannot decode '%s'", buffer); */ + mbfl_filt_conv_html_dec_flush(filter); + } + } + } else { + /* add character */ + buffer[filter->status++] = c; + /* add character and check */ + if (!strchr(html_entity_chars, c) || filter->status+1==html_enc_buffer_size || (c=='#' && filter->status>2)) + { + /* illegal character or end of buffer */ + if (c=='&') + filter->status--; + buffer[filter->status] = 0; + /* php_error_docref("ref.mbstring" TSRMLS_CC, E_WARNING, "mbstring cannot decode '%s'", buffer)l */ + mbfl_filt_conv_html_dec_flush(filter); + if (c=='&') + { + buffer[filter->status++] = '&'; + } + } + } + } + return c; +} + +int mbfl_filt_conv_html_dec_flush(mbfl_convert_filter *filter) +{ + int status, pos = 0; + unsigned char *buffer; + int err = 0; + + buffer = (unsigned char*)filter->opaque; + status = filter->status; + filter->status = 0; + + /* flush fragments */ + while (status--) { + int e = (*filter->output_function)(buffer[pos++], filter->data); + if (e != 0) + err = e; + } + + if (filter->flush_function != NULL) { + (*filter->flush_function)(filter->data); + } + + return err; +} + + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_htmlent.h b/ext/mbstring/libmbfl/filters/mbfilter_htmlent.h new file mode 100644 index 0000000..99827c2 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_htmlent.h @@ -0,0 +1,48 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this part: Marcus Boerger <helly@php.net> + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_HTMLENT_H +#define MBFL_MBFILTER_HTMLENT_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_html_ent; +extern const struct mbfl_convert_vtbl vtbl_wchar_html; +extern const struct mbfl_convert_vtbl vtbl_html_wchar; + +void mbfl_filt_conv_html_dec_ctor(mbfl_convert_filter *filter); +void mbfl_filt_conv_html_dec_dtor(mbfl_convert_filter *filter); +int mbfl_filt_conv_html_enc(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_html_enc_flush(mbfl_convert_filter *filter); +int mbfl_filt_conv_html_dec(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_html_dec_flush(mbfl_convert_filter *filter); +void mbfl_filt_conv_html_dec_ctor(mbfl_convert_filter *filter); +void mbfl_filt_conv_html_dec_dtor(mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_HTMLENT_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_hz.c b/ext/mbstring/libmbfl/filters/mbfilter_hz.c new file mode 100644 index 0000000..893ad5f --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_hz.c @@ -0,0 +1,284 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter_cn.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_hz.h" + +#include "unicode_table_cp936.h" + +static int mbfl_filt_ident_hz(int c, mbfl_identify_filter *filter); + +const mbfl_encoding mbfl_encoding_hz = { + mbfl_no_encoding_hz, + "HZ", + "HZ-GB-2312", + NULL, + NULL, + MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_SHFTCODE | MBFL_ENCTYPE_GL_UNSAFE +}; + +const struct mbfl_identify_vtbl vtbl_identify_hz = { + mbfl_no_encoding_hz, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_hz +}; + +const struct mbfl_convert_vtbl vtbl_hz_wchar = { + mbfl_no_encoding_hz, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_hz_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_hz = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_hz, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_hz, + mbfl_filt_conv_any_hz_flush +}; + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +/* + * HZ => wchar + */ +int +mbfl_filt_conv_hz_wchar(int c, mbfl_convert_filter *filter) +{ + int c1, s, w; + + switch (filter->status & 0xf) { +/* case 0x00: ASCII */ +/* case 0x10: GB2312 */ + case 0: + if (c == 0x7e) { + filter->status += 2; + } else if (filter->status == 0x10 && c > 0x20 && c < 0x7f) { /* DBCS first char */ + filter->cache = c; + filter->status += 1; + } else if (c >= 0 && c < 0x80) { /* latin, CTLs */ + CK((*filter->output_function)(c, filter->data)); + } else { + w = c & MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + +/* case 0x11: GB2312 second char */ + case 1: + filter->status &= ~0xf; + c1 = filter->cache; + if (c1 > 0x20 && c1 < 0x7f && c > 0x20 && c < 0x7f) { + s = (c1 - 1)*192 + c + 0x40; /* GB2312 */ + if (s >= 0 && s < cp936_ucs_table_size) { + w = cp936_ucs_table[s]; + } else { + w = 0; + } + if (w <= 0) { + w = (c1 << 8) | c; + w &= MBFL_WCSPLANE_MASK; + w |= MBFL_WCSPLANE_GB2312; + } + CK((*filter->output_function)(w, filter->data)); + } else if ((c >= 0 && c < 0x21) || c == 0x7f) { /* CTLs */ + CK((*filter->output_function)(c, filter->data)); + } else { + w = (c1 << 8) | c; + w &= MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + + /* '~' */ + case 2: + if (c == 0x7d) { /* '}' */ + filter->status = 0x0; + } else if (c == 0x7b) { /* '{' */ + filter->status = 0x10; + } else if (c == 0x7e) { /* '~' */ + filter->status = 0x0; + CK((*filter->output_function)(0x007e, filter->data)); + } + break; + + default: + filter->status = 0; + break; + } + + return c; +} + +/* + * wchar => HZ + */ +int +mbfl_filt_conv_wchar_hz(int c, mbfl_convert_filter *filter) +{ + int s; + + s = 0; + if (c >= ucs_a1_cp936_table_min && c < ucs_a1_cp936_table_max) { + s = ucs_a1_cp936_table[c - ucs_a1_cp936_table_min]; + } else if (c >= ucs_a2_cp936_table_min && c < ucs_a2_cp936_table_max) { + s = ucs_a2_cp936_table[c - ucs_a2_cp936_table_min]; + } else if (c >= ucs_a3_cp936_table_min && c < ucs_a3_cp936_table_max) { + s = ucs_a3_cp936_table[c - ucs_a3_cp936_table_min]; + } else if (c >= ucs_i_cp936_table_min && c < ucs_i_cp936_table_max) { + s = ucs_i_cp936_table[c - ucs_i_cp936_table_min]; + } else if (c >= ucs_hff_cp936_table_min && c < ucs_hff_cp936_table_max) { + if (c == 0xff04) { + s = 0xa1e7; + } else if (c == 0xff5e) { + s = 0xa1ab; + } else if (c >= 0xff01 && c <= 0xff5d) { + s = c - 0xff01 + 0xa3a1; + } else if (c >= 0xffe0 && c <= 0xffe5) { + s = ucs_hff_s_cp936_table[c-0xffe0]; + } + } + if (s & 0x8000) { + s -= 0x8080; + } + + if (s <= 0) { + if (c == 0) { + s = 0; + } else if (s <= 0) { + s = -1; + } + } else if ((s >= 0x80 && s < 0x2121) || (s > 0x8080)) { + s = -1; + } + if (s >= 0) { + if (s < 0x80) { /* ASCII */ + if ((filter->status & 0xff00) != 0) { + CK((*filter->output_function)(0x7e, filter->data)); /* '~' */ + CK((*filter->output_function)(0x7d, filter->data)); /* '}' */ + } + filter->status = 0; + if (s == 0x7e){ + CK((*filter->output_function)(0x7e, filter->data)); + } + CK((*filter->output_function)(s, filter->data)); + } else { /* GB 2312-80 */ + if ((filter->status & 0xff00) != 0x200) { + CK((*filter->output_function)(0x7e, filter->data)); /* '~' */ + CK((*filter->output_function)(0x7b, filter->data)); /* '{' */ + } + filter->status = 0x200; + CK((*filter->output_function)((s >> 8) & 0x7f, filter->data)); + CK((*filter->output_function)(s & 0x7f, filter->data)); + } + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + +int +mbfl_filt_conv_any_hz_flush(mbfl_convert_filter *filter) +{ + /* back to latin */ + if ((filter->status & 0xff00) != 0) { + CK((*filter->output_function)(0x7e, filter->data)); /* ~ */ + CK((*filter->output_function)(0x7d, filter->data)); /* '{' */ + } + filter->status &= 0xff; + return 0; +} + +static int mbfl_filt_ident_hz(int c, mbfl_identify_filter *filter) +{ + switch (filter->status & 0xf) { +/* case 0x00: ASCII */ +/* case 0x10: GB2312 */ + case 0: + if (c == 0x7e) { + filter->status += 2; + } else if (filter->status == 0x10 && c > 0x20 && c < 0x7f) { /* DBCS first char */ + filter->status += 1; + } else if (c >= 0 && c < 0x80) { /* latin, CTLs */ + ; + } else { + filter->flag = 1; /* bad */ + } + break; + +/* case 0x11: GB2312 second char */ + case 1: + filter->status &= ~0xf; + if (c < 0x21 || c > 0x7e) { /* bad */ + filter->flag = 1; + } + break; + + case 2: + if (c == 0x7d) { /* '}' */ + filter->status = 0; + } else if (c == 0x7b) { /* '{' */ + filter->status = 0x10; + } else if (c == 0x7e) { /* '~' */ + filter->status = 0; + } else { + filter->flag = 1; /* bad */ + filter->status &= ~0xf; + } + break; + + default: + filter->status = 0; + break; + } + + return c; +} + + +/* + * Local variables: + * tab-width: 4 + * c-basic-offset: 4 + * End: + */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_hz.h b/ext/mbstring/libmbfl/filters/mbfilter_hz.h new file mode 100644 index 0000000..1e7ebc3 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_hz.h @@ -0,0 +1,44 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter_cn.h + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_HZ_H +#define MBFL_MBFILTER_HZ_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_hz; +extern const struct mbfl_identify_vtbl vtbl_identify_hz; +extern const struct mbfl_convert_vtbl vtbl_hz_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_hz; + +int mbfl_filt_conv_hz_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_hz(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_any_hz_flush(mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_HZ_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_iso2022_jp_ms.c b/ext/mbstring/libmbfl/filters/mbfilter_iso2022_jp_ms.c new file mode 100644 index 0000000..a7daf2b --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_iso2022_jp_ms.c @@ -0,0 +1,528 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter_ja.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_iso2022_jp_ms.h" + +#include "unicode_table_cp932_ext.h" +#include "unicode_table_jis.h" +#include "cp932_table.h" + +int mbfl_filt_ident_2022jpms(int c, mbfl_identify_filter *filter); + +static const char *mbfl_encoding_2022jpms_aliases[] = {"ISO2022JPMS", NULL}; + +const mbfl_encoding mbfl_encoding_2022jpms = { + mbfl_no_encoding_2022jpms, + "ISO-2022-JP-MS", + "ISO-2022-JP", + (const char *(*)[])&mbfl_encoding_2022jpms_aliases, + NULL, + MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_SHFTCODE | MBFL_ENCTYPE_GL_UNSAFE +}; + +const struct mbfl_identify_vtbl vtbl_identify_2022jpms = { + mbfl_no_encoding_2022jpms, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_2022jpms +}; + +const struct mbfl_convert_vtbl vtbl_2022jpms_wchar = { + mbfl_no_encoding_2022jpms, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_2022jpms_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_2022jpms = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_2022jpms, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_2022jpms, + mbfl_filt_conv_any_2022jpms_flush +}; + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +#define sjistoidx(c1, c2) \ + (((c1) > 0x9f) \ + ? (((c1) - 0xc1) * 188 + (c2) - (((c2) > 0x7e) ? 0x41 : 0x40)) \ + : (((c1) - 0x81) * 188 + (c2) - (((c2) > 0x7e) ? 0x41 : 0x40))) +#define idxtojis1(c) (((c) / 94) + 0x21) +#define idxtojis2(c) (((c) % 94) + 0x21) + +/* + * ISO-2022-JP-MS => wchar + */ +int +mbfl_filt_conv_2022jpms_wchar(int c, mbfl_convert_filter *filter) +{ + int c1, s, w; + +retry: + switch (filter->status & 0xf) { +/* case 0x00: ASCII */ +/* case 0x10: X 0201 latin */ +/* case 0x20: X 0201 kana */ +/* case 0x80: X 0208 */ +/* case 0xa0: UDC */ + case 0: + if (c == 0x1b) { + filter->status += 2; + } else if (filter->status == 0x20 && c > 0x20 && c < 0x60) { /* kana */ + CK((*filter->output_function)(0xff40 + c, filter->data)); + } else if ((filter->status == 0x80 || filter->status == 0xa0) && c > 0x20 && c < 0x80) { /* kanji first char */ + filter->cache = c; + filter->status += 1; + } else if (c >= 0 && c < 0x80) { /* latin, CTLs */ + CK((*filter->output_function)(c, filter->data)); + } else if (c > 0xa0 && c < 0xe0) { /* GR kana */ + CK((*filter->output_function)(0xfec0 + c, filter->data)); + } else { + w = c & MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + +/* case 0x81: X 0208 second char */ +/* case 0xa1: UDC second char */ + case 1: + w = 0; + filter->status &= ~0xf; + c1 = filter->cache; + if (c > 0x20 && c < 0x7f) { + s = (c1 - 0x21)*94 + c - 0x21; + if (filter->status == 0x80) { + if (s <= 137) { + if (s == 31) { + w = 0xff3c; /* FULLWIDTH REVERSE SOLIDUS */ + } else if (s == 32) { + w = 0xff5e; /* FULLWIDTH TILDE */ + } else if (s == 33) { + w = 0x2225; /* PARALLEL TO */ + } else if (s == 60) { + w = 0xff0d; /* FULLWIDTH HYPHEN-MINUS */ + } else if (s == 80) { + w = 0xffe0; /* FULLWIDTH CENT SIGN */ + } else if (s == 81) { + w = 0xffe1; /* FULLWIDTH POUND SIGN */ + } else if (s == 137) { + w = 0xffe2; /* FULLWIDTH NOT SIGN */ + } + } + if (w == 0) { + if (s >= cp932ext1_ucs_table_min && s < cp932ext1_ucs_table_max) { /* vendor ext1 (13ku) */ + w = cp932ext1_ucs_table[s - cp932ext1_ucs_table_min]; + } else if (s >= 0 && s < jisx0208_ucs_table_size) { + w = jisx0208_ucs_table[s]; + } else if (s >= cp932ext2_ucs_table_min && s < cp932ext2_ucs_table_max) { /* vendor ext2 (89ku - 92ku) */ + w = cp932ext2_ucs_table[s - cp932ext2_ucs_table_min]; + } else { + w = 0; + } + } + if (w <= 0) { + w = (c1 << 8) | c; + w &= MBFL_WCSPLANE_MASK; + w |= MBFL_WCSPLANE_JIS0208; + } + CK((*filter->output_function)(w, filter->data)); + } else { + if (c1 > 0x20 && c1 < 0x35) { + w = 0xe000 + (c1 - 0x21)*94 + c - 0x21; + } + if (w <= 0) { + w = (((c1 - 0x21) + 0x7f) << 8) | c; + w &= MBFL_WCSPLANE_MASK; + w |= MBFL_WCSPLANE_JIS0208; + } + CK((*filter->output_function)(w, filter->data)); + } + } else if (c == 0x1b) { + filter->status += 2; + } else if ((c >= 0 && c < 0x21) || c == 0x7f) { /* CTLs */ + CK((*filter->output_function)(c, filter->data)); + } else { + w = (c1 << 8) | c; + w &= MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + + /* ESC */ +/* case 0x02: */ +/* case 0x12: */ +/* case 0x22: */ +/* case 0x82: */ +/* case 0xa2: */ + case 2: + if (c == 0x24) { /* '$' */ + filter->status++; + } else if (c == 0x28) { /* '(' */ + filter->status += 3; + } else { + filter->status &= ~0xf; + CK((*filter->output_function)(0x1b, filter->data)); + goto retry; + } + break; + + /* ESC $ */ +/* case 0x03: */ +/* case 0x13: */ +/* case 0x23: */ +/* case 0x83: */ +/* case 0xa3: */ + case 3: + if (c == 0x40 || c == 0x42) { /* '@' or 'B' */ + filter->status = 0x80; + } else if (c == 0x28) { /* '(' */ + filter->status++; + } else { + filter->status &= ~0xf; + CK((*filter->output_function)(0x1b, filter->data)); + CK((*filter->output_function)(0x24, filter->data)); + goto retry; + } + break; + + /* ESC $ ( */ +/* case 0x04: */ +/* case 0x14: */ +/* case 0x24: */ +/* case 0x84: */ +/* case 0xa4: */ + case 4: + if (c == 0x40 || c == 0x42) { /* '@' or 'B' */ + filter->status = 0x80; + } else if (c == 0x3f) { /* '?' */ + filter->status = 0xa0; + } else { + filter->status &= ~0xf; + CK((*filter->output_function)(0x1b, filter->data)); + CK((*filter->output_function)(0x24, filter->data)); + CK((*filter->output_function)(0x28, filter->data)); + goto retry; + } + break; + + /* ESC ( */ +/* case 0x05: */ +/* case 0x15: */ +/* case 0x25: */ +/* case 0x85: */ +/* case 0xa5: */ + case 5: + if (c == 0x42) { /* 'B' */ + filter->status = 0; + } else if (c == 0x4a) { /* 'J' */ + filter->status = 0; + } else if (c == 0x49) { /* 'I' */ + filter->status = 0x20; + } else { + filter->status &= ~0xf; + CK((*filter->output_function)(0x1b, filter->data)); + CK((*filter->output_function)(0x28, filter->data)); + goto retry; + } + break; + + default: + filter->status = 0; + break; + } + + return c; +} + +static int +cp932ext3_cp932ext2_jis(int c) +{ + int idx; + + idx = sjistoidx(0xfa, 0x40) + c; + if (idx >= sjistoidx(0xfa, 0x5c)) + idx -= sjistoidx(0xfa, 0x5c) - sjistoidx(0xed, 0x40); + else if (idx >= sjistoidx(0xfa, 0x55)) + idx -= sjistoidx(0xfa, 0x55) - sjistoidx(0xee, 0xfa); + else if (idx >= sjistoidx(0xfa, 0x40)) + idx -= sjistoidx(0xfa, 0x40) - sjistoidx(0xee, 0xef); + return idxtojis1(idx) << 8 | idxtojis2(idx); +} + +/* + * wchar => ISO-2022-JP-MS + */ +int +mbfl_filt_conv_wchar_2022jpms(int c, mbfl_convert_filter *filter) +{ + int c1, c2, s1, s2; + + s1 = 0; + s2 = 0; + if (c >= ucs_a1_jis_table_min && c < ucs_a1_jis_table_max) { + s1 = ucs_a1_jis_table[c - ucs_a1_jis_table_min]; + } else if (c >= ucs_a2_jis_table_min && c < ucs_a2_jis_table_max) { + s1 = ucs_a2_jis_table[c - ucs_a2_jis_table_min]; + } else if (c >= ucs_i_jis_table_min && c < ucs_i_jis_table_max) { + s1 = ucs_i_jis_table[c - ucs_i_jis_table_min]; + } else if (c >= ucs_r_jis_table_min && c < ucs_r_jis_table_max) { + s1 = ucs_r_jis_table[c - ucs_r_jis_table_min]; + } else if (c >= 0xe000 && c < (0xe000 + 20*94)) { /* user (95ku - 114ku) */ + s1 = c - 0xe000; + c1 = s1/94 + 0x7f; + c2 = s1%94 + 0x21; + s1 = (c1 << 8) | c2; + } + if (s1 <= 0) { + c1 = c & ~MBFL_WCSPLANE_MASK; + if (c1 == MBFL_WCSPLANE_WINCP932) { + s1 = c & MBFL_WCSPLANE_MASK; + s2 = 1; + } else if (c1 == MBFL_WCSPLANE_JIS0208) { + s1 = c & MBFL_WCSPLANE_MASK; + } else if (c1 == MBFL_WCSPLANE_JIS0212) { + s1 = c & MBFL_WCSPLANE_MASK; + s1 |= 0x8080; + } else if (c == 0xa5) { /* YEN SIGN */ + s1 = 0x216f; /* FULLWIDTH YEN SIGN */ + } else if (c == 0x203e) { /* OVER LINE */ + s1 = 0x2131; /* FULLWIDTH MACRON */ + } else if (c == 0xff3c) { /* FULLWIDTH REVERSE SOLIDUS */ + s1 = 0x2140; + } else if (c == 0xff5e) { /* FULLWIDTH TILDE */ + s1 = 0x2141; + } else if (c == 0x2225) { /* PARALLEL TO */ + s1 = 0x2142; + } else if (c == 0xff0d) { /* FULLWIDTH HYPHEN-MINUS */ + s1 = 0x215d; + } else if (c == 0xffe0) { /* FULLWIDTH CENT SIGN */ + s1 = 0x2171; + } else if (c == 0xffe1) { /* FULLWIDTH POUND SIGN */ + s1 = 0x2172; + } else if (c == 0xffe2) { /* FULLWIDTH NOT SIGN */ + s1 = 0x224c; + } + } + if ((s1 <= 0) || (s1 >= 0xa1a1 && s2 == 0)) { /* not found or X 0212 */ + s1 = -1; + c1 = 0; + c2 = cp932ext1_ucs_table_max - cp932ext1_ucs_table_min; + while (c1 < c2) { /* CP932 vendor ext1 (13ku) */ + if (c == cp932ext1_ucs_table[c1]) { + s1 = ((c1/94 + 0x2d) << 8) + (c1%94 + 0x21); + break; + } + c1++; + } + if (s1 <= 0) { + c1 = 0; + c2 = cp932ext3_ucs_table_max - cp932ext3_ucs_table_min; + while (c1 < c2) { /* CP932 vendor ext3 (115ku - 119ku) */ + if (c == cp932ext3_ucs_table[c1]) { + s1 = cp932ext3_cp932ext2_jis(c1); + break; + } + c1++; + } + } + if (c == 0) { + s1 = 0; + } else if (s1 <= 0) { + s1 = -1; + } + } + if (s1 >= 0) { + if (s1 < 0x80) { /* latin */ + if ((filter->status & 0xff00) != 0) { + CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ + CK((*filter->output_function)(0x28, filter->data)); /* '(' */ + CK((*filter->output_function)(0x42, filter->data)); /* 'B' */ + } + CK((*filter->output_function)(s1, filter->data)); + filter->status = 0; + } else if (s1 > 0xa0 && s1 < 0xe0) { /* kana */ + if ((filter->status & 0xff00) != 0x100) { + CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ + CK((*filter->output_function)(0x28, filter->data)); /* '(' */ + CK((*filter->output_function)(0x49, filter->data)); /* 'I' */ + } + filter->status = 0x100; + CK((*filter->output_function)(s1 & 0x7f, filter->data)); + } else if (s1 < 0x7e7f) { /* X 0208 */ + if ((filter->status & 0xff00) != 0x200) { + CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ + CK((*filter->output_function)(0x24, filter->data)); /* '$' */ + CK((*filter->output_function)(0x42, filter->data)); /* 'B' */ + } + filter->status = 0x200; + CK((*filter->output_function)((s1 >> 8) & 0xff, filter->data)); + CK((*filter->output_function)(s1 & 0x7f, filter->data)); + } else if (s1 < 0x927f) { /* UDC */ + if ((filter->status & 0xff00) != 0x800) { + CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ + CK((*filter->output_function)(0x24, filter->data)); /* '$' */ + CK((*filter->output_function)(0x28, filter->data)); /* '(' */ + CK((*filter->output_function)(0x3f, filter->data)); /* '?' */ + } + filter->status = 0x800; + CK((*filter->output_function)(((s1 >> 8) - 0x5e) & 0x7f, filter->data)); + CK((*filter->output_function)(s1 & 0x7f, filter->data)); + } + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + +int +mbfl_filt_conv_any_2022jpms_flush(mbfl_convert_filter *filter) +{ + /* back to latin */ + if ((filter->status & 0xff00) != 0) { + CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ + CK((*filter->output_function)(0x28, filter->data)); /* '(' */ + CK((*filter->output_function)(0x42, filter->data)); /* 'B' */ + } + + filter->status &= 0xff; + + if (filter->flush_function != NULL) { + return (*filter->flush_function)(filter->data); + } + + return 0; +} + +int mbfl_filt_ident_2022jpms(int c, mbfl_identify_filter *filter) +{ +retry: + switch (filter->status & 0xf) { +/* case 0x00: ASCII */ +/* case 0x10: X 0201 latin */ +/* case 0x20: X 0201 kana */ +/* case 0x80: X 0208 */ +/* case 0xa0: X UDC */ + case 0: + if (c == 0x1b) { + filter->status += 2; + } else if ((filter->status == 0x80 || filter->status == 0xa0) && c > 0x20 && c < 0x80) { /* kanji first char */ + filter->status += 1; + } else if (c >= 0 && c < 0x80) { /* latin, CTLs */ + ; + } else { + filter->flag = 1; /* bad */ + } + break; + +/* case 0x81: X 0208 second char */ +/* case 0xa1: UDC second char */ + case 1: + filter->status &= ~0xf; + if (c == 0x1b) { + goto retry; + } else if (c < 0x21 || c > 0x7e) { /* bad */ + filter->flag = 1; + } + break; + + /* ESC */ + case 2: + if (c == 0x24) { /* '$' */ + filter->status++; + } else if (c == 0x28) { /* '(' */ + filter->status += 3; + } else { + filter->flag = 1; /* bad */ + filter->status &= ~0xf; + goto retry; + } + break; + + /* ESC $ */ + case 3: + if (c == 0x40 || c == 0x42) { /* '@' or 'B' */ + filter->status = 0x80; + } else if (c == 0x28) { /* '(' */ + filter->status++; + } else { + filter->flag = 1; /* bad */ + filter->status &= ~0xf; + goto retry; + } + break; + + /* ESC $ ( */ + case 4: + if (c == 0x40 || c == 0x42) { /* '@' or 'B' */ + filter->status = 0x80; + } else if (c == 0x3f) { /* '?' */ + filter->status = 0xa0; + } else { + filter->flag = 1; /* bad */ + filter->status &= ~0xf; + goto retry; + } + break; + + /* ESC ( */ + case 5: + if (c == 0x42) { /* 'B' */ + filter->status = 0; + } else if (c == 0x4a) { /* 'J' */ + filter->status = 0; + } else if (c == 0x49) { /* 'I' */ + filter->status = 0x20; + } else { + filter->flag = 1; /* bad */ + filter->status &= ~0xf; + goto retry; + } + break; + + default: + filter->status = 0; + break; + } + + return c; +} diff --git a/ext/mbstring/libmbfl/filters/mbfilter_iso2022_jp_ms.h b/ext/mbstring/libmbfl/filters/mbfilter_iso2022_jp_ms.h new file mode 100644 index 0000000..8479a45 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_iso2022_jp_ms.h @@ -0,0 +1,44 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter_ja.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_ISO2022_JP_MS_H +#define MBFL_MBFILTER_ISO2022_JP_MS_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_2022jpms; +extern const struct mbfl_identify_vtbl vtbl_identify_2022jpms; +extern const struct mbfl_convert_vtbl vtbl_2022jpms_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_2022jpms; + +int mbfl_filt_conv_2022jpms_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_2022jpms(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_any_2022jpms_flush(mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_ISO2022_JP_MS_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_iso2022_kr.c b/ext/mbstring/libmbfl/filters/mbfilter_iso2022_kr.c new file mode 100644 index 0000000..01c01a4 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_iso2022_kr.c @@ -0,0 +1,359 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter_kr.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_iso2022_kr.h" +#include "unicode_table_uhc.h" + +static int mbfl_filt_ident_2022kr(int c, mbfl_identify_filter *filter); + +const mbfl_encoding mbfl_encoding_2022kr = { + mbfl_no_encoding_2022kr, + "ISO-2022-KR", + "ISO-2022-KR", + NULL, + NULL, + MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_SHFTCODE | MBFL_ENCTYPE_GL_UNSAFE +}; + +const struct mbfl_identify_vtbl vtbl_identify_2022kr = { + mbfl_no_encoding_2022kr, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_2022kr +}; + +const struct mbfl_convert_vtbl vtbl_wchar_2022kr = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_2022kr, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_2022kr, + mbfl_filt_conv_any_2022kr_flush +}; + +const struct mbfl_convert_vtbl vtbl_2022kr_wchar = { + mbfl_no_encoding_2022kr, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_2022kr_wchar, + mbfl_filt_conv_common_flush +}; + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +/* + * ISO-2022-KR => wchar + */ +int +mbfl_filt_conv_2022kr_wchar(int c, mbfl_convert_filter *filter) +{ + int c1, w, flag; + +retry: + switch (filter->status & 0xf) { + /* case 0x00: ASCII */ + /* case 0x10: KSC5601 */ + case 0: + if (c == 0x1b) { /* ESC */ + filter->status += 2; + } else if (c == 0x0f) { /* SI (ASCII) */ + filter->status &= ~0xff; + } else if (c == 0x0e) { /* SO (KSC5601) */ + filter->status |= 0x10; + } else if ((filter->status & 0x10) != 0 && c > 0x20 && c < 0x7f) { + /* KSC5601 lead byte */ + filter->cache = c; + filter->status += 1; + } else if ((filter->status & 0x10) == 0 && c >= 0 && c < 0x80) { + /* latin, CTLs */ + CK((*filter->output_function)(c, filter->data)); + } else { + w = c & MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + + case 1: /* dbcs second byte */ + filter->status &= ~0xf; + c1 = filter->cache; + flag = 0; + if (c1 > 0x20 && c1 < 0x47) { + flag = 1; + } else if (c1 >= 0x47 && c1 <= 0x7e && c1 != 0x49) { + flag = 2; + } + if (flag > 0 && c > 0x20 && c < 0x7f) { + if (flag == 1){ + w = (c1 - 0x21)*190 + (c - 0x41) + 0x80; + if (w >= 0 && w < uhc2_ucs_table_size) { + w = uhc2_ucs_table[w]; + } else { + w = 0; + } + } else { + w = (c1 - 0x47)*94 + (c - 0x21); + if (w >= 0 && w < uhc3_ucs_table_size) { + w = uhc3_ucs_table[w]; + } else { + w = 0; + } + } + + if (w <= 0) { + w = (c1 << 8) | c; + w &= MBFL_WCSPLANE_MASK; + w |= MBFL_WCSPLANE_KSC5601; + } + CK((*filter->output_function)(w, filter->data)); + } else if (c == 0x1b) { /* ESC */ + filter->status++; + } else if ((c >= 0 && c < 0x21) || c == 0x7f) { /* CTLs */ + CK((*filter->output_function)(c, filter->data)); + } else { + w = (c1 << 8) | c; + w &= MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + + case 2: /* ESC */ + if (c == 0x24) { /* '$' */ + filter->status++; + } else { + filter->status &= ~0xf; + CK((*filter->output_function)(0x1b, filter->data)); + goto retry; + } + break; + case 3: /* ESC $ */ + if (c == 0x29) { /* ')' */ + filter->status++; + } else { + filter->status &= ~0xf; + CK((*filter->output_function)(0x1b, filter->data)); + CK((*filter->output_function)(0x24, filter->data)); + goto retry; + } + break; + case 4: /* ESC $ ) */ + if (c == 0x43) { /* 'C' */ + filter->status &= ~0xf; + filter->status |= 0x100; + } else { + filter->status &= ~0xf; + CK((*filter->output_function)(0x1b, filter->data)); + CK((*filter->output_function)(0x24, filter->data)); + CK((*filter->output_function)(0x29, filter->data)); + goto retry; + } + break; + default: + filter->status = 0; + break; + } + + return c; +} + +/* + * wchar => ISO-2022-KR + */ +int +mbfl_filt_conv_wchar_2022kr(int c, mbfl_convert_filter *filter) +{ + int c1, c2, s; + + s = 0; + + if (c >= ucs_a1_uhc_table_min && c < ucs_a1_uhc_table_max) { + s = ucs_a1_uhc_table[c - ucs_a1_uhc_table_min]; + } else if (c >= ucs_a2_uhc_table_min && c < ucs_a2_uhc_table_max) { + s = ucs_a2_uhc_table[c - ucs_a2_uhc_table_min]; + } else if (c >= ucs_a3_uhc_table_min && c < ucs_a3_uhc_table_max) { + s = ucs_a3_uhc_table[c - ucs_a3_uhc_table_min]; + } else if (c >= ucs_i_uhc_table_min && c < ucs_i_uhc_table_max) { + s = ucs_i_uhc_table[c - ucs_i_uhc_table_min]; + } else if (c >= ucs_s_uhc_table_min && c < ucs_s_uhc_table_max) { + s = ucs_s_uhc_table[c - ucs_s_uhc_table_min]; + } else if (c >= ucs_r1_uhc_table_min && c < ucs_r1_uhc_table_max) { + s = ucs_r1_uhc_table[c - ucs_r1_uhc_table_min]; + } else if (c >= ucs_r2_uhc_table_min && c < ucs_r2_uhc_table_max) { + s = ucs_r2_uhc_table[c - ucs_r2_uhc_table_min]; + } + + c1 = (s >> 8) & 0xff; + c2 = s & 0xff; + /* exclude UHC extension area */ + if (c1 < 0xa1 || c2 < 0xa1){ + s = c; + } + if (s & 0x8000) { + s -= 0x8080; + } + + if (s <= 0) { + c1 = c & ~MBFL_WCSPLANE_MASK; + if (c1 == MBFL_WCSPLANE_KSC5601) { + s = c & MBFL_WCSPLANE_MASK; + } + if (c == 0) { + s = 0; + } else if (s <= 0) { + s = -1; + } + } else if ((s >= 0x80 && s < 0x2121) || (s > 0x8080)) { + s = -1; + } + if (s >= 0) { + if (s < 0x80 && s > 0) { /* ASCII */ + if ((filter->status & 0x10) != 0) { + CK((*filter->output_function)(0x0f, filter->data)); /* SI */ + filter->status &= ~0x10; + } + CK((*filter->output_function)(s, filter->data)); + } else { + if ( (filter->status & 0x100) == 0) { + CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ + CK((*filter->output_function)(0x24, filter->data)); /* '$' */ + CK((*filter->output_function)(0x29, filter->data)); /* ')' */ + CK((*filter->output_function)(0x43, filter->data)); /* 'C' */ + filter->status |= 0x100; + } + if ((filter->status & 0x10) == 0) { + CK((*filter->output_function)(0x0e, filter->data)); /* SO */ + filter->status |= 0x10; + } + CK((*filter->output_function)((s >> 8) & 0xff, filter->data)); + CK((*filter->output_function)(s & 0xff, filter->data)); + } + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + +int +mbfl_filt_conv_any_2022kr_flush(mbfl_convert_filter *filter) +{ + /* back to ascii */ + if ((filter->status & 0xff00) != 0) { + CK((*filter->output_function)(0x0f, filter->data)); /* SI */ + } + + filter->status &= 0xff; + + if (filter->flush_function != NULL) { + return (*filter->flush_function)(filter->data); + } + + return 0; +} + +static int mbfl_filt_ident_2022kr(int c, mbfl_identify_filter *filter) +{ +retry: + switch (filter->status & 0xf) { +/* case 0x00: ASCII */ +/* case 0x10: KSC5601 mode */ +/* case 0x20: KSC5601 DBCS */ +/* case 0x40: KSC5601 SBCS */ + case 0: + if (!(filter->status & 0x10)) { + if (c == 0x1b) + filter->status += 2; + } else if (filter->status == 0x20 && c > 0x20 && c < 0x7f) { /* kanji first char */ + filter->status += 1; + } else if (c >= 0 && c < 0x80) { /* latin, CTLs */ + ; + } else { + filter->flag = 1; /* bad */ + } + break; + +/* case 0x21: KSC5601 second char */ + case 1: + filter->status &= ~0xf; + if (c < 0x21 || c > 0x7e) { /* bad */ + filter->flag = 1; + } + break; + + /* ESC */ + case 2: + if (c == 0x24) { /* '$' */ + filter->status++; + } else { + filter->flag = 1; /* bad */ + filter->status &= ~0xf; + goto retry; + } + break; + + /* ESC $ */ + case 3: + if (c == 0x29) { /* ')' */ + filter->status++; + } else { + filter->flag = 1; /* bad */ + filter->status &= ~0xf; + goto retry; + } + break; + + /* ESC $) */ + case 5: + if (c == 0x43) { /* 'C' */ + filter->status = 0x10; + } else { + filter->flag = 1; /* bad */ + filter->status &= ~0xf; + goto retry; + } + break; + + default: + filter->status = 0; + break; + } + + return c; +} + + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_iso2022_kr.h b/ext/mbstring/libmbfl/filters/mbfilter_iso2022_kr.h new file mode 100644 index 0000000..1dd9f69 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_iso2022_kr.h @@ -0,0 +1,44 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter_kr.h + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_ISO2022_KR_H +#define MBFL_MBFILTER_ISO2022_KR_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_2022kr; +extern const struct mbfl_identify_vtbl vtbl_identify_2022kr; +extern const struct mbfl_convert_vtbl vtbl_wchar_2022kr; +extern const struct mbfl_convert_vtbl vtbl_2022kr_wchar; + +int mbfl_filt_conv_2022kr_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_2022kr(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_any_2022kr_flush(mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_ISO2022_KR_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_iso2022jp_2004.c b/ext/mbstring/libmbfl/filters/mbfilter_iso2022jp_2004.c new file mode 100644 index 0000000..d855374 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_iso2022jp_2004.c @@ -0,0 +1,168 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter_jis.c + * by rui hirokawa <hirokawa@php.net> on 18 aug 2011. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_iso2022jp_2004.h" +#include "mbfilter_sjis_2004.h" + +#include "unicode_table_jis2004.h" +#include "unicode_table_jis.h" + +extern int mbfl_filt_conv_any_jis_flush(mbfl_convert_filter *filter); +static int mbfl_filt_ident_2022jp_2004(int c, mbfl_identify_filter *filter); + +const mbfl_encoding mbfl_encoding_2022jp_2004 = { + mbfl_no_encoding_2022jp_2004, + "ISO-2022-JP-2004", + "ISO-2022-JP-2004", + NULL, + NULL, + MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_SHFTCODE | MBFL_ENCTYPE_GL_UNSAFE +}; + +const struct mbfl_identify_vtbl vtbl_identify_2022jp_2004 = { + mbfl_no_encoding_2022jp_2004, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_2022jp_2004 +}; + +const struct mbfl_convert_vtbl vtbl_2022jp_2004_wchar = { + mbfl_no_encoding_2022jp_2004, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_jis2004_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_2022jp_2004 = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_2022jp_2004, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_jis2004, + mbfl_filt_conv_jis2004_flush +}; + +static int mbfl_filt_ident_2022jp_2004(int c, mbfl_identify_filter *filter) +{ +retry: + switch (filter->status & 0xf) { +/* case 0x00: ASCII */ +/* case 0x80: X 0212 */ +/* case 0x90: X 0213 plane 1 */ +/* case 0xa0: X 0213 plane 2 */ + case 0: + if (c == 0x1b) { + filter->status += 2; + } else if (filter->status == 0x80 && c > 0x20 && c < 0x7f) { /* kanji first char */ + filter->status += 1; + } else if (c >= 0 && c < 0x80) { /* latin, CTLs */ + ; + } else { + filter->flag = 1; /* bad */ + } + break; + +/* case 0x81: X 0208 second char */ + case 1: + if (c == 0x1b) { + filter->status++; + } else { + filter->status &= ~0xf; + if (c < 0x21 || c > 0x7e) { /* bad */ + filter->flag = 1; + } + } + break; + + /* ESC */ + case 2: + if (c == 0x24) { /* '$' */ + filter->status++; + } else if (c == 0x28) { /* '(' */ + filter->status += 3; + } else { + filter->flag = 1; /* bad */ + filter->status &= ~0xf; + goto retry; + } + break; + + /* ESC $ */ + case 3: + if (c == 0x42) { /* 'B' */ + filter->status = 0x80; + } else if (c == 0x28) { /* '(' */ + filter->status++; + } else { + filter->flag = 1; /* bad */ + filter->status &= ~0xf; + goto retry; + } + break; + + /* ESC $ ( */ + case 4: + if (c == 0x51) { /* JIS X 0213 plane 1 */ + filter->status = 0x90; + } else if (c == 0x50) { /* JIS X 0213 plane 2 */ + filter->status = 0xa0; + } else { + filter->flag = 1; /* bad */ + filter->status &= ~0xf; + goto retry; + } + break; + + /* ESC ( */ + case 5: + if (c == 0x42) { /* 'B' */ + filter->status = 0; + } else { + filter->flag = 1; /* bad */ + filter->status &= ~0xf; + goto retry; + } + break; + + default: + filter->status = 0; + break; + } + + return c; +} + + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_iso2022jp_2004.h b/ext/mbstring/libmbfl/filters/mbfilter_iso2022jp_2004.h new file mode 100644 index 0000000..f6e56b9 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_iso2022jp_2004.h @@ -0,0 +1,44 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter_ja.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_2022JP_2004_H +#define MBFL_MBFILTER_2022JP_2004_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_2022jp_2004; +extern const struct mbfl_identify_vtbl vtbl_identify_2022jp_2004; +extern const struct mbfl_convert_vtbl vtbl_2022jp_2004_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_2022jp_2004; + +int mbfl_filt_conv_2022jp_2004_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_2022jp_2004(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_any_2022jp_2004_flush(mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_2022JP_2004_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_iso2022jp_mobile.c b/ext/mbstring/libmbfl/filters/mbfilter_iso2022jp_mobile.c new file mode 100644 index 0000000..4deb029 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_iso2022jp_mobile.c @@ -0,0 +1,433 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter_iso2022_jp_ms.c + * by Rui Hirokawa <hirokawa@php.net> on 25 July 2011. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_iso2022jp_mobile.h" +#include "mbfilter_sjis_mobile.h" + +#include "unicode_table_cp932_ext.h" +#include "unicode_table_jis.h" +#include "cp932_table.h" + +extern int mbfl_filt_conv_any_jis_flush(mbfl_convert_filter *filter); +extern int mbfl_filt_ident_2022jpms(int c, mbfl_identify_filter *filter); + +static const char *mbfl_encoding_2022jp_kddi_aliases[] = {"ISO-2022-JP-KDDI", NULL}; + +const mbfl_encoding mbfl_encoding_2022jp_kddi = { + mbfl_no_encoding_2022jp_kddi, + "ISO-2022-JP-MOBILE#KDDI", + "ISO-2022-JP", + mbfl_encoding_2022jp_kddi_aliases, + NULL, + MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_SHFTCODE | MBFL_ENCTYPE_GL_UNSAFE +}; + +const struct mbfl_identify_vtbl vtbl_identify_2022jp_kddi = { + mbfl_no_encoding_2022jp_kddi, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_2022jpms +}; + +const struct mbfl_convert_vtbl vtbl_2022jp_kddi_wchar = { + mbfl_no_encoding_2022jp_kddi, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_2022jp_mobile_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_2022jp_kddi = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_2022jp_kddi, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_2022jp_mobile, + mbfl_filt_conv_any_jis_flush +}; + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +#define sjistoidx(c1, c2) \ + (((c1) > 0x9f) \ + ? (((c1) - 0xc1) * 188 + (c2) - (((c2) > 0x7e) ? 0x41 : 0x40)) \ + : (((c1) - 0x81) * 188 + (c2) - (((c2) > 0x7e) ? 0x41 : 0x40))) +#define idxtojis1(c) (((c) / 94) + 0x21) +#define idxtojis2(c) (((c) % 94) + 0x21) + +#define SJIS_ENCODE(c1,c2,s1,s2) \ + do { \ + s1 = c1; \ + s1--; \ + s1 >>= 1; \ + if ((c1) < 0x5f) { \ + s1 += 0x71; \ + } else { \ + s1 += 0xb1; \ + } \ + s2 = c2; \ + if ((c1) & 1) { \ + if ((c2) < 0x60) { \ + s2--; \ + } \ + s2 += 0x20; \ + } else { \ + s2 += 0x7e; \ + } \ + } while (0) + +#define SJIS_DECODE(c1,c2,s1,s2) \ + do { \ + s1 = c1; \ + if (s1 < 0xa0) { \ + s1 -= 0x81; \ + } else { \ + s1 -= 0xc1; \ + } \ + s1 <<= 1; \ + s1 += 0x21; \ + s2 = c2; \ + if (s2 < 0x9f) { \ + if (s2 < 0x7f) { \ + s2++; \ + } \ + s2 -= 0x20; \ + } else { \ + s1++; \ + s2 -= 0x7e; \ + } \ + } while (0) + +#define CODE2JIS(c1,c2,s1,s2) \ + c1 = (s1)/94+0x21; \ + c2 = (s1)-94*((c1)-0x21)+0x21; \ + s1 = ((c1) << 8) | (c2); \ + s2 = 1 + +/* + * ISO-2022-JP-Mobile => wchar + */ +int +mbfl_filt_conv_2022jp_mobile_wchar(int c, mbfl_convert_filter *filter) +{ + int c1, s, w, snd; + +retry: + switch (filter->status & 0xf) { +/* case 0x00: ASCII */ +/* case 0x10: X 0201 latin */ +/* case 0x20: X 0201 kana */ +/* case 0x80: X 0208 */ + case 0: + if (c == 0x1b) { + filter->status += 2; + } else if (filter->status == 0x20 && c > 0x20 && c < 0x60) { /* kana */ + CK((*filter->output_function)(0xff40 + c, filter->data)); + } else if (filter->status == 0x80 && c > 0x20 && c < 0x80) { /* kanji first char */ + filter->cache = c; + filter->status += 1; + } else if (c >= 0 && c < 0x80) { /* latin, CTLs */ + CK((*filter->output_function)(c, filter->data)); + } else if (c > 0xa0 && c < 0xe0) { /* GR kana */ + CK((*filter->output_function)(0xfec0 + c, filter->data)); + } else { + w = c & MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + +/* case 0x81: X 0208 second char */ + case 1: + w = 0; + filter->status &= ~0xf; + c1 = filter->cache; + if (c > 0x20 && c < 0x7f) { + s = (c1 - 0x21)*94 + c - 0x21; + + if (s <= 137) { + if (s == 31) { + w = 0xff3c; /* FULLWIDTH REVERSE SOLIDUS */ + } else if (s == 32) { + w = 0xff5e; /* FULLWIDTH TILDE */ + } else if (s == 33) { + w = 0x2225; /* PARALLEL TO */ + } else if (s == 60) { + w = 0xff0d; /* FULLWIDTH HYPHEN-MINUS */ + } else if (s == 80) { + w = 0xffe0; /* FULLWIDTH CENT SIGN */ + } else if (s == 81) { + w = 0xffe1; /* FULLWIDTH POUND SIGN */ + } else if (s == 137) { + w = 0xffe2; /* FULLWIDTH NOT SIGN */ + } + } + + if (w == 0) { + if (s >= cp932ext1_ucs_table_min && s < cp932ext1_ucs_table_max) { /* vendor ext1 (13ku) */ + w = cp932ext1_ucs_table[s - cp932ext1_ucs_table_min]; + } else if (s >= 0 && s < jisx0208_ucs_table_size) { + w = jisx0208_ucs_table[s]; + } else { + w = 0; + } + } + + if (s >= (84*94) && s < 91*94) { + s += 22*94; + if (filter->from->no_encoding == mbfl_no_encoding_2022jp_kddi) { + w = mbfilter_sjis_emoji_kddi2unicode(s, &snd); + } + if (w > 0 && snd > 0) { + CK((*filter->output_function)(snd, filter->data)); + } + } + + if (w <= 0) { + w = (c1 << 8) | c; + w &= MBFL_WCSPLANE_MASK; + w |= MBFL_WCSPLANE_JIS0208; + } + CK((*filter->output_function)(w, filter->data)); + } else if (c == 0x1b) { + filter->status += 2; + } else if ((c >= 0 && c < 0x21) || c == 0x7f) { /* CTLs */ + CK((*filter->output_function)(c, filter->data)); + } else { + w = (c1 << 8) | c; + w &= MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + + /* ESC */ +/* case 0x02: */ +/* case 0x12: */ +/* case 0x22: */ +/* case 0x82: */ + case 2: + if (c == 0x24) { /* '$' */ + filter->status++; + } else if (c == 0x28) { /* '(' */ + filter->status += 3; + } else { + filter->status &= ~0xf; + CK((*filter->output_function)(0x1b, filter->data)); + goto retry; + } + break; + + /* ESC $ */ +/* case 0x03: */ +/* case 0x13: */ +/* case 0x23: */ +/* case 0x83: */ + case 3: + if (c == 0x40 || c == 0x42) { /* '@' or 'B' */ + filter->status = 0x80; + } else if (c == 0x28) { /* '(' */ + filter->status++; + } else { + filter->status &= ~0xf; + CK((*filter->output_function)(0x1b, filter->data)); + CK((*filter->output_function)(0x24, filter->data)); + goto retry; + } + break; + + /* ESC $ ( */ +/* case 0x04: */ +/* case 0x14: */ +/* case 0x24: */ +/* case 0x84: */ + case 4: + if (c == 0x40 || c == 0x42) { /* '@' or 'B' */ + filter->status = 0x80; + } else { + filter->status &= ~0xf; + CK((*filter->output_function)(0x1b, filter->data)); + CK((*filter->output_function)(0x24, filter->data)); + CK((*filter->output_function)(0x28, filter->data)); + goto retry; + } + break; + + /* ESC ( */ +/* case 0x05: */ +/* case 0x15: */ +/* case 0x25: */ +/* case 0x85: */ + case 5: + if (c == 0x42) { /* 'B' */ + filter->status = 0; + } else if (c == 0x4a) { /* 'J' */ + filter->status = 0; + } else if (c == 0x49) { /* 'I' */ + filter->status = 0x20; + } else { + filter->status &= ~0xf; + CK((*filter->output_function)(0x1b, filter->data)); + CK((*filter->output_function)(0x28, filter->data)); + goto retry; + } + break; + + default: + filter->status = 0; + break; + } + + return c; +} + +/* + * wchar => ISO-2022-JP-Mobile + */ +int +mbfl_filt_conv_wchar_2022jp_mobile(int c, mbfl_convert_filter *filter) +{ + int c1, c2, s1, s2; + + s1 = 0; + s2 = 0; + if (c >= ucs_a1_jis_table_min && c < ucs_a1_jis_table_max) { + s1 = ucs_a1_jis_table[c - ucs_a1_jis_table_min]; + } else if (c >= ucs_a2_jis_table_min && c < ucs_a2_jis_table_max) { + s1 = ucs_a2_jis_table[c - ucs_a2_jis_table_min]; + } else if (c >= ucs_i_jis_table_min && c < ucs_i_jis_table_max) { + s1 = ucs_i_jis_table[c - ucs_i_jis_table_min]; + } else if (c >= ucs_r_jis_table_min && c < ucs_r_jis_table_max) { + s1 = ucs_r_jis_table[c - ucs_r_jis_table_min]; + } else if (c >= 0xe000 && c < (0xe000 + 20*94)) { /* user (95ku - 114ku) */ + s1 = c - 0xe000; + c1 = s1/94 + 0x7f; + c2 = s1%94 + 0x21; + s1 = (c1 << 8) | c2; + } + if (s1 <= 0) { + c1 = c & ~MBFL_WCSPLANE_MASK; + if (c1 == MBFL_WCSPLANE_WINCP932) { + s1 = c & MBFL_WCSPLANE_MASK; + s2 = 1; + } else if (c1 == MBFL_WCSPLANE_JIS0208) { + s1 = c & MBFL_WCSPLANE_MASK; + } else if (c1 == MBFL_WCSPLANE_JIS0212) { + s1 = c & MBFL_WCSPLANE_MASK; + s1 |= 0x8080; + } else if (c == 0xa5) { /* YEN SIGN */ + s1 = 0x216f; /* FULLWIDTH YEN SIGN */ + } else if (c == 0x203e) { /* OVER LINE */ + s1 = 0x2131; /* FULLWIDTH MACRON */ + } else if (c == 0xff3c) { /* FULLWIDTH REVERSE SOLIDUS */ + s1 = 0x2140; + } else if (c == 0xff5e) { /* FULLWIDTH TILDE */ + s1 = 0x2141; + } else if (c == 0x2225) { /* PARALLEL TO */ + s1 = 0x2142; + } else if (c == 0xff0d) { /* FULLWIDTH HYPHEN-MINUS */ + s1 = 0x215d; + } else if (c == 0xffe0) { /* FULLWIDTH CENT SIGN */ + s1 = 0x2171; + } else if (c == 0xffe1) { /* FULLWIDTH POUND SIGN */ + s1 = 0x2172; + } else if (c == 0xffe2) { /* FULLWIDTH NOT SIGN */ + s1 = 0x224c; + } + } + + if ((s1 <= 0) || (s1 >= 0xa1a1 && s2 == 0)) { /* not found or X 0212 */ + s1 = -1; + c1 = 0; + c2 = cp932ext1_ucs_table_max - cp932ext1_ucs_table_min; + while (c1 < c2) { /* CP932 vendor ext1 (13ku) */ + if (c == cp932ext1_ucs_table[c1]) { + s1 = ((c1/94 + 0x2d) << 8) + (c1%94 + 0x21); + break; + } + c1++; + } + if (c == 0) { + s1 = 0; + } else if (s1 <= 0) { + s1 = -1; + } + } + + if (filter->to->no_encoding == mbfl_no_encoding_2022jp_kddi && + mbfilter_unicode2sjis_emoji_kddi(c, &s1, filter) > 0) { + CODE2JIS(c1,c2,s1,s2); + s1 -= 0x1600; + } + + if (filter->status == 1 && filter->cache > 0) { + return c; + } + + if (s1 >= 0) { + if (s1 < 0x80) { /* latin */ + if ((filter->status & 0xff00) != 0) { + CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ + CK((*filter->output_function)(0x28, filter->data)); /* '(' */ + CK((*filter->output_function)(0x42, filter->data)); /* 'B' */ + } + CK((*filter->output_function)(s1, filter->data)); + filter->status = 0; + } else if (s1 > 0xa0 && s1 < 0xe0) { /* kana */ + if ((filter->status & 0xff00) != 0x100) { + CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ + CK((*filter->output_function)(0x28, filter->data)); /* '(' */ + CK((*filter->output_function)(0x49, filter->data)); /* 'I' */ + } + filter->status = 0x100; + CK((*filter->output_function)(s1 & 0x7f, filter->data)); + } else if (s1 < 0x7e7f) { /* X 0208 */ + if ((filter->status & 0xff00) != 0x200) { + CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ + CK((*filter->output_function)(0x24, filter->data)); /* '$' */ + CK((*filter->output_function)(0x42, filter->data)); /* 'B' */ + } + filter->status = 0x200; + CK((*filter->output_function)((s1 >> 8) & 0xff, filter->data)); + CK((*filter->output_function)(s1 & 0x7f, filter->data)); + } + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} diff --git a/ext/mbstring/libmbfl/filters/mbfilter_iso2022jp_mobile.h b/ext/mbstring/libmbfl/filters/mbfilter_iso2022jp_mobile.h new file mode 100644 index 0000000..7ae1da2 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_iso2022jp_mobile.h @@ -0,0 +1,43 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter_iso2022_jp_ms.h + * by Rui Hirokawa <hirokawa@php.net> on 25 July 2011. + * + */ + +#ifndef MBFL_MBFILTER_ISO2022_JP_MOBILE_H +#define MBFL_MBFILTER_ISO2022_JP_MOBILE_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_2022jp_kddi; +extern const struct mbfl_identify_vtbl vtbl_identify_2022jp_kddi; +extern const struct mbfl_convert_vtbl vtbl_2022jp_kddi_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_2022jp_kddi; + +int mbfl_filt_conv_2022jp_mobile_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_2022jp_mobile(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_ISO2022_JP_MOBILE_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_iso8859_1.c b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_1.c new file mode 100644 index 0000000..901bbb7 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_1.c @@ -0,0 +1,100 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_iso8859_1.h" + +static const char *mbfl_encoding_8859_1_aliases[] = {"ISO_8859-1", "latin1", NULL}; + +const mbfl_encoding mbfl_encoding_8859_1 = { + mbfl_no_encoding_8859_1, + "ISO-8859-1", + "ISO-8859-1", + (const char *(*)[])&mbfl_encoding_8859_1_aliases, + NULL, + MBFL_ENCTYPE_SBCS +}; + +const struct mbfl_identify_vtbl vtbl_identify_8859_1 = { + mbfl_no_encoding_8859_1, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_true +}; + +const struct mbfl_convert_vtbl vtbl_8859_1_wchar = { + mbfl_no_encoding_8859_1, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_8859_1_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_8859_1 = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_8859_1, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_8859_1, + mbfl_filt_conv_common_flush +}; + + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +/* + * ISO-8859-1 => wchar + */ +int mbfl_filt_conv_8859_1_wchar(int c, mbfl_convert_filter *filter) +{ + return (*filter->output_function)(c, filter->data); +} + +/* + * wchar => ISO-8859-1 + */ +int mbfl_filt_conv_wchar_8859_1(int c, mbfl_convert_filter *filter) +{ + if (c >= 0 && c < 0x100) { + CK((*filter->output_function)(c, filter->data)); + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_iso8859_1.h b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_1.h new file mode 100644 index 0000000..d55a457 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_1.h @@ -0,0 +1,43 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.h + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_ISO8859_1_H +#define MBFL_MBFILTER_ISO8859_1_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_8859_1; +extern const struct mbfl_identify_vtbl vtbl_identify_8859_1; +extern const struct mbfl_convert_vtbl vtbl_8859_1_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_8859_1; + +int mbfl_filt_conv_8859_1_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_8859_1(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_ISO8859_1_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_iso8859_10.c b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_10.c new file mode 100644 index 0000000..b0f80e7 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_10.c @@ -0,0 +1,138 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_iso8859_10.h" +#include "unicode_table_iso8859_10.h" + +static const char *mbfl_encoding_8859_10_aliases[] = {"ISO_8859-10", "latin6", NULL}; + +const mbfl_encoding mbfl_encoding_8859_10 = { + mbfl_no_encoding_8859_10, + "ISO-8859-10", + "ISO-8859-10", + (const char *(*)[])&mbfl_encoding_8859_10_aliases, + NULL, + MBFL_ENCTYPE_SBCS +}; + +const struct mbfl_identify_vtbl vtbl_identify_8859_10 = { + mbfl_no_encoding_8859_10, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_true +}; + +const struct mbfl_convert_vtbl vtbl_8859_10_wchar = { + mbfl_no_encoding_8859_10, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_8859_10_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_8859_10 = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_8859_10, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_8859_10, + mbfl_filt_conv_common_flush +}; + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +/* + * ISO-8859-10 => wchar + */ +int mbfl_filt_conv_8859_10_wchar(int c, mbfl_convert_filter *filter) +{ + int s; + + if (c >= 0 && c < 0xa0) { + s = c; + } else if (c >= 0xa0 && c < 0x100) { + s = iso8859_10_ucs_table[c - 0xa0]; + if (s <= 0) { + s = c; + s &= MBFL_WCSPLANE_MASK; + s |= MBFL_WCSPLANE_8859_10; + } + } else { + s = c; + s &= MBFL_WCSGROUP_MASK; + s |= MBFL_WCSGROUP_THROUGH; + } + + CK((*filter->output_function)(s, filter->data)); + + return c; +} + +/* + * wchar => ISO-8859-10 + */ +int mbfl_filt_conv_wchar_8859_10(int c, mbfl_convert_filter *filter) +{ + int s, n; + + if (c >= 0 && c < 0xa0) { + s = c; + } else { + s = -1; + n = 95; + while (n >= 0) { + if (c == iso8859_10_ucs_table[n]) { + s = 0xa0 + n; + break; + } + n--; + } + if (s <= 0 && (c & ~MBFL_WCSPLANE_MASK) == MBFL_WCSPLANE_8859_10) { + s = c & MBFL_WCSPLANE_MASK; + } + } + + if (s >= 0) { + CK((*filter->output_function)(s, filter->data)); + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_iso8859_10.h b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_10.h new file mode 100644 index 0000000..3743422 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_10.h @@ -0,0 +1,43 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_ISO8859_10_H +#define MBFL_MBFILTER_ISO8859_10_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_8859_10; +extern const struct mbfl_identify_vtbl vtbl_identify_8859_10; +extern const struct mbfl_convert_vtbl vtbl_8859_10_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_8859_10; + +int mbfl_filt_conv_8859_10_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_8859_10(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_ISO8859_10_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_iso8859_13.c b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_13.c new file mode 100644 index 0000000..674db7e --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_13.c @@ -0,0 +1,138 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_iso8859_13.h" +#include "unicode_table_iso8859_13.h" + +static const char *mbfl_encoding_8859_13_aliases[] = {"ISO_8859-13", NULL}; + +const mbfl_encoding mbfl_encoding_8859_13 = { + mbfl_no_encoding_8859_13, + "ISO-8859-13", + "ISO-8859-13", + (const char *(*)[])&mbfl_encoding_8859_13_aliases, + NULL, + MBFL_ENCTYPE_SBCS +}; + +const struct mbfl_identify_vtbl vtbl_identify_8859_13 = { + mbfl_no_encoding_8859_13, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_true +}; + +const struct mbfl_convert_vtbl vtbl_8859_13_wchar = { + mbfl_no_encoding_8859_13, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_8859_13_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_8859_13 = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_8859_13, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_8859_13, + mbfl_filt_conv_common_flush +}; + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +/* + * ISO-8859-13 => wchar + */ +int mbfl_filt_conv_8859_13_wchar(int c, mbfl_convert_filter *filter) +{ + int s; + + if (c >= 0 && c < 0xa0) { + s = c; + } else if (c >= 0xa0 && c < 0x100) { + s = iso8859_13_ucs_table[c - 0xa0]; + if (s <= 0) { + s = c; + s &= MBFL_WCSPLANE_MASK; + s |= MBFL_WCSPLANE_8859_13; + } + } else { + s = c; + s &= MBFL_WCSGROUP_MASK; + s |= MBFL_WCSGROUP_THROUGH; + } + + CK((*filter->output_function)(s, filter->data)); + + return c; +} + +/* + * wchar => ISO-8859-13 + */ +int mbfl_filt_conv_wchar_8859_13(int c, mbfl_convert_filter *filter) +{ + int s, n; + + if (c >= 0 && c < 0xa0) { + s = c; + } else { + s = -1; + n = 95; + while (n >= 0) { + if (c == iso8859_13_ucs_table[n]) { + s = 0xa0 + n; + break; + } + n--; + } + if (s <= 0 && (c & ~MBFL_WCSPLANE_MASK) == MBFL_WCSPLANE_8859_13) { + s = c & MBFL_WCSPLANE_MASK; + } + } + + if (s >= 0) { + CK((*filter->output_function)(s, filter->data)); + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_iso8859_13.h b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_13.h new file mode 100644 index 0000000..594575c --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_13.h @@ -0,0 +1,43 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_ISO8859_13_H +#define MBFL_MBFILTER_ISO8859_13_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_8859_13; +extern const struct mbfl_identify_vtbl vtbl_identify_8859_13; +extern const struct mbfl_convert_vtbl vtbl_8859_13_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_8859_13; + +int mbfl_filt_conv_8859_13_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_8859_13(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_ISO8859_13_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_iso8859_14.c b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_14.c new file mode 100644 index 0000000..c0d241c --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_14.c @@ -0,0 +1,138 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_iso8859_14.h" +#include "unicode_table_iso8859_14.h" + +static const char *mbfl_encoding_8859_14_aliases[] = {"ISO_8859-14", "latin8", NULL}; + +const mbfl_encoding mbfl_encoding_8859_14 = { + mbfl_no_encoding_8859_14, + "ISO-8859-14", + "ISO-8859-14", + (const char *(*)[])&mbfl_encoding_8859_14_aliases, + NULL, + MBFL_ENCTYPE_SBCS +}; + +const struct mbfl_identify_vtbl vtbl_identify_8859_14 = { + mbfl_no_encoding_8859_14, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_true +}; + +const struct mbfl_convert_vtbl vtbl_8859_14_wchar = { + mbfl_no_encoding_8859_14, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_8859_14_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_8859_14 = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_8859_14, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_8859_14, + mbfl_filt_conv_common_flush +}; + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +/* + * ISO-8859-14 => wchar + */ +int mbfl_filt_conv_8859_14_wchar(int c, mbfl_convert_filter *filter) +{ + int s; + + if (c >= 0 && c < 0xa0) { + s = c; + } else if (c >= 0xa0 && c < 0x100) { + s = iso8859_14_ucs_table[c - 0xa0]; + if (s <= 0) { + s = c; + s &= MBFL_WCSPLANE_MASK; + s |= MBFL_WCSPLANE_8859_14; + } + } else { + s = c; + s &= MBFL_WCSGROUP_MASK; + s |= MBFL_WCSGROUP_THROUGH; + } + + CK((*filter->output_function)(s, filter->data)); + + return c; +} + +/* + * wchar => ISO-8859-14 + */ +int mbfl_filt_conv_wchar_8859_14(int c, mbfl_convert_filter *filter) +{ + int s, n; + + if (c >= 0 && c < 0xa0) { + s = c; + } else { + s = -1; + n = 95; + while (n >= 0) { + if (c == iso8859_14_ucs_table[n]) { + s = 0xa0 + n; + break; + } + n--; + } + if (s <= 0 && (c & ~MBFL_WCSPLANE_MASK) == MBFL_WCSPLANE_8859_14) { + s = c & MBFL_WCSPLANE_MASK; + } + } + + if (s >= 0) { + CK((*filter->output_function)(s, filter->data)); + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_iso8859_14.h b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_14.h new file mode 100644 index 0000000..0006bae --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_14.h @@ -0,0 +1,26 @@ +/* + * COPYRIGHT NOTICE + * + * This file is a portion of "streamable kanji code filter and converter" + * library, which is distributed under GNU Lesser General Public License + * version 2.1. + * + * The source code included in this files was separated from mbfilter.c + * by Moriyoshi Koizumi <moriyoshi@php.net> on 4 Dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_ISO8859_14_H +#define MBFL_MBFILTER_ISO8859_14_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_8859_14; +extern const struct mbfl_identify_vtbl vtbl_identify_8859_14; +extern const struct mbfl_convert_vtbl vtbl_8859_14_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_8859_14; + +int mbfl_filt_conv_8859_14_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_8859_14(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_ISO8859_14_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_iso8859_15.c b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_15.c new file mode 100644 index 0000000..af321d6 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_15.c @@ -0,0 +1,136 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_iso8859_15.h" +#include "unicode_table_iso8859_15.h" + +static const char *mbfl_encoding_8859_15_aliases[] = {"ISO_8859-15", NULL}; + +const mbfl_encoding mbfl_encoding_8859_15 = { + mbfl_no_encoding_8859_15, + "ISO-8859-15", + "ISO-8859-15", + (const char *(*)[])&mbfl_encoding_8859_15_aliases, + NULL, + MBFL_ENCTYPE_SBCS +}; + +const struct mbfl_identify_vtbl vtbl_identify_8859_15 = { + mbfl_no_encoding_8859_15, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_true +}; + +const struct mbfl_convert_vtbl vtbl_8859_15_wchar = { + mbfl_no_encoding_8859_15, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_8859_15_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_8859_15 = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_8859_15, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_8859_15, + mbfl_filt_conv_common_flush +}; + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +/* + * ISO-8859-15 => wchar + */ +int mbfl_filt_conv_8859_15_wchar(int c, mbfl_convert_filter *filter) +{ + int s; + + if (c >= 0 && c < 0xa0) { + s = c; + } else if (c >= 0xa0 && c < 0x100) { + s = iso8859_15_ucs_table[c - 0xa0]; + if (s <= 0) { + s = c; + s &= MBFL_WCSPLANE_MASK; + s |= MBFL_WCSPLANE_8859_15; + } + } else { + s = c; + s &= MBFL_WCSGROUP_MASK; + s |= MBFL_WCSGROUP_THROUGH; + } + + CK((*filter->output_function)(s, filter->data)); + + return c; +} + +/* + * wchar => ISO-8859-15 + */ +int mbfl_filt_conv_wchar_8859_15(int c, mbfl_convert_filter *filter) +{ + int s, n; + + if (c >= 0 && c < 0xa0) { + s = c; + } else { + s = -1; + n = 95; + while (n >= 0) { + if (c == iso8859_15_ucs_table[n]) { + s = 0xa0 + n; + break; + } + n--; + } + if (s <= 0 && (c & ~MBFL_WCSPLANE_MASK) == MBFL_WCSPLANE_8859_15) { + s = c & MBFL_WCSPLANE_MASK; + } + } + + if (s >= 0) { + CK((*filter->output_function)(s, filter->data)); + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} diff --git a/ext/mbstring/libmbfl/filters/mbfilter_iso8859_15.h b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_15.h new file mode 100644 index 0000000..b5054de --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_15.h @@ -0,0 +1,26 @@ +/* + * COPYRIGHT NOTICE + * + * This file is a portion of "streamable kanji code filter and converter" + * library, which is distributed under GNU Lesser General Public License + * version 2.1. + * + * The source code included in this files was separated from mbfilter.c + * by Moriyoshi Koizumi <moriyoshi@php.net> on 4 Dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_ISO8859_15_H +#define MBFL_MBFILTER_ISO8859_15_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_8859_15; +extern const struct mbfl_identify_vtbl vtbl_identify_8859_15; +extern const struct mbfl_convert_vtbl vtbl_8859_15_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_8859_15; + +int mbfl_filt_conv_8859_15_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_8859_15(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_ISO8859_15_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_iso8859_16.c b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_16.c new file mode 100644 index 0000000..8f12feb --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_16.c @@ -0,0 +1,136 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_iso8859_16.h" +#include "unicode_table_iso8859_16.h" + +static const char *mbfl_encoding_8859_16_aliases[] = {"ISO_8859-16", NULL}; + +const mbfl_encoding mbfl_encoding_8859_16 = { + mbfl_no_encoding_8859_16, + "ISO-8859-16", + "ISO-8859-16", + (const char *(*)[])&mbfl_encoding_8859_16_aliases, + NULL, + MBFL_ENCTYPE_SBCS +}; + +const struct mbfl_identify_vtbl vtbl_identify_8859_16 = { + mbfl_no_encoding_8859_16, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_true +}; + +const struct mbfl_convert_vtbl vtbl_8859_16_wchar = { + mbfl_no_encoding_8859_16, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_8859_16_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_8859_16 = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_8859_16, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_8859_16, + mbfl_filt_conv_common_flush +}; + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +/* + * ISO-8859-16 => wchar + */ +int mbfl_filt_conv_8859_16_wchar(int c, mbfl_convert_filter *filter) +{ + int s; + + if (c >= 0 && c < 0xa0) { + s = c; + } else if (c >= 0xa0 && c < 0x100) { + s = iso8859_16_ucs_table[c - 0xa0]; + if (s <= 0) { + s = c; + s &= MBFL_WCSPLANE_MASK; + s |= MBFL_WCSPLANE_8859_16; + } + } else { + s = c; + s &= MBFL_WCSGROUP_MASK; + s |= MBFL_WCSGROUP_THROUGH; + } + + CK((*filter->output_function)(s, filter->data)); + + return c; +} + +/* + * wchar => ISO-8859-16 + */ +int mbfl_filt_conv_wchar_8859_16(int c, mbfl_convert_filter *filter) +{ + int s, n; + + if (c >= 0 && c < 0xa0) { + s = c; + } else { + s = -1; + n = 95; + while (n >= 0) { + if (c == iso8859_16_ucs_table[n]) { + s = 0xa0 + n; + break; + } + n--; + } + if (s <= 0 && (c & ~MBFL_WCSPLANE_MASK) == MBFL_WCSPLANE_8859_16) { + s = c & MBFL_WCSPLANE_MASK; + } + } + + if (s >= 0) { + CK((*filter->output_function)(s, filter->data)); + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} diff --git a/ext/mbstring/libmbfl/filters/mbfilter_iso8859_16.h b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_16.h new file mode 100644 index 0000000..a5e2d2f --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_16.h @@ -0,0 +1,23 @@ +/* + * COPYRIGHT NOTICE + * + * This file is a portion of "streamable kanji code filter and converter" + * library, which is distributed under GNU Lesser General Public License + * version 2.1. + * + */ + +#ifndef MBFL_MBFILTER_ISO8859_16_H +#define MBFL_MBFILTER_ISO8859_16_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_8859_16; +extern const struct mbfl_identify_vtbl vtbl_identify_8859_16; +extern const struct mbfl_convert_vtbl vtbl_8859_16_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_8859_16; + +int mbfl_filt_conv_8859_16_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_8859_16(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_ISO8859_16_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_iso8859_2.c b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_2.c new file mode 100644 index 0000000..c52c72a --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_2.c @@ -0,0 +1,139 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_iso8859_2.h" +#include "unicode_table_iso8859_2.h" + +static const char *mbfl_encoding_8859_2_aliases[] = {"ISO_8859-2", "latin2", NULL}; + +const mbfl_encoding mbfl_encoding_8859_2 = { + mbfl_no_encoding_8859_2, + "ISO-8859-2", + "ISO-8859-2", + (const char *(*)[])&mbfl_encoding_8859_2_aliases, + NULL, + MBFL_ENCTYPE_SBCS +}; + +const struct mbfl_identify_vtbl vtbl_identify_8859_2 = { + mbfl_no_encoding_8859_2, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_true +}; + +const struct mbfl_convert_vtbl vtbl_8859_2_wchar = { + mbfl_no_encoding_8859_2, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_8859_2_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_8859_2 = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_8859_2, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_8859_2, + mbfl_filt_conv_common_flush +}; + + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +/* + * ISO-8859-2 => wchar + */ +int mbfl_filt_conv_8859_2_wchar(int c, mbfl_convert_filter *filter) +{ + int s; + + if (c >= 0 && c < 0xa0) { + s = c; + } else if (c >= 0xa0 && c < 0x100) { + s = iso8859_2_ucs_table[c - 0xa0]; + if (s <= 0) { + s = c; + s &= MBFL_WCSPLANE_MASK; + s |= MBFL_WCSPLANE_8859_2; + } + } else { + s = c; + s &= MBFL_WCSGROUP_MASK; + s |= MBFL_WCSGROUP_THROUGH; + } + + CK((*filter->output_function)(s, filter->data)); + + return c; +} + +/* + * wchar => ISO-8859-2 + */ +int mbfl_filt_conv_wchar_8859_2(int c, mbfl_convert_filter *filter) +{ + int s, n; + + if (c >= 0 && c < 0xa0) { + s = c; + } else { + s = -1; + n = 95; + while (n >= 0) { + if (c == iso8859_2_ucs_table[n]) { + s = 0xa0 + n; + break; + } + n--; + } + if (s <= 0 && (c & ~MBFL_WCSPLANE_MASK) == MBFL_WCSPLANE_8859_2) { + s = c & MBFL_WCSPLANE_MASK; + } + } + + if (s >= 0) { + CK((*filter->output_function)(s, filter->data)); + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_iso8859_2.h b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_2.h new file mode 100644 index 0000000..732e919 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_2.h @@ -0,0 +1,43 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_ISO8859_2_H +#define MBFL_MBFILTER_ISO8859_2_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_8859_2; +extern const struct mbfl_identify_vtbl vtbl_identify_8859_2; +extern const struct mbfl_convert_vtbl vtbl_8859_2_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_8859_2; + +int mbfl_filt_conv_8859_2_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_8859_2(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_ISO8859_2_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_iso8859_3.c b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_3.c new file mode 100644 index 0000000..d47098c --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_3.c @@ -0,0 +1,139 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_iso8859_3.h" +#include "unicode_table_iso8859_3.h" + +static const char *mbfl_encoding_8859_3_aliases[] = {"ISO_8859-3", "latin3", NULL}; + +const mbfl_encoding mbfl_encoding_8859_3 = { + mbfl_no_encoding_8859_3, + "ISO-8859-3", + "ISO-8859-3", + (const char *(*)[])&mbfl_encoding_8859_3_aliases, + NULL, + MBFL_ENCTYPE_SBCS +}; + +const struct mbfl_identify_vtbl vtbl_identify_8859_3 = { + mbfl_no_encoding_8859_3, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_true +}; + +const struct mbfl_convert_vtbl vtbl_8859_3_wchar = { + mbfl_no_encoding_8859_3, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_8859_3_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_8859_3 = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_8859_3, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_8859_3, + mbfl_filt_conv_common_flush +}; + + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +/* + * ISO-8859-3 => wchar + */ +int mbfl_filt_conv_8859_3_wchar(int c, mbfl_convert_filter *filter) +{ + int s; + + if (c >= 0 && c < 0xa0) { + s = c; + } else if (c >= 0xa0 && c < 0x100) { + s = iso8859_3_ucs_table[c - 0xa0]; + if (s <= 0) { + s = c; + s &= MBFL_WCSPLANE_MASK; + s |= MBFL_WCSPLANE_8859_3; + } + } else { + s = c; + s &= MBFL_WCSGROUP_MASK; + s |= MBFL_WCSGROUP_THROUGH; + } + + CK((*filter->output_function)(s, filter->data)); + + return c; +} + +/* + * wchar => ISO-8859-3 + */ +int mbfl_filt_conv_wchar_8859_3(int c, mbfl_convert_filter *filter) +{ + int s, n; + + if (c >= 0 && c < 0xa0) { + s = c; + } else { + s = -1; + n = 95; + while (n >= 0) { + if (c == iso8859_3_ucs_table[n]) { + s = 0xa0 + n; + break; + } + n--; + } + if (s <= 0 && (c & ~MBFL_WCSPLANE_MASK) == MBFL_WCSPLANE_8859_3) { + s = c & MBFL_WCSPLANE_MASK; + } + } + + if (s >= 0) { + CK((*filter->output_function)(s, filter->data)); + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_iso8859_3.h b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_3.h new file mode 100644 index 0000000..88ab3be --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_3.h @@ -0,0 +1,43 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_ISO8859_3_H +#define MBFL_MBFILTER_ISO8859_3_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_8859_3; +extern const struct mbfl_identify_vtbl vtbl_identify_8859_3; +extern const struct mbfl_convert_vtbl vtbl_8859_3_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_8859_3; + +int mbfl_filt_conv_8859_3_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_8859_3(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_ISO8859_3_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_iso8859_4.c b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_4.c new file mode 100644 index 0000000..65c539e --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_4.c @@ -0,0 +1,137 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_iso8859_4.h" +#include "unicode_table_iso8859_4.h" + +static const char *mbfl_encoding_8859_4_aliases[] = {"ISO_8859-4", "latin4", NULL}; + +const mbfl_encoding mbfl_encoding_8859_4 = { + mbfl_no_encoding_8859_4, + "ISO-8859-4", + "ISO-8859-4", + (const char *(*)[])&mbfl_encoding_8859_4_aliases, + NULL, + MBFL_ENCTYPE_SBCS +}; + +const struct mbfl_identify_vtbl vtbl_identify_8859_4 = { + mbfl_no_encoding_8859_4, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_true }; + +const struct mbfl_convert_vtbl vtbl_8859_4_wchar = { + mbfl_no_encoding_8859_4, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_8859_4_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_8859_4 = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_8859_4, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_8859_4, + mbfl_filt_conv_common_flush +}; + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +/* + * ISO-8859-4 => wchar + */ +int mbfl_filt_conv_8859_4_wchar(int c, mbfl_convert_filter *filter) +{ + int s; + + if (c >= 0 && c < 0xa0) { + s = c; + } else if (c >= 0xa0 && c < 0x100) { + s = iso8859_4_ucs_table[c - 0xa0]; + if (s <= 0) { + s = c; + s &= MBFL_WCSPLANE_MASK; + s |= MBFL_WCSPLANE_8859_4; + } + } else { + s = c; + s &= MBFL_WCSGROUP_MASK; + s |= MBFL_WCSGROUP_THROUGH; + } + + CK((*filter->output_function)(s, filter->data)); + + return c; +} + +/* + * wchar => ISO-8859-4 + */ +int mbfl_filt_conv_wchar_8859_4(int c, mbfl_convert_filter *filter) +{ + int s, n; + + if (c >= 0 && c < 0xa0) { + s = c; + } else { + s = -1; + n = 95; + while (n >= 0) { + if (c == iso8859_4_ucs_table[n]) { + s = 0xa0 + n; + break; + } + n--; + } + if (s <= 0 && (c & ~MBFL_WCSPLANE_MASK) == MBFL_WCSPLANE_8859_4) { + s = c & MBFL_WCSPLANE_MASK; + } + } + + if (s >= 0) { + CK((*filter->output_function)(s, filter->data)); + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_iso8859_4.h b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_4.h new file mode 100644 index 0000000..c682391 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_4.h @@ -0,0 +1,41 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_ISO8859_4_H +#define MBFL_MBFILTER_ISO8859_4_H + +extern const mbfl_encoding mbfl_encoding_8859_4; +extern const struct mbfl_identify_vtbl vtbl_identify_8859_4; +extern const struct mbfl_convert_vtbl vtbl_8859_4_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_8859_4; + +int mbfl_filt_conv_8859_4_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_8859_4(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_ISO8859_4_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_iso8859_5.c b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_5.c new file mode 100644 index 0000000..3a41398 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_5.c @@ -0,0 +1,139 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_iso8859_5.h" +#include "unicode_table_iso8859_5.h" + +static const char *mbfl_encoding_8859_5_aliases[] = {"ISO_8859-5", "cyrillic", NULL}; + +const mbfl_encoding mbfl_encoding_8859_5 = { + mbfl_no_encoding_8859_5, + "ISO-8859-5", + "ISO-8859-5", + (const char *(*)[])&mbfl_encoding_8859_5_aliases, + NULL, + MBFL_ENCTYPE_SBCS +}; + +const struct mbfl_identify_vtbl vtbl_identify_8859_5 = { + mbfl_no_encoding_8859_5, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_true +}; + +const struct mbfl_convert_vtbl vtbl_8859_5_wchar = { + mbfl_no_encoding_8859_5, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_8859_5_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_8859_5 = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_8859_5, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_8859_5, + mbfl_filt_conv_common_flush +}; + + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +/* + * ISO-8859-5 => wchar + */ +int mbfl_filt_conv_8859_5_wchar(int c, mbfl_convert_filter *filter) +{ + int s; + + if (c >= 0 && c < 0xa0) { + s = c; + } else if (c >= 0xa0 && c < 0x100) { + s = iso8859_5_ucs_table[c - 0xa0]; + if (s <= 0) { + s = c; + s &= MBFL_WCSPLANE_MASK; + s |= MBFL_WCSPLANE_8859_5; + } + } else { + s = c; + s &= MBFL_WCSGROUP_MASK; + s |= MBFL_WCSGROUP_THROUGH; + } + + CK((*filter->output_function)(s, filter->data)); + + return c; +} + +/* + * wchar => ISO-8859-5 + */ +int mbfl_filt_conv_wchar_8859_5(int c, mbfl_convert_filter *filter) +{ + int s, n; + + if (c >= 0 && c < 0xa0) { + s = c; + } else { + s = -1; + n = 95; + while (n >= 0) { + if (c == iso8859_5_ucs_table[n]) { + s = 0xa0 + n; + break; + } + n--; + } + if (s <= 0 && (c & ~MBFL_WCSPLANE_MASK) == MBFL_WCSPLANE_8859_5) { + s = c & MBFL_WCSPLANE_MASK; + } + } + + if (s >= 0) { + CK((*filter->output_function)(s, filter->data)); + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_iso8859_5.h b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_5.h new file mode 100644 index 0000000..531c1c1 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_5.h @@ -0,0 +1,43 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_ISO8859_5_H +#define MBFL_MBFILTER_ISO8859_5_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_8859_5; +extern const struct mbfl_identify_vtbl vtbl_identify_8859_5; +extern const struct mbfl_convert_vtbl vtbl_8859_5_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_8859_5; + +int mbfl_filt_conv_8859_5_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_8859_5(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_ISO8859_5_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_iso8859_6.c b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_6.c new file mode 100644 index 0000000..9823064 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_6.c @@ -0,0 +1,139 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_iso8859_6.h" +#include "unicode_table_iso8859_6.h" + +static const char *mbfl_encoding_8859_6_aliases[] = {"ISO_8859-6", "arabic", NULL}; + +const mbfl_encoding mbfl_encoding_8859_6 = { + mbfl_no_encoding_8859_6, + "ISO-8859-6", + "ISO-8859-6", + (const char *(*)[])&mbfl_encoding_8859_6_aliases, + NULL, + MBFL_ENCTYPE_SBCS +}; + +const struct mbfl_identify_vtbl vtbl_identify_8859_6 = { + mbfl_no_encoding_8859_6, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_true +}; + +const struct mbfl_convert_vtbl vtbl_8859_6_wchar = { + mbfl_no_encoding_8859_6, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_8859_6_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_8859_6 = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_8859_6, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_8859_6, + mbfl_filt_conv_common_flush +}; + + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +/* + * ISO-8859-6 => wchar + */ +int mbfl_filt_conv_8859_6_wchar(int c, mbfl_convert_filter *filter) +{ + int s; + + if (c >= 0 && c < 0xa0) { + s = c; + } else if (c >= 0xa0 && c < 0x100) { + s = iso8859_6_ucs_table[c - 0xa0]; + if (s <= 0) { + s = c; + s &= MBFL_WCSPLANE_MASK; + s |= MBFL_WCSPLANE_8859_6; + } + } else { + s = c; + s &= MBFL_WCSGROUP_MASK; + s |= MBFL_WCSGROUP_THROUGH; + } + + CK((*filter->output_function)(s, filter->data)); + + return c; +} + +/* + * wchar => ISO-8859-6 + */ +int mbfl_filt_conv_wchar_8859_6(int c, mbfl_convert_filter *filter) +{ + int s, n; + + if (c >= 0 && c < 0xa0) { + s = c; + } else { + s = -1; + n = 95; + while (n >= 0) { + if (c == iso8859_6_ucs_table[n]) { + s = 0xa0 + n; + break; + } + n--; + } + if (s <= 0 && (c & ~MBFL_WCSPLANE_MASK) == MBFL_WCSPLANE_8859_6) { + s = c & MBFL_WCSPLANE_MASK; + } + } + + if (s >= 0) { + CK((*filter->output_function)(s, filter->data)); + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_iso8859_6.h b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_6.h new file mode 100644 index 0000000..bc27f3e --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_6.h @@ -0,0 +1,43 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_ISO8859_6_H +#define MBFL_MBFILTER_ISO8859_6_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_8859_6; +extern const struct mbfl_identify_vtbl vtbl_identify_8859_6; +extern const struct mbfl_convert_vtbl vtbl_8859_6_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_8859_6; + +int mbfl_filt_conv_8859_6_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_8859_6(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_ISO8859_6_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_iso8859_7.c b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_7.c new file mode 100644 index 0000000..a02ce7f --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_7.c @@ -0,0 +1,139 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_iso8859_7.h" +#include "unicode_table_iso8859_7.h" + +static const char *mbfl_encoding_8859_7_aliases[] = {"ISO_8859-7", "greek", NULL}; + +const mbfl_encoding mbfl_encoding_8859_7 = { + mbfl_no_encoding_8859_7, + "ISO-8859-7", + "ISO-8859-7", + (const char *(*)[])&mbfl_encoding_8859_7_aliases, + NULL, + MBFL_ENCTYPE_SBCS +}; + +const struct mbfl_identify_vtbl vtbl_identify_8859_7 = { + mbfl_no_encoding_8859_7, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_true +}; + +const struct mbfl_convert_vtbl vtbl_8859_7_wchar = { + mbfl_no_encoding_8859_7, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_8859_7_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_8859_7 = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_8859_7, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_8859_7, + mbfl_filt_conv_common_flush +}; + + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +/* + * ISO-8859-7 => wchar + */ +int mbfl_filt_conv_8859_7_wchar(int c, mbfl_convert_filter *filter) +{ + int s; + + if (c >= 0 && c < 0xa0) { + s = c; + } else if (c >= 0xa0 && c < 0x100) { + s = iso8859_7_ucs_table[c - 0xa0]; + if (s <= 0) { + s = c; + s &= MBFL_WCSPLANE_MASK; + s |= MBFL_WCSPLANE_8859_7; + } + } else { + s = c; + s &= MBFL_WCSGROUP_MASK; + s |= MBFL_WCSGROUP_THROUGH; + } + + CK((*filter->output_function)(s, filter->data)); + + return c; +} + +/* + * wchar => ISO-8859-7 + */ +int mbfl_filt_conv_wchar_8859_7(int c, mbfl_convert_filter *filter) +{ + int s, n; + + if (c >= 0 && c < 0xa0) { + s = c; + } else { + s = -1; + n = 95; + while (n >= 0) { + if (c == iso8859_7_ucs_table[n]) { + s = 0xa0 + n; + break; + } + n--; + } + if (s <= 0 && (c & ~MBFL_WCSPLANE_MASK) == MBFL_WCSPLANE_8859_7) { + s = c & MBFL_WCSPLANE_MASK; + } + } + + if (s >= 0) { + CK((*filter->output_function)(s, filter->data)); + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_iso8859_7.h b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_7.h new file mode 100644 index 0000000..d3042f3 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_7.h @@ -0,0 +1,43 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_ISO8859_7_H +#define MBFL_MBFILTER_ISO8859_7_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_8859_7; +extern const struct mbfl_identify_vtbl vtbl_identify_8859_7; +extern const struct mbfl_convert_vtbl vtbl_8859_7_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_8859_7; + +int mbfl_filt_conv_8859_7_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_8859_7(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_ISO8859_7_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_iso8859_8.c b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_8.c new file mode 100644 index 0000000..fa4571a --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_8.c @@ -0,0 +1,137 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_iso8859_8.h" +#include "unicode_table_iso8859_8.h" + +static const char *mbfl_encoding_8859_8_aliases[] = {"ISO_8859-8", "hebrew", NULL}; + +const mbfl_encoding mbfl_encoding_8859_8 = { + mbfl_no_encoding_8859_8, + "ISO-8859-8", + "ISO-8859-8", + (const char *(*)[])&mbfl_encoding_8859_8_aliases, + NULL, + MBFL_ENCTYPE_SBCS +}; + +const struct mbfl_identify_vtbl vtbl_identify_8859_8 = { + mbfl_no_encoding_8859_8, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_true +}; + +const struct mbfl_convert_vtbl vtbl_8859_8_wchar = { + mbfl_no_encoding_8859_8, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_8859_8_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_8859_8 = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_8859_8, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_8859_8, + mbfl_filt_conv_common_flush +}; + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +/* + * ISO-8859-8 => wchar + */ +int mbfl_filt_conv_8859_8_wchar(int c, mbfl_convert_filter *filter) +{ + int s; + + if (c >= 0 && c < 0xa0) { + s = c; + } else if (c >= 0xa0 && c < 0x100) { + s = iso8859_8_ucs_table[c - 0xa0]; + if (s <= 0) { + s = c; + s &= MBFL_WCSPLANE_MASK; + s |= MBFL_WCSPLANE_8859_8; + } + } else { + s = c; + s &= MBFL_WCSGROUP_MASK; + s |= MBFL_WCSGROUP_THROUGH; + } + + CK((*filter->output_function)(s, filter->data)); + + return c; +} + +/* + * wchar => ISO-8859-8 + */ +int mbfl_filt_conv_wchar_8859_8(int c, mbfl_convert_filter *filter) +{ + int s, n; + + if (c >= 0 && c < 0xa0) { + s = c; + } else { + s = -1; + n = 95; + while (n >= 0) { + if (c == iso8859_8_ucs_table[n]) { + s = 0xa0 + n; + break; + } + n--; + } + if (s <= 0 && (c & ~MBFL_WCSPLANE_MASK) == MBFL_WCSPLANE_8859_8) { + s = c & MBFL_WCSPLANE_MASK; + } + } + + if (s >= 0) { + CK((*filter->output_function)(s, filter->data)); + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_iso8859_8.h b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_8.h new file mode 100644 index 0000000..884d509 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_8.h @@ -0,0 +1,43 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_ISO8859_8_H +#define MBFL_MBFILTER_ISO8859_8_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_8859_8; +extern const struct mbfl_identify_vtbl vtbl_identify_8859_8; +extern const struct mbfl_convert_vtbl vtbl_8859_8_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_8859_8; + +int mbfl_filt_conv_8859_8_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_8859_8(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_ISO8859_8_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_iso8859_9.c b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_9.c new file mode 100644 index 0000000..57d2e37 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_9.c @@ -0,0 +1,138 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_iso8859_9.h" +#include "unicode_table_iso8859_9.h" + +static const char *mbfl_encoding_8859_9_aliases[] = {"ISO_8859-9", "latin5", NULL}; + +const mbfl_encoding mbfl_encoding_8859_9 = { + mbfl_no_encoding_8859_9, + "ISO-8859-9", + "ISO-8859-9", + (const char *(*)[])&mbfl_encoding_8859_9_aliases, + NULL, + MBFL_ENCTYPE_SBCS +}; + +const struct mbfl_identify_vtbl vtbl_identify_8859_9 = { + mbfl_no_encoding_8859_9, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_true +}; + +const struct mbfl_convert_vtbl vtbl_8859_9_wchar = { + mbfl_no_encoding_8859_9, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_8859_9_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_8859_9 = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_8859_9, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_8859_9, + mbfl_filt_conv_common_flush +}; + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +/* + * ISO-8859-9 => wchar + */ +int mbfl_filt_conv_8859_9_wchar(int c, mbfl_convert_filter *filter) +{ + int s; + + if (c >= 0 && c < 0xa0) { + s = c; + } else if (c >= 0xa0 && c < 0x100) { + s = iso8859_9_ucs_table[c - 0xa0]; + if (s <= 0) { + s = c; + s &= MBFL_WCSPLANE_MASK; + s |= MBFL_WCSPLANE_8859_9; + } + } else { + s = c; + s &= MBFL_WCSGROUP_MASK; + s |= MBFL_WCSGROUP_THROUGH; + } + + CK((*filter->output_function)(s, filter->data)); + + return c; +} + +/* + * wchar => ISO-8859-9 + */ +int mbfl_filt_conv_wchar_8859_9(int c, mbfl_convert_filter *filter) +{ + int s, n; + + if (c >= 0 && c < 0xa0) { + s = c; + } else { + s = -1; + n = 95; + while (n >= 0) { + if (c == iso8859_9_ucs_table[n]) { + s = 0xa0 + n; + break; + } + n--; + } + if (s <= 0 && (c & ~MBFL_WCSPLANE_MASK) == MBFL_WCSPLANE_8859_9) { + s = c & MBFL_WCSPLANE_MASK; + } + } + + if (s >= 0) { + CK((*filter->output_function)(s, filter->data)); + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_iso8859_9.h b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_9.h new file mode 100644 index 0000000..3731eda --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_iso8859_9.h @@ -0,0 +1,43 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_ISO8859_9_H +#define MBFL_MBFILTER_ISO8859_9_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_8859_9; +extern const struct mbfl_identify_vtbl vtbl_identify_8859_9; +extern const struct mbfl_convert_vtbl vtbl_8859_9_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_8859_9; + +int mbfl_filt_conv_8859_9_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_8859_9(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_ISO8859_9_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_jis.c b/ext/mbstring/libmbfl/filters/mbfilter_jis.c new file mode 100644 index 0000000..7fa1fd3 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_jis.c @@ -0,0 +1,663 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter_ja.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_jis.h" + +#include "unicode_table_cp932_ext.h" +#include "unicode_table_jis.h" + +static int mbfl_filt_ident_jis(int c, mbfl_identify_filter *filter); +static int mbfl_filt_ident_2022jp(int c, mbfl_identify_filter *filter); + +const mbfl_encoding mbfl_encoding_jis = { + mbfl_no_encoding_jis, + "JIS", + "ISO-2022-JP", + NULL, + NULL, + MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_SHFTCODE | MBFL_ENCTYPE_GL_UNSAFE +}; + +const mbfl_encoding mbfl_encoding_2022jp = { + mbfl_no_encoding_2022jp, + "ISO-2022-JP", + "ISO-2022-JP", + NULL, + NULL, + MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_SHFTCODE | MBFL_ENCTYPE_GL_UNSAFE +}; + +const struct mbfl_identify_vtbl vtbl_identify_jis = { + mbfl_no_encoding_jis, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_jis +}; + +const struct mbfl_identify_vtbl vtbl_identify_2022jp = { + mbfl_no_encoding_2022jp, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_2022jp +}; + +const struct mbfl_convert_vtbl vtbl_jis_wchar = { + mbfl_no_encoding_jis, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_jis_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_jis = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_jis, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_jis, + mbfl_filt_conv_any_jis_flush +}; + +const struct mbfl_convert_vtbl vtbl_2022jp_wchar = { + mbfl_no_encoding_2022jp, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_jis_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_2022jp = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_2022jp, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_2022jp, + mbfl_filt_conv_any_jis_flush +}; + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +/* + * JIS => wchar + */ +int +mbfl_filt_conv_jis_wchar(int c, mbfl_convert_filter *filter) +{ + int c1, s, w; + +retry: + switch (filter->status & 0xf) { +/* case 0x00: ASCII */ +/* case 0x10: X 0201 latin */ +/* case 0x20: X 0201 kana */ +/* case 0x80: X 0208 */ +/* case 0x90: X 0212 */ + case 0: + if (c == 0x1b) { + filter->status += 2; + } else if (c == 0x0e) { /* "kana in" */ + filter->status = 0x20; + } else if (c == 0x0f) { /* "kana out" */ + filter->status = 0; + } else if (filter->status == 0x10 && c == 0x5c) { /* YEN SIGN */ + CK((*filter->output_function)(0xa5, filter->data)); + } else if (filter->status == 0x10 && c == 0x7e) { /* OVER LINE */ + CK((*filter->output_function)(0x203e, filter->data)); + } else if (filter->status == 0x20 && c > 0x20 && c < 0x60) { /* kana */ + CK((*filter->output_function)(0xff40 + c, filter->data)); + } else if ((filter->status == 0x80 || filter->status == 0x90) && c > 0x20 && c < 0x7f) { /* kanji first char */ + filter->cache = c; + filter->status += 1; + } else if (c >= 0 && c < 0x80) { /* latin, CTLs */ + CK((*filter->output_function)(c, filter->data)); + } else if (c > 0xa0 && c < 0xe0) { /* GR kana */ + CK((*filter->output_function)(0xfec0 + c, filter->data)); + } else { + w = c & MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + +/* case 0x81: X 0208 second char */ +/* case 0x91: X 0212 second char */ + case 1: + filter->status &= ~0xf; + c1 = filter->cache; + if (c > 0x20 && c < 0x7f) { + s = (c1 - 0x21)*94 + c - 0x21; + if (filter->status == 0x80) { + if (s >= 0 && s < jisx0208_ucs_table_size) { + w = jisx0208_ucs_table[s]; + } else { + w = 0; + } + if (w <= 0) { + w = (c1 << 8) | c; + w &= MBFL_WCSPLANE_MASK; + w |= MBFL_WCSPLANE_JIS0208; + } + } else { + if (s >= 0 && s < jisx0212_ucs_table_size) { + w = jisx0212_ucs_table[s]; + } else { + w = 0; + } + if (w <= 0) { + w = (c1 << 8) | c; + w &= MBFL_WCSPLANE_MASK; + w |= MBFL_WCSPLANE_JIS0212; + } + } + CK((*filter->output_function)(w, filter->data)); + } else if (c == 0x1b) { + filter->status += 2; + } else if ((c >= 0 && c < 0x21) || c == 0x7f) { /* CTLs */ + CK((*filter->output_function)(c, filter->data)); + } else { + w = (c1 << 8) | c; + w &= MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + + /* ESC */ +/* case 0x02: */ +/* case 0x12: */ +/* case 0x22: */ +/* case 0x82: */ +/* case 0x92: */ + case 2: + if (c == 0x24) { /* '$' */ + filter->status++; + } else if (c == 0x28) { /* '(' */ + filter->status += 3; + } else { + filter->status &= ~0xf; + CK((*filter->output_function)(0x1b, filter->data)); + goto retry; + } + break; + + /* ESC $ */ +/* case 0x03: */ +/* case 0x13: */ +/* case 0x23: */ +/* case 0x83: */ +/* case 0x93: */ + case 3: + if (c == 0x40 || c == 0x42) { /* '@' or 'B' */ + filter->status = 0x80; + } else if (c == 0x28) { /* '(' */ + filter->status++; + } else { + filter->status &= ~0xf; + CK((*filter->output_function)(0x1b, filter->data)); + CK((*filter->output_function)(0x24, filter->data)); + goto retry; + } + break; + + /* ESC $ ( */ +/* case 0x04: */ +/* case 0x14: */ +/* case 0x24: */ +/* case 0x84: */ +/* case 0x94: */ + case 4: + if (c == 0x40 || c == 0x42) { /* '@' or 'B' */ + filter->status = 0x80; + } else if (c == 0x44) { /* 'D' */ + filter->status = 0x90; + } else { + filter->status &= ~0xf; + CK((*filter->output_function)(0x1b, filter->data)); + CK((*filter->output_function)(0x24, filter->data)); + CK((*filter->output_function)(0x28, filter->data)); + goto retry; + } + break; + + /* ESC ( */ +/* case 0x05: */ +/* case 0x15: */ +/* case 0x25: */ +/* case 0x85: */ +/* case 0x95: */ + case 5: + if (c == 0x42 || c == 0x48) { /* 'B' or 'H' */ + filter->status = 0; + } else if (c == 0x4a) { /* 'J' */ + filter->status = 0x10; + } else if (c == 0x49) { /* 'I' */ + filter->status = 0x20; + } else { + filter->status &= ~0xf; + CK((*filter->output_function)(0x1b, filter->data)); + CK((*filter->output_function)(0x28, filter->data)); + goto retry; + } + break; + + default: + filter->status = 0; + break; + } + + return c; +} + +/* + * wchar => JIS + */ +int +mbfl_filt_conv_wchar_jis(int c, mbfl_convert_filter *filter) +{ + int c1, s; + + s = 0; + if (c >= ucs_a1_jis_table_min && c < ucs_a1_jis_table_max) { + s = ucs_a1_jis_table[c - ucs_a1_jis_table_min]; + } else if (c >= ucs_a2_jis_table_min && c < ucs_a2_jis_table_max) { + s = ucs_a2_jis_table[c - ucs_a2_jis_table_min]; + } else if (c >= ucs_i_jis_table_min && c < ucs_i_jis_table_max) { + s = ucs_i_jis_table[c - ucs_i_jis_table_min]; + } else if (c >= ucs_r_jis_table_min && c < ucs_r_jis_table_max) { + s = ucs_r_jis_table[c - ucs_r_jis_table_min]; + } + if (s <= 0) { + c1 = c & ~MBFL_WCSPLANE_MASK; + if (c1 == MBFL_WCSPLANE_JIS0208) { + s = c & MBFL_WCSPLANE_MASK; + } else if (c1 == MBFL_WCSPLANE_JIS0212) { + s = c & MBFL_WCSPLANE_MASK; + s |= 0x8080; + } else if (c == 0xa5) { /* YEN SIGN */ + s = 0x1005c; + } else if (c == 0x203e) { /* OVER LINE */ + s = 0x1007e; + } else if (c == 0xff3c) { /* FULLWIDTH REVERSE SOLIDUS */ + s = 0x2140; + } else if (c == 0xff5e) { /* FULLWIDTH TILDE */ + s = 0x2141; + } else if (c == 0x2225) { /* PARALLEL TO */ + s = 0x2142; + } else if (c == 0xff0d) { /* FULLWIDTH HYPHEN-MINUS */ + s = 0x215d; + } else if (c == 0xffe0) { /* FULLWIDTH CENT SIGN */ + s = 0x2171; + } else if (c == 0xffe1) { /* FULLWIDTH POUND SIGN */ + s = 0x2172; + } else if (c == 0xffe2) { /* FULLWIDTH NOT SIGN */ + s = 0x224c; + } + if (c == 0) { + s = 0; + } else if (s <= 0) { + s = -1; + } + } + if (s >= 0) { + if (s < 0x80) { /* ASCII */ + if ((filter->status & 0xff00) != 0) { + CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ + CK((*filter->output_function)(0x28, filter->data)); /* '(' */ + CK((*filter->output_function)(0x42, filter->data)); /* 'B' */ + } + filter->status = 0; + CK((*filter->output_function)(s, filter->data)); + } else if (s < 0x100) { /* kana */ + if ((filter->status & 0xff00) != 0x100) { + CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ + CK((*filter->output_function)(0x28, filter->data)); /* '(' */ + CK((*filter->output_function)(0x49, filter->data)); /* 'I' */ + } + filter->status = 0x100; + CK((*filter->output_function)(s & 0x7f, filter->data)); + } else if (s < 0x8080) { /* X 0208 */ + if ((filter->status & 0xff00) != 0x200) { + CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ + CK((*filter->output_function)(0x24, filter->data)); /* '$' */ + CK((*filter->output_function)(0x42, filter->data)); /* 'B' */ + } + filter->status = 0x200; + CK((*filter->output_function)((s >> 8) & 0x7f, filter->data)); + CK((*filter->output_function)(s & 0x7f, filter->data)); + } else if (s < 0x10000) { /* X 0212 */ + if ((filter->status & 0xff00) != 0x300) { + CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ + CK((*filter->output_function)(0x24, filter->data)); /* '$' */ + CK((*filter->output_function)(0x28, filter->data)); /* '(' */ + CK((*filter->output_function)(0x44, filter->data)); /* 'D' */ + } + filter->status = 0x300; + CK((*filter->output_function)((s >> 8) & 0x7f, filter->data)); + CK((*filter->output_function)(s & 0x7f, filter->data)); + } else { /* X 0201 latin */ + if ((filter->status & 0xff00) != 0x400) { + CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ + CK((*filter->output_function)(0x28, filter->data)); /* '(' */ + CK((*filter->output_function)(0x4a, filter->data)); /* 'J' */ + } + filter->status = 0x400; + CK((*filter->output_function)(s & 0x7f, filter->data)); + } + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + + +/* + * wchar => ISO-2022-JP + */ +int +mbfl_filt_conv_wchar_2022jp(int c, mbfl_convert_filter *filter) +{ + int s; + + s = 0; + if (c >= ucs_a1_jis_table_min && c < ucs_a1_jis_table_max) { + s = ucs_a1_jis_table[c - ucs_a1_jis_table_min]; + } else if (c >= ucs_a2_jis_table_min && c < ucs_a2_jis_table_max) { + s = ucs_a2_jis_table[c - ucs_a2_jis_table_min]; + } else if (c >= ucs_i_jis_table_min && c < ucs_i_jis_table_max) { + s = ucs_i_jis_table[c - ucs_i_jis_table_min]; + } else if (c >= ucs_r_jis_table_min && c < ucs_r_jis_table_max) { + s = ucs_r_jis_table[c - ucs_r_jis_table_min]; + } + if (s <= 0) { + if (c == 0xa5) { /* YEN SIGN */ + s = 0x1005c; + } else if (c == 0x203e) { /* OVER LINE */ + s = 0x1007e; + } else if (c == 0xff3c) { /* FULLWIDTH REVERSE SOLIDUS */ + s = 0x2140; + } else if (c == 0xff5e) { /* FULLWIDTH TILDE */ + s = 0x2141; + } else if (c == 0x2225) { /* PARALLEL TO */ + s = 0x2142; + } else if (c == 0xff0d) { /* FULLWIDTH HYPHEN-MINUS */ + s = 0x215d; + } else if (c == 0xffe0) { /* FULLWIDTH CENT SIGN */ + s = 0x2171; + } else if (c == 0xffe1) { /* FULLWIDTH POUND SIGN */ + s = 0x2172; + } else if (c == 0xffe2) { /* FULLWIDTH NOT SIGN */ + s = 0x224c; + } + if (c == 0) { + s = 0; + } else if (s <= 0) { + s = -1; + } + } else if ((s >= 0x80 && s < 0x2121) || (s > 0x8080)) { + s = -1; + } + if (s >= 0) { + if (s < 0x80) { /* ASCII */ + if ((filter->status & 0xff00) != 0) { + CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ + CK((*filter->output_function)(0x28, filter->data)); /* '(' */ + CK((*filter->output_function)(0x42, filter->data)); /* 'B' */ + } + filter->status = 0; + CK((*filter->output_function)(s, filter->data)); + } else if (s < 0x10000) { /* X 0208 */ + if ((filter->status & 0xff00) != 0x200) { + CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ + CK((*filter->output_function)(0x24, filter->data)); /* '$' */ + CK((*filter->output_function)(0x42, filter->data)); /* 'B' */ + } + filter->status = 0x200; + CK((*filter->output_function)((s >> 8) & 0x7f, filter->data)); + CK((*filter->output_function)(s & 0x7f, filter->data)); + } else { /* X 0201 latin */ + if ((filter->status & 0xff00) != 0x400) { + CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ + CK((*filter->output_function)(0x28, filter->data)); /* '(' */ + CK((*filter->output_function)(0x4a, filter->data)); /* 'J' */ + } + filter->status = 0x400; + CK((*filter->output_function)(s & 0x7f, filter->data)); + } + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + +int +mbfl_filt_conv_any_jis_flush(mbfl_convert_filter *filter) +{ + /* back to latin */ + if ((filter->status & 0xff00) != 0) { + CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ + CK((*filter->output_function)(0x28, filter->data)); /* '(' */ + CK((*filter->output_function)(0x42, filter->data)); /* 'B' */ + } + filter->status &= 0xff; + + if (filter->flush_function != NULL) { + return (*filter->flush_function)(filter->data); + } + + return 0; +} + +static int mbfl_filt_ident_jis(int c, mbfl_identify_filter *filter) +{ +retry: + switch (filter->status & 0xf) { +/* case 0x00: ASCII */ +/* case 0x10: X 0201 latin */ +/* case 0x20: X 0201 kana */ +/* case 0x80: X 0208 */ +/* case 0x90: X 0212 */ + case 0: + if (c == 0x1b) { + filter->status += 2; + } else if (c == 0x0e) { /* "kana in" */ + filter->status = 0x20; + } else if (c == 0x0f) { /* "kana out" */ + filter->status = 0; + } else if ((filter->status == 0x80 || filter->status == 0x90) && c > 0x20 && c < 0x7f) { /* kanji first char */ + filter->status += 1; + } else if (c >= 0 && c < 0x80) { /* latin, CTLs */ + ; + } else { + filter->flag = 1; /* bad */ + } + break; + +/* case 0x81: X 0208 second char */ +/* case 0x91: X 0212 second char */ + case 1: + filter->status &= ~0xf; + if (c == 0x1b) { + goto retry; + } else if (c < 0x21 || c > 0x7e) { /* bad */ + filter->flag = 1; + } + break; + + /* ESC */ + case 2: + if (c == 0x24) { /* '$' */ + filter->status++; + } else if (c == 0x28) { /* '(' */ + filter->status += 3; + } else { + filter->flag = 1; /* bad */ + filter->status &= ~0xf; + goto retry; + } + break; + + /* ESC $ */ + case 3: + if (c == 0x40 || c == 0x42) { /* '@' or 'B' */ + filter->status = 0x80; + } else if (c == 0x28) { /* '(' */ + filter->status++; + } else { + filter->flag = 1; /* bad */ + filter->status &= ~0xf; + goto retry; + } + break; + + /* ESC $ ( */ + case 4: + if (c == 0x40 || c == 0x42) { /* '@' or 'B' */ + filter->status = 0x80; + } else if (c == 0x44) { /* 'D' */ + filter->status = 0x90; + } else { + filter->flag = 1; /* bad */ + filter->status &= ~0xf; + goto retry; + } + break; + + /* ESC ( */ + case 5: + if (c == 0x42 || c == 0x48) { /* 'B' or 'H' */ + filter->status = 0; + } else if (c == 0x4a) { /* 'J' */ + filter->status = 0x10; + } else if (c == 0x49) { /* 'I' */ + filter->status = 0x20; + } else { + filter->flag = 1; /* bad */ + filter->status &= ~0xf; + goto retry; + } + break; + + default: + filter->status = 0; + break; + } + + return c; +} + +static int mbfl_filt_ident_2022jp(int c, mbfl_identify_filter *filter) +{ +retry: + switch (filter->status & 0xf) { +/* case 0x00: ASCII */ +/* case 0x10: X 0201 latin */ +/* case 0x80: X 0208 */ + case 0: + if (c == 0x1b) { + filter->status += 2; + } else if (filter->status == 0x80 && c > 0x20 && c < 0x7f) { /* kanji first char */ + filter->status += 1; + } else if (c >= 0 && c < 0x80) { /* latin, CTLs */ + ; + } else { + filter->flag = 1; /* bad */ + } + break; + +/* case 0x81: X 0208 second char */ + case 1: + if (c == 0x1b) { + filter->status++; + } else { + filter->status &= ~0xf; + if (c < 0x21 || c > 0x7e) { /* bad */ + filter->flag = 1; + } + } + break; + + /* ESC */ + case 2: + if (c == 0x24) { /* '$' */ + filter->status++; + } else if (c == 0x28) { /* '(' */ + filter->status += 3; + } else { + filter->flag = 1; /* bad */ + filter->status &= ~0xf; + goto retry; + } + break; + + /* ESC $ */ + case 3: + if (c == 0x40 || c == 0x42) { /* '@' or 'B' */ + filter->status = 0x80; + } else { + filter->flag = 1; /* bad */ + filter->status &= ~0xf; + goto retry; + } + break; + + /* ESC ( */ + case 5: + if (c == 0x42) { /* 'B' */ + filter->status = 0; + } else if (c == 0x4a) { /* 'J' */ + filter->status = 0x10; + } else { + filter->flag = 1; /* bad */ + filter->status &= ~0xf; + goto retry; + } + break; + + default: + filter->status = 0; + break; + } + + return c; +} + + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_jis.h b/ext/mbstring/libmbfl/filters/mbfilter_jis.h new file mode 100644 index 0000000..0375307 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_jis.h @@ -0,0 +1,49 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter_ja.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_JIS_H +#define MBFL_MBFILTER_JIS_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_jis; +extern const mbfl_encoding mbfl_encoding_2022jp; +extern const struct mbfl_identify_vtbl vtbl_identify_2022jp; +extern const struct mbfl_identify_vtbl vtbl_identify_jis; +extern const struct mbfl_convert_vtbl vtbl_jis_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_jis; +extern const struct mbfl_convert_vtbl vtbl_2022jp_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_2022jp; + +int mbfl_filt_conv_jis_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_jis(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_2022jp(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_any_jis_flush(mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_JIS_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_koi8r.c b/ext/mbstring/libmbfl/filters/mbfilter_koi8r.c new file mode 100644 index 0000000..892bf15 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_koi8r.c @@ -0,0 +1,149 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this part: Den V. Tsopa <tdv@edisoft.ru> + * + */ +/* + * The source code included in this files was separated from mbfilter_ru.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_koi8r.h" +#include "unicode_table_koi8r.h" + +static int mbfl_filt_ident_koi8r(int c, mbfl_identify_filter *filter); + +static const char *mbfl_encoding_koi8r_aliases[] = {"KOI8-R", "KOI8R", NULL}; + +const mbfl_encoding mbfl_encoding_koi8r = { + mbfl_no_encoding_koi8r, + "KOI8-R", + "KOI8-R", + (const char *(*)[])&mbfl_encoding_koi8r_aliases, + NULL, + MBFL_ENCTYPE_SBCS +}; + +const struct mbfl_identify_vtbl vtbl_identify_koi8r = { + mbfl_no_encoding_koi8r, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_koi8r +}; + +const struct mbfl_convert_vtbl vtbl_wchar_koi8r = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_koi8r, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_koi8r, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_koi8r_wchar = { + mbfl_no_encoding_koi8r, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_koi8r_wchar, + mbfl_filt_conv_common_flush +}; + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +/* + * koi8r => wchar + */ +int +mbfl_filt_conv_koi8r_wchar(int c, mbfl_convert_filter *filter) +{ + int s; + + if (c >= 0 && c < koi8r_ucs_table_min) { + s = c; + } else if (c >= koi8r_ucs_table_min && c < 0x100) { + s = koi8r_ucs_table[c - koi8r_ucs_table_min]; + if (s <= 0) { + s = c; + s &= MBFL_WCSPLANE_MASK; + s |= MBFL_WCSPLANE_KOI8R; + } + } else { + s = c; + s &= MBFL_WCSGROUP_MASK; + s |= MBFL_WCSGROUP_THROUGH; + } + + CK((*filter->output_function)(s, filter->data)); + + return c; +} + +/* + * wchar => koi8r + */ +int +mbfl_filt_conv_wchar_koi8r(int c, mbfl_convert_filter *filter) +{ + int s, n; + + if (c < 0x80) { + s = c; + } else { + s = -1; + n = koi8r_ucs_table_len-1; + while (n >= 0) { + if (c == koi8r_ucs_table[n]) { + s = koi8r_ucs_table_min + n; + break; + } + n--; + } + if (s <= 0 && (c & ~MBFL_WCSPLANE_MASK) == MBFL_WCSPLANE_KOI8R) { + s = c & MBFL_WCSPLANE_MASK; + } + } + + if (s >= 0) { + CK((*filter->output_function)(s, filter->data)); + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + +static int mbfl_filt_ident_koi8r(int c, mbfl_identify_filter *filter) +{ + if (c >= 0x80 && c < 0xff) + filter->flag = 0; + else + filter->flag = 1; /* not it */ + return c; +} diff --git a/ext/mbstring/libmbfl/filters/mbfilter_koi8r.h b/ext/mbstring/libmbfl/filters/mbfilter_koi8r.h new file mode 100644 index 0000000..8298631 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_koi8r.h @@ -0,0 +1,50 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this part: Den V. Tsopa <tdv@edisoft.ru> + * + */ +/* + * The source code included in this files was separated from mbfilter_ru.h + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_KOI8R_H +#define MBFL_MBFILTER_KOI8R_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_koi8r; +extern const struct mbfl_identify_vtbl vtbl_identify_koi8r; +extern const struct mbfl_convert_vtbl vtbl_wchar_koi8r; +extern const struct mbfl_convert_vtbl vtbl_koi8r_wchar; + +int mbfl_filt_conv_koi8r_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_koi8r(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_KOI8R_H */ + +/* + * Local variables: + * tab-width: 4 + * c-basic-offset: 4 + * End: + */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_koi8u.c b/ext/mbstring/libmbfl/filters/mbfilter_koi8u.c new file mode 100644 index 0000000..9b8f450 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_koi8u.c @@ -0,0 +1,146 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this part: Maksym Veremeyenko <verem@m1.tv> + * + * Based on mbfilter_koi8r.c code + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_koi8u.h" +#include "unicode_table_koi8u.h" + +static int mbfl_filt_ident_koi8u(int c, mbfl_identify_filter *filter); + +static const char *mbfl_encoding_koi8u_aliases[] = {"KOI8-U", "KOI8U", NULL}; + +const mbfl_encoding mbfl_encoding_koi8u = { + mbfl_no_encoding_koi8u, + "KOI8-U", + "KOI8-U", + (const char *(*)[])&mbfl_encoding_koi8u_aliases, + NULL, + MBFL_ENCTYPE_SBCS +}; + +const struct mbfl_identify_vtbl vtbl_identify_koi8u = { + mbfl_no_encoding_koi8u, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_koi8u +}; + +const struct mbfl_convert_vtbl vtbl_wchar_koi8u = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_koi8u, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_koi8u, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_koi8u_wchar = { + mbfl_no_encoding_koi8u, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_koi8u_wchar, + mbfl_filt_conv_common_flush +}; + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +/* + * koi8u => wchar + */ +int +mbfl_filt_conv_koi8u_wchar(int c, mbfl_convert_filter *filter) +{ + int s; + + if (c >= 0 && c < koi8u_ucs_table_min) { + s = c; + } else if (c >= koi8u_ucs_table_min && c < 0x100) { + s = koi8u_ucs_table[c - koi8u_ucs_table_min]; + if (s <= 0) { + s = c; + s &= MBFL_WCSPLANE_MASK; + s |= MBFL_WCSPLANE_KOI8U; + } + } else { + s = c; + s &= MBFL_WCSGROUP_MASK; + s |= MBFL_WCSGROUP_THROUGH; + } + + CK((*filter->output_function)(s, filter->data)); + + return c; +} + +/* + * wchar => koi8u + */ +int +mbfl_filt_conv_wchar_koi8u(int c, mbfl_convert_filter *filter) +{ + int s, n; + + if (c < 0x80) { + s = c; + } else { + s = -1; + n = koi8u_ucs_table_len-1; + while (n >= 0) { + if (c == koi8u_ucs_table[n]) { + s = koi8u_ucs_table_min + n; + break; + } + n--; + } + if (s <= 0 && (c & ~MBFL_WCSPLANE_MASK) == MBFL_WCSPLANE_KOI8U) { + s = c & MBFL_WCSPLANE_MASK; + } + } + + if (s >= 0) { + CK((*filter->output_function)(s, filter->data)); + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + +static int mbfl_filt_ident_koi8u(int c, mbfl_identify_filter *filter) +{ + if (c >= 0x80 && c < 0xff) + filter->flag = 0; + else + filter->flag = 1; /* not it */ + return c; +} diff --git a/ext/mbstring/libmbfl/filters/mbfilter_koi8u.h b/ext/mbstring/libmbfl/filters/mbfilter_koi8u.h new file mode 100644 index 0000000..693ade3 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_koi8u.h @@ -0,0 +1,47 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this part: Maksym Veremeyenko <verem@m1.tv> + * + * Based on mbfilter_koi8r.h code + * + */ + +#ifndef MBFL_MBFILTER_KOI8U_H +#define MBFL_MBFILTER_KOI8U_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_koi8u; +extern const struct mbfl_identify_vtbl vtbl_identify_koi8u; +extern const struct mbfl_convert_vtbl vtbl_wchar_koi8u; +extern const struct mbfl_convert_vtbl vtbl_koi8u_wchar; + +int mbfl_filt_conv_koi8u_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_koi8u(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_KOI8U_H */ + +/* + * Local variables: + * tab-width: 4 + * c-basic-offset: 4 + * End: + */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_qprint.c b/ext/mbstring/libmbfl/filters/mbfilter_qprint.c new file mode 100644 index 0000000..df9752b --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_qprint.c @@ -0,0 +1,244 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_qprint.h" +#include "unicode_prop.h" + +static const char *mbfl_encoding_qprint_aliases[] = {"qprint", NULL}; + +const mbfl_encoding mbfl_encoding_qprint = { + mbfl_no_encoding_qprint, + "Quoted-Printable", + "Quoted-Printable", + (const char *(*)[])&mbfl_encoding_qprint_aliases, + NULL, + MBFL_ENCTYPE_ENC_STRM | MBFL_ENCTYPE_GL_UNSAFE +}; + +const struct mbfl_convert_vtbl vtbl_8bit_qprint = { + mbfl_no_encoding_8bit, + mbfl_no_encoding_qprint, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_qprintenc, + mbfl_filt_conv_qprintenc_flush }; + +const struct mbfl_convert_vtbl vtbl_qprint_8bit = { + mbfl_no_encoding_qprint, + mbfl_no_encoding_8bit, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_qprintdec, + mbfl_filt_conv_qprintdec_flush }; + + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +/* + * any => Quoted-Printable + */ + +int mbfl_filt_conv_qprintenc(int c, mbfl_convert_filter *filter) +{ + int s, n; + + switch (filter->status & 0xff) { + case 0: + filter->cache = c; + filter->status++; + break; + default: + s = filter->cache; + filter->cache = c; + n = (filter->status & 0xff00) >> 8; + + if (s == 0) { /* null */ + CK((*filter->output_function)(s, filter->data)); + filter->status &= ~0xff00; + break; + } + + if ((filter->status & MBFL_QPRINT_STS_MIME_HEADER) == 0) { + if (s == 0x0a || (s == 0x0d && c != 0x0a)) { /* line feed */ + CK((*filter->output_function)(0x0d, filter->data)); /* CR */ + CK((*filter->output_function)(0x0a, filter->data)); /* LF */ + filter->status &= ~0xff00; + break; + } else if (s == 0x0d) { + break; + } + } + + if ((filter->status & MBFL_QPRINT_STS_MIME_HEADER) == 0 && n >= 72) { /* soft line feed */ + CK((*filter->output_function)(0x3d, filter->data)); /* '=' */ + CK((*filter->output_function)(0x0d, filter->data)); /* CR */ + CK((*filter->output_function)(0x0a, filter->data)); /* LF */ + filter->status &= ~0xff00; + } + + if (s <= 0 || s >= 0x80 || s == 0x3d /* not ASCII or '=' */ + || ((filter->status & MBFL_QPRINT_STS_MIME_HEADER) != 0 && + (mbfl_charprop_table[s] & MBFL_CHP_MMHQENC) != 0)) { + /* hex-octet */ + CK((*filter->output_function)(0x3d, filter->data)); /* '=' */ + n = (s >> 4) & 0xf; + if (n < 10) { + n += 48; /* '0' */ + } else { + n += 55; /* 'A' - 10 */ + } + CK((*filter->output_function)(n, filter->data)); + n = s & 0xf; + if (n < 10) { + n += 48; + } else { + n += 55; + } + CK((*filter->output_function)(n, filter->data)); + if ((filter->status & MBFL_QPRINT_STS_MIME_HEADER) == 0) { + filter->status += 0x300; + } + } else { + CK((*filter->output_function)(s, filter->data)); + if ((filter->status & MBFL_QPRINT_STS_MIME_HEADER) == 0) { + filter->status += 0x100; + } + } + break; + } + + return c; +} + +int mbfl_filt_conv_qprintenc_flush(mbfl_convert_filter *filter) +{ + /* flush filter cache */ + (*filter->filter_function)('\0', filter); + filter->status &= ~0xffff; + filter->cache = 0; + return 0; +} + +/* + * Quoted-Printable => any + */ +int mbfl_filt_conv_qprintdec(int c, mbfl_convert_filter *filter) +{ + int n, m; + + static int hex2code_map[] = { + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1, + -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 + }; + + switch (filter->status) { + case 1: + if (hex2code_map[c & 0xff] >= 0) { + filter->cache = c; + filter->status = 2; + } else if (c == 0x0d) { /* soft line feed */ + filter->status = 3; + } else if (c == 0x0a) { /* soft line feed */ + filter->status = 0; + } else { + CK((*filter->output_function)(0x3d, filter->data)); /* '=' */ + CK((*filter->output_function)(c, filter->data)); + filter->status = 0; + } + break; + case 2: + m = hex2code_map[c & 0xff]; + if (m < 0) { + CK((*filter->output_function)(0x3d, filter->data)); /* '=' */ + CK((*filter->output_function)(filter->cache, filter->data)); + n = c; + } else { + n = hex2code_map[filter->cache] << 4 | m; + } + CK((*filter->output_function)(n, filter->data)); + filter->status = 0; + break; + case 3: + if (c != 0x0a) { /* LF */ + CK((*filter->output_function)(c, filter->data)); + } + filter->status = 0; + break; + default: + if (c == 0x3d) { /* '=' */ + filter->status = 1; + } else { + CK((*filter->output_function)(c, filter->data)); + } + break; + } + + return c; +} + +int mbfl_filt_conv_qprintdec_flush(mbfl_convert_filter *filter) +{ + int status, cache; + + status = filter->status; + cache = filter->cache; + filter->status = 0; + filter->cache = 0; + /* flush fragments */ + if (status == 1) { + CK((*filter->output_function)(0x3d, filter->data)); /* '=' */ + } else if (status == 2) { + CK((*filter->output_function)(0x3d, filter->data)); /* '=' */ + CK((*filter->output_function)(cache, filter->data)); + } + + return 0; +} + + + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_qprint.h b/ext/mbstring/libmbfl/filters/mbfilter_qprint.h new file mode 100644 index 0000000..3a39fa7 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_qprint.h @@ -0,0 +1,44 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_QPRINT_H +#define MBFL_MBFILTER_QPRINT_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_qprint; +extern const struct mbfl_convert_vtbl vtbl_8bit_qprint; +extern const struct mbfl_convert_vtbl vtbl_qprint_8bit; + +int mbfl_filt_conv_qprintenc(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_qprintenc_flush(mbfl_convert_filter *filter); +int mbfl_filt_conv_qprintdec(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_qprintdec_flush(mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_ASCII_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_sjis.c b/ext/mbstring/libmbfl/filters/mbfilter_sjis.c new file mode 100644 index 0000000..7c463cd --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_sjis.c @@ -0,0 +1,298 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter_ja.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_sjis.h" + +#define UNICODE_TABLE_CP932_DEF +#define UNICODE_TABLE_JIS_DEF + +#include "unicode_table_cp932_ext.h" +#include "unicode_table_jis.h" + +int mbfl_filt_ident_sjis(int c, mbfl_identify_filter *filter); + +const unsigned char mblen_table_sjis[] = { /* 0x80-0x9f,0xE0-0xFF */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +}; + +static const char *mbfl_encoding_sjis_aliases[] = {"x-sjis", "SHIFT-JIS", NULL}; + +const mbfl_encoding mbfl_encoding_sjis = { + mbfl_no_encoding_sjis, + "SJIS", + "Shift_JIS", + (const char *(*)[])&mbfl_encoding_sjis_aliases, + mblen_table_sjis, + MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_GL_UNSAFE +}; + +const struct mbfl_identify_vtbl vtbl_identify_sjis = { + mbfl_no_encoding_sjis, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_sjis +}; + +const struct mbfl_convert_vtbl vtbl_sjis_wchar = { + mbfl_no_encoding_sjis, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_sjis_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_sjis = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_sjis, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_sjis, + mbfl_filt_conv_common_flush +}; + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +#define SJIS_ENCODE(c1,c2,s1,s2) \ + do { \ + s1 = c1; \ + s1--; \ + s1 >>= 1; \ + if ((c1) < 0x5f) { \ + s1 += 0x71; \ + } else { \ + s1 += 0xb1; \ + } \ + s2 = c2; \ + if ((c1) & 1) { \ + if ((c2) < 0x60) { \ + s2--; \ + } \ + s2 += 0x20; \ + } else { \ + s2 += 0x7e; \ + } \ + } while (0) + +#define SJIS_DECODE(c1,c2,s1,s2) \ + do { \ + s1 = c1; \ + if (s1 < 0xa0) { \ + s1 -= 0x81; \ + } else { \ + s1 -= 0xc1; \ + } \ + s1 <<= 1; \ + s1 += 0x21; \ + s2 = c2; \ + if (s2 < 0x9f) { \ + if (s2 < 0x7f) { \ + s2++; \ + } \ + s2 -= 0x20; \ + } else { \ + s1++; \ + s2 -= 0x7e; \ + } \ + } while (0) + + +/* + * SJIS => wchar + */ +int +mbfl_filt_conv_sjis_wchar(int c, mbfl_convert_filter *filter) +{ + int c1, s1, s2, w; + + switch (filter->status) { + case 0: + if (c >= 0 && c < 0x80) { /* latin */ + CK((*filter->output_function)(c, filter->data)); + } else if (c > 0xa0 && c < 0xe0) { /* kana */ + CK((*filter->output_function)(0xfec0 + c, filter->data)); + } else if (c > 0x80 && c < 0xfd && c != 0xa0) { /* kanji first char */ + filter->status = 1; + filter->cache = c; + } else { + w = c & MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + + case 1: /* kanji second char */ + filter->status = 0; + c1 = filter->cache; + if (c >= 0x40 && c <= 0xfc && c != 0x7f) { + SJIS_DECODE(c1, c, s1, s2); + w = (s1 - 0x21)*94 + s2 - 0x21; + if (w >= 0 && w < jisx0208_ucs_table_size) { + w = jisx0208_ucs_table[w]; + } else { + w = 0; + } + if (w <= 0) { + if (s1 < 0x7f && s2 < 0x7f) { + w = (s1 << 8) | s2; + w &= MBFL_WCSPLANE_MASK; + w |= MBFL_WCSPLANE_JIS0208; + } else { + w = (c1 << 8) | c; + w &= MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + } + } + CK((*filter->output_function)(w, filter->data)); + } else if ((c >= 0 && c < 0x21) || c == 0x7f) { /* CTLs */ + CK((*filter->output_function)(c, filter->data)); + } else { + w = (c1 << 8) | c; + w &= MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + + default: + filter->status = 0; + break; + } + + return c; +} + +/* + * wchar => SJIS + */ +int +mbfl_filt_conv_wchar_sjis(int c, mbfl_convert_filter *filter) +{ + int c1, c2, s1, s2; + + s1 = 0; + if (c >= ucs_a1_jis_table_min && c < ucs_a1_jis_table_max) { + s1 = ucs_a1_jis_table[c - ucs_a1_jis_table_min]; + } else if (c >= ucs_a2_jis_table_min && c < ucs_a2_jis_table_max) { + s1 = ucs_a2_jis_table[c - ucs_a2_jis_table_min]; + } else if (c >= ucs_i_jis_table_min && c < ucs_i_jis_table_max) { + s1 = ucs_i_jis_table[c - ucs_i_jis_table_min]; + } else if (c >= ucs_r_jis_table_min && c < ucs_r_jis_table_max) { + s1 = ucs_r_jis_table[c - ucs_r_jis_table_min]; + } + if (s1 <= 0) { + c1 = c & ~MBFL_WCSPLANE_MASK; + if (c1 == MBFL_WCSPLANE_JIS0208) { + s1 = c & MBFL_WCSPLANE_MASK; + } else if (c == 0xa5) { /* YEN SIGN */ + s1 = 0x216f; /* FULLWIDTH YEN SIGN */ + } else if (c == 0x203e) { /* OVER LINE */ + s1 = 0x2131; /* FULLWIDTH MACRON */ + } else if (c == 0xff3c) { /* FULLWIDTH REVERSE SOLIDUS */ + s1 = 0x2140; + } else if (c == 0xff5e) { /* FULLWIDTH TILDE */ + s1 = 0x2141; + } else if (c == 0x2225) { /* PARALLEL TO */ + s1 = 0x2142; + } else if (c == 0xff0d) { /* FULLWIDTH HYPHEN-MINUS */ + s1 = 0x215d; + } else if (c == 0xffe0) { /* FULLWIDTH CENT SIGN */ + s1 = 0x2171; + } else if (c == 0xffe1) { /* FULLWIDTH POUND SIGN */ + s1 = 0x2172; + } else if (c == 0xffe2) { /* FULLWIDTH NOT SIGN */ + s1 = 0x224c; + } + if (c == 0) { + s1 = 0; + } else if (s1 <= 0) { + s1 = -1; + } + } else if (s1 >= 0x8080) { + s1 = -1; + } + if (s1 >= 0) { + if (s1 < 0x100) { /* latin or kana */ + CK((*filter->output_function)(s1, filter->data)); + } else { /* kanji */ + c1 = (s1 >> 8) & 0xff; + c2 = s1 & 0xff; + SJIS_ENCODE(c1, c2, s1, s2); + CK((*filter->output_function)(s1, filter->data)); + CK((*filter->output_function)(s2, filter->data)); + } + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + +int mbfl_filt_ident_sjis(int c, mbfl_identify_filter *filter) +{ + if (filter->status) { /* kanji second char */ + if (c < 0x40 || c > 0xfc || c == 0x7f) { /* bad */ + filter->flag = 1; + } + filter->status = 0; + } else if (c >= 0 && c < 0x80) { /* latin ok */ + ; + } else if (c > 0xa0 && c < 0xe0) { /* kana ok */ + ; + } else if (c > 0x80 && c < 0xf0 && c != 0xa0) { /* kanji first char */ + filter->status = 1; + } else { /* bad */ + filter->flag = 1; + } + + return c; +} + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_sjis.h b/ext/mbstring/libmbfl/filters/mbfilter_sjis.h new file mode 100644 index 0000000..cb9146f --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_sjis.h @@ -0,0 +1,47 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter_ja.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_SJIS_H +#define MBFL_MBFILTER_SJIS_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_sjis; +extern const struct mbfl_identify_vtbl vtbl_identify_sjis; +extern const struct mbfl_convert_vtbl vtbl_sjis_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_sjis; + +int mbfl_filt_conv_sjis_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_sjis(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_SJIS_H */ + +/* + * charset=UTF-8 + */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_sjis_2004.c b/ext/mbstring/libmbfl/filters/mbfilter_sjis_2004.c new file mode 100644 index 0000000..4e1838f --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_sjis_2004.c @@ -0,0 +1,725 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter_sjis.c + * by rui hirokawa <hirokawa@php.net> on 15 aug 2011. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_sjis_2004.h" + +#include "unicode_table_jis2004.h" +#include "unicode_table_jis.h" + +extern const unsigned char mblen_table_sjis[]; + +static int mbfl_filt_ident_sjis2004(int c, mbfl_identify_filter *filter); + +extern int mbfl_filt_ident_sjis(int c, mbfl_identify_filter *filter); +extern int mbfl_bisec_srch(int w, const unsigned short *tbl, int n); +extern int mbfl_bisec_srch2(int w, const unsigned short tbl[], int n); + +static const char *mbfl_encoding_sjis2004_aliases[] = {"SJIS2004","Shift_JIS-2004", NULL}; + +const mbfl_encoding mbfl_encoding_sjis2004 = { + mbfl_no_encoding_sjis2004, + "SJIS-2004", + "Shift_JIS", + (const char *(*)[])&mbfl_encoding_sjis2004_aliases, + mblen_table_sjis, + MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_GL_UNSAFE +}; + +const struct mbfl_identify_vtbl vtbl_identify_sjis2004 = { + mbfl_no_encoding_sjis2004, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_sjis +}; + +const struct mbfl_convert_vtbl vtbl_sjis2004_wchar = { + mbfl_no_encoding_sjis2004, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_jis2004_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_sjis2004 = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_sjis2004, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_jis2004, + mbfl_filt_conv_jis2004_flush +}; + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +#define SJIS_ENCODE(c1,c2,s1,s2) \ + do { \ + s1 = c1; \ + s1--; \ + s1 >>= 1; \ + if ((c1) < 0x5f) { \ + s1 += 0x71; \ + } else { \ + s1 += 0xb1; \ + } \ + s2 = c2; \ + if ((c1) & 1) { \ + if ((c2) < 0x60) { \ + s2--; \ + } \ + s2 += 0x20; \ + } else { \ + s2 += 0x7e; \ + } \ + } while (0) + +#define SJIS_DECODE(c1,c2,s1,s2) \ + do { \ + s1 = c1; \ + if (s1 < 0xa0) { \ + s1 -= 0x81; \ + } else { \ + s1 -= 0xc1; \ + } \ + s1 <<= 1; \ + s1 += 0x21; \ + s2 = c2; \ + if (s2 < 0x9f) { \ + if (s2 < 0x7f) { \ + s2++; \ + } \ + s2 -= 0x20; \ + } else { \ + s1++; \ + s2 -= 0x7e; \ + } \ + } while (0) + + +/* + * JIS-2004 => wchar + */ +int +mbfl_filt_conv_jis2004_wchar(int c, mbfl_convert_filter *filter) +{ + int k; + int c1, c2, s, s1, s2, w = 0, w1; + +retry: + switch (filter->status & 0xf) { + case 0: + if (c >= 0 && c < 0x80) { /* latin */ + if (filter->from->no_encoding == mbfl_no_encoding_eucjp2004) { + CK((*filter->output_function)(c, filter->data)); + } else if (filter->from->no_encoding == mbfl_no_encoding_sjis2004) { + if (c == 0x5c) { + CK((*filter->output_function)(0x00a5, filter->data)); + } else if (c == 0x7e) { + CK((*filter->output_function)(0x203e, filter->data)); + } else { + CK((*filter->output_function)(c, filter->data)); + } + } else { /* ISO-2022-JP-2004 */ + if (c == 0x1b) { + filter->status += 6; + } else if ((filter->status == 0x80 || filter->status == 0x90 || filter->status == 0xa0) + && c > 0x20 && c < 0x7f) { /* kanji first char */ + filter->cache = c; + if (filter->status == 0x90) { + filter->status += 1; /* JIS X 0213 plane 1 */ + } else if (filter->status == 0xa0) { + filter->status += 4; /* JIS X 0213 plane 2 */ + } else { + filter->status += 5; /* JIS X 0208 */ + } + } else { + CK((*filter->output_function)(c, filter->data)); + } + } + } else { + if (filter->from->no_encoding == mbfl_no_encoding_eucjp2004) { + if (c > 0xa0 && c < 0xff) { /* X 0213 plane 1 first char */ + filter->status = 1; + filter->cache = c; + } else if (c == 0x8e) { /* kana first char */ + filter->status = 2; + } else if (c == 0x8f) { /* X 0213 plane 2 first char */ + filter->status = 3; + } else { + w = c & MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + } else if (filter->from->no_encoding == mbfl_no_encoding_sjis2004) { + if (c > 0xa0 && c < 0xe0) { /* kana */ + CK((*filter->output_function)(0xfec0 + c, filter->data)); + } else if (c > 0x80 && c < 0xfd && c != 0xa0) { /* kanji first char */ + filter->status = 1; + filter->cache = c; + } else { + w = c & MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + } else { + w = c & MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + } + break; + + case 1: /* kanji second char */ + filter->status &= ~0xf; + c1 = filter->cache; + + if (filter->from->no_encoding == mbfl_no_encoding_eucjp2004) { + if (c > 0xa0 && c < 0xff) { + s1 = c1 - 0x80; + s2 = c - 0x80; + } + } else if (filter->from->no_encoding == mbfl_no_encoding_sjis2004) { + if (c >= 0x40 && c <= 0xfc && c != 0x7f) { + SJIS_DECODE(c1, c, s1, s2); + } + } else { + s1 = c1; + s2 = c; + } + w1 = (s1 << 8) | s2; + + if (w1 >= 0x2121) { + /* conversion for combining characters */ + if ((w1 >= 0x2477 && w1 <= 0x2479) || (w1 >= 0x2479 && w1 <= 0x247B) || + (w1 >= 0x2577 && w1 <= 0x257E) || w1 == 0x2678 || w1 == 0x2B44 || + (w1 >= 0x2B48 && w1 <= 0x2B4F) || (w1 >= 0x2B65 && w1 <= 0x2B66)) { + k = mbfl_bisec_srch2(w1, jisx0213_u2_key, jisx0213_u2_tbl_len); + if (k >= 0) { + w = jisx0213_u2_tbl[2*k]; + CK((*filter->output_function)(w, filter->data)); + w = jisx0213_u2_tbl[2*k+1]; + } + } + + /* conversion for BMP */ + if (w <= 0) { + w1 = (s1 - 0x21)*94 + s2 - 0x21; + if (w1 >= 0 && w1 < jisx0213_ucs_table_size) { + w = jisx0213_ucs_table[w1]; + } + } + + /* conversion for CJK Unified Ideographs ext.B (U+2XXXX) */ + if (w <= 0) { + w1 = (s1 << 8) | s2; + k = mbfl_bisec_srch2(w1, jisx0213_jis_u5_key, jisx0213_u5_tbl_len); + if (k >= 0) { + w = jisx0213_jis_u5_tbl[k] + 0x20000; + } + } + + if (w <= 0) { + if (s1 < 0x7f && s2 < 0x7f) { + w = (s1 << 8) | s2; + w &= MBFL_WCSPLANE_MASK; + w |= MBFL_WCSPLANE_JIS0213; + } else { + w = (c1 << 8) | c; + w &= MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + } + } + CK((*filter->output_function)(w, filter->data)); + } else if ((c >= 0 && c < 0x21) || c == 0x7f) { /* CTLs */ + CK((*filter->output_function)(c, filter->data)); + } else { + w = (c1 << 8) | c; + w &= MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + + case 2: /* got 0x8e : EUC-JP-2004 kana */ + filter->status = 0; + if (c > 0xa0 && c < 0xe0) { + w = 0xfec0 + c; + CK((*filter->output_function)(w, filter->data)); + } else if ((c >= 0 && c < 0x21) || c == 0x7f) { /* CTLs */ + CK((*filter->output_function)(c, filter->data)); + } else { + w = 0x8e00 | c; + w &= MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + + case 3: /* X 0213 plane 2 first char : EUC-JP-2004 (0x8f), ISO-2022-JP-2004 */ + if ((c >= 0 && c < 0x21) || c == 0x7f) { /* CTLs */ + CK((*filter->output_function)(c, filter->data)); + filter->status = 0; + } else { + if (filter->from->no_encoding == mbfl_no_encoding_eucjp2004) { + s1 = c - 0x80; + } else { + s1 = c; + } + if (s1 > 0x20 && s1 < 0x80) { + filter->cache = s1; + filter->status++; + } else { + if (filter->to->no_encoding == mbfl_no_encoding_eucjp2004) { + w = c | 0x8f00; + w &= MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + } else { + w = c & 0x7f; + w &= MBFL_WCSPLANE_MASK; + w |= MBFL_WCSPLANE_JIS0213; + } + CK((*filter->output_function)(w, filter->data)); + } + } + break; + + case 4: /* X 0213 plane 2 second char : EUC-JP-2004, ISO-2022-JP-2004 */ + + filter->status &= ~0xf; + c1 = filter->cache; + if (filter->from->no_encoding == mbfl_no_encoding_eucjp2004) { + c2 = c - 0x80; + } else { + c2 = c; + } + s1 = c1 - 0x21; + s2 = c2 - 0x21; + + if (((s1 >= 0 && s1 <= 4 && s1 != 1) || s1 == 7 || (s1 >= 11 && s1 <= 14) || + (s1 >= 77 && s1 < 94)) && s2 >= 0 && s2 < 94) { + /* calc offset from ku */ + for (k = 0; k < jisx0213_p2_ofst_len; k++) { + if (s1 == jisx0213_p2_ofst[k]-1) { + break; + } + } + k = k - (jisx0213_p2_ofst[k]-1); + + /* check for japanese chars in BMP */ + s = (s1 + 94 + k)*94 + s2; + if (s >= 0 && s < jisx0213_ucs_table_size) { + w = jisx0213_ucs_table[s]; + } else { + w = 0; + } + + /* check for japanese chars in CJK Unified Ideographs ext.B (U+2XXXX) */ + if (w <= 0) { + w1 = ((c1 + k + 94) << 8) | c2; + k = mbfl_bisec_srch2(w1, jisx0213_jis_u5_key, jisx0213_u5_tbl_len); + if (k >= 0) { + w = jisx0213_jis_u5_tbl[k] + 0x20000; + } + } + + if (w <= 0) { + w = ((c1 & 0x7f) << 8) | (c2 & 0x7f); + w &= MBFL_WCSPLANE_MASK; + w |= MBFL_WCSPLANE_JIS0213; + } + + CK((*filter->output_function)(w, filter->data)); + } else if ((c >= 0 && c < 0x21) || c == 0x7f) { /* CTLs */ + CK((*filter->output_function)(c, filter->data)); + } else { + if (filter->to->no_encoding == mbfl_no_encoding_eucjp2004) { + w = (c1 << 8) | c | 0x8f0000; + w &= MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + } else { + w = ((c1 & 0x7f) << 8) | (c2 & 0x7f); + w &= MBFL_WCSPLANE_MASK; + w |= MBFL_WCSPLANE_JIS0213; + } + CK((*filter->output_function)(w, filter->data)); + } + + break; + + case 5: /* X 0208 : ISO-2022-JP-2004 */ + filter->status &= ~0xf; + c1 = filter->cache; + if (c > 0x20 && c < 0x7f) { + s = (c1 - 0x21)*94 + c - 0x21; + if (s >= 0 && s < jisx0208_ucs_table_size) { + w = jisx0208_ucs_table[s]; + } + } + if (w <= 0) { + w = (c1 << 8) | c; + w &= MBFL_WCSPLANE_MASK; + w |= MBFL_WCSPLANE_JIS0208; + } + CK((*filter->output_function)(w, filter->data)); + break; + + /* ESC : ISO-2022-JP-2004 */ +/* case 0x06: */ +/* case 0x16: */ +/* case 0x26: */ +/* case 0x86: */ +/* case 0x96: */ +/* case 0xa6: */ + case 6: + if (c == 0x24) { /* '$' */ + filter->status++; + } else if (c == 0x28) { /* '(' */ + filter->status += 3; + } else { + filter->status &= ~0xf; + CK((*filter->output_function)(0x1b, filter->data)); + goto retry; + } + break; + + /* ESC $ : ISO-2022-JP-2004 */ +/* case 0x07: */ +/* case 0x17: */ +/* case 0x27: */ +/* case 0x87: */ +/* case 0x97: */ +/* case 0xa7: */ + case 7: + if (c == 0x42) { /* 'B' -> JIS X 0208-1983 */ + filter->status = 0x80; + } else if (c == 0x28) { /* '(' */ + filter->status++; + } else { + filter->status &= ~0xf; + CK((*filter->output_function)(0x1b, filter->data)); + CK((*filter->output_function)(0x24, filter->data)); + goto retry; + } + break; + + break; + + /* ESC $ ( : ISO-2022-JP-2004 */ +/* case 0x08: */ +/* case 0x18: */ +/* case 0x28: */ +/* case 0x88: */ +/* case 0x98: */ +/* case 0xa8: */ + case 8: + if (c == 0x51) { /* JIS X 0213 plane 1 */ + filter->status = 0x90; + } else if (c == 0x50) { /* JIS X 0213 plane 2 */ + filter->status = 0xa0; + } else { + filter->status &= ~0xf; + CK((*filter->output_function)(0x1b, filter->data)); + CK((*filter->output_function)(0x24, filter->data)); + CK((*filter->output_function)(0x28, filter->data)); + goto retry; + } + break; + + /* ESC ( : ISO-2022-JP-2004 */ +/* case 0x09: */ +/* case 0x19: */ +/* case 0x29: */ +/* case 0x89: */ +/* case 0x99: */ + case 9: + if (c == 0x42) { /* 'B' : ASCII */ + filter->status = 0; + } else { + filter->status &= ~0xf; + CK((*filter->output_function)(0x1b, filter->data)); + CK((*filter->output_function)(0x28, filter->data)); + goto retry; + } + break; + + default: + filter->status = 0; + break; + } + + return c; +} + +int +mbfl_filt_conv_wchar_jis2004(int c, mbfl_convert_filter *filter) { + int k; + int c1, c2, s1 = 0, s2; + +retry: + + /* check for 1st char of combining characters */ + if ((filter->status & 0xf)== 0 && ( + c == 0x00E6 || + (c >= 0x0254 && c <= 0x02E9) || + (c >= 0x304B && c <= 0x3053) || + (c >= 0x30AB && c <= 0x30C8) || + c == 0x31F7)) { + for (k=0;k<jisx0213_u2_tbl_len;k++) { + if (c == jisx0213_u2_tbl[2*k]) { + filter->status++; + filter->cache = k; + return c; + } + } + } + + /* check for 2nd char of combining characters */ + if ((filter->status & 0xf) == 1 && + filter->cache >= 0 && filter->cache <= jisx0213_u2_tbl_len) { + k = filter->cache; + filter->status &= ~0xf; + filter->cache = 0; + + c1 = jisx0213_u2_tbl[2*k]; + if ((c1 == 0x0254 || c1 == 0x028C || c1 == 0x0259 || c1 == 0x025A) + && c == 0x0301) { + k++; + } + if (c == jisx0213_u2_tbl[2*k+1]) { + s1 = jisx0213_u2_key[k]; + } else { /* fallback */ + s1 = jisx0213_u2_fb_tbl[k]; + + if (filter->to->no_encoding == mbfl_no_encoding_sjis2004) { + c1 = (s1 >> 8) & 0xff; + c2 = s1 & 0xff; + SJIS_ENCODE(c1, c2, s1, s2); + } else if (filter->to->no_encoding == mbfl_no_encoding_eucjp2004) { + s2 = (s1 & 0xff) + 0x80; + s1 = ((s1 >> 8) & 0xff) + 0x80; + } else { + if (filter->status != 0x200) { + CK((*filter->output_function)(0x1b, filter->data)); + CK((*filter->output_function)(0x24, filter->data)); + CK((*filter->output_function)(0x28, filter->data)); + CK((*filter->output_function)(0x51, filter->data)); + } + filter->status = 0x200; + + s2 = s1 & 0x7f; + s1 = (s1 >> 8) & 0x7f; + } + + CK((*filter->output_function)(s1, filter->data)); + CK((*filter->output_function)(s2, filter->data)); + goto retry; + } + } + + /* check for major japanese chars: U+4E00 - U+9FFF */ + if (s1 <= 0) { + for (k=0; k < uni2jis_tbl_len ;k++) { + if (c >= uni2jis_tbl_range[k][0] && c <= uni2jis_tbl_range[k][1]) { + s1 = uni2jis_tbl[k][c-uni2jis_tbl_range[k][0]]; + break; + } + } + } + + /* check for japanese chars in compressed mapping area: U+1E00 - U+4DBF */ + if (s1 <= 0 && c >= ucs_c1_jisx0213_min && c <= ucs_c1_jisx0213_max) { + k = mbfl_bisec_srch(c, ucs_c1_jisx0213_tbl, ucs_c1_jisx0213_tbl_len); + if (k >= 0) { + s1 = ucs_c1_jisx0213_ofst[k] + c - ucs_c1_jisx0213_tbl[2*k]; + } + } + + /* check for japanese chars in CJK Unified Ideographs ext.B (U+2XXXX) */ + if (s1 <= 0 && c >= jisx0213_u5_tbl_min && c <= jisx0213_u5_tbl_max) { + k = mbfl_bisec_srch2(c - 0x20000, jisx0213_u5_jis_key, jisx0213_u5_tbl_len); + if (k >= 0) { + s1 = jisx0213_u5_jis_tbl[k]; + } + } + + if (s1 <= 0) { + /* CJK Compatibility Forms: U+FE30 - U+FE4F */ + if (c == 0xfe45) { + s1 = 0x233e; + } else if (c == 0xfe46) { + s1 = 0x233d; + } else if (c >= 0xf91d && c <= 0xf9dc) { + /* CJK Compatibility Ideographs: U+F900 - U+F92A */ + k = mbfl_bisec_srch2(c, ucs_r2b_jisx0213_cmap_key, ucs_r2b_jisx0213_cmap_len); + if (k >= 0) { + s1 = ucs_r2b_jisx0213_cmap_val[k]; + } + } + } + + if (s1 <= 0) { + c1 = c & ~MBFL_WCSPLANE_MASK; + if (c1 == MBFL_WCSPLANE_JIS0213) { + s1 = c & MBFL_WCSPLANE_MASK; + } + if (c == 0) { + s1 = 0; + } else if (s1 <= 0) { + s1 = -1; + } + } else if (s1 >= 0x9980) { + s1 = -1; + } + + if (s1 >= 0) { + if (s1 < 0x80) { /* ASCII */ + if (filter->to->no_encoding == mbfl_no_encoding_2022jp_2004 && + (filter->status & 0xff00) != 0) { + CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ + CK((*filter->output_function)(0x28, filter->data)); /* '(' */ + CK((*filter->output_function)(0x42, filter->data)); /* 'B' */ + } + filter->status = 0; + CK((*filter->output_function)(s1, filter->data)); + } else if (s1 < 0x100) { /* latin or kana */ + if (filter->to->no_encoding == mbfl_no_encoding_eucjp2004) { + CK((*filter->output_function)(0x8e, filter->data)); + } + CK((*filter->output_function)(s1, filter->data)); + } else if (s1 < 0x7f00) { /* X 0213 plane 1 */ + if (filter->to->no_encoding == mbfl_no_encoding_sjis2004) { + c1 = (s1 >> 8) & 0xff; + c2 = s1 & 0xff; + SJIS_ENCODE(c1, c2, s1, s2); + } else if (filter->to->no_encoding == mbfl_no_encoding_eucjp2004) { + s2 = (s1 & 0xff) + 0x80; + s1 = ((s1 >> 8) & 0xff) + 0x80; + } else { + if ((filter->status & 0xff00) != 0x200) { + CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ + CK((*filter->output_function)(0x24, filter->data)); /* '$' */ + CK((*filter->output_function)(0x28, filter->data)); /* '(' */ + CK((*filter->output_function)(0x51, filter->data)); /* 'Q' */ + } + filter->status = 0x200; + s2 = s1 & 0xff; + s1 = (s1 >> 8) & 0xff; + } + CK((*filter->output_function)(s1, filter->data)); + CK((*filter->output_function)(s2, filter->data)); + } else { /* X 0213 plane 2 */ + if (filter->to->no_encoding == mbfl_no_encoding_sjis2004) { + c1 = (s1 >> 8) & 0xff; + c2 = s1 & 0xff; + SJIS_ENCODE(c1, c2, s1, s2); + } else { + s2 = s1 & 0xff; + k = ((s1 >> 8) & 0xff) - 0x7f; + if (k >= 0 && k < jisx0213_p2_ofst_len) { + s1 = jisx0213_p2_ofst[k] - 1 + 0x21; + } + if (filter->to->no_encoding == mbfl_no_encoding_eucjp2004) { + s2 |= 0x80; + s1 |= 0x80; + CK((*filter->output_function)(0x8f, filter->data)); + } else { + if ((filter->status & 0xff00) != 0x200) { + CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ + CK((*filter->output_function)(0x24, filter->data)); /* '$' */ + CK((*filter->output_function)(0x28, filter->data)); /* '(' */ + CK((*filter->output_function)(0x50, filter->data)); /* 'P' */ + } + filter->status = 0x200; + } + } + + CK((*filter->output_function)(s1, filter->data)); + CK((*filter->output_function)(s2, filter->data)); + } + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } +} + +int +mbfl_filt_conv_jis2004_flush(mbfl_convert_filter *filter) +{ + int k, c1, c2, s1, s2; + + k = filter->cache; + filter->cache = 0; + + if (filter->status == 1 && k >= 0 && k <= jisx0213_u2_tbl_len) { + s1 = jisx0213_u2_fb_tbl[k]; + + if (filter->to->no_encoding == mbfl_no_encoding_sjis2004) { + c1 = (s1 >> 8) & 0xff; + c2 = s1 & 0xff; + SJIS_ENCODE(c1, c2, s1, s2); + } else if (filter->to->no_encoding == mbfl_no_encoding_eucjp2004) { + s2 = (s1 & 0xff) | 0x80; + s1 = ((s1 >> 8) & 0xff) | 0x80; + } else { + s2 = s1 & 0x7f; + s1 = (s1 >> 8) & 0x7f; + if ((filter->status & 0xff00) != 0x200) { + CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ + CK((*filter->output_function)(0x24, filter->data)); /* '$' */ + CK((*filter->output_function)(0x28, filter->data)); /* '(' */ + CK((*filter->output_function)(0x51, filter->data)); /* 'Q' */ + } + filter->status = 0x200; + } + + CK((*filter->output_function)(s1, filter->data)); + CK((*filter->output_function)(s2, filter->data)); + } + + /* back to latin */ + if ((filter->status & 0xff00) != 0) { + CK((*filter->output_function)(0x1b, filter->data)); /* ESC */ + CK((*filter->output_function)(0x28, filter->data)); /* '(' */ + CK((*filter->output_function)(0x42, filter->data)); /* 'B' */ + } + + filter->status = 0; + + if (filter->flush_function != NULL) { + return (*filter->flush_function)(filter->data); + } + + return 0; +} diff --git a/ext/mbstring/libmbfl/filters/mbfilter_sjis_2004.h b/ext/mbstring/libmbfl/filters/mbfilter_sjis_2004.h new file mode 100644 index 0000000..cf91f7a --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_sjis_2004.h @@ -0,0 +1,49 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter_sjis.c + * by rui hirokawa <hirokawa@php.net> on 15 aug 2011. + * + */ + +#ifndef MBFL_MBFILTER_SJIS_2004_H +#define MBFL_MBFILTER_SJIS_2004_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_sjis2004; +extern const struct mbfl_identify_vtbl vtbl_identify_sjis2004; +extern const struct mbfl_convert_vtbl vtbl_sjis2004_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_sjis2004; + +int mbfl_filt_conv_jis2004_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_jis2004(int c, mbfl_convert_filter *filter); + +int mbfl_filt_conv_jis2004_flush(mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_SJIS_2004_H */ + +/* + * charset=UTF-8 + */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_sjis_mac.c b/ext/mbstring/libmbfl/filters/mbfilter_sjis_mac.c new file mode 100644 index 0000000..2f84edf --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_sjis_mac.c @@ -0,0 +1,700 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * the source code included in this files was separated from mbfilter_sjis_open.c + * by Rui Hirokawa <hirokawa@php.net> on 25 July 2011. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_sjis_mac.h" + +#include "unicode_table_cp932_ext.h" +#include "unicode_table_jis.h" + +#include "sjis_mac2uni.h" + +extern int mbfl_filt_ident_sjis(int c, mbfl_identify_filter *filter); +extern const unsigned char mblen_table_sjis[]; + +static int mbfl_filt_conv_sjis_mac_flush(mbfl_convert_filter *filter); + +static const char *mbfl_encoding_sjis_mac_aliases[] = {"MacJapanese", "x-Mac-Japanese", NULL}; + +const mbfl_encoding mbfl_encoding_sjis_mac = { + mbfl_no_encoding_sjis_mac, + "SJIS-mac", + "Shift_JIS", + (const char *(*)[])&mbfl_encoding_sjis_mac_aliases, + mblen_table_sjis, + MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_GL_UNSAFE +}; + +const struct mbfl_identify_vtbl vtbl_identify_sjis_mac = { + mbfl_no_encoding_sjis_mac, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_sjis +}; + +const struct mbfl_convert_vtbl vtbl_sjis_mac_wchar = { + mbfl_no_encoding_sjis_mac, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_sjis_mac_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_sjis_mac = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_sjis_mac, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_sjis_mac, + mbfl_filt_conv_sjis_mac_flush +}; + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +#define SJIS_ENCODE(c1,c2,s1,s2) \ + do { \ + s1 = c1; \ + s1--; \ + s1 >>= 1; \ + if ((c1) < 0x5f) { \ + s1 += 0x71; \ + } else { \ + s1 += 0xb1; \ + } \ + s2 = c2; \ + if ((c1) & 1) { \ + if ((c2) < 0x60) { \ + s2--; \ + } \ + s2 += 0x20; \ + } else { \ + s2 += 0x7e; \ + } \ + } while (0) + +#define SJIS_DECODE(c1,c2,s1,s2) \ + do { \ + s1 = c1; \ + if (s1 < 0xa0) { \ + s1 -= 0x81; \ + } else { \ + s1 -= 0xc1; \ + } \ + s1 <<= 1; \ + s1 += 0x21; \ + s2 = c2; \ + if (s2 < 0x9f) { \ + if (s2 < 0x7f) { \ + s2++; \ + } \ + s2 -= 0x20; \ + } else { \ + s1++; \ + s2 -= 0x7e; \ + } \ + } while (0) + +/* + * SJIS-mac => wchar + */ +int +mbfl_filt_conv_sjis_mac_wchar(int c, mbfl_convert_filter *filter) +{ + int i, j, n; + int c1, s, s1, s2, w; + + switch (filter->status) { + case 0: + if (c >= 0 && c < 0x80 && c != 0x5c) { /* latin */ + CK((*filter->output_function)(c, filter->data)); + } else if (c > 0xa0 && c < 0xe0) { /* kana */ + CK((*filter->output_function)(0xfec0 + c, filter->data)); + } else if (c > 0x80 && c < 0xfd && c != 0xa0) { /* kanji first char */ + filter->status = 1; + filter->cache = c; + } else if (c == 0x5c) { + CK((*filter->output_function)(0x00a5, filter->data)); + } else if (c == 0x80) { + CK((*filter->output_function)(0x005c, filter->data)); + } else if (c == 0xa0) { + CK((*filter->output_function)(0x00a0, filter->data)); + } else if (c == 0xfd) { + CK((*filter->output_function)(0x00a9, filter->data)); + } else if (c == 0xfe) { + CK((*filter->output_function)(0x2122, filter->data)); + } else if (c == 0xff) { + CK((*filter->output_function)(0x2026, filter->data)); + CK((*filter->output_function)(0xf87f, filter->data)); + } else { + w = c & MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + + case 1: /* kanji second char */ + filter->status = 0; + c1 = filter->cache; + if (c >= 0x40 && c <= 0xfc && c != 0x7f) { + w = 0; + SJIS_DECODE(c1, c, s1, s2); + s = (s1 - 0x21)*94 + s2 - 0x21; + if (s <= 0x89) { + if (s == 0x1c) { + w = 0x2014; /* EM DASH */ + } else if (s == 0x1f) { + w = 0xff3c; /* FULLWIDTH REVERSE SOLIDUS */ + } else if (s == 0x20) { + w = 0x301c; /* FULLWIDTH TILDE */ + } else if (s == 0x21) { + w = 0x2016; /* PARALLEL TO */ + } else if (s == 0x3c) { + w = 0x2212; /* FULLWIDTH HYPHEN-MINUS */ + } else if (s == 0x50) { + w = 0x00a2; /* FULLWIDTH CENT SIGN */ + } else if (s == 0x51) { + w = 0x00a3; /* FULLWIDTH POUND SIGN */ + } else if (s == 0x89) { + w = 0x00ac; /* FULLWIDTH NOT SIGN */ + } + } + + /* apple gaiji area 0x8540 - 0x886d */ + if (w == 0) { + for (i=0; i<7; i++) { + if (s >= code_tbl[i][0] && s <= code_tbl[i][1]) { + w = s - code_tbl[i][0] + code_tbl[i][2]; + break; + } + } + } + + if (w == 0) { + + for (i=0; i<code_tbl_m_len; i++) { + if (s == code_tbl_m[i][0]) { + if (code_tbl_m[i][1] == 0xf860) { + n = 4; + } else if (code_tbl_m[i][1] == 0xf861) { + n = 5; + } else { + n = 6; + } + for (j=1; j<n-1; j++) { + CK((*filter->output_function)(code_tbl_m[i][j], filter->data)); + } + w = code_tbl_m[i][n-1]; + break; + } + } + } + + if (w == 0) { + for (i=0; i<8; i++) { + if (s >= code_ofst_tbl[i][0] && s <= code_ofst_tbl[i][1]) { + w = code_map[i][s - code_ofst_tbl[i][0]]; + s2 = 0; + if (s >= 0x043e && s <= 0x0441) { + s2 = 0xf87a; + } else if (s == 0x03b1 || s == 0x03b7) { + s2 = 0xf87f; + } else if (s == 0x04b8 || s == 0x04b9 || s == 0x04c4) { + s2 = 0x20dd; + } else if (s == 0x1ed9 || s == 0x1eda || s == 0x1ee8 || s == 0x1ef3 || + (s >= 0x1ef5 && s <= 0x1efb) || s == 0x1f05 || s == 0x1f06 || + s == 0x1f18 || (s >= 0x1ff2 && s <= 0x20a5)) { + s2 = 0xf87e; + } + if (s2 > 0) { + CK((*filter->output_function)(w, filter->data)); + w = s2; + } + break; + } + } + } + + if (w == 0 && s >= 0 && s < jisx0208_ucs_table_size) { /* X 0208 */ + w = jisx0208_ucs_table[s]; + } + + if (w <= 0) { + w = (s1 << 8) | s2; + w &= MBFL_WCSPLANE_MASK; + w |= MBFL_WCSPLANE_WINCP932; + } + CK((*filter->output_function)(w, filter->data)); + } else if ((c >= 0 && c < 0x21) || c == 0x7f) { /* CTLs */ + CK((*filter->output_function)(c, filter->data)); + } else { + w = (c1 << 8) | c; + w &= MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + + default: + filter->status = 0; + break; + } + + return c; +} + +/* + * wchar => SJIS-mac + */ +int +mbfl_filt_conv_wchar_sjis_mac(int c, mbfl_convert_filter *filter) +{ + int i; + int c1, c2, s1, s2, mode; + + s1 = 0; + s2 = 0; + + // a1: U+0000 -> U+046F + // a2: U+2000 -> U+30FF + // i: U+4E00 -> U+9FFF + // r: U+FF00 -> U+FFFF + + switch (filter->status) { + + case 1: + c1 = filter->cache; + filter->cache = 0; + filter->status = 0; + + s1 = 0; + s2 = 0; + + if (c == 0xf87a) { + for (i=0;i<4;i++) { + if (c1 == s_form_tbl[i+34+3+3]) { + s1 = s_form_sjis_tbl[i+34+3+3]; + break; + } + } + if (s1 <= 0) { + s2 = c1; + } + } else if (c == 0x20dd) { + for (i=0;i<3;i++) { + if (c1 == s_form_tbl[i+34+3]) { + s1 = s_form_sjis_tbl[i+34+3]; + break; + } + } + if (s1 <= 0) { + s2 = c1; + } + } else if (c == 0xf87f) { + for (i=0;i<3;i++) { + if (c1 == s_form_tbl[i+34]) { + s1 = s_form_sjis_tbl[i+34]; + break; + } + } + if (s1 <= 0) { + s2 = c1; s1 = -1; + } + } else if (c == 0xf87e) { + for (i=0;i<34;i++) { + if (c1 == s_form_tbl[i]) { + s1 = s_form_sjis_tbl[i]; + break; + } + } + if (s1 <= 0) { + s2 = c1; s1 = -1; + } + } else { + s2 = c1; + s1 = c; + } + + if (s2 > 0) { + for (i=0;i<s_form_tbl_len;i++) { + if (c1 == s_form_tbl[i]) { + s1 = s_form_sjis_fallback_tbl[i]; + break; + } + } + } + + if (s1 >= 0) { + if (s1 < 0x100) { + CK((*filter->output_function)(s1, filter->data)); + } else { + CK((*filter->output_function)((s1 >> 8) & 0xff, filter->data)); + CK((*filter->output_function)(s1 & 0xff, filter->data)); + } + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + if (s2 <= 0 || s1 == -1) { + break; + } + + case 0: + + if (c >= ucs_a1_jis_table_min && c < ucs_a1_jis_table_max) { + s1 = ucs_a1_jis_table[c - ucs_a1_jis_table_min]; + if (c == 0x5c) { + s1 = 0x80; + } else if (c == 0xa9) { + s1 = 0xfd; + } + } else if (c >= ucs_a2_jis_table_min && c < ucs_a2_jis_table_max) { + s1 = ucs_a2_jis_table[c - ucs_a2_jis_table_min]; + if (c == 0x2122) { + s1 = 0xfe; + } else if (c == 0x2014) { + s1 = 0x213d; + } else if (c == 0x2116) { + s1 = 0x2c1d; + } + } else if (c >= ucs_i_jis_table_min && c < ucs_i_jis_table_max) { + s1 = ucs_i_jis_table[c - ucs_i_jis_table_min]; + } else if (c >= ucs_r_jis_table_min && c < ucs_r_jis_table_max) { + s1 = ucs_r_jis_table[c - ucs_r_jis_table_min]; + } + + if (c >= 0x2000) { + for (i=0;i<s_form_tbl_len;i++) { + if (c == s_form_tbl[i]) { + filter->status = 1; + filter->cache = c; + return c; + } + } + + if (c == 0xf860 || c == 0xf861 || c == 0xf862) { + filter->status = 2; + filter->cache = c; + return c; + } + } + + if (s1 <= 0) { + c1 = c & ~MBFL_WCSPLANE_MASK; + if (c1 == MBFL_WCSPLANE_WINCP932) { + s1 = c & MBFL_WCSPLANE_MASK; + s2 = 1; + } else if (c1 == MBFL_WCSPLANE_JIS0208) { + s1 = c & MBFL_WCSPLANE_MASK; + } else if (c1 == MBFL_WCSPLANE_JIS0212) { + s1 = c & MBFL_WCSPLANE_MASK; + s1 |= 0x8080; + } else if (c == 0xa0) { + s1 = 0x00a0; + } else if (c == 0xa5) { /* YEN SIGN */ + s1 = 0x216f; /* FULLWIDTH YEN SIGN */ + } else if (c == 0xff3c) { /* FULLWIDTH REVERSE SOLIDUS */ + s1 = 0x2140; + } + } + + if (s1 <= 0) { + for (i=0; i<wchar2sjis_mac_r_tbl_len; i++) { + if (c >= wchar2sjis_mac_r_tbl[i][0] && c <= wchar2sjis_mac_r_tbl[i][1]) { + s1 = c - wchar2sjis_mac_r_tbl[i][0] + wchar2sjis_mac_r_tbl[i][2]; + break; + } + } + + if (s1 <= 0) { + for (i=0; i<wchar2sjis_mac_r_map_len; i++) { + if (c >= wchar2sjis_mac_r_map[i][0] && c <= wchar2sjis_mac_r_map[i][1]) { + s1 = wchar2sjis_mac_code_map[i][c-wchar2sjis_mac_r_map[i][0]]; + break; + } + } + } + + if (s1 <= 0) { + for (i=0; i<wchar2sjis_mac_wchar_tbl_len ; i++) { + if ( c == wchar2sjis_mac_wchar_tbl[i][0]) { + s1 = wchar2sjis_mac_wchar_tbl[i][1] & 0xffff; + break; + } + } + } + + if (s1 > 0) { + c1 = s1/94+0x21; + c2 = s1-94*(c1-0x21)+0x21; + s1 = (c1 << 8) | c2; + s2 = 1; + } + } + + if ((s1 <= 0) || (s1 >= 0x8080 && s2 == 0)) { /* not found or X 0212 */ + s1 = -1; + c1 = 0; + + if (c == 0) { + s1 = 0; + } else if (s1 <= 0) { + s1 = -1; + } + } + + if (s1 >= 0) { + if (s1 < 0x100) { /* latin or kana */ + CK((*filter->output_function)(s1, filter->data)); + } else { /* kanji */ + c1 = (s1 >> 8) & 0xff; + c2 = s1 & 0xff; + SJIS_ENCODE(c1, c2, s1, s2); + CK((*filter->output_function)(s1, filter->data)); + CK((*filter->output_function)(s2, filter->data)); + } + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + break; + + + case 2: + c1 = filter->cache; + filter->cache = 0; + filter->status = 0; + if (c1 == 0xf860) { + for (i=0; i<5; i++) { + if (c == code_tbl_m[i][2]) { + filter->cache = c | 0x10000; + filter->status = 3; + break; + } + } + } else if (c1 == 0xf861) { + for (i=0; i<3; i++) { + if (c == code_tbl_m[i+5][2]) { + filter->cache = c | 0x20000; + filter->status = 3; + break; + } + } + } else if (c1 == 0xf862) { + for (i=0; i<4; i++) { + if (c == code_tbl_m[i+5+3][2]) { + filter->cache = c | 0x40000; + filter->status = 3; + break; + } + } + } + + if (filter->status == 0 && filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c1, filter)); + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + + break; + + case 3: + s1 = 0; + c1 = filter->cache & 0xffff; + mode = (filter->cache & 0xf0000) >> 16; + + filter->cache = 0; + filter->status = 0; + + if (mode == 0x1) { + for (i=0; i<5; i++) { + if (c1 == code_tbl_m[i][2] && c == code_tbl_m[i][3]) { + s1 = code_tbl_m[i][0]; + break; + } + } + + if (s1 > 0) { + c1 = s1/94+0x21; + c2 = s1-94*(c1-0x21)+0x21; + SJIS_ENCODE(c1, c2, s1, s2); + CK((*filter->output_function)(s1, filter->data)); + CK((*filter->output_function)(s2, filter->data)); + } + + if (s1 <= 0 && filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(0xf860, filter)); + CK(mbfl_filt_conv_illegal_output(c1, filter)); + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + + } else if (mode == 0x2) { + for (i=0; i<3; i++) { + if (c1 == code_tbl_m[i+5][2] && c == code_tbl_m[i+5][3]) { + filter->cache = c | 0x20000; + filter->status = 4; + break; + } + } + } else if (mode == 0x4) { + for (i=0; i<4; i++) { + if (c1 == code_tbl_m[i+8][2] && c == code_tbl_m[i+8][3]) { + filter->cache = c | 0x40000; + filter->status = 4; + break; + } + } + } + break; + + case 4: + s1 = 0; + c1 = filter->cache & 0xffff; + mode = (filter->cache & 0xf0000) >> 16; + + filter->cache = 0; + filter->status = 0; + + if (mode == 0x2) { + for (i=0; i<3; i++) { + if (c1 == code_tbl_m[i+5][3] && c == code_tbl_m[i+5][4]) { + s1 = code_tbl_m[i+5][0]; + break; + } + } + + if (s1 > 0) { + c1 = s1/94+0x21; + c2 = s1-94*(c1-0x21)+0x21; + SJIS_ENCODE(c1, c2, s1, s2); + CK((*filter->output_function)(s1, filter->data)); + CK((*filter->output_function)(s2, filter->data)); + } + + if (s1 <= 0 && filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(0xf861, filter)); + for (i=0; i<3; i++) { + if (c1 == code_tbl_m[i+5][3]) { + CK(mbfl_filt_conv_illegal_output(code_tbl_m[i+5][2], filter)); + break; + } + } + CK(mbfl_filt_conv_illegal_output(c1, filter)); + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } else if (mode == 0x4) { + for (i=0; i<4; i++) { + if (c1 == code_tbl_m[i+8][3] && c == code_tbl_m[i+8][4]) { + filter->cache = c | 0x40000; + filter->status = 5; + break; + } + } + } + break; + + case 5: + s1 = 0; + c1 = filter->cache & 0xffff; + mode = (filter->cache & 0xf0000) >> 16; + + filter->cache = 0; + filter->status = 0; + + if (mode == 0x4) { + for (i=0; i<4; i++) { + if (c1 == code_tbl_m[i+8][4] && c == code_tbl_m[i+8][5]) { + s1 = code_tbl_m[i+8][0]; + break; + } + } + + if (s1 > 0) { + c1 = s1/94+0x21; + c2 = s1-94*(c1-0x21)+0x21; + SJIS_ENCODE(c1, c2, s1, s2); + CK((*filter->output_function)(s1, filter->data)); + CK((*filter->output_function)(s2, filter->data)); + } + + if (s1 <= 0 && filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(0xf862, filter)); + for (i=0; i<4; i++) { + if (c1 == code_tbl_m[i+8][4]) { + CK(mbfl_filt_conv_illegal_output( code_tbl_m[i+8][2], filter)); + CK(mbfl_filt_conv_illegal_output( code_tbl_m[i+8][3], filter)); + break; + } + } + CK(mbfl_filt_conv_illegal_output(c1, filter)); + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + break; + + default: + filter->status = 0; + break; + } + return c; +} + +static int +mbfl_filt_conv_sjis_mac_flush(mbfl_convert_filter *filter) +{ + int i, c1, s1 = 0; + if (filter->status == 1 && filter->cache > 0) { + c1 = filter->cache; + for (i=0;i<s_form_tbl_len;i++) { + if (c1 == s_form_tbl[i]) { + s1 = s_form_sjis_fallback_tbl[i]; + break; + } + } + if (s1 > 0) { + CK((*filter->output_function)((s1 >> 8) & 0xff, filter->data)); + CK((*filter->output_function)(s1 & 0xff, filter->data)); + } + } + filter->cache = 0; + filter->status = 0; + + if (filter->flush_function != NULL) { + return (*filter->flush_function)(filter->data); + } + + return 0; +} + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_sjis_mac.h b/ext/mbstring/libmbfl/filters/mbfilter_sjis_mac.h new file mode 100644 index 0000000..3b191aa --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_sjis_mac.h @@ -0,0 +1,44 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * the source code included in this files was separated from mbfilter_sjis_open.c + * by Rui Hirokawa <hirokawa@php.net> on 25 July 2011. + * + */ + +#ifndef MBFL_MBFILTER_SJIS_MAC_H +#define MBFL_MBFILTER_SJIS_MAC_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_sjis_mac; + +extern const struct mbfl_identify_vtbl vtbl_identify_sjis_mac; +extern const struct mbfl_convert_vtbl vtbl_sjis_mac_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_sjis_mac; + +int mbfl_filt_conv_sjis_mac_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_sjis_mac(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_SJIS_MAC_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_sjis_mobile.c b/ext/mbstring/libmbfl/filters/mbfilter_sjis_mobile.c new file mode 100644 index 0000000..7a549af --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_sjis_mobile.c @@ -0,0 +1,927 @@ + +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * the source code included in this files was separated from mbfilter_sjis_open.c + * by Rui Hirokawa <hirokawa@php.net> on 25 July 2011. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_sjis_mobile.h" + +#include "unicode_table_cp932_ext.h" +#include "unicode_table_jis.h" + +#include "emoji2uni.h" + +extern int mbfl_bisec_srch2(int w, const unsigned short tbl[], int n); +extern int mbfl_filt_ident_sjis(int c, mbfl_identify_filter *filter); +extern const unsigned char mblen_table_sjis[]; + +static const char *mbfl_encoding_sjis_docomo_aliases[] = {"SJIS-DOCOMO", "shift_jis-imode", "x-sjis-emoji-docomo", NULL}; +static const char *mbfl_encoding_sjis_kddi_aliases[] = {"SJIS-KDDI", "shift_jis-kddi", "x-sjis-emoji-kddi", NULL}; +static const char *mbfl_encoding_sjis_sb_aliases[] = {"SJIS-SOFTBANK", "shift_jis-softbank", "x-sjis-emoji-softbank", NULL}; + +const mbfl_encoding mbfl_encoding_sjis_docomo = { + mbfl_no_encoding_sjis_docomo, + "SJIS-Mobile#DOCOMO", + "Shift_JIS", + (const char *(*)[])&mbfl_encoding_sjis_docomo_aliases, + mblen_table_sjis, + MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_GL_UNSAFE +}; + +const mbfl_encoding mbfl_encoding_sjis_kddi = { + mbfl_no_encoding_sjis_kddi, + "SJIS-Mobile#KDDI", + "Shift_JIS", + (const char *(*)[])&mbfl_encoding_sjis_kddi_aliases, + mblen_table_sjis, + MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_GL_UNSAFE +}; + +const mbfl_encoding mbfl_encoding_sjis_sb = { + mbfl_no_encoding_sjis_sb, + "SJIS-Mobile#SOFTBANK", + "Shift_JIS", + (const char *(*)[])&mbfl_encoding_sjis_sb_aliases, + mblen_table_sjis, + MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_GL_UNSAFE +}; + +const struct mbfl_identify_vtbl vtbl_identify_sjis_docomo = { + mbfl_no_encoding_sjis_docomo, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_sjis +}; + +const struct mbfl_identify_vtbl vtbl_identify_sjis_kddi = { + mbfl_no_encoding_sjis_kddi, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_sjis +}; + +const struct mbfl_identify_vtbl vtbl_identify_sjis_sb = { + mbfl_no_encoding_sjis_sb, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_sjis +}; + +const struct mbfl_convert_vtbl vtbl_sjis_docomo_wchar = { + mbfl_no_encoding_sjis_docomo, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_sjis_mobile_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_sjis_docomo = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_sjis_docomo, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_sjis_mobile, + mbfl_filt_conv_sjis_mobile_flush +}; + +const struct mbfl_convert_vtbl vtbl_sjis_kddi_wchar = { + mbfl_no_encoding_sjis_kddi, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_sjis_mobile_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_sjis_kddi = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_sjis_kddi, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_sjis_mobile, + mbfl_filt_conv_sjis_mobile_flush +}; + +const struct mbfl_convert_vtbl vtbl_sjis_sb_wchar = { + mbfl_no_encoding_sjis_sb, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_sjis_mobile_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_sjis_sb = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_sjis_sb, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_sjis_mobile, + mbfl_filt_conv_sjis_mobile_flush +}; + +static const char nflags_s[10][2] = {"CN","DE","ES","FR","GB","IT","JP","KR","RU","US"}; +static const int nflags_code_kddi[10] = {0x2549, 0x2546, 0x24c0, 0x2545, 0x2548, 0x2547, 0x2750, 0x254a, 0x24c1, 0x27f7}; +static const int nflags_code_sb[10] = {0x2b0a, 0x2b05, 0x2b08, 0x2b04, 0x2b07, 0x2b06, 0x2b02, 0x2b0b, 0x2b09, 0x2b03}; + +const unsigned short mbfl_docomo2uni_pua[4][3] = { + {0x28c2, 0x292f, 0xe63e}, + {0x2930, 0x2934, 0xe6ac}, + {0x2935, 0x2951, 0xe6b1}, + {0x2952, 0x29db, 0xe6ce}, +}; + +const unsigned short mbfl_kddi2uni_pua[7][3] = { + {0x26ec, 0x2838, 0xe468}, + {0x284c, 0x2863, 0xe5b5}, + {0x24b8, 0x24ca, 0xe5cd}, + {0x24cb, 0x2545, 0xea80}, + {0x2839, 0x284b, 0xeafb}, + {0x2546, 0x25c0, 0xeb0e}, + {0x25c1, 0x25c6, 0xeb89}, +}; + +const unsigned short mbfl_sb2uni_pua[6][3] = { + {0x27a9, 0x2802, 0xe101}, + {0x2808, 0x2861, 0xe201}, + {0x2921, 0x297a, 0xe001}, + {0x2980, 0x29cc, 0xe301}, + {0x2a99, 0x2ae4, 0xe401}, + {0x2af8, 0x2b35, 0xe501}, +}; + +const unsigned short mbfl_kddi2uni_pua_b[8][3] = { + {0x24b8, 0x24f6, 0xec40}, + {0x24f7, 0x2573, 0xec80}, + {0x2574, 0x25b2, 0xed40}, + {0x25b3, 0x25c6, 0xed80}, + {0x26ec, 0x272a, 0xef40}, + {0x272b, 0x27a7, 0xef80}, + {0x27a8, 0x27e6, 0xf040}, + {0x27e7, 0x2863, 0xf080}, +}; + +#define NFLAGS(c) (0x1F1A5+(int)(c)) + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +#define SJIS_ENCODE(c1,c2,s1,s2) \ + do { \ + s1 = c1; \ + s1--; \ + s1 >>= 1; \ + if ((c1) < 0x5f) { \ + s1 += 0x71; \ + } else { \ + s1 += 0xb1; \ + } \ + s2 = c2; \ + if ((c1) & 1) { \ + if ((c2) < 0x60) { \ + s2--; \ + } \ + s2 += 0x20; \ + } else { \ + s2 += 0x7e; \ + } \ + } while (0) + +#define SJIS_DECODE(c1,c2,s1,s2) \ + do { \ + s1 = c1; \ + if (s1 < 0xa0) { \ + s1 -= 0x81; \ + } else { \ + s1 -= 0xc1; \ + } \ + s1 <<= 1; \ + s1 += 0x21; \ + s2 = c2; \ + if (s2 < 0x9f) { \ + if (s2 < 0x7f) { \ + s2++; \ + } \ + s2 -= 0x20; \ + } else { \ + s1++; \ + s2 -= 0x7e; \ + } \ + } while (0) + +#define CODE2JIS(c1,c2,s1,s2) \ + c1 = (s1)/94+0x21; \ + c2 = (s1)-94*((c1)-0x21)+0x21; \ + s1 = ((c1) << 8) | (c2); \ + s2 = 1 + +int +mbfilter_conv_map_tbl(int c, int *w, const unsigned short map[][3], int n) +{ + int i, match = 0; + + for (i = 0; i < n; i++) { + if (map[i][0] <= c && c <= map[i][1]) { + *w = c - map[i][0] + map[i][2]; + match = 1; + break; + } + } + return match; +} + +int +mbfilter_conv_r_map_tbl(int c, int *w, const unsigned short map[][3], int n) +{ + int i, match = 0; + + for (i = 0; i < n; i++) { + if (map[i][2] <= c && c <= map[i][2] - map[i][0] + map[i][1]) { + *w = c + map[i][0] - map[i][2]; + match = 1; + break; + } + } + return match; +} + +int +mbfilter_sjis_emoji_docomo2unicode(int s, int *snd) +{ + int w = s; + if (s >= mb_tbl_code2uni_docomo1_min && s <= mb_tbl_code2uni_docomo1_max) { + if (s >= mb_tbl_code2uni_docomo1_min + 0x00a2 && + s <= mb_tbl_code2uni_docomo1_min + 0x00ad && + s != mb_tbl_code2uni_docomo1_min + 0x00a3) { + w = 0x20E3; + *snd = mb_tbl_code2uni_docomo1[s - mb_tbl_code2uni_docomo1_min]; + if (*snd > 0xf000) { + *snd += 0x10000; + } + } else { + w = mb_tbl_code2uni_docomo1[s - mb_tbl_code2uni_docomo1_min]; + if (w > 0xf000) { + w += 0x10000; + } else if (w > 0xe000) { /* unsuported by Unicode 6.0 */ + w += 0xf0000; + } + *snd = 0; + if (!w) { + w = s; + } + } + } + + return w; +} + +int +mbfilter_sjis_emoji_kddi2unicode(int s, int *snd) +{ + int w = s, si, c; + const int nflags_order_kddi[] = {3, 1, 5, 4, 0, 7}; + + *snd = 0; + if (s >= mb_tbl_code2uni_kddi1_min && s <= mb_tbl_code2uni_kddi1_max) { + si = s - mb_tbl_code2uni_kddi1_min; + if (si == 0x0008) { /* ES */ + *snd = NFLAGS(nflags_s[2][0]); w = NFLAGS(nflags_s[2][1]); + } else if (si == 0x0009) { /* RU */ + *snd = NFLAGS(nflags_s[8][0]); w = NFLAGS(nflags_s[8][1]); + } else if (si >= 0x008d && si <= 0x0092) { + c = nflags_order_kddi[si-0x008d]; + *snd = NFLAGS(nflags_s[c][0]); w = NFLAGS(nflags_s[c][1]); + } else if (si == 0x0104) { + *snd = 0x0023; w = 0x20E3; + } else { + w = mb_tbl_code2uni_kddi1[si]; + if (w > 0xf000) { + w += 0x10000; + } else if (w > 0xe000) { /* unsuported by Unicode 6.0 */ + w += 0xf0000; + } + } + } else if (s >= mb_tbl_code2uni_kddi2_min && s <= mb_tbl_code2uni_kddi2_max) { + si = s - mb_tbl_code2uni_kddi2_min; + if (si == 100) { /* JP */ + *snd = NFLAGS(nflags_s[6][0]); w = NFLAGS(nflags_s[6][1]); + } else if (si >= 0x00ba && si <= 0x00c2) { + *snd = si-0x00ba+0x0031; w = 0x20E3; + } else if (si == 0x010b) { /* US */ + *snd = NFLAGS(nflags_s[9][0]); w = NFLAGS(nflags_s[9][1]); + } else if (si == 0x0144) { + *snd = 0x0030; w = 0x20E3; + } else { + w = mb_tbl_code2uni_kddi2[si]; + if (w > 0xf000) { + w += 0x10000; + } else if (w > 0xe000) { /* unsuported by Unicode 6.0 */ + w += 0xf0000; + } + } + } + return w; +} + +int +mbfilter_sjis_emoji_sb2unicode(int s, int *snd) +{ + int w = s, si, c; + const int nflags_order_sb[10] = {6, 9, 3, 1, 5, 4, 2, 8, 0, 7}; + + *snd = 0; + if (s >= mb_tbl_code2uni_sb1_min && s <= mb_tbl_code2uni_sb1_max) { + si = s - mb_tbl_code2uni_sb1_min; + if (si == 0x006e || (si >= 0x007a && si <= 0x0083)) { + *snd = mb_tbl_code2uni_sb1[si]; + if (*snd > 0xf000) { + *snd += 0x10000; + } + w = 0x20E3; + } else { + w = mb_tbl_code2uni_sb1[si]; + if (w > 0xf000) { + w += 0x10000; + } else if (w > 0xe000) { /* unsuported by Unicode 6.0 */ + w += 0xf0000; + } + } + } else if (s >= mb_tbl_code2uni_sb2_min && s <= mb_tbl_code2uni_sb2_max) { + si = s - mb_tbl_code2uni_sb2_min; + w = mb_tbl_code2uni_sb2[si]; + if (w > 0xf000) { + w += 0x10000; + } else if (w > 0xe000) { /* unsuported by Unicode 6.0 */ + w += 0xf0000; + } + } else if (s >= mb_tbl_code2uni_sb3_min && s <= mb_tbl_code2uni_sb3_max) { + si = s - mb_tbl_code2uni_sb3_min; + if (si >= 0x0069 && si <= 0x0072) { + c = nflags_order_sb[si-0x0069]; + *snd = NFLAGS(nflags_s[c][0]); w = NFLAGS(nflags_s[c][1]); + } else { + w = mb_tbl_code2uni_sb3[si]; + if (w > 0xf000) { + w += 0x10000; + } else if (w > 0xe000) { /* unsuported by Unicode 6.0 */ + w += 0xf0000; + } + } + } + return w; +} + +int +mbfilter_unicode2sjis_emoji_docomo(int c, int *s1, mbfl_convert_filter *filter) +{ + int i, match = 0, c1s; + + if (filter->status == 1) { + c1s = filter->cache; + filter->cache = 0; + filter->status = 0; + if (c == 0x20E3) { + if (c1s == 0x0023) { + *s1 = 0x2964; + match = 1; + } else if (c1s == 0x0030) { + *s1 = 0x296f; + match = 1; + } else if (c1s >= 0x0031 && c1s <= 0x0039) { + *s1 = 0x2966 + (c1s - 0x0031); + match = 1; + } + } else { + CK((*filter->output_function)(c1s, filter->data)); + } + } else { + if (c == 0x0023 || (c >= 0x0030 && c<=0x0039)) { + filter->status = 1; + filter->cache = c; + *s1 = -1; + return match; + } + + if (c == 0x00A9) { + *s1 = 0x29b5; match = 1; + } else if (c == 0x00AE) { + *s1 = 0x29ba; match = 1; + } else if (c >= mb_tbl_uni_docomo2code2_min && c <= mb_tbl_uni_docomo2code2_max) { + i = mbfl_bisec_srch2(c, mb_tbl_uni_docomo2code2_key, mb_tbl_uni_docomo2code2_len); + if (i >= 0) { + *s1 = mb_tbl_uni_docomo2code2_value[i]; + match = 1; + } + } else if (c >= mb_tbl_uni_docomo2code3_min && c <= mb_tbl_uni_docomo2code3_max) { + i = mbfl_bisec_srch2(c - 0x10000, mb_tbl_uni_docomo2code3_key, mb_tbl_uni_docomo2code3_len); + if (i >= 0) { + *s1 = mb_tbl_uni_docomo2code3_value[i]; + match = 1; + } + } else if (c >= mb_tbl_uni_docomo2code5_min && c <= mb_tbl_uni_docomo2code5_max) { + i = mbfl_bisec_srch2(c - 0xf0000, mb_tbl_uni_docomo2code5_key, mb_tbl_uni_docomo2code5_len); + if (i >= 0) { + *s1 = mb_tbl_uni_docomo2code5_val[i]; + match = 1; + } + } + } + + return match; +} + +int +mbfilter_unicode2sjis_emoji_kddi(int c, int *s1, mbfl_convert_filter *filter) +{ + int i, match = 0, c1s; + + if (filter->status == 1) { + c1s = filter->cache; + filter->cache = 0; + filter->status = 0; + if (c == 0x20E3) { + if (c1s == 0x0023) { + *s1 = 0x25bc; + match = 1; + } else if (c1s == 0x0030) { + *s1 = 0x2830; + match = 1; + } else if (c1s >= 0x0031 && c1s <= 0x0039) { + *s1 = 0x27a6 + (c1s - 0x0031); + match = 1; + } + } else if ((c >= NFLAGS(0x41) && c <= NFLAGS(0x5A)) && (c1s >= NFLAGS(0x41) && c1s <= NFLAGS(0x5A))) { + for (i=0; i<10; i++) { + if (c1s == NFLAGS(nflags_s[i][0]) && c == NFLAGS(nflags_s[i][1])) { + *s1 = nflags_code_kddi[i]; + match = 1; + break; + } + } + } else { + if (c1s >= ucs_a1_jis_table_min && c1s < ucs_a1_jis_table_max) { + c1s = ucs_a1_jis_table[c1s - ucs_a1_jis_table_min]; + CK((*filter->output_function)(c1s, filter->data)); + } + } + } else { + if (c == 0x0023 || ( c >= 0x0030 && c<=0x0039) || + (c >= NFLAGS(0x41) && c<= NFLAGS(0x5A))) { + filter->status = 1; + filter->cache = c; + *s1 = -1; + return match; + } + + if (c == 0x00A9) { + *s1 = 0x27dc; match = 1; + } else if (c == 0x00AE) { + *s1 = 0x27dd; match = 1; + } else if (c >= mb_tbl_uni_kddi2code2_min && c <= mb_tbl_uni_kddi2code2_max) { + i = mbfl_bisec_srch2(c, mb_tbl_uni_kddi2code2_key, mb_tbl_uni_kddi2code2_len); + if (i >= 0) { + *s1 = mb_tbl_uni_kddi2code2_value[i]; + match = 1; + } + } else if (c >= mb_tbl_uni_kddi2code3_min && c <= mb_tbl_uni_kddi2code3_max) { + i = mbfl_bisec_srch2(c - 0x10000, mb_tbl_uni_kddi2code3_key, mb_tbl_uni_kddi2code3_len); + if (i >= 0) { + *s1 = mb_tbl_uni_kddi2code3_value[i]; + match = 1; + } + } else if (c >= mb_tbl_uni_kddi2code5_min && c <= mb_tbl_uni_kddi2code5_max) { + i = mbfl_bisec_srch2(c - 0xf0000, mb_tbl_uni_kddi2code5_key, mb_tbl_uni_kddi2code5_len); + if (i >= 0) { + *s1 = mb_tbl_uni_kddi2code5_val[i]; + match = 1; + } + } + } + + return match; +} + +int +mbfilter_unicode2sjis_emoji_sb(int c, int *s1, mbfl_convert_filter *filter) +{ + int i, match = 0, c1s; + + if (filter->status == 1) { + filter->status = 0; + c1s = filter->cache; + filter->cache = 0; + if (c == 0x20E3) { + if (c1s == 0x0023) { + *s1 = 0x2817; + match = 1; + } else if (c1s == 0x0030) { + *s1 = 0x282c; + match = 1; + } else if (c1s >= 0x0031 && c1s <= 0x0039) { + *s1 = 0x2823 + (c1s - 0x0031); + match = 1; + } + } else if ((c >= NFLAGS(0x41) && c <= NFLAGS(0x5A)) && (c1s >= NFLAGS(0x41) && c1s <= NFLAGS(0x5A))) { + for (i=0; i<10; i++) { + if (c1s == NFLAGS(nflags_s[i][0]) && c == NFLAGS(nflags_s[i][1])) { + *s1 = nflags_code_sb[i]; + match = 1; + break; + } + } + } else { + if (c1s >= ucs_a1_jis_table_min && c1s < ucs_a1_jis_table_max) { + c1s = ucs_a1_jis_table[c1s - ucs_a1_jis_table_min]; + CK((*filter->output_function)(c1s, filter->data)); + } + } + } else { + if (c == 0x0023 || ( c >= 0x0030 && c<=0x0039) || (c >= NFLAGS(0x41) && c<= NFLAGS(0x5A))) { + filter->status = 1; + filter->cache = c; + *s1 = -1; + return match; + } + + if (c == 0x00A9) { + *s1 = 0x2855; match = 1; + } else if (c == 0x00AE) { + *s1 = 0x2856; match = 1; + } else if (c >= mb_tbl_uni_sb2code2_min && c <= mb_tbl_uni_sb2code2_max) { + i = mbfl_bisec_srch2(c, mb_tbl_uni_sb2code2_key, mb_tbl_uni_sb2code2_len); + if (i >= 0) { + *s1 = mb_tbl_uni_sb2code2_value[i]; + match = 1; + } + } else if (c >= mb_tbl_uni_sb2code3_min && c <= mb_tbl_uni_sb2code3_max) { + i = mbfl_bisec_srch2(c - 0x10000, mb_tbl_uni_sb2code3_key, mb_tbl_uni_sb2code3_len); + if (i >= 0) { + *s1 = mb_tbl_uni_sb2code3_value[i]; + match = 1; + } + } else if (c >= mb_tbl_uni_sb2code5_min && c <= mb_tbl_uni_sb2code5_max) { + i = mbfl_bisec_srch2(c - 0xf0000, mb_tbl_uni_sb2code5_key, mb_tbl_uni_sb2code5_len); + if (i >= 0) { + *s1 = mb_tbl_uni_sb2code5_val[i]; + match = 1; + } + } + } + return match; +} + +/* + * SJIS-win => wchar + */ +int +mbfl_filt_conv_sjis_mobile_wchar(int c, mbfl_convert_filter *filter) +{ + int c1, s, s1, s2, w; + int snd = 0; + +retry: + switch (filter->status) { + case 0: + if (c >= 0 && c < 0x80) { /* latin */ + if (filter->from->no_encoding == mbfl_no_encoding_sjis_sb && c == 0x1b) { + filter->cache = c; + filter->status = 2; + } else { + CK((*filter->output_function)(c, filter->data)); + } + } else if (c > 0xa0 && c < 0xe0) { /* kana */ + CK((*filter->output_function)(0xfec0 + c, filter->data)); + } else if (c > 0x80 && c < 0xfd && c != 0xa0) { /* kanji first char */ + filter->status = 1; + filter->cache = c; + } else { + w = c & MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + + case 1: /* kanji second char */ + filter->status = 0; + c1 = filter->cache; + if (c >= 0x40 && c <= 0xfc && c != 0x7f) { + w = 0; + SJIS_DECODE(c1, c, s1, s2); + s = (s1 - 0x21)*94 + s2 - 0x21; + if (s <= 137) { + if (s == 31) { + w = 0xff3c; /* FULLWIDTH REVERSE SOLIDUS */ + } else if (s == 32) { + w = 0xff5e; /* FULLWIDTH TILDE */ + } else if (s == 33) { + w = 0x2225; /* PARALLEL TO */ + } else if (s == 60) { + w = 0xff0d; /* FULLWIDTH HYPHEN-MINUS */ + } else if (s == 80) { + w = 0xffe0; /* FULLWIDTH CENT SIGN */ + } else if (s == 81) { + w = 0xffe1; /* FULLWIDTH POUND SIGN */ + } else if (s == 137) { + w = 0xffe2; /* FULLWIDTH NOT SIGN */ + } + } + if (w == 0) { + if (s >= cp932ext1_ucs_table_min && s < cp932ext1_ucs_table_max) { /* vendor ext1 (13ku) */ + w = cp932ext1_ucs_table[s - cp932ext1_ucs_table_min]; + } else if (s >= 0 && s < jisx0208_ucs_table_size) { /* X 0208 */ + w = jisx0208_ucs_table[s]; + } else if (s >= cp932ext2_ucs_table_min && s < cp932ext2_ucs_table_max) { /* vendor ext2 (89ku - 92ku) */ + w = cp932ext2_ucs_table[s - cp932ext2_ucs_table_min]; + } else if (s >= cp932ext3_ucs_table_min && s < cp932ext3_ucs_table_max) { /* vendor ext3 (115ku - 119ku) */ + w = cp932ext3_ucs_table[s - cp932ext3_ucs_table_min]; + } else if (s >= (94*94) && s < (114*94)) { /* user (95ku - 114ku) */ + w = s - (94*94) + 0xe000; + } + + if (s >= (94*94) && s < 119*94) { + if (filter->from->no_encoding == mbfl_no_encoding_sjis_docomo) { + w = mbfilter_sjis_emoji_docomo2unicode(s, &snd); + } else if (filter->from->no_encoding == mbfl_no_encoding_sjis_kddi) { + w = mbfilter_sjis_emoji_kddi2unicode(s, &snd); + } else if (filter->from->no_encoding == mbfl_no_encoding_sjis_sb) { + w = mbfilter_sjis_emoji_sb2unicode(s, &snd); + } + + if (w > 0 && snd > 0) { + CK((*filter->output_function)(snd, filter->data)); + } + } + } + if (w <= 0) { + w = (s1 << 8) | s2; + w &= MBFL_WCSPLANE_MASK; + w |= MBFL_WCSPLANE_WINCP932; + } + CK((*filter->output_function)(w, filter->data)); + } else if ((c >= 0 && c < 0x21) || c == 0x7f) { /* CTLs */ + CK((*filter->output_function)(c, filter->data)); + } else { + w = (c1 << 8) | c; + w &= MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + /* ESC : Softbank Emoji */ + case 2: + if (filter->from->no_encoding == mbfl_no_encoding_sjis_sb && + c == 0x24) { + filter->cache = c; + filter->status++; + } else { + filter->cache = 0; + filter->status = 0; + CK((*filter->output_function)(0x1b, filter->data)); + goto retry; + } + break; + + /* ESC $ : Softbank Emoji */ + case 3: + if (filter->from->no_encoding == mbfl_no_encoding_sjis_sb && + ((c >= 0x45 && c <= 0x47) || (c >= 0x4f && c <= 0x51))) { + filter->cache = c; + filter->status++; + } else { + filter->cache = 0; + filter->status = 0; + CK((*filter->output_function)(0x1b, filter->data)); + CK((*filter->output_function)(0x24, filter->data)); + goto retry; + } + break; + + /* ESC [GEFOPQ] : Softbank Emoji */ + case 4: + w = 0; + if (filter->from->no_encoding == mbfl_no_encoding_sjis_sb) { + c1 = filter->cache; + + if (c == 0x0f) { + w = c; + filter->cache = 0; + filter->status = 0; + } else { + if (c1 == 0x47 && c >= 0x21 && c <= 0x7a) { + s1 = 0x91; s2 = c; + } else if (c1 == 0x45 && c >= 0x21 && c <= 0x7a) { + s1 = 0x8d; s2 = c; + } else if (c1 == 0x46 && c >= 0x21 && c <= 0x7a) { + s1 = 0x8e; s2 = c; + } else if (c1 == 0x4f && c >= 0x21 && c <= 0x6d) { + s1 = 0x92; s2 = c; + } else if (c1 == 0x50 && c >= 0x21 && c <= 0x6c) { + s1 = 0x95; s2 = c; + } else if (c1 == 0x51 && c >= 0x21 && c <= 0x5e) { + s1 = 0x96; s2 = c; + } + s = (s1 - 0x21)*94 + s2 - 0x21; + w = mbfilter_sjis_emoji_sb2unicode(s, &snd); + if (w > 0) { + if (snd > 0) { + CK((*filter->output_function)(snd, filter->data)); + } + CK((*filter->output_function)(w, filter->data)); + } + } + } + + if (w <= 0) { + c1 = filter->cache; + filter->cache = 0; + filter->status = 0; + CK((*filter->output_function)(0x1b, filter->data)); + CK((*filter->output_function)(0x24, filter->data)); + CK((*filter->output_function)(c1 & 0xff, filter->data)); + goto retry; + } + break; + + default: + filter->status = 0; + break; + } + + return c; +} + +/* + * wchar => SJIS-win + */ +int +mbfl_filt_conv_wchar_sjis_mobile(int c, mbfl_convert_filter *filter) +{ + int c1, c2, s1, s2; + + s1 = 0; + s2 = 0; + if (c >= ucs_a1_jis_table_min && c < ucs_a1_jis_table_max) { + s1 = ucs_a1_jis_table[c - ucs_a1_jis_table_min]; + } else if (c >= ucs_a2_jis_table_min && c < ucs_a2_jis_table_max) { + s1 = ucs_a2_jis_table[c - ucs_a2_jis_table_min]; + } else if (c >= ucs_i_jis_table_min && c < ucs_i_jis_table_max) { + s1 = ucs_i_jis_table[c - ucs_i_jis_table_min]; + } else if (c >= ucs_r_jis_table_min && c < ucs_r_jis_table_max) { + s1 = ucs_r_jis_table[c - ucs_r_jis_table_min]; + } else if (c >= 0xe000 && c < (0xe000 + 20*94)) { /* user (95ku - 114ku) */ + s1 = c - 0xe000; + c1 = s1/94 + 0x7f; + c2 = s1%94 + 0x21; + s1 = (c1 << 8) | c2; + s2 = 1; + } + if (s1 <= 0) { + c1 = c & ~MBFL_WCSPLANE_MASK; + if (c1 == MBFL_WCSPLANE_WINCP932) { + s1 = c & MBFL_WCSPLANE_MASK; + s2 = 1; + } else if (c1 == MBFL_WCSPLANE_JIS0208) { + s1 = c & MBFL_WCSPLANE_MASK; + } else if (c1 == MBFL_WCSPLANE_JIS0212) { + s1 = c & MBFL_WCSPLANE_MASK; + s1 |= 0x8080; + } else if (c == 0xa5) { /* YEN SIGN */ + s1 = 0x216f; /* FULLWIDTH YEN SIGN */ + } else if (c == 0x203e) { /* OVER LINE */ + s1 = 0x2131; /* FULLWIDTH MACRON */ + } else if (c == 0xff3c) { /* FULLWIDTH REVERSE SOLIDUS */ + s1 = 0x2140; + } else if (c == 0xff5e) { /* FULLWIDTH TILDE */ + s1 = 0x2141; + } else if (c == 0x2225) { /* PARALLEL TO */ + s1 = 0x2142; + } else if (c == 0xff0d) { /* FULLWIDTH HYPHEN-MINUS */ + s1 = 0x215d; + } else if (c == 0xffe0) { /* FULLWIDTH CENT SIGN */ + s1 = 0x2171; + } else if (c == 0xffe1) { /* FULLWIDTH POUND SIGN */ + s1 = 0x2172; + } else if (c == 0xffe2) { /* FULLWIDTH NOT SIGN */ + s1 = 0x224c; + } + } + + if ((s1 <= 0) || (s1 >= 0x8080 && s2 == 0)) { /* not found or X 0212 */ + s1 = -1; + c1 = 0; + c2 = cp932ext1_ucs_table_max - cp932ext1_ucs_table_min; + while (c1 < c2) { /* CP932 vendor ext1 (13ku) */ + if (c == cp932ext1_ucs_table[c1]) { + s1 = ((c1/94 + 0x2d) << 8) + (c1%94 + 0x21); + break; + } + c1++; + } + if (s1 <= 0) { + c1 = 0; + c2 = cp932ext2_ucs_table_max - cp932ext2_ucs_table_min; + while (c1 < c2) { /* CP932 vendor ext2 (115ku - 119ku) */ + if (c == cp932ext2_ucs_table[c1]) { + s1 = ((c1/94 + 0x93) << 8) + (c1%94 + 0x21); + break; + } + c1++; + } + } + + if (s1 <= 0) { + c1 = 0; + c2 = cp932ext3_ucs_table_max - cp932ext3_ucs_table_min; + while (c1 < c2) { /* CP932 vendor ext3 (115ku - 119ku) */ + if (c == cp932ext3_ucs_table[c1]) { + s1 = ((c1/94 + 0x93) << 8) + (c1%94 + 0x21); + break; + } + c1++; + } + } + if (c == 0) { + s1 = 0; + } else if (s1 <= 0) { + s1 = -1; + } + } + + if ((filter->to->no_encoding == mbfl_no_encoding_sjis_docomo && + mbfilter_unicode2sjis_emoji_docomo(c, &s1, filter) > 0) || + (filter->to->no_encoding == mbfl_no_encoding_sjis_kddi && + mbfilter_unicode2sjis_emoji_kddi(c, &s1, filter) > 0) || + (filter->to->no_encoding == mbfl_no_encoding_sjis_sb && + mbfilter_unicode2sjis_emoji_sb(c, &s1, filter) > 0 )) { + CODE2JIS(c1,c2,s1,s2); + } + + if (filter->status == 1 && filter->cache > 0) { + return c; + } + + if (s1 >= 0) { + if (s1 < 0x100) { /* latin or kana */ + CK((*filter->output_function)(s1, filter->data)); + } else { /* kanji */ + c1 = (s1 >> 8) & 0xff; + c2 = s1 & 0xff; + SJIS_ENCODE(c1, c2, s1, s2); + CK((*filter->output_function)(s1, filter->data)); + CK((*filter->output_function)(s2, filter->data)); + } + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + +int +mbfl_filt_conv_sjis_mobile_flush(mbfl_convert_filter *filter) +{ + int c1 = filter->cache; + if (filter->status == 1 && (c1 == 0x0023 || (c1 >= 0x0030 && c1<=0x0039))) { + CK((*filter->output_function)(c1, filter->data)); + } + filter->status = 0; + filter->cache = 0; + + if (filter->flush_function != NULL) { + return (*filter->flush_function)(filter->data); + } + + return 0; +} + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_sjis_mobile.h b/ext/mbstring/libmbfl/filters/mbfilter_sjis_mobile.h new file mode 100644 index 0000000..15a91a5 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_sjis_mobile.h @@ -0,0 +1,70 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * the source code included in this files was separated from mbfilter_sjis_open.c + * by Rui Hirokawa <hirokawa@php.net> on 25 July 2011. + * + */ + +#ifndef MBFL_MBFILTER_SJIS_MOBILE_H +#define MBFL_MBFILTER_SJIS_MOBILE_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_sjis_docomo; +extern const mbfl_encoding mbfl_encoding_sjis_kddi; +extern const mbfl_encoding mbfl_encoding_sjis_sb; + +extern const struct mbfl_identify_vtbl vtbl_identify_sjis_docomo; +extern const struct mbfl_identify_vtbl vtbl_identify_sjis_kddi; +extern const struct mbfl_identify_vtbl vtbl_identify_sjis_sb; + +extern const struct mbfl_convert_vtbl vtbl_sjis_docomo_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_sjis_docomo; +extern const struct mbfl_convert_vtbl vtbl_sjis_kddi_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_sjis_kddi; +extern const struct mbfl_convert_vtbl vtbl_sjis_sb_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_sjis_sb; + +extern const unsigned short mbfl_docomo2uni_pua[4][3]; +extern const unsigned short mbfl_kddi2uni_pua[7][3]; +extern const unsigned short mbfl_sb2uni_pua[6][3]; +extern const unsigned short mbfl_kddi2uni_pua_b[8][3]; + +int mbfl_filt_conv_sjis_mobile_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_sjis_mobile(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_sjis_mobile_flush(mbfl_convert_filter *filter); + +int mbfilter_sjis_emoji_docomo2unicode(int s, int *snd); +int mbfilter_sjis_emoji_kddi2unicode(int s, int *snd); +int mbfilter_sjis_emoji_sb2unicode(int s, int *snd); + +int mbfilter_unicode2sjis_emoji_docomo(int c, int *s1, mbfl_convert_filter *filter); +int mbfilter_unicode2sjis_emoji_kddi(int c, int *s1, mbfl_convert_filter *filter); +int mbfilter_unicode2sjis_emoji_sb(int c, int *s1, mbfl_convert_filter *filter); + +int mbfilter_conv_map_tbl(int c, int *w, const unsigned short map[][3], int n); +int mbfilter_conv_r_map_tbl(int c, int *w, const unsigned short map[][3], int n); + +#endif /* MBFL_MBFILTER_SJIS_MOBILE_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_sjis_open.c b/ext/mbstring/libmbfl/filters/mbfilter_sjis_open.c new file mode 100644 index 0000000..81ab32e --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_sjis_open.c @@ -0,0 +1,350 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * the source code included in this files was separated from mbfilter_ja.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_sjis_open.h" + +#include "unicode_table_cp932_ext.h" +#include "unicode_table_jis.h" + +static int mbfl_filt_ident_sjis_open(int c, mbfl_identify_filter *filter); + +static const unsigned char mblen_table_sjis[] = { /* 0x80-0x9f,0xE0-0xFF */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +}; + +static const char *mbfl_encoding_sjis_open_aliases[] = {"SJIS-open", "SJIS-ms", NULL}; + +const mbfl_encoding mbfl_encoding_sjis_open = { + mbfl_no_encoding_sjis_open, + "SJIS-win", + "Shift_JIS", + (const char *(*)[])&mbfl_encoding_sjis_open_aliases, + mblen_table_sjis, + MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_GL_UNSAFE +}; + +const struct mbfl_identify_vtbl vtbl_identify_sjis_open = { + mbfl_no_encoding_sjis_open, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_sjis_open +}; + +const struct mbfl_convert_vtbl vtbl_sjis_open_wchar = { + mbfl_no_encoding_sjis_open, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_sjis_open_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_sjis_open = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_sjis_open, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_sjis_open, + mbfl_filt_conv_common_flush +}; + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +#define SJIS_ENCODE(c1,c2,s1,s2) \ + do { \ + s1 = c1; \ + s1--; \ + s1 >>= 1; \ + if ((c1) < 0x5f) { \ + s1 += 0x71; \ + } else { \ + s1 += 0xb1; \ + } \ + s2 = c2; \ + if ((c1) & 1) { \ + if ((c2) < 0x60) { \ + s2--; \ + } \ + s2 += 0x20; \ + } else { \ + s2 += 0x7e; \ + } \ + } while (0) + +#define SJIS_DECODE(c1,c2,s1,s2) \ + do { \ + s1 = c1; \ + if (s1 < 0xa0) { \ + s1 -= 0x81; \ + } else { \ + s1 -= 0xc1; \ + } \ + s1 <<= 1; \ + s1 += 0x21; \ + s2 = c2; \ + if (s2 < 0x9f) { \ + if (s2 < 0x7f) { \ + s2++; \ + } \ + s2 -= 0x20; \ + } else { \ + s1++; \ + s2 -= 0x7e; \ + } \ + } while (0) + +/* + * SJIS-win => wchar + */ +int +mbfl_filt_conv_sjis_open_wchar(int c, mbfl_convert_filter *filter) +{ + int c1, s, s1, s2, w; + + switch (filter->status) { + case 0: + if (c >= 0 && c < 0x80) { /* latin */ + CK((*filter->output_function)(c, filter->data)); + } else if (c > 0xa0 && c < 0xe0) { /* kana */ + CK((*filter->output_function)(0xfec0 + c, filter->data)); + } else if (c > 0x80 && c < 0xfd && c != 0xa0) { /* kanji first char */ + filter->status = 1; + filter->cache = c; + } else { + w = c & MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + + case 1: /* kanji second char */ + filter->status = 0; + c1 = filter->cache; + if (c >= 0x40 && c <= 0xfc && c != 0x7f) { + w = 0; + SJIS_DECODE(c1, c, s1, s2); + s = (s1 - 0x21)*94 + s2 - 0x21; + if (s <= 137) { + if (s == 31) { + w = 0xff3c; /* FULLWIDTH REVERSE SOLIDUS */ + } else if (s == 32) { + w = 0xff5e; /* FULLWIDTH TILDE */ + } else if (s == 33) { + w = 0x2225; /* PARALLEL TO */ + } else if (s == 60) { + w = 0xff0d; /* FULLWIDTH HYPHEN-MINUS */ + } else if (s == 80) { + w = 0xffe0; /* FULLWIDTH CENT SIGN */ + } else if (s == 81) { + w = 0xffe1; /* FULLWIDTH POUND SIGN */ + } else if (s == 137) { + w = 0xffe2; /* FULLWIDTH NOT SIGN */ + } + } + if (w == 0) { + if (s >= cp932ext1_ucs_table_min && s < cp932ext1_ucs_table_max) { /* vendor ext1 (13ku) */ + w = cp932ext1_ucs_table[s - cp932ext1_ucs_table_min]; + } else if (s >= 0 && s < jisx0208_ucs_table_size) { /* X 0208 */ + w = jisx0208_ucs_table[s]; + } else if (s >= cp932ext2_ucs_table_min && s < cp932ext2_ucs_table_max) { /* vendor ext2 (89ku - 92ku) */ + w = cp932ext2_ucs_table[s - cp932ext2_ucs_table_min]; + } else if (s >= cp932ext3_ucs_table_min && s < cp932ext3_ucs_table_max) { /* vendor ext3 (115ku - 119ku) */ + w = cp932ext3_ucs_table[s - cp932ext3_ucs_table_min]; + } else if (s >= (94*94) && s < (114*94)) { /* user (95ku - 114ku) */ + w = s - (94*94) + 0xe000; + } + } + if (w <= 0) { + w = (s1 << 8) | s2; + w &= MBFL_WCSPLANE_MASK; + w |= MBFL_WCSPLANE_WINCP932; + } + CK((*filter->output_function)(w, filter->data)); + } else if ((c >= 0 && c < 0x21) || c == 0x7f) { /* CTLs */ + CK((*filter->output_function)(c, filter->data)); + } else { + w = (c1 << 8) | c; + w &= MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + + default: + filter->status = 0; + break; + } + + return c; +} + +/* + * wchar => SJIS-win + */ +int +mbfl_filt_conv_wchar_sjis_open(int c, mbfl_convert_filter *filter) +{ + int c1, c2, s1, s2; + + s1 = 0; + s2 = 0; + if (c >= ucs_a1_jis_table_min && c < ucs_a1_jis_table_max) { + s1 = ucs_a1_jis_table[c - ucs_a1_jis_table_min]; + } else if (c >= ucs_a2_jis_table_min && c < ucs_a2_jis_table_max) { + s1 = ucs_a2_jis_table[c - ucs_a2_jis_table_min]; + } else if (c >= ucs_i_jis_table_min && c < ucs_i_jis_table_max) { + s1 = ucs_i_jis_table[c - ucs_i_jis_table_min]; + } else if (c >= ucs_r_jis_table_min && c < ucs_r_jis_table_max) { + s1 = ucs_r_jis_table[c - ucs_r_jis_table_min]; + } else if (c >= 0xe000 && c < (0xe000 + 20*94)) { /* user (95ku - 114ku) */ + s1 = c - 0xe000; + c1 = s1/94 + 0x7f; + c2 = s1%94 + 0x21; + s1 = (c1 << 8) | c2; + s2 = 1; + } + if (s1 <= 0) { + c1 = c & ~MBFL_WCSPLANE_MASK; + if (c1 == MBFL_WCSPLANE_WINCP932) { + s1 = c & MBFL_WCSPLANE_MASK; + s2 = 1; + } else if (c1 == MBFL_WCSPLANE_JIS0208) { + s1 = c & MBFL_WCSPLANE_MASK; + } else if (c1 == MBFL_WCSPLANE_JIS0212) { + s1 = c & MBFL_WCSPLANE_MASK; + s1 |= 0x8080; + } else if (c == 0xa5) { /* YEN SIGN */ + s1 = 0x216f; /* FULLWIDTH YEN SIGN */ + } else if (c == 0x203e) { /* OVER LINE */ + s1 = 0x2131; /* FULLWIDTH MACRON */ + } else if (c == 0xff3c) { /* FULLWIDTH REVERSE SOLIDUS */ + s1 = 0x2140; + } else if (c == 0xff5e) { /* FULLWIDTH TILDE */ + s1 = 0x2141; + } else if (c == 0x2225) { /* PARALLEL TO */ + s1 = 0x2142; + } else if (c == 0xff0d) { /* FULLWIDTH HYPHEN-MINUS */ + s1 = 0x215d; + } else if (c == 0xffe0) { /* FULLWIDTH CENT SIGN */ + s1 = 0x2171; + } else if (c == 0xffe1) { /* FULLWIDTH POUND SIGN */ + s1 = 0x2172; + } else if (c == 0xffe2) { /* FULLWIDTH NOT SIGN */ + s1 = 0x224c; + } + } + if ((s1 <= 0) || (s1 >= 0x8080 && s2 == 0)) { /* not found or X 0212 */ + s1 = -1; + c1 = 0; + c2 = cp932ext1_ucs_table_max - cp932ext1_ucs_table_min; + while (c1 < c2) { /* CP932 vendor ext1 (13ku) */ + if (c == cp932ext1_ucs_table[c1]) { + s1 = ((c1/94 + 0x2d) << 8) + (c1%94 + 0x21); + break; + } + c1++; + } + if (s1 <= 0) { + c1 = 0; + c2 = cp932ext3_ucs_table_max - cp932ext3_ucs_table_min; + while (c1 < c2) { /* CP932 vendor ext3 (115ku - 119ku) */ + if (c == cp932ext3_ucs_table[c1]) { + s1 = ((c1/94 + 0x93) << 8) + (c1%94 + 0x21); + break; + } + c1++; + } + } + if (c == 0) { + s1 = 0; + } else if (s1 <= 0) { + s1 = -1; + } + } + + if (s1 >= 0) { + if (s1 < 0x100) { /* latin or kana */ + CK((*filter->output_function)(s1, filter->data)); + } else { /* kanji */ + c1 = (s1 >> 8) & 0xff; + c2 = s1 & 0xff; + SJIS_ENCODE(c1, c2, s1, s2); + CK((*filter->output_function)(s1, filter->data)); + CK((*filter->output_function)(s2, filter->data)); + } + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + +static int mbfl_filt_ident_sjis_open(int c, mbfl_identify_filter *filter) +{ + if (filter->status) { /* kanji second char */ + if (c < 0x40 || c > 0xfc || c == 0x7f) { /* bad */ + filter->flag = 1; + } + filter->status = 0; + } else if (c >= 0 && c < 0x80) { /* latin ok */ + ; + } else if (c > 0xa0 && c < 0xe0) { /* kana ok */ + ; + } else if (c > 0x80 && c < 0xfd && c != 0xa0) { /* kanji first char */ + filter->status = 1; + } else { /* bad */ + filter->flag = 1; + } + + return c; +} + + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_sjis_open.h b/ext/mbstring/libmbfl/filters/mbfilter_sjis_open.h new file mode 100644 index 0000000..f24e42e --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_sjis_open.h @@ -0,0 +1,44 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * the source code included in this files was separated from mbfilter_ja.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_SJIS_OPEN_H +#define MBFL_MBFILTER_SJIS_OPEN_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_sjis_open; + +extern const struct mbfl_identify_vtbl vtbl_identify_sjis_open; +extern const struct mbfl_convert_vtbl vtbl_sjis_open_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_sjis_open; + +int mbfl_filt_conv_sjis_open_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_sjis_open(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_SJIS_OPEN_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_tl_jisx0201_jisx0208.c b/ext/mbstring/libmbfl/filters/mbfilter_tl_jisx0201_jisx0208.c new file mode 100644 index 0000000..c66c51f --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_tl_jisx0201_jisx0208.c @@ -0,0 +1,302 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: Moriyoshi Koizumi <koizumi@gree.co.jp> + * + */ + +#include "mbfl_allocators.h" +#include "mbfilter_tl_jisx0201_jisx0208.h" +#include "translit_kana_jisx0201_jisx0208.h" + +void +mbfl_filt_tl_jisx0201_jisx0208_init(mbfl_convert_filter *filt) +{ + mbfl_filt_conv_common_ctor(filt); +} + +void +mbfl_filt_tl_jisx0201_jisx0208_cleanup(mbfl_convert_filter *filt) +{ +} + +int +mbfl_filt_tl_jisx0201_jisx0208(int c, mbfl_convert_filter *filt) +{ + int s, n; + int mode = ((mbfl_filt_tl_jisx0201_jisx0208_param *)filt->opaque)->mode; + + s = c; + + if ((mode & MBFL_FILT_TL_HAN2ZEN_ALL) + && c >= 0x21 && c <= 0x7d && c != 0x22 && c != 0x27 && c != 0x5c) { + /* all except <"> <'> <\> <~> */ + s = c + 0xfee0; + } else if ((mode & MBFL_FILT_TL_HAN2ZEN_ALPHA) && + ((c >= 0x41 && c <= 0x5a) || (c >= 0x61 && c <= 0x7a))) { + /* alpha */ + s = c + 0xfee0; + } else if ((mode & MBFL_FILT_TL_HAN2ZEN_NUMERIC) && + c >= 0x30 && c <= 0x39) { + /* num */ + s = c + 0xfee0; + } else if ((mode & MBFL_FILT_TL_HAN2ZEN_SPACE) && c == 0x20) { + /* space */ + s = 0x3000; + } + + if (mode & + (MBFL_FILT_TL_HAN2ZEN_KATAKANA | MBFL_FILT_TL_HAN2ZEN_HIRAGANA)) { + /* hankaku kana to zenkaku kana */ + if ((mode & MBFL_FILT_TL_HAN2ZEN_KATAKANA) && + (mode & MBFL_FILT_TL_HAN2ZEN_GLUE)) { + /* hankaku kana to zenkaku katakana and glue voiced sound mark */ + if (c >= 0xff61 && c <= 0xff9f) { + if (filt->status) { + n = (filt->cache - 0xff60) & 0x3f; + if (c == 0xff9e && ((n >= 22 && n <= 36) || (n >= 42 && n <= 46))) { + filt->status = 0; + s = 0x3001 + hankana2zenkana_table[n]; + } else if (c == 0xff9e && n == 19) { + filt->status = 0; + s = 0x30f4; + } else if (c == 0xff9f && (n >= 42 && n <= 46)) { + filt->status = 0; + s = 0x3002 + hankana2zenkana_table[n]; + } else { + filt->status = 1; + filt->cache = c; + s = 0x3000 + hankana2zenkana_table[n]; + } + } else { + filt->status = 1; + filt->cache = c; + return c; + } + } else { + if (filt->status) { + n = (filt->cache - 0xff60) & 0x3f; + filt->status = 0; + (*filt->output_function)(0x3000 + hankana2zenkana_table[n], filt->data); + } + } + } else if ((mode & MBFL_FILT_TL_HAN2ZEN_HIRAGANA) && + (mode & MBFL_FILT_TL_HAN2ZEN_GLUE)) { + /* hankaku kana to zenkaku hirangana and glue voiced sound mark */ + if (c >= 0xff61 && c <= 0xff9f) { + if (filt->status) { + n = (filt->cache - 0xff60) & 0x3f; + if (c == 0xff9e && ((n >= 22 && n <= 36) || (n >= 42 && n <= 46))) { + filt->status = 0; + s = 0x3001 + hankana2zenhira_table[n]; + } else if (c == 0xff9f && (n >= 42 && n <= 46)) { + filt->status = 0; + s = 0x3002 + hankana2zenhira_table[n]; + } else { + filt->status = 1; + filt->cache = c; + s = 0x3000 + hankana2zenhira_table[n]; + } + } else { + filt->status = 1; + filt->cache = c; + return c; + } + } else { + if (filt->status) { + n = (filt->cache - 0xff60) & 0x3f; + filt->status = 0; + (*filt->output_function)(0x3000 + hankana2zenhira_table[n], filt->data); + } + } + } else if ((mode & MBFL_FILT_TL_HAN2ZEN_KATAKANA) && + c >= 0xff61 && c <= 0xff9f) { + /* hankaku kana to zenkaku katakana */ + s = 0x3000 + hankana2zenkana_table[c - 0xff60]; + } else if ((mode & MBFL_FILT_TL_HAN2ZEN_HIRAGANA) + && c >= 0xff61 && c <= 0xff9f) { + /* hankaku kana to zenkaku hirangana */ + s = 0x3000 + hankana2zenhira_table[c - 0xff60]; + } + } + + if (mode & MBFL_FILT_TL_HAN2ZEN_COMPAT1) { + /* special ascii to symbol */ + if (c == 0x5c) { + s = 0xffe5; /* FULLWIDTH YEN SIGN */ + } else if (c == 0xa5) { /* YEN SIGN */ + s = 0xffe5; /* FULLWIDTH YEN SIGN */ + } else if (c == 0x7e) { + s = 0xffe3; /* FULLWIDTH MACRON */ + } else if (c == 0x203e) { /* OVERLINE */ + s = 0xffe3; /* FULLWIDTH MACRON */ + } else if (c == 0x27) { + s = 0x2019; /* RIGHT SINGLE QUOTATION MARK */ + } else if (c == 0x22) { + s = 0x201d; /* RIGHT DOUBLE QUOTATION MARK */ + } + } else if (mode & MBFL_FILT_TL_HAN2ZEN_COMPAT2) { + /* special ascii to symbol */ + if (c == 0x5c) { + s = 0xff3c; /* FULLWIDTH REVERSE SOLIDUS */ + } else if (c == 0x7e) { + s = 0xff5e; /* FULLWIDTH TILDE */ + } else if (c == 0x27) { + s = 0xff07; /* FULLWIDTH APOSTROPHE */ + } else if (c == 0x22) { + s = 0xff02; /* FULLWIDTH QUOTATION MARK */ + } + } + + if (mode & 0xf0) { /* zenkaku to hankaku */ + if ((mode & 0x10) && c >= 0xff01 && c <= 0xff5d && c != 0xff02 && c != 0xff07 && c!= 0xff3c) { /* all except <"> <'> <\> <~> */ + s = c - 0xfee0; + } else if ((mode & 0x20) && ((c >= 0xff21 && c <= 0xff3a) || (c >= 0xff41 && c <= 0xff5a))) { /* alpha */ + s = c - 0xfee0; + } else if ((mode & 0x40) && (c >= 0xff10 && c <= 0xff19)) { /* num */ + s = c - 0xfee0; + } else if ((mode & 0x80) && (c == 0x3000)) { /* spase */ + s = 0x20; + } else if ((mode & 0x10) && (c == 0x2212)) { /* MINUS SIGN */ + s = 0x2d; + } + } + + if (mode & + (MBFL_FILT_TL_ZEN2HAN_KATAKANA | MBFL_FILT_TL_ZEN2HAN_HIRAGANA)) { + /* Zenkaku kana to hankaku kana */ + if ((mode & MBFL_FILT_TL_ZEN2HAN_KATAKANA) && + c >= 0x30a1 && c <= 0x30f4) { + /* Zenkaku katakana to hankaku kana */ + n = c - 0x30a1; + if (zenkana2hankana_table[n][1] != 0) { + (filt->output_function)(0xff00 + zenkana2hankana_table[n][0], filt->data); + s = 0xff00 + zenkana2hankana_table[n][1]; + } else { + s = 0xff00 + zenkana2hankana_table[n][0]; + } + } else if ((mode & MBFL_FILT_TL_ZEN2HAN_HIRAGANA) && + c >= 0x3041 && c <= 0x3093) { + /* Zenkaku hirangana to hankaku kana */ + n = c - 0x3041; + if (zenkana2hankana_table[n][1] != 0) { + (filt->output_function)(0xff00 + zenkana2hankana_table[n][0], filt->data); + s = 0xff00 + zenkana2hankana_table[n][1]; + } else { + s = 0xff00 + zenkana2hankana_table[n][0]; + } + } else if (c == 0x3001) { + s = 0xff64; /* HALFWIDTH IDEOGRAPHIC COMMA */ + } else if (c == 0x3002) { + s = 0xff61; /* HALFWIDTH IDEOGRAPHIC FULL STOP */ + } else if (c == 0x300c) { + s = 0xff62; /* HALFWIDTH LEFT CORNER BRACKET */ + } else if (c == 0x300d) { + s = 0xff63; /* HALFWIDTH RIGHT CORNER BRACKET */ + } else if (c == 0x309b) { + s = 0xff9e; /* HALFWIDTH KATAKANA VOICED SOUND MARK */ + } else if (c == 0x309c) { + s = 0xff9f; /* HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK */ + } else if (c == 0x30fc) { + s = 0xff70; /* HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK */ + } else if (c == 0x30fb) { + s = 0xff65; /* HALFWIDTH KATAKANA MIDDLE DOT */ + } + } else if (mode & (MBFL_FILT_TL_ZEN2HAN_HIRA2KANA + | MBFL_FILT_TL_ZEN2HAN_KANA2HIRA)) { + if ((mode & MBFL_FILT_TL_ZEN2HAN_HIRA2KANA) && + c >= 0x3041 && c <= 0x3093) { + /* Zenkaku hirangana to Zenkaku katakana */ + s = c + 0x60; + } else if ((mode & MBFL_FILT_TL_ZEN2HAN_KANA2HIRA) && + c >= 0x30a1 && c <= 0x30f3) { + /* Zenkaku katakana to Zenkaku hirangana */ + s = c - 0x60; + } + } + + if (mode & MBFL_FILT_TL_ZEN2HAN_COMPAT1) { /* special symbol to ascii */ + if (c == 0xffe5) { /* FULLWIDTH YEN SIGN */ + s = 0x5c; + } else if (c == 0xff3c) { /* FULLWIDTH REVERSE SOLIDUS */ + s = 0x5c; + } else if (c == 0xffe3) { /* FULLWIDTH MACRON */ + s = 0x7e; + } else if (c == 0x203e) { /* OVERLINE */ + s = 0x7e; + } else if (c == 0x2018) { /* LEFT SINGLE QUOTATION MARK*/ + s = 0x27; + } else if (c == 0x2019) { /* RIGHT SINGLE QUOTATION MARK */ + s = 0x27; + } else if (c == 0x201c) { /* LEFT DOUBLE QUOTATION MARK */ + s = 0x22; + } else if (c == 0x201d) { /* RIGHT DOUBLE QUOTATION MARK */ + s = 0x22; + } + } + + if (mode & MBFL_FILT_TL_ZEN2HAN_COMPAT2) { /* special symbol to ascii */ + if (c == 0xff3c) { /* FULLWIDTH REVERSE SOLIDUS */ + s = 0x5c; + } else if (c == 0xff5e) { /* FULLWIDTH TILDE */ + s = 0x7e; + } else if (c == 0xff07) { /* FULLWIDTH APOSTROPHE */ + s = 0x27; + } else if (c == 0xff02) { /* FULLWIDTH QUOTATION MARK */ + s = 0x22; + } + } + + return (*filt->output_function)(s, filt->data); +} + +int +mbfl_filt_tl_jisx0201_jisx0208_flush(mbfl_convert_filter *filt) +{ + int ret, n; + int mode = ((mbfl_filt_tl_jisx0201_jisx0208_param *)filt->opaque)->mode; + + ret = 0; + if (filt->status) { + n = (filt->cache - 0xff60) & 0x3f; + if (mode & 0x100) { /* hankaku kana to zenkaku katakana */ + ret = (*filt->output_function)(0x3000 + hankana2zenkana_table[n], filt->data); + } else if (mode & 0x200) { /* hankaku kana to zenkaku hirangana */ + ret = (*filt->output_function)(0x3000 + hankana2zenhira_table[n], filt->data); + } + filt->status = 0; + } + + if (filt->flush_function != NULL) { + return (*filt->flush_function)(filt->data); + } + + return ret; +} + +const struct mbfl_convert_vtbl vtbl_tl_jisx0201_jisx0208 = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_wchar, + mbfl_filt_tl_jisx0201_jisx0208_init, + mbfl_filt_tl_jisx0201_jisx0208_cleanup, + mbfl_filt_tl_jisx0201_jisx0208, + mbfl_filt_tl_jisx0201_jisx0208_flush +}; + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_tl_jisx0201_jisx0208.h b/ext/mbstring/libmbfl/filters/mbfilter_tl_jisx0201_jisx0208.h new file mode 100644 index 0000000..b52b38e --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_tl_jisx0201_jisx0208.h @@ -0,0 +1,79 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: Moriyoshi Koizumi <koizumi@gree.co.jp> + * + */ + +#ifndef MBFILTER_TL_KANA_JISX0201_JISX0208_H +#define MBFILTER_TL_KANA_JISX0201_JISX0208_H + +#include "mbfl_convert.h" + +#define MBFL_FILT_TL_HAN2ZEN_ALL 0x00000001 +#define MBFL_FILT_TL_HAN2ZEN_ALPHA 0x00000002 +#define MBFL_FILT_TL_HAN2ZEN_NUMERIC 0x00000004 +#define MBFL_FILT_TL_HAN2ZEN_SPACE 0x00000008 +#define MBFL_FILT_TL_ZEN2HAN_ALL 0x00000010 +#define MBFL_FILT_TL_ZEN2HAN_ALPHA 0x00000020 +#define MBFL_FILT_TL_ZEN2HAN_NUMERIC 0x00000040 +#define MBFL_FILT_TL_ZEN2HAN_SPACE 0x00000080 +#define MBFL_FILT_TL_HAN2ZEN_KATAKANA 0x00000100 +#define MBFL_FILT_TL_HAN2ZEN_HIRAGANA 0x00000200 +#define MBFL_FILT_TL_HAN2ZEN_GLUE 0x00000800 +#define MBFL_FILT_TL_ZEN2HAN_KATAKANA 0x00001000 +#define MBFL_FILT_TL_ZEN2HAN_HIRAGANA 0x00002000 +#define MBFL_FILT_TL_ZEN2HAN_HIRA2KANA 0x00010000 +#define MBFL_FILT_TL_ZEN2HAN_KANA2HIRA 0x00020000 +#define MBFL_FILT_TL_HAN2ZEN_COMPAT1 0x00100000 +#define MBFL_FILT_TL_ZEN2HAN_COMPAT1 0x00200000 +#define MBFL_FILT_TL_HAN2ZEN_COMPAT2 0x00400000 +#define MBFL_FILT_TL_ZEN2HAN_COMPAT2 0x00800000 +#define MBFL_FILT_TL_HAN2ZEN_MASK ( \ + MBFL_FILT_TL_HAN2ZEN_ALL |\ + MBFL_FILT_TL_HAN2ZEN_ALPHA |\ + MBFL_FILT_TL_HAN2ZEN_NUMERIC |\ + MBFL_FILT_TL_HAN2ZEN_SPACE |\ + MBFL_FILT_TL_HAN2ZEN_KATAKANA |\ + MBFL_FILT_TL_HAN2ZEN_HIRAGANA |\ + MBFL_FILT_TL_HAN2ZEN_GLUE |\ + MBFL_FILT_TL_HAN2ZEN_COMPAT1 |\ + MBFL_FILT_TL_HAN2ZEN_COMPAT2) +#define MBFL_FILT_TL_ZEN2HAN_MASK ( \ + MBFL_FILT_TL_ZEN2HAN_ALL | \ + MBFL_FILT_TL_ZEN2HAN_ALPHA | \ + MBFL_FILT_TL_ZEN2HAN_NUMERIC | \ + MBFL_FILT_TL_ZEN2HAN_SPACE | \ + MBFL_FILT_TL_ZEN2HAN_KATAKANA | \ + MBFL_FILT_TL_ZEN2HAN_HIRAGANA | \ + MBFL_FILT_TL_ZEN2HAN_HIRA2KANA | \ + MBFL_FILT_TL_ZEN2HAN_KANA2HIRA | \ + MBFL_FILT_TL_ZEN2HAN_COMPAT1 | \ + MBFL_FILT_TL_ZEN2HAN_COMPAT2) + + +typedef struct _mbfl_filt_tl_jisx0201_jisx0208_param { + mbfl_convert_filter *next_filter; + int mode; +} mbfl_filt_tl_jisx0201_jisx0208_param; + +extern const struct mbfl_convert_vtbl vtbl_tl_jisx0201_jisx0208; + +#endif /* MBFILTER_TL_KANA_JISX0201_JISX0208_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_ucs2.c b/ext/mbstring/libmbfl/filters/mbfilter_ucs2.c new file mode 100644 index 0000000..4d83af0 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_ucs2.c @@ -0,0 +1,238 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_ucs2.h" + +static const char *mbfl_encoding_ucs2_aliases[] = {"ISO-10646-UCS-2", "UCS2" , "UNICODE", NULL}; + +const mbfl_encoding mbfl_encoding_ucs2 = { + mbfl_no_encoding_ucs2, + "UCS-2", + "UCS-2", + (const char *(*)[])&mbfl_encoding_ucs2_aliases, + NULL, + MBFL_ENCTYPE_WCS2BE +}; + +const mbfl_encoding mbfl_encoding_ucs2be = { + mbfl_no_encoding_ucs2be, + "UCS-2BE", + "UCS-2BE", + NULL, + NULL, + MBFL_ENCTYPE_WCS2BE +}; + +const mbfl_encoding mbfl_encoding_ucs2le = { + mbfl_no_encoding_ucs2le, + "UCS-2LE", + "UCS-2LE", + NULL, + NULL, + MBFL_ENCTYPE_WCS2LE +}; + +const struct mbfl_convert_vtbl vtbl_ucs2_wchar = { + mbfl_no_encoding_ucs2, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_ucs2_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_ucs2 = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_ucs2, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_ucs2be, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_ucs2be_wchar = { + mbfl_no_encoding_ucs2be, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_ucs2be_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_ucs2be = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_ucs2be, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_ucs2be, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_ucs2le_wchar = { + mbfl_no_encoding_ucs2le, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_ucs2le_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_ucs2le = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_ucs2le, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_ucs2le, + mbfl_filt_conv_common_flush +}; + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +/* + * UCS-2 => wchar + */ +int mbfl_filt_conv_ucs2_wchar(int c, mbfl_convert_filter *filter) +{ + int n, endian; + + endian = filter->status & 0xff00; + switch (filter->status & 0xff) { + case 0: + if (endian) { + n = c & 0xff; + } else { + n = (c & 0xff) << 8; + } + filter->cache = n; + filter->status++; + break; + default: + if (endian) { + n = (c & 0xff) << 8; + } else { + n = c & 0xff; + } + n |= filter->cache; + if (n == 0xfffe) { + if (endian) { + filter->status = 0; /* big-endian */ + } else { + filter->status = 0x100; /* little-endian */ + } + CK((*filter->output_function)(0xfeff, filter->data)); + } else { + filter->status &= ~0xff; + CK((*filter->output_function)(n, filter->data)); + } + break; + } + + return c; +} + +/* + * UCS-2BE => wchar + */ +int mbfl_filt_conv_ucs2be_wchar(int c, mbfl_convert_filter *filter) +{ + int n; + + if (filter->status == 0) { + filter->status = 1; + n = (c & 0xff) << 8; + filter->cache = n; + } else { + filter->status = 0; + n = (c & 0xff) | filter->cache; + CK((*filter->output_function)(n, filter->data)); + } + return c; +} + +/* + * wchar => UCS-2BE + */ +int mbfl_filt_conv_wchar_ucs2be(int c, mbfl_convert_filter *filter) +{ + if (c >= 0 && c < MBFL_WCSPLANE_UCS2MAX) { + CK((*filter->output_function)((c >> 8) & 0xff, filter->data)); + CK((*filter->output_function)(c & 0xff, filter->data)); + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + +/* + * UCS-2LE => wchar + */ +int mbfl_filt_conv_ucs2le_wchar(int c, mbfl_convert_filter *filter) +{ + int n; + + if (filter->status == 0) { + filter->status = 1; + n = c & 0xff; + filter->cache = n; + } else { + filter->status = 0; + n = ((c & 0xff) << 8) | filter->cache; + CK((*filter->output_function)(n, filter->data)); + } + return c; +} + + +/* + * wchar => UCS-2LE + */ +int mbfl_filt_conv_wchar_ucs2le(int c, mbfl_convert_filter *filter) +{ + if (c >= 0 && c < MBFL_WCSPLANE_UCS2MAX) { + CK((*filter->output_function)(c & 0xff, filter->data)); + CK((*filter->output_function)((c >> 8) & 0xff, filter->data)); + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + + + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_ucs2.h b/ext/mbstring/libmbfl/filters/mbfilter_ucs2.h new file mode 100644 index 0000000..6dd1e65 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_ucs2.h @@ -0,0 +1,51 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_UCS2_H +#define MBFL_MBFILTER_UCS2_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_ucs2; +extern const mbfl_encoding mbfl_encoding_ucs2be; +extern const mbfl_encoding mbfl_encoding_ucs2le; +extern const struct mbfl_convert_vtbl vtbl_ucs2_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_ucs2; +extern const struct mbfl_convert_vtbl vtbl_ucs2be_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_ucs2be; +extern const struct mbfl_convert_vtbl vtbl_ucs2le_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_ucs2le; + +int mbfl_filt_conv_ucs2_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_ucs2be_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_ucs2be(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_ucs2le_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_ucs2le(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_UCS2_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_ucs4.c b/ext/mbstring/libmbfl/filters/mbfilter_ucs4.c new file mode 100644 index 0000000..12a2033 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_ucs4.c @@ -0,0 +1,275 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_ucs4.h" + +static const char *mbfl_encoding_ucs4_aliases[] = {"ISO-10646-UCS-4", "UCS4", NULL}; + +const mbfl_encoding mbfl_encoding_ucs4 = { + mbfl_no_encoding_ucs4, + "UCS-4", + "UCS-4", + (const char *(*)[])&mbfl_encoding_ucs4_aliases, + NULL, + MBFL_ENCTYPE_WCS4BE +}; + +const mbfl_encoding mbfl_encoding_ucs4be = { + mbfl_no_encoding_ucs4be, + "UCS-4BE", + "UCS-4BE", + NULL, + NULL, + MBFL_ENCTYPE_WCS4BE +}; + +const mbfl_encoding mbfl_encoding_ucs4le = { + mbfl_no_encoding_ucs4le, + "UCS-4LE", + "UCS-4LE", + NULL, + NULL, + MBFL_ENCTYPE_WCS4LE +}; + +const struct mbfl_convert_vtbl vtbl_ucs4_wchar = { + mbfl_no_encoding_ucs4, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_ucs4_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_ucs4 = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_ucs4, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_ucs4be, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_ucs4be_wchar = { + mbfl_no_encoding_ucs4be, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_ucs4be_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_ucs4be = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_ucs4be, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_ucs4be, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_ucs4le_wchar = { + mbfl_no_encoding_ucs4le, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_ucs4le_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_ucs4le = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_ucs4le, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_ucs4le, + mbfl_filt_conv_common_flush +}; + + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +/* + * UCS-4 => wchar + */ +int mbfl_filt_conv_ucs4_wchar(int c, mbfl_convert_filter *filter) +{ + int n, endian; + + endian = filter->status & 0xff00; + switch (filter->status & 0xff) { + case 0: + if (endian) { + n = c & 0xff; + } else { + n = (c & 0xff) << 24; + } + filter->cache = n; + filter->status++; + break; + case 1: + if (endian) { + n = (c & 0xff) << 8; + } else { + n = (c & 0xff) << 16; + } + filter->cache |= n; + filter->status++; + break; + case 2: + if (endian) { + n = (c & 0xff) << 16; + } else { + n = (c & 0xff) << 8; + } + filter->cache |= n; + filter->status++; + break; + default: + if (endian) { + n = (c & 0xff) << 24; + } else { + n = c & 0xff; + } + n |= filter->cache; + if ((n & 0xffff) == 0 && ((n >> 16) & 0xffff) == 0xfffe) { + if (endian) { + filter->status = 0; /* big-endian */ + } else { + filter->status = 0x100; /* little-endian */ + } + CK((*filter->output_function)(0xfeff, filter->data)); + } else { + filter->status &= ~0xff; + CK((*filter->output_function)(n, filter->data)); + } + break; + } + + return c; +} + +/* + * UCS-4BE => wchar + */ +int mbfl_filt_conv_ucs4be_wchar(int c, mbfl_convert_filter *filter) +{ + int n; + + if (filter->status == 0) { + filter->status = 1; + n = (c & 0xff) << 24; + filter->cache = n; + } else if (filter->status == 1) { + filter->status = 2; + n = (c & 0xff) << 16; + filter->cache |= n; + } else if (filter->status == 2) { + filter->status = 3; + n = (c & 0xff) << 8; + filter->cache |= n; + } else { + filter->status = 0; + n = (c & 0xff) | filter->cache; + CK((*filter->output_function)(n, filter->data)); + } + return c; +} + +/* + * wchar => UCS-4BE + */ +int mbfl_filt_conv_wchar_ucs4be(int c, mbfl_convert_filter *filter) +{ + if (c >= 0 && c < MBFL_WCSGROUP_UCS4MAX) { + CK((*filter->output_function)((c >> 24) & 0xff, filter->data)); + CK((*filter->output_function)((c >> 16) & 0xff, filter->data)); + CK((*filter->output_function)((c >> 8) & 0xff, filter->data)); + CK((*filter->output_function)(c & 0xff, filter->data)); + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + +/* + * UCS-4LE => wchar + */ +int mbfl_filt_conv_ucs4le_wchar(int c, mbfl_convert_filter *filter) +{ + int n; + + if (filter->status == 0) { + filter->status = 1; + n = (c & 0xff); + filter->cache = n; + } else if (filter->status == 1) { + filter->status = 2; + n = (c & 0xff) << 8; + filter->cache |= n; + } else if (filter->status == 2) { + filter->status = 3; + n = (c & 0xff) << 16; + filter->cache |= n; + } else { + filter->status = 0; + n = ((c & 0xff) << 24) | filter->cache; + CK((*filter->output_function)(n, filter->data)); + } + return c; +} + +/* + * wchar => UCS-4LE + */ +int mbfl_filt_conv_wchar_ucs4le(int c, mbfl_convert_filter *filter) +{ + if (c >= 0 && c < MBFL_WCSGROUP_UCS4MAX) { + CK((*filter->output_function)(c & 0xff, filter->data)); + CK((*filter->output_function)((c >> 8) & 0xff, filter->data)); + CK((*filter->output_function)((c >> 16) & 0xff, filter->data)); + CK((*filter->output_function)((c >> 24) & 0xff, filter->data)); + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_ucs4.h b/ext/mbstring/libmbfl/filters/mbfilter_ucs4.h new file mode 100644 index 0000000..718c7e1 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_ucs4.h @@ -0,0 +1,49 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_UCS4_H +#define MBFL_MBFILTER_UCS4_H + +extern const mbfl_encoding mbfl_encoding_ucs4; +extern const mbfl_encoding mbfl_encoding_ucs4le; +extern const mbfl_encoding mbfl_encoding_ucs4be; +extern const struct mbfl_convert_vtbl vtbl_ucs4_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_ucs4; +extern const struct mbfl_convert_vtbl vtbl_ucs4be_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_ucs4be; +extern const struct mbfl_convert_vtbl vtbl_ucs4le_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_ucs4le; + +int mbfl_filt_conv_ucs4_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_ucs4be_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_ucs4be(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_ucs4le_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_ucs4le(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_UCS4_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_uhc.c b/ext/mbstring/libmbfl/filters/mbfilter_uhc.c new file mode 100644 index 0000000..86765b2 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_uhc.c @@ -0,0 +1,267 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter_kr.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_uhc.h" +#define UNICODE_TABLE_UHC_DEF +#include "unicode_table_uhc.h" + +static int mbfl_filt_ident_uhc(int c, mbfl_identify_filter *filter); + +static const unsigned char mblen_table_uhc[] = { /* 0x81-0xFE */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 +}; + +static const char *mbfl_encoding_uhc_aliases[] = {"CP949", NULL}; + +const mbfl_encoding mbfl_encoding_uhc = { + mbfl_no_encoding_uhc, + "UHC", + "UHC", + (const char *(*)[])&mbfl_encoding_uhc_aliases, + mblen_table_uhc, + MBFL_ENCTYPE_MBCS +}; + +const struct mbfl_identify_vtbl vtbl_identify_uhc = { + mbfl_no_encoding_uhc, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_uhc +}; + +const struct mbfl_convert_vtbl vtbl_uhc_wchar = { + mbfl_no_encoding_uhc, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_uhc_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_uhc = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_uhc, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_uhc, + mbfl_filt_conv_common_flush +}; + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +/* + * UHC => wchar + */ +int +mbfl_filt_conv_uhc_wchar(int c, mbfl_convert_filter *filter) +{ + int c1, w = 0, flag = 0; + + switch (filter->status) { + case 0: + if (c >= 0 && c < 0x80) { /* latin */ + CK((*filter->output_function)(c, filter->data)); + } else if (c > 0x80 && c < 0xff && c != 0xc9) { /* dbcs lead byte */ + filter->status = 1; + filter->cache = c; + } else { + w = c & MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + break; + + case 1: /* dbcs second byte */ + filter->status = 0; + c1 = filter->cache; + + if ( c1 >= 0x81 && c1 <= 0xa0){ + w = (c1 - 0x81)*190 + (c - 0x41); + if (w >= 0 && w < uhc1_ucs_table_size) { + flag = 1; + w = uhc1_ucs_table[w]; + } else { + w = 0; + } + } else if ( c1 >= 0xa1 && c1 <= 0xc6){ + w = (c1 - 0xa1)*190 + (c - 0x41); + if (w >= 0 && w < uhc2_ucs_table_size) { + flag = 2; + w = uhc2_ucs_table[w]; + } else { + w = 0; + } + } else if ( c1 >= 0xc7 && c1 <= 0xfe){ + w = (c1 - 0xc7)*94 + (c - 0xa1); + if (w >= 0 && w < uhc3_ucs_table_size) { + flag = 3; + w = uhc3_ucs_table[w]; + } else { + w = 0; + } + } + if (flag > 0){ + if (w <= 0) { + w = (c1 << 8) | c; + w &= MBFL_WCSPLANE_MASK; + w |= MBFL_WCSPLANE_UHC; + } + CK((*filter->output_function)(w, filter->data)); + } else { + if ((c >= 0 && c < 0x21) || c == 0x7f) { /* CTLs */ + CK((*filter->output_function)(c, filter->data)); + } else { + w = (c1 << 8) | c; + w &= MBFL_WCSGROUP_MASK; + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + } + } + break; + + default: + filter->status = 0; + break; + } + + return c; +} + +/* + * wchar => UHC + */ +int +mbfl_filt_conv_wchar_uhc(int c, mbfl_convert_filter *filter) +{ + int c1, s; + + s = 0; + if (c >= ucs_a1_uhc_table_min && c < ucs_a1_uhc_table_max) { + s = ucs_a1_uhc_table[c - ucs_a1_uhc_table_min]; + } else if (c >= ucs_a2_uhc_table_min && c < ucs_a2_uhc_table_max) { + s = ucs_a2_uhc_table[c - ucs_a2_uhc_table_min]; + } else if (c >= ucs_a3_uhc_table_min && c < ucs_a3_uhc_table_max) { + s = ucs_a3_uhc_table[c - ucs_a3_uhc_table_min]; + } else if (c >= ucs_i_uhc_table_min && c < ucs_i_uhc_table_max) { + s = ucs_i_uhc_table[c - ucs_i_uhc_table_min]; + } else if (c >= ucs_s_uhc_table_min && c < ucs_s_uhc_table_max) { + s = ucs_s_uhc_table[c - ucs_s_uhc_table_min]; + } else if (c >= ucs_r1_uhc_table_min && c < ucs_r1_uhc_table_max) { + s = ucs_r1_uhc_table[c - ucs_r1_uhc_table_min]; + } else if (c >= ucs_r2_uhc_table_min && c < ucs_r2_uhc_table_max) { + s = ucs_r2_uhc_table[c - ucs_r2_uhc_table_min]; + } + if (s <= 0) { + c1 = c & ~MBFL_WCSPLANE_MASK; + if (c1 == MBFL_WCSPLANE_UHC) { + s = c & MBFL_WCSPLANE_MASK; + } + if (c == 0) { + s = 0; + } else if (s <= 0) { + s = -1; + } + } + if (s >= 0) { + if (s < 0x80) { /* latin */ + CK((*filter->output_function)(s, filter->data)); + } else { + CK((*filter->output_function)((s >> 8) & 0xff, filter->data)); + CK((*filter->output_function)(s & 0xff, filter->data)); + } + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + +static int mbfl_filt_ident_uhc(int c, mbfl_identify_filter *filter) +{ + switch (filter->status) { + case 0: /* latin */ + if (c >= 0 && c < 0x80) { /* ok */ + ; + } else if (c >= 0x81 && c <= 0xa0) { /* dbcs first char */ + filter->status= 1; + } else if (c >= 0xa1 && c <= 0xc6) { /* dbcs first char */ + filter->status= 2; + } else if (c >= 0xc7 && c <= 0xfe) { /* dbcs first char */ + filter->status= 3; + } else { /* bad */ + filter->flag = 1; + } + + case 1: + case 2: + if (c < 0x41 || (c > 0x5a && c < 0x61) + || (c > 0x7a && c < 0x81) || c > 0xfe) { /* bad */ + filter->flag = 1; + } + filter->status = 0; + break; + + case 3: + if (c < 0xa1 || c > 0xfe) { /* bad */ + filter->flag = 1; + } + filter->status = 0; + break; + + default: + filter->status = 0; + break; + } + + return c; +} + + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_uhc.h b/ext/mbstring/libmbfl/filters/mbfilter_uhc.h new file mode 100644 index 0000000..f964249 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_uhc.h @@ -0,0 +1,43 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter_kr.h + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_UHC_H +#define MBFL_MBFILTER_UHC_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_uhc; +extern const struct mbfl_identify_vtbl vtbl_identify_uhc; +extern const struct mbfl_convert_vtbl vtbl_uhc_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_uhc; + +int mbfl_filt_conv_uhc_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_uhc(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_UHC_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_utf16.c b/ext/mbstring/libmbfl/filters/mbfilter_utf16.c new file mode 100644 index 0000000..5df6551 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_utf16.c @@ -0,0 +1,316 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_utf16.h" + +static const char *mbfl_encoding_utf16_aliases[] = {"utf16", NULL}; + +const mbfl_encoding mbfl_encoding_utf16 = { + mbfl_no_encoding_utf16, + "UTF-16", + "UTF-16", + (const char *(*)[])&mbfl_encoding_utf16_aliases, + NULL, + MBFL_ENCTYPE_MWC2BE +}; + +const mbfl_encoding mbfl_encoding_utf16be = { + mbfl_no_encoding_utf16be, + "UTF-16BE", + "UTF-16BE", + NULL, + NULL, + MBFL_ENCTYPE_MWC2BE +}; + +const mbfl_encoding mbfl_encoding_utf16le = { + mbfl_no_encoding_utf16le, + "UTF-16LE", + "UTF-16LE", + NULL, + NULL, + MBFL_ENCTYPE_MWC2LE +}; + +const struct mbfl_convert_vtbl vtbl_utf16_wchar = { + mbfl_no_encoding_utf16, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_utf16_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_utf16 = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_utf16, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_utf16be, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_utf16be_wchar = { + mbfl_no_encoding_utf16be, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_utf16be_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_utf16be = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_utf16be, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_utf16be, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_utf16le_wchar = { + mbfl_no_encoding_utf16le, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_utf16le_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_utf16le = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_utf16le, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_utf16le, + mbfl_filt_conv_common_flush +}; + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +/* + * UTF-16 => wchar + */ +int mbfl_filt_conv_utf16_wchar(int c, mbfl_convert_filter *filter) +{ + int n, endian; + + endian = filter->status & 0xff00; + switch (filter->status & 0x0f) { + case 0: + if (endian) { + n = c & 0xff; + } else { + n = (c & 0xff) << 8; + } + filter->cache |= n; + filter->status++; + break; + default: + if (endian) { + n = (c & 0xff) << 8; + } else { + n = c & 0xff; + } + n |= filter->cache & 0xffff; + filter->status &= ~0x0f; + if (n >= 0xd800 && n < 0xdc00) { + filter->cache = ((n & 0x3ff) << 16) + 0x400000; + } else if (n >= 0xdc00 && n < 0xe000) { + n &= 0x3ff; + n |= (filter->cache & 0xfff0000) >> 6; + filter->cache = 0; + if (n >= MBFL_WCSPLANE_SUPMIN && n < MBFL_WCSPLANE_SUPMAX) { + CK((*filter->output_function)(n, filter->data)); + } else { /* illegal character */ + n &= MBFL_WCSGROUP_MASK; + n |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(n, filter->data)); + } + } else { + int is_first = filter->status & 0x10; + filter->cache = 0; + filter->status |= 0x10; + if (!is_first) { + if (n == 0xfffe) { + if (endian) { + filter->status &= ~0x100; /* big-endian */ + } else { + filter->status |= 0x100; /* little-endian */ + } + break; + } else if (n == 0xfeff) { + break; + } + } + CK((*filter->output_function)(n, filter->data)); + } + break; + } + + return c; +} + +/* + * UTF-16BE => wchar + */ +int mbfl_filt_conv_utf16be_wchar(int c, mbfl_convert_filter *filter) +{ + int n; + + switch (filter->status) { + case 0: + filter->status = 1; + n = (c & 0xff) << 8; + filter->cache |= n; + break; + default: + filter->status = 0; + n = (filter->cache & 0xff00) | (c & 0xff); + if (n >= 0xd800 && n < 0xdc00) { + filter->cache = ((n & 0x3ff) << 16) + 0x400000; + } else if (n >= 0xdc00 && n < 0xe000) { + n &= 0x3ff; + n |= (filter->cache & 0xfff0000) >> 6; + filter->cache = 0; + if (n >= MBFL_WCSPLANE_SUPMIN && n < MBFL_WCSPLANE_SUPMAX) { + CK((*filter->output_function)(n, filter->data)); + } else { /* illegal character */ + n &= MBFL_WCSGROUP_MASK; + n |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(n, filter->data)); + } + } else { + filter->cache = 0; + CK((*filter->output_function)(n, filter->data)); + } + break; + } + + return c; +} + +/* + * wchar => UTF-16BE + */ +int mbfl_filt_conv_wchar_utf16be(int c, mbfl_convert_filter *filter) +{ + int n; + + if (c >= 0 && c < MBFL_WCSPLANE_UCS2MAX) { + CK((*filter->output_function)((c >> 8) & 0xff, filter->data)); + CK((*filter->output_function)(c & 0xff, filter->data)); + } else if (c >= MBFL_WCSPLANE_SUPMIN && c < MBFL_WCSPLANE_SUPMAX) { + n = ((c >> 10) - 0x40) | 0xd800; + CK((*filter->output_function)((n >> 8) & 0xff, filter->data)); + CK((*filter->output_function)(n & 0xff, filter->data)); + n = (c & 0x3ff) | 0xdc00; + CK((*filter->output_function)((n >> 8) & 0xff, filter->data)); + CK((*filter->output_function)(n & 0xff, filter->data)); + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + +/* + * UTF-16LE => wchar + */ +int mbfl_filt_conv_utf16le_wchar(int c, mbfl_convert_filter *filter) +{ + int n; + + switch (filter->status) { + case 0: + filter->status = 1; + n = c & 0xff; + filter->cache |= n; + break; + default: + filter->status = 0; + n = (filter->cache & 0xff) | ((c & 0xff) << 8); + if (n >= 0xd800 && n < 0xdc00) { + filter->cache = ((n & 0x3ff) << 16) + 0x400000; + } else if (n >= 0xdc00 && n < 0xe000) { + n &= 0x3ff; + n |= (filter->cache & 0xfff0000) >> 6; + filter->cache = 0; + if (n >= MBFL_WCSPLANE_SUPMIN && n < MBFL_WCSPLANE_SUPMAX) { + CK((*filter->output_function)(n, filter->data)); + } else { /* illegal character */ + n &= MBFL_WCSGROUP_MASK; + n |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(n, filter->data)); + } + } else { + filter->cache = 0; + CK((*filter->output_function)(n, filter->data)); + } + break; + } + + return c; +} + +/* + * wchar => UTF-16LE + */ +int mbfl_filt_conv_wchar_utf16le(int c, mbfl_convert_filter *filter) +{ + int n; + + if (c >= 0 && c < MBFL_WCSPLANE_UCS2MAX) { + CK((*filter->output_function)(c & 0xff, filter->data)); + CK((*filter->output_function)((c >> 8) & 0xff, filter->data)); + } else if (c >= MBFL_WCSPLANE_SUPMIN && c < MBFL_WCSPLANE_SUPMAX) { + n = ((c >> 10) - 0x40) | 0xd800; + CK((*filter->output_function)(n & 0xff, filter->data)); + CK((*filter->output_function)((n >> 8) & 0xff, filter->data)); + n = (c & 0x3ff) | 0xdc00; + CK((*filter->output_function)(n & 0xff, filter->data)); + CK((*filter->output_function)((n >> 8) & 0xff, filter->data)); + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + + + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_utf16.h b/ext/mbstring/libmbfl/filters/mbfilter_utf16.h new file mode 100644 index 0000000..f54bb00 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_utf16.h @@ -0,0 +1,49 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_UTF16_H +#define MBFL_MBFILTER_UTF16_H + +extern const mbfl_encoding mbfl_encoding_utf16; +extern const mbfl_encoding mbfl_encoding_utf16be; +extern const mbfl_encoding mbfl_encoding_utf16le; +extern const struct mbfl_convert_vtbl vtbl_utf16_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_utf16; +extern const struct mbfl_convert_vtbl vtbl_utf16be_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_utf16be; +extern const struct mbfl_convert_vtbl vtbl_utf16le_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_utf16le; + +int mbfl_filt_conv_utf16_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_utf16be_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_utf16be(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_utf16le_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_utf16le(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_UTF16_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_utf32.c b/ext/mbstring/libmbfl/filters/mbfilter_utf32.c new file mode 100644 index 0000000..3cef6b0 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_utf32.c @@ -0,0 +1,287 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 20 dec 2002. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_utf32.h" + +static const char *mbfl_encoding_utf32_aliases[] = {"utf32", NULL}; + +const mbfl_encoding mbfl_encoding_utf32 = { + mbfl_no_encoding_utf32, + "UTF-32", + "UTF-32", + (const char *(*)[])&mbfl_encoding_utf32_aliases, + NULL, + MBFL_ENCTYPE_WCS4BE +}; + +const mbfl_encoding mbfl_encoding_utf32be = { + mbfl_no_encoding_utf32be, + "UTF-32BE", + "UTF-32BE", + NULL, + NULL, + MBFL_ENCTYPE_WCS4BE +}; + +const mbfl_encoding mbfl_encoding_utf32le = { + mbfl_no_encoding_utf32le, + "UTF-32LE", + "UTF-32LE", + NULL, + NULL, + MBFL_ENCTYPE_WCS4LE +}; + +const struct mbfl_convert_vtbl vtbl_utf32_wchar = { + mbfl_no_encoding_utf32, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_utf32_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_utf32 = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_utf32, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_utf32be, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_utf32be_wchar = { + mbfl_no_encoding_utf32be, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_utf32be_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_utf32be = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_utf32be, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_utf32be, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_utf32le_wchar = { + mbfl_no_encoding_utf32le, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_utf32le_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_utf32le = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_utf32le, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_utf32le, + mbfl_filt_conv_common_flush +}; + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +/* + * UTF-32 => wchar + */ +int mbfl_filt_conv_utf32_wchar(int c, mbfl_convert_filter *filter) +{ + int n, endian; + + endian = filter->status & 0xff00; + switch (filter->status & 0xff) { + case 0: + if (endian) { + n = c & 0xff; + } else { + n = (c & 0xff) << 24; + } + filter->cache = n; + filter->status++; + break; + case 1: + if (endian) { + n = (c & 0xff) << 8; + } else { + n = (c & 0xff) << 16; + } + filter->cache |= n; + filter->status++; + break; + case 2: + if (endian) { + n = (c & 0xff) << 16; + } else { + n = (c & 0xff) << 8; + } + filter->cache |= n; + filter->status++; + break; + default: + if (endian) { + n = (c & 0xff) << 24; + } else { + n = c & 0xff; + } + n |= filter->cache; + if ((n & 0xffff) == 0 && ((n >> 16) & 0xffff) == 0xfffe) { + if (endian) { + filter->status = 0; /* big-endian */ + } else { + filter->status = 0x100; /* little-endian */ + } + CK((*filter->output_function)(0xfeff, filter->data)); + } else { + filter->status &= ~0xff; + if (n < MBFL_WCSPLANE_UTF32MAX && (n < 0xd800 || n > 0xdfff)) { + CK((*filter->output_function)(n, filter->data)); + } else { + n = (n & MBFL_WCSGROUP_MASK) | MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(n, filter->data)); + } + } + break; + } + + return c; +} + +/* + * UTF-32BE => wchar + */ +int mbfl_filt_conv_utf32be_wchar(int c, mbfl_convert_filter *filter) +{ + int n; + + if (filter->status == 0) { + filter->status = 1; + n = (c & 0xff) << 24; + filter->cache = n; + } else if (filter->status == 1) { + filter->status = 2; + n = (c & 0xff) << 16; + filter->cache |= n; + } else if (filter->status == 2) { + filter->status = 3; + n = (c & 0xff) << 8; + filter->cache |= n; + } else { + filter->status = 0; + n = (c & 0xff) | filter->cache; + if (n < MBFL_WCSPLANE_UTF32MAX && (n < 0xd800 || n > 0xdfff)) { + CK((*filter->output_function)(n, filter->data)); + } else { + n = (n & MBFL_WCSGROUP_MASK) | MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(n, filter->data)); + } + } + return c; +} + +/* + * wchar => UTF-32BE + */ +int mbfl_filt_conv_wchar_utf32be(int c, mbfl_convert_filter *filter) +{ + if (c >= 0 && c < MBFL_WCSPLANE_UTF32MAX) { + CK((*filter->output_function)((c >> 24) & 0xff, filter->data)); + CK((*filter->output_function)((c >> 16) & 0xff, filter->data)); + CK((*filter->output_function)((c >> 8) & 0xff, filter->data)); + CK((*filter->output_function)(c & 0xff, filter->data)); + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + +/* + * UTF-32LE => wchar + */ +int mbfl_filt_conv_utf32le_wchar(int c, mbfl_convert_filter *filter) +{ + int n; + + if (filter->status == 0) { + filter->status = 1; + n = (c & 0xff); + filter->cache = n; + } else if (filter->status == 1) { + filter->status = 2; + n = (c & 0xff) << 8; + filter->cache |= n; + } else if (filter->status == 2) { + filter->status = 3; + n = (c & 0xff) << 16; + filter->cache |= n; + } else { + filter->status = 0; + n = ((c & 0xff) << 24) | filter->cache; + if (n < MBFL_WCSPLANE_UTF32MAX && (n < 0xd800 || n > 0xdfff)) { + CK((*filter->output_function)(n, filter->data)); + } else { + n = (n & MBFL_WCSGROUP_MASK) | MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(n, filter->data)); + } + } + return c; +} + +/* + * wchar => UTF-32LE + */ +int mbfl_filt_conv_wchar_utf32le(int c, mbfl_convert_filter *filter) +{ + if (c >= 0 && c < MBFL_WCSPLANE_UTF32MAX) { + CK((*filter->output_function)(c & 0xff, filter->data)); + CK((*filter->output_function)((c >> 8) & 0xff, filter->data)); + CK((*filter->output_function)((c >> 16) & 0xff, filter->data)); + CK((*filter->output_function)((c >> 24) & 0xff, filter->data)); + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} diff --git a/ext/mbstring/libmbfl/filters/mbfilter_utf32.h b/ext/mbstring/libmbfl/filters/mbfilter_utf32.h new file mode 100644 index 0000000..c280e9f --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_utf32.h @@ -0,0 +1,50 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 20 dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_UTF32_H +#define MBFL_MBFILTER_UTF32_H + +extern const mbfl_encoding mbfl_encoding_utf32; +extern const mbfl_encoding mbfl_encoding_utf32be; +extern const mbfl_encoding mbfl_encoding_utf32le; +extern const struct mbfl_convert_vtbl vtbl_utf32_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_utf32; +extern const struct mbfl_convert_vtbl vtbl_utf32be_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_utf32be; +extern const struct mbfl_convert_vtbl vtbl_utf32le_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_utf32le; + +int mbfl_filt_conv_utf32_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_utf32be_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_utf32be(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_utf32le_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_utf32le(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_UTF32_H */ + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_utf7.c b/ext/mbstring/libmbfl/filters/mbfilter_utf7.c new file mode 100644 index 0000000..2bb1dfa --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_utf7.c @@ -0,0 +1,465 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_utf7.h" + +static int mbfl_filt_ident_utf7(int c, mbfl_identify_filter *filter); + +static const unsigned char mbfl_base64_table[] = { + /* 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', */ + 0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d, + /* 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', */ + 0x4e,0x4f,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a, + /* 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', */ + 0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d, + /* 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', */ + 0x6e,0x6f,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a, + /* '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/', '\0' */ + 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x2b,0x2f,0x00 +}; + +static const char *mbfl_encoding_utf7_aliases[] = {"utf7", NULL}; + +const mbfl_encoding mbfl_encoding_utf7 = { + mbfl_no_encoding_utf7, + "UTF-7", + "UTF-7", + (const char *(*)[])&mbfl_encoding_utf7_aliases, + NULL, + MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_SHFTCODE | MBFL_ENCTYPE_GL_UNSAFE +}; + +const struct mbfl_identify_vtbl vtbl_identify_utf7 = { + mbfl_no_encoding_utf7, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_utf7 +}; + +const struct mbfl_convert_vtbl vtbl_utf7_wchar = { + mbfl_no_encoding_utf7, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_utf7_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_utf7 = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_utf7, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_utf7, + mbfl_filt_conv_wchar_utf7_flush +}; + + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +/* + * UTF-7 => wchar + */ +int mbfl_filt_conv_utf7_wchar(int c, mbfl_convert_filter *filter) +{ + int s, n; + + n = -1; + if (filter->status != 0) { /* Modified Base64 */ + if (c >= 0x41 && c <= 0x5a) { /* A - Z */ + n = c - 65; + } else if (c >= 0x61 && c <= 0x7a) { /* a - z */ + n = c - 71; + } else if (c >= 0x30 && c <= 0x39) { /* 0 - 9 */ + n = c + 4; + } else if (c == 0x2b) { /* '+' */ + n = 62; + } else if (c == 0x2f) { /* '/' */ + n = 63; + } + if (n < 0 || n > 63) { + if (c == 0x2d) { + if (filter->status == 1) { /* "+-" -> "+" */ + CK((*filter->output_function)(0x2b, filter->data)); + } + } else if (c >= 0 && c < 0x80) { /* ASCII exclude '-' */ + CK((*filter->output_function)(c, filter->data)); + } else { /* illegal character */ + s = c & MBFL_WCSGROUP_MASK; + s |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(s, filter->data)); + } + filter->cache = 0; + filter->status = 0; + return c; + } + } + + switch (filter->status) { + /* directly encoded characters */ + case 0: + if (c == 0x2b) { /* '+' shift character */ + filter->status = 1; + } else if (c >= 0 && c < 0x80) { /* ASCII */ + CK((*filter->output_function)(c, filter->data)); + } else { /* illegal character */ + s = c & MBFL_WCSGROUP_MASK; + s |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(s, filter->data)); + } + break; + + /* decode Modified Base64 */ + case 1: + case 2: + filter->cache |= n << 10; + filter->status = 3; + break; + case 3: + filter->cache |= n << 4; + filter->status = 4; + break; + case 4: + s = ((n >> 2) & 0xf) | (filter->cache & 0xffff); + n = (n & 0x3) << 14; + filter->status = 5; + if (s >= 0xd800 && s < 0xdc00) { + s = (((s & 0x3ff) << 16) + 0x400000) | n; + filter->cache = s; + } else if (s >= 0xdc00 && s < 0xe000) { + s &= 0x3ff; + s |= (filter->cache & 0xfff0000) >> 6; + filter->cache = n; + if (s >= MBFL_WCSPLANE_SUPMIN && s < MBFL_WCSPLANE_SUPMAX) { + CK((*filter->output_function)(s, filter->data)); + } else { /* illegal character */ + s &= MBFL_WCSGROUP_MASK; + s |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(s, filter->data)); + } + } else { + filter->cache = n; + CK((*filter->output_function)(s, filter->data)); + } + break; + + case 5: + filter->cache |= n << 8; + filter->status = 6; + break; + case 6: + filter->cache |= n << 2; + filter->status = 7; + break; + case 7: + s = ((n >> 4) & 0x3) | (filter->cache & 0xffff); + n = (n & 0xf) << 12; + filter->status = 8; + if (s >= 0xd800 && s < 0xdc00) { + s = (((s & 0x3ff) << 16) + 0x400000) | n; + filter->cache = s; + } else if (s >= 0xdc00 && s < 0xe000) { + s &= 0x3ff; + s |= (filter->cache & 0xfff0000) >> 6; + filter->cache = n; + if (s >= MBFL_WCSPLANE_SUPMIN && s < MBFL_WCSPLANE_SUPMAX) { + CK((*filter->output_function)(s, filter->data)); + } else { /* illegal character */ + s &= MBFL_WCSGROUP_MASK; + s |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(s, filter->data)); + } + } else { + filter->cache = n; + CK((*filter->output_function)(s, filter->data)); + } + break; + + case 8: + filter->cache |= n << 6; + filter->status = 9; + break; + case 9: + s = n | (filter->cache & 0xffff); + filter->status = 2; + if (s >= 0xd800 && s < 0xdc00) { + s = (((s & 0x3ff) << 16) + 0x400000); + filter->cache = s; + } else if (s >= 0xdc00 && s < 0xe000) { + s &= 0x3ff; + s |= (filter->cache & 0xfff0000) >> 6; + filter->cache = 0; + if (s >= MBFL_WCSPLANE_SUPMIN && s < MBFL_WCSPLANE_SUPMAX) { + CK((*filter->output_function)(s, filter->data)); + } else { /* illegal character */ + s &= MBFL_WCSGROUP_MASK; + s |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(s, filter->data)); + } + } else { + filter->cache = 0; + CK((*filter->output_function)(s, filter->data)); + } + break; + + default: + filter->status = 0; + break; + } + + return c; +} + +/* + * wchar => UTF-7 + */ +int mbfl_filt_conv_wchar_utf7(int c, mbfl_convert_filter *filter) +{ + int s, n; + + n = 0; + if (c >= 0 && c < 0x80) { /* ASCII */ + if (c >= 0x41 && c <= 0x5a) { /* A - Z */ + n = 1; + } else if (c >= 0x61 && c <= 0x7a) { /* a - z */ + n = 1; + } else if (c >= 0x30 && c <= 0x39) { /* 0 - 9 */ + n = 1; + } else if (c == '\0') { /* '\0' */ + n = 1; + } else if (c == 0x2f) { /* '/' */ + n = 1; + } else if (c == 0x2d) { /* '-' */ + n = 1; + } else if (c == 0x20) { /* SPACE */ + n = 2; + } else if (c == 0x09) { /* HTAB */ + n = 2; + } else if (c == 0x0d) { /* CR */ + n = 2; + } else if (c == 0x0a) { /* LF */ + n = 2; + } else if (c == 0x27) { /* "'" */ + n = 2; + } else if (c == 0x28) { /* '(' */ + n = 2; + } else if (c == 0x29) { /* ')' */ + n = 2; + } else if (c == 0x2c) { /* ',' */ + n = 2; + } else if (c == 0x2e) { /* '.' */ + n = 2; + } else if (c == 0x3a) { /* ':' */ + n = 2; + } else if (c == 0x3f) { /* '?' */ + n = 2; + } + } else if (c >= 0 && c < MBFL_WCSPLANE_UCS2MAX) { + ; + } else if (c >= MBFL_WCSPLANE_SUPMIN && c < MBFL_WCSPLANE_SUPMAX) { + s = ((c >> 10) - 0x40) | 0xd800; + CK((*filter->filter_function)(s, filter)); + s = (c & 0x3ff) | 0xdc00; + CK((*filter->filter_function)(s, filter)); + return c; + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + return c; + } + + switch (filter->status) { + case 0: + if (n != 0) { /* directly encode characters */ + CK((*filter->output_function)(c, filter->data)); + } else { /* Modified Base64 */ + CK((*filter->output_function)(0x2b, filter->data)); /* '+' */ + filter->status++; + filter->cache = c; + } + break; + + /* encode Modified Base64 */ + case 1: + s = filter->cache; + CK((*filter->output_function)(mbfl_base64_table[(s >> 10) & 0x3f], filter->data)); + CK((*filter->output_function)(mbfl_base64_table[(s >> 4) & 0x3f], filter->data)); + if (n != 0) { + CK((*filter->output_function)(mbfl_base64_table[(s << 2) & 0x3c], filter->data)); + if (n == 1) { + CK((*filter->output_function)(0x2d, filter->data)); /* '-' */ + } + CK((*filter->output_function)(c, filter->data)); + filter->status = 0; + } else { + filter->status++; + filter->cache = ((s & 0xf) << 16) | c; + } + break; + + case 2: + s = filter->cache; + CK((*filter->output_function)(mbfl_base64_table[(s >> 14) & 0x3f], filter->data)); + CK((*filter->output_function)(mbfl_base64_table[(s >> 8) & 0x3f], filter->data)); + CK((*filter->output_function)(mbfl_base64_table[(s >> 2) & 0x3f], filter->data)); + if (n != 0) { + CK((*filter->output_function)(mbfl_base64_table[(s << 4) & 0x30], filter->data)); + if (n == 1) { + CK((*filter->output_function)(0x2d, filter->data)); /* '-' */ + } + CK((*filter->output_function)(c, filter->data)); + filter->status = 0; + } else { + filter->status++; + filter->cache = ((s & 0x3) << 16) | c; + } + break; + + case 3: + s = filter->cache; + CK((*filter->output_function)(mbfl_base64_table[(s >> 12) & 0x3f], filter->data)); + CK((*filter->output_function)(mbfl_base64_table[(s >> 6) & 0x3f], filter->data)); + CK((*filter->output_function)(mbfl_base64_table[s & 0x3f], filter->data)); + if (n != 0) { + if (n == 1) { + CK((*filter->output_function)(0x2d, filter->data)); /* '-' */ + } + CK((*filter->output_function)(c, filter->data)); + filter->status = 0; + } else { + filter->status = 1; + filter->cache = c; + } + break; + + default: + filter->status = 0; + break; + } + + return c; + +} + +int mbfl_filt_conv_wchar_utf7_flush(mbfl_convert_filter *filter) +{ + int status, cache; + + status = filter->status; + cache = filter->cache; + filter->status = 0; + filter->cache = 0; + /* flush fragments */ + switch (status) { + case 1: + CK((*filter->output_function)(mbfl_base64_table[(cache >> 10) & 0x3f], filter->data)); + CK((*filter->output_function)(mbfl_base64_table[(cache >> 4) & 0x3f], filter->data)); + CK((*filter->output_function)(mbfl_base64_table[(cache << 2) & 0x3c], filter->data)); + CK((*filter->output_function)(0x2d, filter->data)); /* '-' */ + break; + + case 2: + CK((*filter->output_function)(mbfl_base64_table[(cache >> 14) & 0x3f], filter->data)); + CK((*filter->output_function)(mbfl_base64_table[(cache >> 8) & 0x3f], filter->data)); + CK((*filter->output_function)(mbfl_base64_table[(cache >> 2) & 0x3f], filter->data)); + CK((*filter->output_function)(mbfl_base64_table[(cache << 4) & 0x30], filter->data)); + CK((*filter->output_function)(0x2d, filter->data)); /* '-' */ + break; + + case 3: + CK((*filter->output_function)(mbfl_base64_table[(cache >> 12) & 0x3f], filter->data)); + CK((*filter->output_function)(mbfl_base64_table[(cache >> 6) & 0x3f], filter->data)); + CK((*filter->output_function)(mbfl_base64_table[cache & 0x3f], filter->data)); + CK((*filter->output_function)(0x2d, filter->data)); /* '-' */ + break; + } + + if (filter->flush_function != NULL) { + (*filter->flush_function)(filter->data); + } + + return 0; +} + +static int mbfl_filt_ident_utf7(int c, mbfl_identify_filter *filter) +{ + int n; + + switch (filter->status) { + /* directly encoded characters */ + case 0: + if (c == 0x2b) { /* '+' shift character */ + filter->status++; + } else if (c == 0x5c || c == 0x7e || c < 0 || c > 0x7f) { /* illegal character */ + filter->flag = 1; /* bad */ + } + break; + + /* Modified Base64 */ + case 1: + case 2: + n = 0; + if (c >= 0x41 && c <= 0x5a) { /* A - Z */ + n = 1; + } else if (c >= 0x61 && c <= 0x7a) { /* a - z */ + n = 1; + } else if (c >= 0x30 && c <= 0x39) { /* 0 - 9 */ + n = 1; + } else if (c == 0x2b) { /* '+' */ + n = 1; + } else if (c == 0x2f) { /* '/' */ + n = 1; + } + if (n <= 0) { + if (filter->status == 1 && c != 0x2d) { + filter->flag = 1; /* bad */ + } else if (c < 0 || c > 0x7f) { + filter->flag = 1; /* bad */ + } + filter->status = 0; + } else { + filter->status = 2; + } + break; + + default: + filter->status = 0; + break; + } + + return c; +} + + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_utf7.h b/ext/mbstring/libmbfl/filters/mbfilter_utf7.h new file mode 100644 index 0000000..0da3b02 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_utf7.h @@ -0,0 +1,44 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_UTF7_H +#define MBFL_MBFILTER_UTF7_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_utf7; +extern const struct mbfl_identify_vtbl vtbl_identify_utf7; +extern const struct mbfl_convert_vtbl vtbl_utf7_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_utf7; + +int mbfl_filt_conv_utf7_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_utf7(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_utf7_flush(mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_UTF7_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_utf7imap.c b/ext/mbstring/libmbfl/filters/mbfilter_utf7imap.c new file mode 100644 index 0000000..b32095c --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_utf7imap.c @@ -0,0 +1,372 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_utf7imap.h" + +const mbfl_encoding mbfl_encoding_utf7imap = { + mbfl_no_encoding_utf7imap, + "UTF7-IMAP", + NULL, + NULL, + NULL, + MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_SHFTCODE +}; + +const struct mbfl_convert_vtbl vtbl_utf7imap_wchar = { + mbfl_no_encoding_utf7imap, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_utf7imap_wchar, + mbfl_filt_conv_common_flush }; + +const struct mbfl_convert_vtbl vtbl_wchar_utf7imap = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_utf7imap, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_utf7imap, + mbfl_filt_conv_wchar_utf7imap_flush }; + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +/* + * UTF7-IMAP => wchar + */ +int mbfl_filt_conv_utf7imap_wchar(int c, mbfl_convert_filter *filter) +{ + int s, n; + + n = -1; + if (filter->status != 0) { /* Modified Base64 */ + if (c >= 0x41 && c <= 0x5a) { /* A - Z */ + n = c - 65; + } else if (c >= 0x61 && c <= 0x7a) { /* a - z */ + n = c - 71; + } else if (c >= 0x30 && c <= 0x39) { /* 0 - 9 */ + n = c + 4; + } else if (c == 0x2b) { /* '+' */ + n = 62; + } else if (c == 0x2c) { /* ',' */ + n = 63; + } + if (n < 0 || n > 63) { + if (c == 0x2d) { + if (filter->status == 1) { /* "&-" -> "&" */ + CK((*filter->output_function)(0x26, filter->data)); + } + } else if (c >= 0 && c < 0x80) { /* ASCII exclude '-' */ + CK((*filter->output_function)(c, filter->data)); + } else { /* illegal character */ + s = c & MBFL_WCSGROUP_MASK; + s |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(s, filter->data)); + } + filter->cache = 0; + filter->status = 0; + return c; + } + } + + switch (filter->status) { + /* directly encoded characters */ + case 0: + if (c == 0x26) { /* '&' shift character */ + filter->status++; + } else if (c >= 0 && c < 0x80) { /* ASCII */ + CK((*filter->output_function)(c, filter->data)); + } else { /* illegal character */ + s = c & MBFL_WCSGROUP_MASK; + s |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(s, filter->data)); + } + break; + + /* decode Modified Base64 */ + case 1: + case 2: + filter->cache |= n << 10; + filter->status = 3; + break; + case 3: + filter->cache |= n << 4; + filter->status = 4; + break; + case 4: + s = ((n >> 2) & 0xf) | (filter->cache & 0xffff); + n = (n & 0x3) << 14; + filter->status = 5; + if (s >= 0xd800 && s < 0xdc00) { + s = (((s & 0x3ff) << 16) + 0x400000) | n; + filter->cache = s; + } else if (s >= 0xdc00 && s < 0xe000) { + s &= 0x3ff; + s |= (filter->cache & 0xfff0000) >> 6; + filter->cache = n; + if (s >= MBFL_WCSPLANE_SUPMIN && s < MBFL_WCSPLANE_SUPMAX) { + CK((*filter->output_function)(s, filter->data)); + } else { /* illegal character */ + s &= MBFL_WCSGROUP_MASK; + s |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(s, filter->data)); + } + } else { + filter->cache = n; + CK((*filter->output_function)(s, filter->data)); + } + break; + + case 5: + filter->cache |= n << 8; + filter->status = 6; + break; + case 6: + filter->cache |= n << 2; + filter->status = 7; + break; + case 7: + s = ((n >> 4) & 0x3) | (filter->cache & 0xffff); + n = (n & 0xf) << 12; + filter->status = 8; + if (s >= 0xd800 && s < 0xdc00) { + s = (((s & 0x3ff) << 16) + 0x400000) | n; + filter->cache = s; + } else if (s >= 0xdc00 && s < 0xe000) { + s &= 0x3ff; + s |= (filter->cache & 0xfff0000) >> 6; + filter->cache = n; + if (s >= MBFL_WCSPLANE_SUPMIN && s < MBFL_WCSPLANE_SUPMAX) { + CK((*filter->output_function)(s, filter->data)); + } else { /* illegal character */ + s &= MBFL_WCSGROUP_MASK; + s |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(s, filter->data)); + } + } else { + filter->cache = n; + CK((*filter->output_function)(s, filter->data)); + } + break; + + case 8: + filter->cache |= n << 6; + filter->status = 9; + break; + case 9: + s = n | (filter->cache & 0xffff); + filter->status = 2; + if (s >= 0xd800 && s < 0xdc00) { + s = (((s & 0x3ff) << 16) + 0x400000); + filter->cache = s; + } else if (s >= 0xdc00 && s < 0xe000) { + s &= 0x3ff; + s |= (filter->cache & 0xfff0000) >> 6; + filter->cache = 0; + if (s >= MBFL_WCSPLANE_SUPMIN && s < MBFL_WCSPLANE_SUPMAX) { + CK((*filter->output_function)(s, filter->data)); + } else { /* illegal character */ + s &= MBFL_WCSGROUP_MASK; + s |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(s, filter->data)); + } + } else { + filter->cache = 0; + CK((*filter->output_function)(s, filter->data)); + } + break; + + default: + filter->status = 0; + break; + } + + return c; +} + +static const unsigned char mbfl_utf7imap_base64_table[] = +{ + /* 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', */ + 0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d, + /* 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', */ + 0x4e,0x4f,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a, + /* 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', */ + 0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d, + /* 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', */ + 0x6e,0x6f,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a, + /* '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', ',', '\0' */ + 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x2b,0x2c,0x00 +}; + +/* + * wchar => UTF7-IMAP + */ +int mbfl_filt_conv_wchar_utf7imap(int c, mbfl_convert_filter *filter) +{ + int n, s; + + n = 0; + if (c == 0x26) { + n = 1; + } else if ((c >= 0x20 && c <= 0x7e) || c == 0) { + n = 2; + } else if (c >= 0 && c < MBFL_WCSPLANE_UCS2MAX) { + ; + } else if (c >= MBFL_WCSPLANE_SUPMIN && c < MBFL_WCSPLANE_SUPMAX) { + s = ((c >> 10) - 0x40) | 0xd800; + CK((*filter->filter_function)(s, filter)); + s = (c & 0x3ff) | 0xdc00; + CK((*filter->filter_function)(s, filter)); + return c; + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + return c; + } + + switch (filter->status) { + case 0: + if (n != 0) { /* directly encode characters */ + CK((*filter->output_function)(c, filter->data)); + if (n == 1) { + CK((*filter->output_function)(0x2d, filter->data)); /* '-' */ + } + } else { /* Modified Base64 */ + CK((*filter->output_function)(0x26, filter->data)); /* '&' */ + filter->status = 1; + filter->cache = c; + } + break; + + /* encode Modified Base64 */ + case 1: + s = filter->cache; + CK((*filter->output_function)(mbfl_utf7imap_base64_table[(s >> 10) & 0x3f], filter->data)); + CK((*filter->output_function)(mbfl_utf7imap_base64_table[(s >> 4) & 0x3f], filter->data)); + if (n != 0) { + CK((*filter->output_function)(mbfl_utf7imap_base64_table[(s << 2) & 0x3c], filter->data)); + CK((*filter->output_function)(0x2d, filter->data)); /* '-' */ + CK((*filter->output_function)(c, filter->data)); + if (n == 1) { + CK((*filter->output_function)(0x2d, filter->data)); /* '-' */ + } + filter->status = 0; + } else { + filter->status = 2; + filter->cache = ((s & 0xf) << 16) | c; + } + break; + + case 2: + s = filter->cache; + CK((*filter->output_function)(mbfl_utf7imap_base64_table[(s >> 14) & 0x3f], filter->data)); + CK((*filter->output_function)(mbfl_utf7imap_base64_table[(s >> 8) & 0x3f], filter->data)); + CK((*filter->output_function)(mbfl_utf7imap_base64_table[(s >> 2) & 0x3f], filter->data)); + if (n != 0) { + CK((*filter->output_function)(mbfl_utf7imap_base64_table[(s << 4) & 0x30], filter->data)); + CK((*filter->output_function)(0x2d, filter->data)); /* '-' */ + CK((*filter->output_function)(c, filter->data)); + if (n == 1) { + CK((*filter->output_function)(0x2d, filter->data)); /* '-' */ + } + filter->status = 0; + } else { + filter->status = 3; + filter->cache = ((s & 0x3) << 16) | c; + } + break; + + case 3: + s = filter->cache; + CK((*filter->output_function)(mbfl_utf7imap_base64_table[(s >> 12) & 0x3f], filter->data)); + CK((*filter->output_function)(mbfl_utf7imap_base64_table[(s >> 6) & 0x3f], filter->data)); + CK((*filter->output_function)(mbfl_utf7imap_base64_table[s & 0x3f], filter->data)); + if (n != 0) { + CK((*filter->output_function)(0x2d, filter->data)); /* '-' */ + CK((*filter->output_function)(c, filter->data)); + if (n == 1) { + CK((*filter->output_function)(0x2d, filter->data)); /* '-' */ + } + filter->status = 0; + } else { + filter->status = 1; + filter->cache = c; + } + break; + + default: + filter->status = 0; + break; + } + + return c; + +} + +int mbfl_filt_conv_wchar_utf7imap_flush(mbfl_convert_filter *filter) +{ + int status, cache; + + status = filter->status; + cache = filter->cache; + filter->status = 0; + filter->cache = 0; + /* flush fragments */ + switch (status) { + case 1: + CK((*filter->output_function)(mbfl_utf7imap_base64_table[(cache >> 10) & 0x3f], filter->data)); + CK((*filter->output_function)(mbfl_utf7imap_base64_table[(cache >> 4) & 0x3f], filter->data)); + CK((*filter->output_function)(mbfl_utf7imap_base64_table[(cache << 2) & 0x3c], filter->data)); + CK((*filter->output_function)(0x2d, filter->data)); /* '-' */ + break; + + case 2: + CK((*filter->output_function)(mbfl_utf7imap_base64_table[(cache >> 14) & 0x3f], filter->data)); + CK((*filter->output_function)(mbfl_utf7imap_base64_table[(cache >> 8) & 0x3f], filter->data)); + CK((*filter->output_function)(mbfl_utf7imap_base64_table[(cache >> 2) & 0x3f], filter->data)); + CK((*filter->output_function)(mbfl_utf7imap_base64_table[(cache << 4) & 0x30], filter->data)); + CK((*filter->output_function)(0x2d, filter->data)); /* '-' */ + break; + + case 3: + CK((*filter->output_function)(mbfl_utf7imap_base64_table[(cache >> 12) & 0x3f], filter->data)); + CK((*filter->output_function)(mbfl_utf7imap_base64_table[(cache >> 6) & 0x3f], filter->data)); + CK((*filter->output_function)(mbfl_utf7imap_base64_table[cache & 0x3f], filter->data)); + CK((*filter->output_function)(0x2d, filter->data)); /* '-' */ + break; + } + return 0; +} + + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_utf7imap.h b/ext/mbstring/libmbfl/filters/mbfilter_utf7imap.h new file mode 100644 index 0000000..d6c5478 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_utf7imap.h @@ -0,0 +1,43 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_UTF7IMAP_H +#define MBFL_MBFILTER_UTF7IMAP_H + +#include "mbfilter.h" + +extern const mbfl_encoding mbfl_encoding_utf7imap; +extern const struct mbfl_convert_vtbl vtbl_utf7imap_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_utf7imap; + +int mbfl_filt_conv_utf7imap_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_utf7imap(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_utf7imap_flush(mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_UTF7IMAP_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_utf8.c b/ext/mbstring/libmbfl/filters/mbfilter_utf8.c new file mode 100644 index 0000000..fcee610 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_utf8.c @@ -0,0 +1,309 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_utf8.h" + +int mbfl_filt_ident_utf8(int c, mbfl_identify_filter *filter); + +const unsigned char mblen_table_utf8[] = { + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 +}; + +static const char *mbfl_encoding_utf8_aliases[] = {"utf8", NULL}; + +const mbfl_encoding mbfl_encoding_utf8 = { + mbfl_no_encoding_utf8, + "UTF-8", + "UTF-8", + (const char *(*)[])&mbfl_encoding_utf8_aliases, + mblen_table_utf8, + MBFL_ENCTYPE_MBCS +}; + +const struct mbfl_identify_vtbl vtbl_identify_utf8 = { + mbfl_no_encoding_utf8, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_utf8 +}; + +const struct mbfl_convert_vtbl vtbl_utf8_wchar = { + mbfl_no_encoding_utf8, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_utf8_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_utf8 = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_utf8, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_utf8, + mbfl_filt_conv_common_flush +}; + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +/* + * UTF-8 => wchar + */ +int mbfl_filt_conv_utf8_wchar(int c, mbfl_convert_filter *filter) +{ + int s, c1, w = 0, flag = 0; + + if (c < 0x80) { + if (filter->status != 0) { + w = (filter->cache & MBFL_WCSGROUP_MASK) | MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + filter->status = 0; + filter->cache = 0; + } + if (c >= 0) { + CK((*filter->output_function)(c, filter->data)); + } + } else if (c < 0xc0) { + int status = filter->status & 0xff; + switch (status) { + case 0x10: /* 2byte code 2nd char: 0x80-0xbf */ + case 0x21: /* 3byte code 3rd char: 0x80-0xbf */ + case 0x32: /* 4byte code 4th char: 0x80-0xbf */ + filter->status = 0; + s = filter->cache | (c & 0x3f); + filter->cache = 0; + if ((status == 0x10 && s >= 0x80) || + (status == 0x21 && s >= 0x800 && (s < 0xd800 || s > 0xdfff)) || + (status == 0x32 && s >= 0x10000 && s < 0x110000)) { + CK((*filter->output_function)(s, filter->data)); + } else { + w = s & MBFL_WCSGROUP_MASK; + flag = 1; + } + break; + case 0x20: /* 3byte code 2nd char: 0:0xa0-0xbf,D:0x80-9F,1-C,E-F:0x80-0x9f */ + s = filter->cache | ((c & 0x3f) << 6); + c1 = (s >> 12) & 0xf; + if ((c1 == 0x0 && c >= 0xa0) || + (c1 == 0xd && c < 0xa0) || + (c1 > 0x0 && c1 != 0xd)) { + filter->cache = s; + filter->status++; + } else { + w = s & MBFL_WCSGROUP_MASK; + flag = 1; + } + break; + case 0x31: /* 4byte code 3rd char: 0x80-0xbf */ + filter->cache |= ((c & 0x3f) << 6); + filter->status++; + break; + case 0x30: /* 4byte code 2nd char: 0:0x90-0xbf,1-3:0x80-0xbf,4:0x80-0x8f */ + s = filter->cache | ((c & 0x3f) << 12); + c1 = (s >> 18) & 0x7; + if ((c1 == 0x0 && c >= 0x90) || + (c1 > 0x0 && c1 < 0x4) || + (c1 == 0x4 && c < 0x90)) { + filter->cache = s; + filter->status++; + } else { + w = s & MBFL_WCSGROUP_MASK; + flag = 1; + } + break; + default: + w = c & MBFL_WCSGROUP_MASK; + flag = 1; + break; + } + } else if (c < 0xc2) { /* invalid: 0xc0,0xc1 */ + w = c & MBFL_WCSGROUP_MASK; + flag = 1; + } else if (c < 0xe0) { /* 2byte code first char: 0xc2-0xdf */ + if (filter->status == 0x0) { + filter->status = 0x10; + filter->cache = (c & 0x1f) << 6; + } else { + w = c & MBFL_WCSGROUP_MASK; + flag = 1; + } + } else if (c < 0xf0) { /* 3byte code first char: 0xe0-0xef */ + if (filter->status == 0x0) { + filter->status = 0x20; + filter->cache = (c & 0xf) << 12; + } else { + w = c & MBFL_WCSGROUP_MASK; + flag = 1; + } + } else if (c < 0xf5) { /* 4byte code first char: 0xf0-0xf4 */ + if (filter->status == 0x0) { + filter->status = 0x30; + filter->cache = (c & 0x7) << 18; + } else { + w = c & MBFL_WCSGROUP_MASK; + flag = 1; + } + } else { + w = c & MBFL_WCSGROUP_MASK; + flag = 1; + } + + if (flag) { + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + filter->status = 0; + filter->cache = 0; + } + + return c; +} + +/* + * wchar => UTF-8 + */ +int mbfl_filt_conv_wchar_utf8(int c, mbfl_convert_filter *filter) +{ + if (c >= 0 && c < 0x110000) { + if (c < 0x80) { + CK((*filter->output_function)(c, filter->data)); + } else if (c < 0x800) { + CK((*filter->output_function)(((c >> 6) & 0x1f) | 0xc0, filter->data)); + CK((*filter->output_function)((c & 0x3f) | 0x80, filter->data)); + } else if (c < 0x10000) { + CK((*filter->output_function)(((c >> 12) & 0x0f) | 0xe0, filter->data)); + CK((*filter->output_function)(((c >> 6) & 0x3f) | 0x80, filter->data)); + CK((*filter->output_function)((c & 0x3f) | 0x80, filter->data)); + } else { + CK((*filter->output_function)(((c >> 18) & 0x07) | 0xf0, filter->data)); + CK((*filter->output_function)(((c >> 12) & 0x3f) | 0x80, filter->data)); + CK((*filter->output_function)(((c >> 6) & 0x3f) | 0x80, filter->data)); + CK((*filter->output_function)((c & 0x3f) | 0x80, filter->data)); + } + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + +int mbfl_filt_ident_utf8(int c, mbfl_identify_filter *filter) +{ + int c1; + + c1 = (filter->status >> 8) & 0xff; + filter->status &= 0xff; + + if (c < 0x80) { + if (c < 0) { + filter->flag = 1; /* bad */ + } else if (filter->status) { + filter->flag = 1; /* bad */ + } + filter->status = 0; + } else if (c < 0xc0) { + switch (filter->status) { + case 0x20: /* 3 byte code 2nd char */ + if ((c1 == 0x0 && c >= 0xa0) || + (c1 == 0xd && c < 0xa0) || + (c1 > 0x0 && c1 != 0xd)) { + filter->status++; + } else { + filter->flag = 1; /* bad */ + filter->status = 0; + } + break; + case 0x30: /* 4 byte code 2nd char */ + if ((c1 == 0x0 && c >= 0x90) || + (c1 > 0x0 && c1 < 0x4) || + (c1 == 0x4 && c < 0x90)) { + filter->status++; + } else { + filter->flag = 1; /* bad */ + filter->status = 0; + } + break; + case 0x31: /* 4 byte code 3rd char */ + filter->status++; + break; + case 0x10: /* 2 byte code 2nd char */ + case 0x21: /* 3 byte code 3rd char */ + case 0x32: /* 4 byte code 4th char */ + filter->status = 0; + break; + default: + filter->flag = 1; /* bad */ + filter->status = 0; + break; + } + } else if (c < 0xc2) { /* 0xc0,0xc1 */ + filter->flag = 1; /* bad */ + filter->status = 0; + } else { + if (filter->status) { + filter->flag = 1; /* bad */ + } + filter->status = 0; + if (c < 0xe0) { /* 2 byte code first char */ + filter->status = 0x10; + } else if (c < 0xf0) { /* 3 byte code 1st char */ + filter->status = 0x20; + filter->status |= (c & 0xf) << 8; + } else if (c < 0xf5) { /* 4 byte code 1st char */ + filter->status = 0x30; + filter->status |= (c & 0x7) << 8; + } else { + filter->flag = 1; /* bad */ + } + } + + return c; +} diff --git a/ext/mbstring/libmbfl/filters/mbfilter_utf8.h b/ext/mbstring/libmbfl/filters/mbfilter_utf8.h new file mode 100644 index 0000000..07bf655 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_utf8.h @@ -0,0 +1,41 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_UTF8_H +#define MBFL_MBFILTER_UTF8_H + +extern const mbfl_encoding mbfl_encoding_utf8; +extern const struct mbfl_identify_vtbl vtbl_identify_utf8; +extern const struct mbfl_convert_vtbl vtbl_utf8_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_utf8; + +int mbfl_filt_conv_utf8_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_utf8(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_UTF8_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_utf8_mobile.c b/ext/mbstring/libmbfl/filters/mbfilter_utf8_mobile.c new file mode 100644 index 0000000..62feca4 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_utf8_mobile.c @@ -0,0 +1,362 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by rui hrokawa <hirokawa@php.net> on 8 aug 2011. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" + +#include "mbfilter_utf8_mobile.h" +#include "mbfilter_sjis_mobile.h" + +extern int mbfl_filt_ident_utf8(int c, mbfl_identify_filter *filter); + +extern const unsigned char mblen_table_utf8[]; + +static const char *mbfl_encoding_utf8_docomo_aliases[] = {"UTF-8-DOCOMO", "UTF8-DOCOMO", NULL}; +static const char *mbfl_encoding_utf8_kddi_a_aliases[] = {NULL}; +static const char *mbfl_encoding_utf8_kddi_b_aliases[] = {"UTF-8-Mobile#KDDI", "UTF-8-KDDI", "UTF8-KDDI", NULL}; +static const char *mbfl_encoding_utf8_sb_aliases[] = {"UTF-8-SOFTBANK", "UTF8-SOFTBANK", NULL}; + +const mbfl_encoding mbfl_encoding_utf8_docomo = { + mbfl_no_encoding_utf8_docomo, + "UTF-8-Mobile#DOCOMO", + "UTF-8", + (const char *(*)[])&mbfl_encoding_utf8_docomo_aliases, + mblen_table_utf8, + MBFL_ENCTYPE_MBCS +}; + +const mbfl_encoding mbfl_encoding_utf8_kddi_a = { + mbfl_no_encoding_utf8_kddi_a, + "UTF-8-Mobile#KDDI-A", + "UTF-8", + (const char *(*)[])&mbfl_encoding_utf8_kddi_a_aliases, + mblen_table_utf8, + MBFL_ENCTYPE_MBCS +}; + +const mbfl_encoding mbfl_encoding_utf8_kddi_b = { + mbfl_no_encoding_utf8_kddi_b, + "UTF-8-Mobile#KDDI-B", + "UTF-8", + (const char *(*)[])&mbfl_encoding_utf8_kddi_b_aliases, + mblen_table_utf8, + MBFL_ENCTYPE_MBCS +}; + +const mbfl_encoding mbfl_encoding_utf8_sb = { + mbfl_no_encoding_utf8_sb, + "UTF-8-Mobile#SOFTBANK", + "UTF-8", + (const char *(*)[])&mbfl_encoding_utf8_sb_aliases, + mblen_table_utf8, + MBFL_ENCTYPE_MBCS +}; + +const struct mbfl_identify_vtbl vtbl_identify_utf8_docomo = { + mbfl_no_encoding_utf8_docomo, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_utf8 +}; + +const struct mbfl_identify_vtbl vtbl_identify_utf8_kddi_a = { + mbfl_no_encoding_utf8_kddi_a, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_utf8 +}; + +const struct mbfl_identify_vtbl vtbl_identify_utf8_kddi_b = { + mbfl_no_encoding_utf8_kddi_b, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_utf8 +}; + +const struct mbfl_identify_vtbl vtbl_identify_utf8_sb = { + mbfl_no_encoding_utf8_sb, + mbfl_filt_ident_common_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_utf8 +}; + +const struct mbfl_convert_vtbl vtbl_utf8_docomo_wchar = { + mbfl_no_encoding_utf8_docomo, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_utf8_mobile_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_utf8_docomo = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_utf8_docomo, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_utf8_mobile, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_utf8_kddi_a_wchar = { + mbfl_no_encoding_utf8_kddi_a, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_utf8_mobile_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_utf8_kddi_a = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_utf8_kddi_a, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_utf8_mobile, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_utf8_kddi_b_wchar = { + mbfl_no_encoding_utf8_kddi_b, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_utf8_mobile_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_utf8_kddi_b = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_utf8_kddi_b, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_utf8_mobile, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_utf8_sb_wchar = { + mbfl_no_encoding_utf8_sb, + mbfl_no_encoding_wchar, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_utf8_mobile_wchar, + mbfl_filt_conv_common_flush +}; + +const struct mbfl_convert_vtbl vtbl_wchar_utf8_sb = { + mbfl_no_encoding_wchar, + mbfl_no_encoding_utf8_sb, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_wchar_utf8_mobile, + mbfl_filt_conv_common_flush +}; + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +/* + * UTF-8 => wchar + */ +int mbfl_filt_conv_utf8_mobile_wchar(int c, mbfl_convert_filter *filter) +{ + int s, w = 0, flag = 0; + int s1 = 0, c1 = 0, snd = 0; + + if (c < 0x80) { + if (c >= 0) { + CK((*filter->output_function)(c, filter->data)); + } + filter->status = 0; + } else if (c < 0xc0) { + int status = filter->status & 0xff; + switch (status) { + case 0x10: /* 2byte code 2nd char: 0x80-0xbf */ + case 0x21: /* 3byte code 3rd char: 0x80-0xbf */ + case 0x32: /* 4byte code 4th char: 0x80-0xbf */ + filter->status = 0; + s = filter->cache | (c & 0x3f); + filter->cache = 0; + if ((status == 0x10 && s >= 0x80) || + (status == 0x21 && s >= 0x800 && (s < 0xd800 || s > 0xdfff)) || + (status == 0x32 && s >= 0x10000 && s < 0x110000)) { + + if (filter->from->no_encoding == mbfl_no_encoding_utf8_docomo && + mbfilter_conv_r_map_tbl(s, &s1, mbfl_docomo2uni_pua, 4) > 0) { + s = mbfilter_sjis_emoji_docomo2unicode(s1, &snd); + } else if (filter->from->no_encoding == mbfl_no_encoding_utf8_kddi_a && + mbfilter_conv_r_map_tbl(s, &s1, mbfl_kddi2uni_pua, 7) > 0) { + s = mbfilter_sjis_emoji_kddi2unicode(s1, &snd); + } else if (filter->from->no_encoding == mbfl_no_encoding_utf8_kddi_b && + mbfilter_conv_r_map_tbl(s, &s1, mbfl_kddi2uni_pua_b, 8) > 0) { + s = mbfilter_sjis_emoji_kddi2unicode(s1, &snd); + } else if (filter->from->no_encoding == mbfl_no_encoding_utf8_sb && + mbfilter_conv_r_map_tbl(s, &s1, mbfl_sb2uni_pua, 6) > 0) { + s = mbfilter_sjis_emoji_sb2unicode(s1, &snd); + } + + if (snd > 0) { + CK((*filter->output_function)(snd, filter->data)); + } + CK((*filter->output_function)(s, filter->data)); + } else { + w = s & MBFL_WCSGROUP_MASK; + flag = 1; + } + break; + case 0x20: /* 3byte code 2nd char: 0:0xa0-0xbf,D:0x80-9F,1-C,E-F:0x80-0x9f */ + s = filter->cache | ((c & 0x3f) << 6); + c1 = (s >> 12) & 0xf; + if ((c1 == 0x0 && c >= 0xa0) || + (c1 == 0xd && c < 0xa0) || + (c1 > 0x0 && c1 != 0xd)) { + filter->cache = s; + filter->status++; + } else { + w = s & MBFL_WCSGROUP_MASK; + flag = 1; + } + break; + case 0x31: /* 4byte code 3rd char: 0x80-0xbf */ + filter->cache |= ((c & 0x3f) << 6); + filter->status++; + break; + case 0x30: /* 4byte code 2nd char: 0:0x90-0xbf,1-3:0x80-0xbf,4:0x80-0x8f */ + s = filter->cache | ((c & 0x3f) << 12); + c1 = (s >> 18) & 0x7; + if ((c1 == 0x0 && c >= 0x90) || + (c1 > 0x0 && c1 < 0x4) || + (c1 == 0x4 && c < 0x90)) { + filter->cache = s; + filter->status++; + } else { + w = s & MBFL_WCSGROUP_MASK; + flag = 1; + } + break; + default: + w = c & MBFL_WCSGROUP_MASK; + flag = 1; + break; + } + } else if (c < 0xc2) { /* invalid: 0xc0,0xc1 */ + w = c & MBFL_WCSGROUP_MASK; + flag = 1; + } else if (c < 0xe0) { /* 2byte code first char: 0xc2-0xdf */ + if (filter->status == 0x0) { + filter->status = 0x10; + filter->cache = (c & 0x1f) << 6; + } else { + w = c & MBFL_WCSGROUP_MASK; + flag = 1; + } + } else if (c < 0xf0) { /* 3byte code first char: 0xe0-0xef */ + if (filter->status == 0x0) { + filter->status = 0x20; + filter->cache = (c & 0xf) << 12; + } else { + w = c & MBFL_WCSGROUP_MASK; + flag = 1; + } + } else if (c < 0xf5) { /* 4byte code first char: 0xf0-0xf4 */ + if (filter->status == 0x0) { + filter->status = 0x30; + filter->cache = (c & 0x7) << 18; + } else { + w = c & MBFL_WCSGROUP_MASK; + flag = 1; + } + } else { + w = c & MBFL_WCSGROUP_MASK; + flag = 1; + } + + if (flag) { + w |= MBFL_WCSGROUP_THROUGH; + CK((*filter->output_function)(w, filter->data)); + filter->status = 0; + filter->cache = 0; + } + + return c; +} + +/* + * wchar => UTF-8 + */ +int mbfl_filt_conv_wchar_utf8_mobile(int c, mbfl_convert_filter *filter) +{ + if (c >= 0 && c < 0x110000) { + int s1, c1; + + if ((filter->to->no_encoding == mbfl_no_encoding_utf8_docomo && + mbfilter_unicode2sjis_emoji_docomo(c, &s1, filter) > 0 && + mbfilter_conv_map_tbl(s1, &c1, mbfl_docomo2uni_pua, 4) > 0) || + (filter->to->no_encoding == mbfl_no_encoding_utf8_kddi_a && + mbfilter_unicode2sjis_emoji_kddi(c, &s1, filter) > 0 && + mbfilter_conv_map_tbl(s1, &c1, mbfl_kddi2uni_pua, 7) > 0) || + (filter->to->no_encoding == mbfl_no_encoding_utf8_kddi_b && + mbfilter_unicode2sjis_emoji_kddi(c, &s1, filter) > 0 && + mbfilter_conv_map_tbl(s1, &c1, mbfl_kddi2uni_pua_b, 8) > 0) || + (filter->to->no_encoding == mbfl_no_encoding_utf8_sb && + mbfilter_unicode2sjis_emoji_sb(c, &s1, filter) > 0 && + mbfilter_conv_map_tbl(s1, &c1, mbfl_sb2uni_pua, 6) > 0)) { + c = c1; + } + + if (filter->status == 1 && filter->cache > 0) { + return c; + } + + if (c < 0x80) { + CK((*filter->output_function)(c, filter->data)); + } else if (c < 0x800) { + CK((*filter->output_function)(((c >> 6) & 0x1f) | 0xc0, filter->data)); + CK((*filter->output_function)((c & 0x3f) | 0x80, filter->data)); + } else if (c < 0x10000) { + CK((*filter->output_function)(((c >> 12) & 0x0f) | 0xe0, filter->data)); + CK((*filter->output_function)(((c >> 6) & 0x3f) | 0x80, filter->data)); + CK((*filter->output_function)((c & 0x3f) | 0x80, filter->data)); + } else { + CK((*filter->output_function)(((c >> 18) & 0x07) | 0xf0, filter->data)); + CK((*filter->output_function)(((c >> 12) & 0x3f) | 0x80, filter->data)); + CK((*filter->output_function)(((c >> 6) & 0x3f) | 0x80, filter->data)); + CK((*filter->output_function)((c & 0x3f) | 0x80, filter->data)); + } + } else { + if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } + } + + return c; +} + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_utf8_mobile.h b/ext/mbstring/libmbfl/filters/mbfilter_utf8_mobile.h new file mode 100644 index 0000000..ef5e6da --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_utf8_mobile.h @@ -0,0 +1,55 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by rui hrokawa <hirokawa@php.net> on 8 aug 2011. + * + */ + +#ifndef MBFL_MBFILTER_UTF8_MOBILE_H +#define MBFL_MBFILTER_UTF8_MOBILE_H + +extern const mbfl_encoding mbfl_encoding_utf8_docomo; +extern const mbfl_encoding mbfl_encoding_utf8_kddi_a; +extern const mbfl_encoding mbfl_encoding_utf8_kddi_b; +extern const mbfl_encoding mbfl_encoding_utf8_sb; + +extern const struct mbfl_identify_vtbl vtbl_identify_utf8_docomo; +extern const struct mbfl_identify_vtbl vtbl_identify_utf8_kddi_a; +extern const struct mbfl_identify_vtbl vtbl_identify_utf8_kddi_b; +extern const struct mbfl_identify_vtbl vtbl_identify_utf8_sb; + +extern const struct mbfl_convert_vtbl vtbl_utf8_docomo_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_utf8_docomo; +extern const struct mbfl_convert_vtbl vtbl_utf8_kddi_a_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_utf8_kddi_a; +extern const struct mbfl_convert_vtbl vtbl_utf8_kddi_b_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_utf8_kddi_b; +extern const struct mbfl_convert_vtbl vtbl_utf8_sb_wchar; +extern const struct mbfl_convert_vtbl vtbl_wchar_utf8_sb; + +int mbfl_filt_conv_utf8_mobile_wchar(int c, mbfl_convert_filter *filter); +int mbfl_filt_conv_wchar_utf8_mobile(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_UTF8_MOBILE_H */ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_uuencode.c b/ext/mbstring/libmbfl/filters/mbfilter_uuencode.c new file mode 100644 index 0000000..64fc39d --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_uuencode.c @@ -0,0 +1,152 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfilter.h" +#include "mbfilter_uuencode.h" + +const mbfl_encoding mbfl_encoding_uuencode = { + mbfl_no_encoding_uuencode, + "UUENCODE", + "x-uuencode", + NULL, + NULL, + MBFL_ENCTYPE_SBCS +}; + +const struct mbfl_convert_vtbl vtbl_uuencode_8bit = { + mbfl_no_encoding_uuencode, + mbfl_no_encoding_8bit, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_uudec, + mbfl_filt_conv_common_flush +}; + +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + +/* uuencode => any */ +#define UUDEC(c) (char)(((c)-' ')&077) +static const char * uuenc_begin_text = "begin "; +enum { uudec_state_ground=0, uudec_state_inbegin, + uudec_state_until_newline, + uudec_state_size, uudec_state_a, uudec_state_b, uudec_state_c, uudec_state_d, + uudec_state_skip_newline}; + +int mbfl_filt_conv_uudec(int c, mbfl_convert_filter * filter) +{ + int n; + + switch(filter->status) { + case uudec_state_ground: + /* looking for "begin 0666 filename\n" line */ + if (filter->cache == 0 && c == 'b') + { + filter->status = uudec_state_inbegin; + filter->cache = 1; /* move to 'e' */ + } + else if (c == '\n') + filter->cache = 0; + else + filter->cache++; + break; + case uudec_state_inbegin: + if (uuenc_begin_text[filter->cache++] != c) { + /* doesn't match pattern */ + filter->status = uudec_state_ground; + break; + } + if (filter->cache == 5) + { + /* thats good enough - wait for a newline */ + filter->status = uudec_state_until_newline; + filter->cache = 0; + } + break; + case uudec_state_until_newline: + if (c == '\n') + filter->status = uudec_state_size; + break; + case uudec_state_size: + /* get "size" byte */ + n = UUDEC(c); + filter->cache = n << 24; + filter->status = uudec_state_a; + break; + case uudec_state_a: + /* get "a" byte */ + n = UUDEC(c); + filter->cache |= (n << 16); + filter->status = uudec_state_b; + break; + case uudec_state_b: + /* get "b" byte */ + n = UUDEC(c); + filter->cache |= (n << 8); + filter->status = uudec_state_c; + break; + case uudec_state_c: + /* get "c" byte */ + n = UUDEC(c); + filter->cache |= n; + filter->status = uudec_state_d; + break; + case uudec_state_d: + /* get "d" byte */ + { + int A, B, C, D = UUDEC(c); + A = (filter->cache >> 16) & 0xff; + B = (filter->cache >> 8) & 0xff; + C = (filter->cache) & 0xff; + n = (filter->cache >> 24) & 0xff; + if (n-- > 0) + CK((*filter->output_function)( (A << 2) | (B >> 4), filter->data)); + if (n-- > 0) + CK((*filter->output_function)( (B << 4) | (C >> 2), filter->data)); + if (n-- > 0) + CK((*filter->output_function)( (C << 6) | D, filter->data)); + filter->cache = n << 24; + + if (n == 0) + filter->status = uudec_state_skip_newline; /* skip next byte (newline) */ + else + filter->status = uudec_state_a; /* go back to fetch "A" byte */ + } + break; + case uudec_state_skip_newline: + /* skip newline */ + filter->status = uudec_state_size; + } + return c; +} + + diff --git a/ext/mbstring/libmbfl/filters/mbfilter_uuencode.h b/ext/mbstring/libmbfl/filters/mbfilter_uuencode.h new file mode 100644 index 0000000..ca7521c --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mbfilter_uuencode.h @@ -0,0 +1,39 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_UUENCODE_H +#define MBFL_MBFILTER_UUENCODE_H + +extern const mbfl_encoding mbfl_encoding_uuencode; +extern const struct mbfl_convert_vtbl vtbl_uuencode_8bit; + +int mbfl_filt_conv_uudec(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_UUENCODE_H */ + diff --git a/ext/mbstring/libmbfl/filters/mk_emoji_tbl.pl b/ext/mbstring/libmbfl/filters/mk_emoji_tbl.pl new file mode 100755 index 0000000..5b5c3d6 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mk_emoji_tbl.pl @@ -0,0 +1,425 @@ +#!/usr/bin/perl +# script to generate Shift_JIS encoded Emoji to/from Unicode conversion table. +# Rui Hirokawa <hirokawa@php.net> +# +# usage: mktbl.pl EmojiSources.txt +# +# Unicoe;DoCoMo;KDDI;SoftBank + +@docomo = (); +@kddi = (); +@softbank = (); + +@to_docomo = (); +@to_kddi = (); +@to_sb = (); + +$fname = "emoji2uni.h"; +open(OUT,">$fname") or die $!; + +sub sjis2code { + my @c = unpack("C*", pack("H4", $_[0])); + + # Shift_JIS -> JIS + $c[0] = (($c[0]-($c[0]<160?112:176))<<1)-($c[1]<159?1:0); + $c[1] -= ($c[1]<159?($c[1]>127?32:31):126); + + $s = ($c[0] - 0x21)*94 + $c[1]-0x21; + + return $s; +} + +sub show_code { + my @c = @_; + $s = "\t"; + for ($i=0; $i<=$#c; $i++) {# + if ($c[$i]) { + @v = split(' ',$c[$i]); + $s .= "0x$v[0], \t"; + if ($#v > 0) { + print "$i $v[0] $v[1]\n"; + } + } else { + $s .= "0x0000, \t"; + } + if ($i % 4 == 3) { + $s .= "\n\t"; + } + } + return $s; +} + +while(<>) { + if ($_ =~ /^\d+/) { + @v = split(/;/,$_); + if ($v[1] =~ /[\dA-F]+/) { + $code = &sjis2code($v[1]); + $docomo{$code} = $v[0]; + $to_docomo{$v[0]} = $code; + } + if ($v[2] =~ /[\dA-F]+/) { + $code = &sjis2code($v[2]); + $kddi{$code} = $v[0]; + $to_kddi{$v[0]} = $code; + } + if ($v[3] =~ /[\dA-F]+/) { + $code = &sjis2code($v[3]); + $softbank{$code} = $v[0]; + $to_sb{$v[0]} = $code; + } + } +} + +print "DoCoMo\n"; + +$docomo_min = 10434; +$docomo_max = 10434+281; +@docomo_v = (); + +foreach $key (sort {hex($a) <=> hex($b)} keys(%docomo)) { + $s = $key; + $pos = $s % 94; + $ku = ($s - $pos)/94; + $v = $key - $docomo_min; + #print "$ku:$pos - ". $v ."=> $docomo{$key}\n"; + $docomo_v[$key-$docomo_min] = $docomo{$key}; +} + +$to_docomo_min = 10434; + +$to_docomo_min1 = 0x0023; +$to_docomo_max1 = 0x00AE; +$to_docomo_min2 = 0x203C; +$to_docomo_max2 = 0x3299; +$to_docomo_min3 = 0x1F17F; +$to_docomo_max3 = 0x1F6BB; + +@r_docomo1_key = (); +@r_docomo1_val = (); + +@r_docomo2_key = (); +@r_docomo2_val = (); + +@r_docomo3_key = (); +@r_docomo3_val = (); + + +foreach $key (sort {hex($a) <=> hex($b)} keys(%to_docomo)) { + $s = $to_docomo{$key}; + + $pos = $s % 94; + $ku = ($s - $pos)/94; + $v = $to_docomo{$key} - $to_docomo_min; + $h = sprintf("%x",$s); + #print "$ku:$pos = $h ($v) <= $key\n"; + if (hex($key) <= $to_docomo_max1) { + push(@r_docomo1_key, $key); + push(@r_docomo1_val, sprintf("%x", $to_docomo{$key})); + } elsif (hex($key) <= $to_docomo_max2) { + push(@r_docomo2_key, $key); + push(@r_docomo2_val, $h); + } elsif (hex($key) >= $to_docomo_max3) { + push(@r_docomo3_key, $key); + push(@r_docomo3_val, $h); + } +} + +push(@r_docomo1_key, 0x00); +push(@r_docomo1_val, 0x00); +push(@r_docomo2_key, 0x00); +push(@r_docomo2_val, 0x00); +push(@r_docomo3_key, 0x00); +push(@r_docomo3_val, 0x00); + +print OUT "int mb_tbl_code2uni_docomo_min = $docomo_min;\n"; +print OUT "int mb_tbl_code2uni_docomo_max = $docomo_max;\n\n"; + +print OUT "int mb_tbl_code2uni_docomo[] = {\n"; +print OUT &show_code(@docomo_v); +print OUT "};\n\n"; + +print OUT "int mb_tbl_uni_docomo2code_min1 = $to_docomo_min1;\n"; +print OUT "int mb_tbl_uni_docomo2code_max1 = $to_docomo_max1;\n"; +print OUT "int mb_tbl_uni_docomo2code_min2 = $to_docomo_min2;\n"; +print OUT "int mb_tbl_uni_docomo2code_max2 = $to_docomo_max2;\n"; +print OUT "int mb_tbl_uni_docomo2code_min3 = $to_docomo_min3;\n"; +print OUT "int mb_tbl_uni_docomo2code_max3 = $to_docomo_max3;\n\n"; + +#print "DOCOMO reverse 1\n"; + +print OUT "int mb_tbl_uni_docomo2code_key1[] = {\n"; +print OUT &show_code(@r_docomo1_key),"\n"; +print OUT "};\n\n"; +print OUT "int mb_tbl_uni_docomo2code_val1[] = {\n"; +print OUT &show_code(@r_docomo1_val),"\n"; +print OUT "};\n\n"; + +#print "DOCOMO reverse 2\n"; + +print OUT "int mb_tbl_uni_docomo2code_key2[] = {\n"; +print OUT &show_code(@r_docomo2_key),"\n"; +print OUT "};\n\n"; +print OUT "int mb_tbl_uni_docomo2code_val2[] = {\n"; +print OUT &show_code(@r_docomo2_val),"\n"; +print OUT "};\n\n"; + +print "DOCOMO reverse 3\n"; + +print OUT "int mb_tbl_uni_docomo2code_key3[] = {\n"; +print OUT &show_code(@r_docomo3_key),"\n"; +print OUT "};\n\n"; +print OUT "int mb_tbl_uni_docomo2code_val3[] = {\n"; +print OUT &show_code(@r_docomo3_val),"\n"; +print OUT "};\n\n"; + +#print "DOCOMO reverse end \n"; + +$kddi_min1 = 9400; +$kddi_max1 = 9400+264; +$kddi_min2 = 9400+564; +$kddi_max2 = 9400+939; + +@kddi_v1 = (); +@kddi_v2 = (); + +#print "KDDI\n"; + +foreach $key (sort {hex($a) <=> hex($b)} keys(%kddi)) { + $s = $key; + $pos = $s % 94; + $ku = ($s - $pos)/94; + $v = $key - $kddi_min1; + $h = sprintf("%x",$key); + #print "$ku:$pos :: $v ($h) => $kddi{$key}\n"; + + if ($key <= $kddi_max1) { + $kddi_v1[$key-$kddi_min1] = $kddi{$key}; + } elsif ($key <= $kddi_max2) { + $kddi_v2[$key-$kddi_min2] = $kddi{$key}; + } +} + +$to_kddi_min = 9660; +$to_kddi_min1 = 0x0030; +$to_kddi_max1 = 0x00AE; +$to_kddi_min2 = 0x2002; +$to_kddi_max2 = 0x3299; +$to_kddi_min3 = 0x1F004; +$to_kddi_max3 = 0x1F6C0; + +@r_kddi1_key = (); @r_kddi1_val = (); +@r_kddi2_key = (); @r_kddi2_val = (); +@r_kddi3_key = (); @r_kddi3_val = (); + +foreach $key (sort {hex($a) <=> hex($b)} keys(%to_kddi)) { + $s = $to_kddi{$key}; + + $pos = $s % 94; + $ku = ($s - $pos)/94; + $v = $to_kddi{$key} - $to_kddi_min; + $h = sprintf("%x",$s); + #print "$ku:$pos = $h ($v) <= $key\n"; + if (hex($key) <= $to_kddi_max1) { + push(@r_kddi1_key, $key); + push(@r_kddi1_val, $h); + } elsif (hex($key) <= $to_kddi_max2) { + push(@r_kddi2_key, $key); + push(@r_kddi2_val, $h); + } else { + push(@r_kddi3_key, $key); + push(@r_kddi3_val, $h); + } +} + +push(@r_kddi1_key, 0x00); +push(@r_kddi1_val, 0x00); +push(@r_kddi2_key, 0x00); +push(@r_kddi2_val, 0x00); +push(@r_kddi3_key, 0x00); +push(@r_kddi3_val, 0x00); + +print OUT "int mb_tbl_code2uni_kddi1_min = $kddi_min1;\n"; +print OUT "int mb_tbl_code2uni_kddi1_max = $kddi_max1;\n"; +print OUT "int mb_tbl_code2uni_kddi2_min = $kddi_min2;\n"; +print OUT "int mb_tbl_code2uni_kddi2_max = $kddi_max2;\n\n"; + +#print "KDDI 1\n"; + +print OUT "int mb_tbl_code2uni_kddi1[] = {\n"; +print OUT &show_code(@kddi_v1); +print OUT "};\n\n"; + +#print "KDDI 2\n"; + +print OUT "int mb_tbl_code2uni_kddi2[] = {\n"; +print OUT &show_code(@kddi_v2); +print OUT "};\n\n"; + +print OUT "int mb_tbl_uni_kddi2code_min1 = $to_kddi_min1;\n"; +print OUT "int mb_tbl_uni_kddi2code_max1 = $to_kddi_max1;\n"; +print OUT "int mb_tbl_uni_kddi2code_min2 = $to_kddi_min2;\n"; +print OUT "int mb_tbl_uni_kddi2code_max2 = $to_kddi_max2;\n"; +print OUT "int mb_tbl_uni_kddi2code_min3 = $to_kddi_min3;\n"; +print OUT "int mb_tbl_uni_kddi2code_max3 = $to_kddi_max3;\n\n"; + +#print "KDDI reverse 1\n"; + +print OUT "int mb_tbl_uni_kddi2code_key1[] = {\n"; +print OUT &show_code(@r_kddi1_key),"\n"; +print OUT "};\n\n"; +print OUT "int mb_tbl_uni_kddi2code_val1[] = {\n"; +print OUT &show_code(@r_kddi1_val),"\n"; +print OUT "};\n\n"; + +#print "KDDI reverse 1\n"; + +print OUT "int mb_tbl_uni_kddi2code_key2[] = {\n"; +print OUT &show_code(@r_kddi2_key),"\n"; +print OUT "};\n\n"; +print OUT "int mb_tbl_uni_kddi2code_val2[] = {\n"; +print OUT &show_code(@r_kddi2_val),"\n"; +print OUT "};\n\n"; + +#print "KDDI reverse 3\n"; + +print OUT "int mb_tbl_uni_kddi2code_key3[] = {\n"; +print OUT &show_code(@r_kddi3_key),"\n"; +print OUT "};\n\n"; +print OUT "int mb_tbl_uni_kddi2code_val3[] = {\n"; +print OUT &show_code(@r_kddi3_val),"\n"; +print OUT "};\n\n"; + + +$sb_min1 = 10153; +$sb_max1 = 10153+177; +$sb_min2 = 10153+376; +$sb_max2 = 10153+547; +$sb_min3 = 10153+752; +$sb_max3 = 10153+901; + +@sb_v1 = (); +@sb_v2 = (); +@sb_v3 = (); + +if (1) { + print "SoftBank\n"; + + foreach $key (sort {hex($a) <=> hex($b)} keys(%softbank)) { + $s = $key; + $pos = $s % 94; + $ku = ($s - $pos)/94; + $v = $key - $sb_min1; + $h = sprintf("%x",$key); + #print "$ku:$pos :: $v ($h) => $softbank{$key}\n"; + if ($key <= $sb_max1) { + $sb_v1[$key-$sb_min1] = $softbank{$key}; + } elsif ($key <= $sb_max2) { + $sb_v2[$key-$sb_min2] = $softbank{$key}; + } elsif ($key <= $sb_max3) { + $sb_v3[$key-$sb_min3] = $softbank{$key}; + } + } + +} + +$to_sb_min = 10263; +$to_sb_min1 = 0x0023; +$to_sb_max1 = 0x00AE; +$to_sb_min2 = 0x2122; +$to_sb_max2 = 0x3299; +$to_sb_min3 = 0x1F004; +$to_sb_max3 = 0x1F6C0; + +@r_sb1_key = (); @r_sb1_val = (); +@r_sb2_key = (); @r_sb2_val = (); +@r_sb3_key = (); @r_sb3_val = (); + +foreach $key (sort {hex($a) <=> hex($b)} keys(%to_sb)) { + $s = $to_sb{$key}; + + $pos = $s % 94; + $ku = ($s - $pos)/94; + $v = $to_sb{$key} - $to_sb_min; + $h = sprintf("%x",$s); + #print "$ku:$pos = $h ($v) <= $key\n"; + if (hex($key) <= $to_sb_max1) { + push(@r_sb1_key, $key); + push(@r_sb1_val, $h); + } elsif (hex($key) >= $to_sb_min2 && hex($key) <= $to_sb_max2) { + push(@r_sb2_key, $key); + push(@r_sb2_val, $h); + } else { + push(@r_sb3_key, $key); + push(@r_sb3_val, $h); + } +} + +push(@r_sb1_key, 0x00); +push(@r_sb1_val, 0x00); +push(@r_sb2_key, 0x00); +push(@r_sb2_val, 0x00); +push(@r_sb3_key, 0x00); +push(@r_sb3_val, 0x00); + + +print OUT "int mb_tbl_code2uni_sb1_min = $sb_min1;\n"; +print OUT "int mb_tbl_code2uni_sb1_max = $sb_max1;\n"; +print OUT "int mb_tbl_code2uni_sb2_min = $sb_min2;\n"; +print OUT "int mb_tbl_code2uni_sb2_max = $sb_max2;\n"; +print OUT "int mb_tbl_code2uni_sb3_min = $sb_min3;\n"; +print OUT "int mb_tbl_code2uni_sb3_max = $sb_max3;\n\n"; + +#print "SoftBank 1\n"; + +print OUT "int mb_tbl_code2uni_sb1[] = {\n"; +print OUT &show_code(@sb_v1); +print OUT "};\n\n"; + +#print "SoftBank 2\n"; + +print OUT "int mb_tbl_code2uni_sb2[] = {\n"; +print OUT &show_code(@sb_v2); +print OUT "};\n\n"; + +#print "SoftBank 3\n"; + +print OUT "int mb_tbl_code2uni_sb3[] = {\n"; +print OUT &show_code(@sb_v3); +print OUT "};\n\n"; + +print OUT "int mb_tbl_uni_sb2code_min1 = $to_sb_min1;\n"; +print OUT "int mb_tbl_uni_sb2code_max1 = $to_sb_max1;\n"; +print OUT "int mb_tbl_uni_sb2code_min2 = $to_sb_min2;\n"; +print OUT "int mb_tbl_uni_sb2code_max2 = $to_sb_max2;\n"; +print OUT "int mb_tbl_uni_sb2code_min3 = $to_sb_min3;\n"; +print OUT "int mb_tbl_uni_sb2code_max3 = $to_sb_max3;\n\n"; + +#print "SB reverse 1\n"; + +print OUT "int mb_tbl_uni_sb2code_key1[] = {\n"; +print OUT &show_code(@r_sb1_key),"\n"; +print OUT "};\n\n"; +print OUT "int mb_tbl_uni_sb2code_val1[] = {\n"; +print OUT &show_code(@r_sb1_val),"\n"; +print OUT "};\n\n"; + +#print "SB reverse 2\n"; + +print OUT "int mb_tbl_uni_sb2code_key2[] = {\n"; +print OUT &show_code(@r_sb2_key),"\n"; +print OUT "};\n\n"; +print OUT "int mb_tbl_uni_sb2code_val2[] = {\n"; +print OUT &show_code(@r_sb2_val),"\n"; +print OUT "};\n\n"; + +#print "SB reverse 3\n"; + +print OUT "int mb_tbl_uni_sb2code_key3[] = {\n"; +print OUT &show_code(@r_sb3_key),"\n"; +print OUT "};\n\n"; +print OUT "int mb_tbl_uni_sb2code_val3[] = {\n"; +print OUT &show_code(@r_sb3_val),"\n"; +print OUT "};\n\n"; + + +close(OUT); diff --git a/ext/mbstring/libmbfl/filters/mk_sb_tbl.awk b/ext/mbstring/libmbfl/filters/mk_sb_tbl.awk new file mode 100755 index 0000000..f0ad290 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/mk_sb_tbl.awk @@ -0,0 +1,65 @@ +#!/usr/bin/awk -f +# +# $Id$ +# +# Description: a script that generates a single byte code set to Unicode +# mapping table. +# + +function conv(str) { + if (!match(str, "^0[xX]")) { + return 0 + str + } + + retval = 0 + + for (i = 3; i <= length(str); i++) { + n = index("0123456789abcdefABCDEF", substr(str, i, 1)) - 1 + + if (n < 0) { + return 0 + str; + } else if (n >= 16) { + n -= 6; + } + + retval = retval * 16 + n + } + + return retval +} + +BEGIN { + FS="[ \t#]" +} + +/^#/ { + # Do nothing +} + +{ + tbl[conv($1)] = conv($2) +} + +END { + print "/* This file is automatically generated. Do not edit! */" + if (IFNDEF_NAME) { + print "#ifndef " IFNDEF_NAME + } + + print "static const int " TABLE_NAME "[] = {" + i = 160; + for (;;) { + printf("\t0x%04x, 0x%04x, 0x%04x, 0x%04x, 0x%04x, 0x%04x, 0x%04x, 0x%04x", tbl[i++], tbl[i++], tbl[i++], tbl[i++], tbl[i++], tbl[i++], tbl[i++], tbl[i++]); + if (i != 256) { + printf(",\n"); + } else { + print "" + break; + } + } + print "};" + + if (IFNDEF_NAME) { + print "#endif /* " IFNDEF_NAME " */" + } +} diff --git a/ext/mbstring/libmbfl/filters/sjis_mac2uni.h b/ext/mbstring/libmbfl/filters/sjis_mac2uni.h new file mode 100644 index 0000000..1bd77c9 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/sjis_mac2uni.h @@ -0,0 +1,349 @@ + + +static const unsigned short sjis_mac2wchar1[] = { // 0x03ac - 0x03c9 +0x339c, 0x339f, 0x339d, 0x33a0, +0x33a4, 0xff4d, 0x33a1, 0x33a5, +0x339e, 0x33a2, 0x338e, 0xff47, +0x338f, 0x33c4, 0x3396, 0x3397, +0x2113, 0x3398, 0x33b3, 0x33b2, +0x33b1, 0x33b0, 0x2109, 0x33d4, +0x33cb, 0x3390, 0x3385, 0x3386, +0x3387, 0xf860, }; +static const unsigned short sjis_mac2wchar2[] = { // 0x0406 - 0x0420 +0x2116, 0x33cd, +0x2121, 0xf861, 0x2664, 0x2667, +0x2661, 0x2662, 0x2660, 0x2663, +0x2665, 0x2666, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x3020, 0x260e, +0x3004, }; +static const unsigned short sjis_mac2wchar3[] = { // 0x0432 - 0x0441 +0x261e, 0x261c, +0x261d, 0x261f, 0x21c6, 0x21c4, +0x21c5, 0xf860, 0x21e8, 0x21e6, +0x21e7, 0x21e9, 0x21e8, 0x21e6, +0x21e7, 0x21e9, }; +static const unsigned short sjis_mac2wchar4[] = { // 0x0468 - 0x0480 +0x3230, 0x322a, 0x322b, 0x322c, +0x322d, 0x322e, 0x322f, 0x3240, +0x3237, 0x3242, 0x3243, 0x3239, +0x323a, 0x3231, 0x323e, 0x3234, +0x3232, 0x323b, 0x3236, 0x3233, +0x3235, 0x323c, 0x323d, 0x323f, +0x3238, }; +static const unsigned short sjis_mac2wchar5[] = { // 0x04b8 - 0x04e8 +0x5927, 0x5c0f, 0x32a4, 0x32a5, +0x32a6, 0x32a7, 0x32a8, 0x32a9, +0x3296, 0x329d, 0x3298, 0x329e, +0x63a7, 0x3299, 0x3349, 0x3322, +0x334d, 0x3314, 0x3316, 0x3305, +0x3333, 0x334e, 0x3303, 0x3336, +0x3318, 0x3315, 0x3327, 0x3351, +0x334a, 0x3339, 0x3357, 0x330d, +0x3342, 0x3323, 0x3326, 0x333b, +0x332b, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x3300, 0x331e, 0x332a, 0x3331, +0x3347, }; +static const unsigned short sjis_mac2wchar6[] = { // 0x050c - 0x0551 +0x337e, 0x337d, 0x337c, 0x337b, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x337f, 0xf862, 0xf862, +0x222e, 0x221f, 0x22bf, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x301d, 0x301f, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x3094, 0x0000, 0x30f7, 0x30f8, +0x30f9, 0x30fa, }; +static const unsigned short sjis_mac2wchar7[] = { // 0x1ed9 - 0x1f18 +0x3001, 0x3002, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0xffe3, 0xfe33, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x30fc, +0xfe31, 0x2010, 0x0000, 0x0000, +0x301c, 0x2016, 0xff5c, 0x2026, +0xfe30, 0x0000, 0x0000, 0x0000, +0x0000, 0xfe35, 0xfe36, 0xfe39, +0xfe3a, 0xff3b, 0xff3d, 0xfe37, +0xfe38, 0xfe3f, 0xfe40, 0xfe3d, +0xfe3e, 0xfe41, 0xfe42, 0xfe43, +0xfe44, 0xfe3b, 0xfe3c, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0xff1d, }; +static const unsigned short sjis_mac2wchar8[] = { // 0x1ff2 - 0x20a5 +0x3041, 0x0000, +0x3043, 0x0000, 0x3045, 0x0000, +0x3047, 0x0000, 0x3049, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x3063, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x3083, 0x0000, 0x3085, 0x0000, +0x3087, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x308e, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x30a1, 0x0000, 0x30a3, 0x0000, +0x30a5, 0x0000, 0x30a7, 0x0000, +0x30a9, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x30c3, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x30e3, 0x0000, +0x30e5, 0x0000, 0x30e7, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x30ee, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x30f5, 0x30f6, }; + +static const unsigned short wchar2sjis_mac4[] = { // 0x2660 - 0x2667 +0x040e, 0x040c, 0x040d, 0x040f, +0x040a, 0x0410, 0x0411, 0x040b, +}; + +static const unsigned short wchar2sjis_mac7[] = { // 0x322a - 0x3243 +0x0469, 0x046a, +0x046b, 0x046c, 0x046d, 0x046e, +0x0468, 0x0475, 0x0478, 0x047b, +0x0477, 0x047c, 0x047a, 0x0470, +0x0480, 0x0473, 0x0474, 0x0479, +0x047d, 0x047e, 0x0476, 0x047f, +0x046f, 0x0000, 0x0471, 0x0472, +}; + +static const unsigned short wchar2sjis_mac8[] = { // 0x3296 - 0x329e +0x04c0, 0x0000, +0x04c2, 0x04c5, 0x0000, 0x0000, +0x0000, 0x04c1, 0x04c3, }; + +static const unsigned short wchar2sjis_mac9[] = { // 0x3300 - 0x33d4 +0x04e4, 0x0000, 0x0000, 0x04ce, +0x0000, 0x04cb, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x04d7, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x04c9, 0x04d1, 0x04ca, 0x0000, +0x04d0, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x04e5, 0x0000, +0x0000, 0x0000, 0x04c7, 0x04d9, +0x0000, 0x0000, 0x04da, 0x04d2, +0x0000, 0x0000, 0x04e6, 0x04dc, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x04e7, 0x0000, 0x04cc, +0x0000, 0x0000, 0x04cf, 0x0000, +0x0000, 0x04d5, 0x0000, 0x04db, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x04d8, 0x0000, +0x0000, 0x0000, 0x0000, 0x04e8, +0x0000, 0x04c6, 0x04d4, 0x0000, +0x0000, 0x04c8, 0x04cd, 0x0000, +0x0000, 0x04d3, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x04d6, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x050f, +0x050e, 0x050d, 0x050c, 0x0521, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x03c6, 0x03c7, 0x03c8, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x03b6, 0x03b8, +0x03c5, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x03ba, 0x03bb, +0x03bd, 0x0000, 0x0000, 0x0000, +0x03ac, 0x03ae, 0x03b4, 0x03ad, +0x03af, 0x03b2, 0x03b5, 0x0000, +0x03b0, 0x03b3, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x03c1, 0x03c0, 0x03bf, 0x03be, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x03b9, 0x0000, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x03c4, +0x0000, 0x0407, 0x0000, 0x0000, +0x0000, 0x0000, 0x0000, 0x0000, +0x03c3, }; + +static const unsigned short wchar2sjis_mac10[] = { // 0xfe30 - 0xfe44 +0x1efc, 0x1ef4, 0x0000, 0x1ee9, +0x0000, 0x1f01, 0x1f02, 0x1f07, +0x1f08, 0x1f03, 0x1f04, 0x1f11, +0x1f12, 0x1f0b, 0x1f0c, 0x1f09, +0x1f0a, 0x1f0d, 0x1f0e, 0x1f0f, +0x1f10, }; + +static const unsigned short code_tbl[][3] = { + {0x02f0, 0x0303, 0x2460}, + {0x030e, 0x0321, 0x2474}, + {0x032c, 0x0334, 0x2776}, + {0x0341, 0x0349, 0x2488}, + {0x034e, 0x0359, 0x2160}, + {0x0362, 0x036d, 0x2170}, + {0x038a, 0x03a3, 0x249c}, +}; + +static const unsigned short code_ofst_tbl[] [2]= { + {0x03ac, 0x03c9}, + {0x0406, 0x0420}, + {0x0432, 0x0441}, + {0x0468, 0x0480}, + {0x04b8, 0x04e8}, + {0x050c, 0x0551}, + {0x1ed9, 0x1f18}, + {0x1ff2, 0x20a5}, +}; + +static const unsigned short *code_map[] = { + sjis_mac2wchar1, sjis_mac2wchar2, sjis_mac2wchar3, sjis_mac2wchar4, + sjis_mac2wchar5, sjis_mac2wchar6, sjis_mac2wchar7, sjis_mac2wchar8}; + +static const unsigned short code_tbl_m[][6] = { + {0x0340, 0xf860, 0x0030, 0x002e, 0x0000, 0x0000}, + {0x03c9, 0xf860, 0x0054, 0x0042, 0x0000, 0x0000}, + {0x035c, 0xf860, 0x0058, 0x0056, 0x0000, 0x0000}, + {0x0370, 0xf860, 0x0078, 0x0076, 0x0000, 0x0000}, + {0x0439, 0xf860, 0x2193, 0x2191, 0x0000, 0x0000}, + {0x0409, 0xf861, 0x0046, 0x0041, 0x0058, 0x0000}, + {0x035b, 0xf861, 0x0058, 0x0049, 0x0056, 0x0000}, + {0x036f, 0xf861, 0x0078, 0x0069, 0x0076, 0x0000}, + {0x035a, 0xf862, 0x0058, 0x0049, 0x0049, 0x0049}, + {0x036e, 0xf862, 0x0078, 0x0069, 0x0069, 0x0069}, + {0x0522, 0xf862, 0x6709, 0x9650, 0x4f1a, 0x793e}, + {0x0523, 0xf862, 0x8ca1, 0x56e3, 0x6cd5, 0x4eba}, +}; + +static int code_tbl_m_len = sizeof(code_tbl_m)/(sizeof(unsigned short)*6); + +static const unsigned short s_form_tbl[] = { + 0x2010,0x2016,0x2026, + 0x3001,0x3002,0x301c,0x3041,0x3043,0x3045,0x3047,0x3049, + 0x3063,0x3083,0x3085,0x3087,0x308e,0x30a1,0x30a3,0x30a5, + 0x30a7,0x30a9,0x30c3,0x30e3,0x30e5,0x30e7,0x30ee,0x30f5, + 0x30f6,0x30fc,0xff1d,0xff3b,0xff3d,0xff5c,0xffe3, // vertical f87e (34) + 0x2026,0xff47,0xff4d, // halfwidth f87f (3) + 0x5927,0x5c0f,0x63a7, // enclosing circle 20dd (3) + 0x21e6,0x21e7,0x21e8,0x21e9, // black arrow f87a (4) +}; + +static int s_form_tbl_len = sizeof(s_form_tbl)/sizeof(unsigned short); + +static const unsigned short s_form_sjis_tbl[] = { + 0xeb5d,0xeb61,0xeb63, + 0xeb41,0xeb42,0xeb60,0xec9f,0xeca1,0xeca3,0xeca5,0xeca7, + 0xecc1,0xece1,0xece3,0xece5,0xecec,0xed40,0xed42,0xed44, + 0xed46,0xed48,0xed62,0xed83,0xed85,0xed87,0xed8e,0xed95, + 0xed96,0xeb5b,0xeb81,0xeb6d,0xeb6e,0xeb62,0xeb50, // vertical + 0x00ff,0x864b,0x8645, // halfwidth + 0x8791,0x8792,0x879d, // enclosing circle + 0x86d4,0x86d5,0x86d3,0x86d6, // black arrow +}; + +static const unsigned short s_form_sjis_fallback_tbl[] = { + 0x815d,0x8161,0x8163, + 0x8141,0x8142,0x8160,0x829f,0x82a1,0x82a3,0x82a5,0x82a7, + 0x82c1,0x82e1,0x82e3,0x82e5,0x82ec,0x8340,0x8342,0x8344, + 0x8346,0x8348,0x8362,0x8383,0x8385,0x8387,0x838e,0x8395, + 0x8396,0x815b,0x8181,0x816d,0x816e,0x8162,0x8150, // vertical + 0x815d,0x8287,0x828d, // halfwidth + 0x91e5,0x8fac,0x8d54, // enclosing circle + 0x86d0,0x86d1,0x86cf,0x86d2, // arrow +}; + +static const unsigned short wchar2sjis_mac_r_tbl[][3] = { + {0x2160, 0x216b, 0x034e}, + {0x2170, 0x217b, 0x0362}, + {0x2460, 0x2473, 0x02f0}, + {0x2474, 0x2487, 0x030e}, + {0x2488, 0x2490, 0x0341}, + {0x249c, 0x24b5, 0x038a}, + {0x2776, 0x277e, 0x032c}, + {0x30f7, 0x30fa, 0x054e}, + {0x32a4, 0x32a9, 0x04ba}, +}; + +static int wchar2sjis_mac_r_tbl_len = sizeof(wchar2sjis_mac_r_tbl)/(3*sizeof(unsigned short)); + +static const unsigned short wchar2sjis_mac_r_map[][2] = { + {0x2660, 0x2667}, + {0x322a, 0x3243}, + {0x3296, 0x329e}, + {0x3300, 0x33d4}, + {0xfe30, 0xfe44}, +}; + +static int wchar2sjis_mac_r_map_len = sizeof(wchar2sjis_mac_r_map)/(2*sizeof(unsigned short)); + +static const unsigned short *wchar2sjis_mac_code_map[] = { + wchar2sjis_mac4, wchar2sjis_mac7, wchar2sjis_mac8, wchar2sjis_mac9, wchar2sjis_mac10}; + +static const unsigned short wchar2sjis_mac_wchar_tbl[][2] = { + {0x2109, 0x03c2}, + {0x2113, 0x03bc}, + {0x2116, 0x0406}, + {0x2121, 0x0408}, + {0x21c4, 0x0437}, + {0x21c5, 0x0438}, + {0x21c6, 0x0436}, + {0x21e6, 0x043b}, + {0x21e7, 0x043c}, + {0x21e8, 0x043a}, + {0x21e9, 0x043d}, + {0x221f, 0x0525}, + {0x222e, 0x0524}, + {0x22bf, 0x0526}, + {0x260e, 0x041f}, + {0x261c, 0x0433}, + {0x261d, 0x0434}, + {0x261e, 0x0432}, + {0x261f, 0x0435}, + {0x3004, 0x0420}, + {0x301d, 0x0538}, + {0x301f, 0x0539}, + {0x3020, 0x041e}, + {0x3094, 0x054c}, +}; + +static int wchar2sjis_mac_wchar_tbl_len = sizeof(wchar2sjis_mac_wchar_tbl)/(2*sizeof(unsigned short)); diff --git a/ext/mbstring/libmbfl/filters/translit_kana_jisx0201_jisx0208.h b/ext/mbstring/libmbfl/filters/translit_kana_jisx0201_jisx0208.h new file mode 100644 index 0000000..4f8f4b7 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/translit_kana_jisx0201_jisx0208.h @@ -0,0 +1,67 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: Moriyoshi Koizumi <koizumi@gree.co.jp> + * + */ + +#ifndef TRANSLIT_KANA_JISX0201_JISX0208_H +#define TRANSLIT_KANA_JISX0201_JISX0208_H + +static const unsigned char hankana2zenkana_table[64] = { + 0x00,0x02,0x0C,0x0D,0x01,0xFB,0xF2,0xA1,0xA3,0xA5, + 0xA7,0xA9,0xE3,0xE5,0xE7,0xC3,0xFC,0xA2,0xA4,0xA6, + 0xA8,0xAA,0xAB,0xAD,0xAF,0xB1,0xB3,0xB5,0xB7,0xB9, + 0xBB,0xBD,0xBF,0xC1,0xC4,0xC6,0xC8,0xCA,0xCB,0xCC, + 0xCD,0xCE,0xCF,0xD2,0xD5,0xD8,0xDB,0xDE,0xDF,0xE0, + 0xE1,0xE2,0xE4,0xE6,0xE8,0xE9,0xEA,0xEB,0xEC,0xED, + 0xEF,0xF3,0x9B,0x9C +}; + +static const unsigned char hankana2zenhira_table[64] = { + 0x00,0x02,0x0C,0x0D,0x01,0xFB,0x92,0x41,0x43,0x45, + 0x47,0x49,0x83,0x85,0x87,0x63,0xFC,0x42,0x44,0x46, + 0x48,0x4A,0x4B,0x4D,0x4F,0x51,0x53,0x55,0x57,0x59, + 0x5B,0x5D,0x5F,0x61,0x64,0x66,0x68,0x6A,0x6B,0x6C, + 0x6D,0x6E,0x6F,0x72,0x75,0x78,0x7B,0x7E,0x7F,0x80, + 0x81,0x82,0x84,0x86,0x88,0x89,0x8A,0x8B,0x8C,0x8D, + 0x8F,0x93,0x9B,0x9C +}; +static const unsigned char zenkana2hankana_table[84][2] = { + {0x67,0x00},{0x71,0x00},{0x68,0x00},{0x72,0x00},{0x69,0x00}, + {0x73,0x00},{0x6A,0x00},{0x74,0x00},{0x6B,0x00},{0x75,0x00}, + {0x76,0x00},{0x76,0x9E},{0x77,0x00},{0x77,0x9E},{0x78,0x00}, + {0x78,0x9E},{0x79,0x00},{0x79,0x9E},{0x7A,0x00},{0x7A,0x9E}, + {0x7B,0x00},{0x7B,0x9E},{0x7C,0x00},{0x7C,0x9E},{0x7D,0x00}, + {0x7D,0x9E},{0x7E,0x00},{0x7E,0x9E},{0x7F,0x00},{0x7F,0x9E}, + {0x80,0x00},{0x80,0x9E},{0x81,0x00},{0x81,0x9E},{0x6F,0x00}, + {0x82,0x00},{0x82,0x9E},{0x83,0x00},{0x83,0x9E},{0x84,0x00}, + {0x84,0x9E},{0x85,0x00},{0x86,0x00},{0x87,0x00},{0x88,0x00}, + {0x89,0x00},{0x8A,0x00},{0x8A,0x9E},{0x8A,0x9F},{0x8B,0x00}, + {0x8B,0x9E},{0x8B,0x9F},{0x8C,0x00},{0x8C,0x9E},{0x8C,0x9F}, + {0x8D,0x00},{0x8D,0x9E},{0x8D,0x9F},{0x8E,0x00},{0x8E,0x9E}, + {0x8E,0x9F},{0x8F,0x00},{0x90,0x00},{0x91,0x00},{0x92,0x00}, + {0x93,0x00},{0x6C,0x00},{0x94,0x00},{0x6D,0x00},{0x95,0x00}, + {0x6E,0x00},{0x96,0x00},{0x97,0x00},{0x98,0x00},{0x99,0x00}, + {0x9A,0x00},{0x9B,0x00},{0x9C,0x00},{0x9C,0x00},{0x72,0x00}, + {0x74,0x00},{0x66,0x00},{0x9D,0x00},{0x73,0x9E} +}; + +#endif /* TRANSLIT_KANA_JISX0201_JISX0208_H */ diff --git a/ext/mbstring/libmbfl/filters/unicode_prop.h b/ext/mbstring/libmbfl/filters/unicode_prop.h new file mode 100644 index 0000000..d21ec61 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/unicode_prop.h @@ -0,0 +1,167 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The authors of this file: PHP3 Internationalization team + * + */ + +/* charactor property table */ +#define MBFL_CHP_CTL 0x01 +#define MBFL_CHP_DIGIT 0x02 +#define MBFL_CHP_UALPHA 0x04 +#define MBFL_CHP_LALPHA 0x08 +#define MBFL_CHP_MMHQENC 0x10 /* must Q-encoding in MIME Header encoded-word */ +#define MBFL_CHP_MSPECIAL 0x20 /* RFC822 Special characters */ + +/* + * Unicode table + */ + +static const unsigned char mbfl_charprop_table[] = { +/* NUL 0 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC, +/* SCH 1 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC , +/* SIX 2 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC , +/* EIX 3 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC , +/* EOT 4 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC , +/* ENQ 5 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC , +/* ACK 6 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC , +/* BEL 7 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC , +/* BS 8 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC , +/* HI 9 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC , +/* LF 10 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC , +/* VI 11 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC , +/* FF 12 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC , +/* CR 13 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC , +/* SO 14 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC , +/* SI 15 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC , +/* SLE 16 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC , +/* CSI 17 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC , +/* DC2 18 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC , +/* DC3 19 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC , +/* DC4 20 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC , +/* NAK 21 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC , +/* SYN 22 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC , +/* EIB 23 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC , +/* CAN 24 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC , +/* EM 25 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC , +/* SLB 26 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC , +/* ESC 27 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC , +/* FS 28 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC , +/* GS 29 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC , +/* RS 30 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC , +/* US 31 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC , +/* SP 32 */ MBFL_CHP_MMHQENC , +/* ! 33 */ 0 , +/* " 34 */ MBFL_CHP_MMHQENC | MBFL_CHP_MSPECIAL , +/* # 35 */ MBFL_CHP_MMHQENC , +/* $ 36 */ MBFL_CHP_MMHQENC , +/* % 37 */ MBFL_CHP_MMHQENC , +/* & 38 */ MBFL_CHP_MMHQENC , +/* ' 39 */ MBFL_CHP_MMHQENC , +/* ( 40 */ MBFL_CHP_MMHQENC | MBFL_CHP_MSPECIAL , +/* ) 41 */ MBFL_CHP_MMHQENC | MBFL_CHP_MSPECIAL , +/* * 42 */ 0 , +/* + 43 */ 0 , +/* , 44 */ MBFL_CHP_MMHQENC | MBFL_CHP_MSPECIAL , +/* - 45 */ 0 , +/* . 46 */ MBFL_CHP_MMHQENC | MBFL_CHP_MSPECIAL , +/* / 47 */ 0 , +/* 0 48 */ MBFL_CHP_DIGIT | MBFL_CHP_MMHQENC , +/* 1 49 */ MBFL_CHP_DIGIT | MBFL_CHP_MMHQENC , +/* 2 50 */ MBFL_CHP_DIGIT | MBFL_CHP_MMHQENC , +/* 3 51 */ MBFL_CHP_DIGIT | MBFL_CHP_MMHQENC , +/* 4 52 */ MBFL_CHP_DIGIT | MBFL_CHP_MMHQENC , +/* 5 53 */ MBFL_CHP_DIGIT | MBFL_CHP_MMHQENC , +/* 6 54 */ MBFL_CHP_DIGIT | MBFL_CHP_MMHQENC , +/* 7 55 */ MBFL_CHP_DIGIT | MBFL_CHP_MMHQENC , +/* 8 56 */ MBFL_CHP_DIGIT | MBFL_CHP_MMHQENC , +/* 9 57 */ MBFL_CHP_DIGIT | MBFL_CHP_MMHQENC , +/* : 58 */ MBFL_CHP_MMHQENC | MBFL_CHP_MSPECIAL , +/* ; 59 */ MBFL_CHP_MMHQENC | MBFL_CHP_MSPECIAL , +/* < 60 */ MBFL_CHP_MMHQENC | MBFL_CHP_MSPECIAL , +/* = 61 */ 0 , +/* > 62 */ MBFL_CHP_MMHQENC | MBFL_CHP_MSPECIAL , +/* ? 63 */ MBFL_CHP_MMHQENC , +/* @ 64 */ MBFL_CHP_MMHQENC | MBFL_CHP_MSPECIAL , +/* A 65 */ MBFL_CHP_UALPHA , +/* B 66 */ MBFL_CHP_UALPHA , +/* C 67 */ MBFL_CHP_UALPHA , +/* D 68 */ MBFL_CHP_UALPHA , +/* E 69 */ MBFL_CHP_UALPHA , +/* F 70 */ MBFL_CHP_UALPHA , +/* G 71 */ MBFL_CHP_UALPHA , +/* H 72 */ MBFL_CHP_UALPHA , +/* I 73 */ MBFL_CHP_UALPHA , +/* J 74 */ MBFL_CHP_UALPHA , +/* K 75 */ MBFL_CHP_UALPHA , +/* L 76 */ MBFL_CHP_UALPHA , +/* M 77 */ MBFL_CHP_UALPHA , +/* N 78 */ MBFL_CHP_UALPHA , +/* O 79 */ MBFL_CHP_UALPHA , +/* P 80 */ MBFL_CHP_UALPHA , +/* Q 81 */ MBFL_CHP_UALPHA , +/* R 82 */ MBFL_CHP_UALPHA , +/* S 83 */ MBFL_CHP_UALPHA , +/* T 84 */ MBFL_CHP_UALPHA , +/* U 85 */ MBFL_CHP_UALPHA , +/* V 86 */ MBFL_CHP_UALPHA , +/* W 87 */ MBFL_CHP_UALPHA , +/* X 88 */ MBFL_CHP_UALPHA , +/* Y 89 */ MBFL_CHP_UALPHA , +/* Z 90 */ MBFL_CHP_UALPHA , +/* [ 91 */ MBFL_CHP_MMHQENC | MBFL_CHP_MSPECIAL , +/* \ 92 */ MBFL_CHP_MMHQENC | MBFL_CHP_MSPECIAL , +/* ] 93 */ MBFL_CHP_MMHQENC | MBFL_CHP_MSPECIAL , +/* ^ 94 */ MBFL_CHP_MMHQENC , +/* _ 95 */ MBFL_CHP_MMHQENC , +/* ` 96 */ MBFL_CHP_MMHQENC , +/* a 97 */ MBFL_CHP_LALPHA , +/* b 98 */ MBFL_CHP_LALPHA , +/* c 99 */ MBFL_CHP_LALPHA , +/* d 100 */ MBFL_CHP_LALPHA , +/* e 101 */ MBFL_CHP_LALPHA , +/* f 102 */ MBFL_CHP_LALPHA , +/* g 103 */ MBFL_CHP_LALPHA , +/* h 104 */ MBFL_CHP_LALPHA , +/* i 105 */ MBFL_CHP_LALPHA , +/* j 106 */ MBFL_CHP_LALPHA , +/* k 107 */ MBFL_CHP_LALPHA , +/* l 108 */ MBFL_CHP_LALPHA , +/* m 109 */ MBFL_CHP_LALPHA , +/* n 110 */ MBFL_CHP_LALPHA , +/* o 111 */ MBFL_CHP_LALPHA , +/* p 112 */ MBFL_CHP_LALPHA , +/* q 113 */ MBFL_CHP_LALPHA , +/* r 114 */ MBFL_CHP_LALPHA , +/* s 115 */ MBFL_CHP_LALPHA , +/* t 116 */ MBFL_CHP_LALPHA , +/* u 117 */ MBFL_CHP_LALPHA , +/* v 118 */ MBFL_CHP_LALPHA , +/* w 119 */ MBFL_CHP_LALPHA , +/* x 120 */ MBFL_CHP_LALPHA , +/* y 121 */ MBFL_CHP_LALPHA , +/* z 122 */ MBFL_CHP_LALPHA , +/* { 123 */ MBFL_CHP_MMHQENC , +/* | 124 */ MBFL_CHP_MMHQENC , +/* } 125 */ MBFL_CHP_MMHQENC , +/* ~ 126 */ MBFL_CHP_MMHQENC , +/* DEL 127 */ MBFL_CHP_MMHQENC +}; + diff --git a/ext/mbstring/libmbfl/filters/unicode_table_armscii8.h b/ext/mbstring/libmbfl/filters/unicode_table_armscii8.h new file mode 100644 index 0000000..174e95d --- /dev/null +++ b/ext/mbstring/libmbfl/filters/unicode_table_armscii8.h @@ -0,0 +1,54 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: Hayk Chamyan <hamshen@gmail.com> + * + */ + +#ifndef UNICODE_TABLE_ARMSCII8_H +#define UNICODE_TABLE_ARMSCII8_H + +/* ArmSCII-8 to Unicode table */ +static const unsigned short armscii8_ucs_table[] = { +/*0x00a0, 0x00a1, 0x0587, 0x0589, 0x0029, 0x0028, 0x00bb, 0x00ab,*/ +0x00a0, 0xfffd, 0x0587, 0x0589, 0x0029, 0x0028, 0x00bb, 0x00ab, +0x2014, 0x002e, 0x055d, 0x002c, 0x002d, 0x058a, 0x2026, 0x055c, +0x055b, 0x055e, 0x0531, 0x0561, 0x0532, 0x0562, 0x0533, 0x0563, +0x0534, 0x0564, 0x0535, 0x0565, 0x0536, 0x0566, 0x0537, 0x0567, +0x0538, 0x0568, 0x0539, 0x0569, 0x053a, 0x056a, 0x053b, 0x056b, +0x053c, 0x056c, 0x053d, 0x056d, 0x053e, 0x056e, 0x053f, 0x056f, +0x0540, 0x0570, 0x0541, 0x0571, 0x0542, 0x0572, 0x0543, 0x0573, +0x0544, 0x0574, 0x0545, 0x0575, 0x0546, 0x0576, 0x0547, 0x0577, +0x0548, 0x0578, 0x0549, 0x0579, 0x054a, 0x057a, 0x054b, 0x057b, +0x054c, 0x057c, 0x054d, 0x057d, 0x054e, 0x057e, 0x054f, 0x057f, +0x0550, 0x0580, 0x0551, 0x0581, 0x0552, 0x0582, 0x0553, 0x0583, +/*0x0554, 0x0584, 0x0555, 0x0585, 0x0556, 0x0586, 0x055a, 0x00ff*/ +0x0554, 0x0584, 0x0555, 0x0585, 0x0556, 0x0586, 0x055a, 0xfffd +}; + +static const unsigned char ucs_armscii8_table[] = { +0xa5, 0xa4, 0x2a, 0x2b, 0xab, 0xac, 0xa9, 0x2f +}; + +static const int armscii8_ucs_table_min = 0xa0; +static const int armscii8_ucs_table_len = (sizeof (armscii8_ucs_table) / sizeof (unsigned short)); +static const int armscii8_ucs_table_max = 0xa0 + (sizeof (armscii8_ucs_table) / sizeof (unsigned short)); + +#endif /* UNICODE_TABLE_ARMSCII8_H */ diff --git a/ext/mbstring/libmbfl/filters/unicode_table_big5.h b/ext/mbstring/libmbfl/filters/unicode_table_big5.h new file mode 100644 index 0000000..2616d04 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/unicode_table_big5.h @@ -0,0 +1,5123 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: Rui Hirokawa <hirokawa@php.net> + * + */ + +#ifndef UNICODE_TABLE_BIG5_H +#define UNICODE_TABLE_BIG5_H + +/* Big5 -> UCS */ +static const unsigned short big5_ucs_table[] = { +0x3000,0xff0c,0x3001,0x3002,0xff0e,0x2027,0xff1b,0xff1a, +0xff1f,0xff01,0xfe30,0x2026,0x2025,0xfe50,0xfe51,0xfe52, +0x00b7,0xfe54,0xfe55,0xfe56,0xfe57,0xff5c,0x2013,0xfe31, +0x2014,0xfe33,0x2574,0xfe34,0xfe4f,0xff08,0xff09,0xfe35, +0xfe36,0xff5b,0xff5d,0xfe37,0xfe38,0x3014,0x3015,0xfe39, +0xfe3a,0x3010,0x3011,0xfe3b,0xfe3c,0x300a,0x300b,0xfe3d, +0xfe3e,0x3008,0x3009,0xfe3f,0xfe40,0x300c,0x300d,0xfe41, +0xfe42,0x300e,0x300f,0xfe43,0xfe44,0xfe59,0xfe5a,0xfe5b, +0xfe5c,0xfe5d,0xfe5e,0x2018,0x2019,0x201c,0x201d,0x301d, +0x301e,0x2035,0x2032,0xff03,0xff06,0xff0a,0x203b,0x00a7, +0x3003,0x25cb,0x25cf,0x25b3,0x25b2,0x25ce,0x2606,0x2605, +0x25c7,0x25c6,0x25a1,0x25a0,0x25bd,0x25bc,0x32a3,0x2105, +0x00af,0xffe3,0xff3f,0x02cd,0xfe49,0xfe4a,0xfe4d,0xfe4e, +0xfe4b,0xfe4c,0xfe5f,0xfe60,0xfe61,0xff0b,0xff0d,0x00d7, +0x00f7,0x00b1,0x221a,0xff1c,0xff1e,0xff1d,0x2266,0x2267, +0x2260,0x221e,0x2252,0x2261,0xfe62,0xfe63,0xfe64,0xfe65, +0xfe66,0xff5e,0x2229,0x222a,0x22a5,0x2220,0x221f,0x22bf, +0x33d2,0x33d1,0x222b,0x222e,0x2235,0x2234,0x2640,0x2642, +0x2295,0x2299,0x2191,0x2193,0x2190,0x2192,0x2196,0x2197, +0x2199,0x2198,0x2225,0x2223,0xff0f,0xff3c,0x2215,0xfe68, +0xff04,0xffe5,0x3012,0xffe0,0xffe1,0xff05,0xff20,0x2103, +0x2109,0xfe69,0xfe6a,0xfe6b,0x33d5,0x339c,0x339d,0x339e, +0x33ce,0x33a1,0x338e,0x338f,0x33c4,0x00b0,0x5159,0x515b, +0x515e,0x515d,0x5161,0x5163,0x55e7,0x74e9,0x7cce,0x2581, +0x2582,0x2583,0x2584,0x2585,0x2586,0x2587,0x2588,0x258f, +0x258e,0x258d,0x258c,0x258b,0x258a,0x2589,0x253c,0x2534, +0x252c,0x2524,0x251c,0x2594,0x2500,0x2502,0x2595,0x250c, +0x2510,0x2514,0x2518,0x256d,0x256e,0x2570,0x256f,0x2550, +0x255e,0x256a,0x2561,0x25e2,0x25e3,0x25e5,0x25e4,0x2571, +0x2572,0x2573,0xff10,0xff11,0xff12,0xff13,0xff14,0xff15, +0xff16,0xff17,0xff18,0xff19,0x2160,0x2161,0x2162,0x2163, +0x2164,0x2165,0x2166,0x2167,0x2168,0x2169,0x3021,0x3022, +0x3023,0x3024,0x3025,0x3026,0x3027,0x3028,0x3029,0x5341, +0x5344,0x5345,0xff21,0xff22,0xff23,0xff24,0xff25,0xff26, +0xff27,0xff28,0xff29,0xff2a,0xff2b,0xff2c,0xff2d,0xff2e, +0xff2f,0xff30,0xff31,0xff32,0xff33,0xff34,0xff35,0xff36, +0xff37,0xff38,0xff39,0xff3a,0xff41,0xff42,0xff43,0xff44, +0xff45,0xff46,0xff47,0xff48,0xff49,0xff4a,0xff4b,0xff4c, +0xff4d,0xff4e,0xff4f,0xff50,0xff51,0xff52,0xff53,0xff54, +0xff55,0xff56,0xff57,0xff58,0xff59,0xff5a,0x0391,0x0392, +0x0393,0x0394,0x0395,0x0396,0x0397,0x0398,0x0399,0x039a, +0x039b,0x039c,0x039d,0x039e,0x039f,0x03a0,0x03a1,0x03a3, +0x03a4,0x03a5,0x03a6,0x03a7,0x03a8,0x03a9,0x03b1,0x03b2, +0x03b3,0x03b4,0x03b5,0x03b6,0x03b7,0x03b8,0x03b9,0x03ba, +0x03bb,0x03bc,0x03bd,0x03be,0x03bf,0x03c0,0x03c1,0x03c3, +0x03c4,0x03c5,0x03c6,0x03c7,0x03c8,0x03c9,0x3105,0x3106, +0x3107,0x3108,0x3109,0x310a,0x310b,0x310c,0x310d,0x310e, +0x310f,0x3110,0x3111,0x3112,0x3113,0x3114,0x3115,0x3116, +0x3117,0x3118,0x3119,0x311a,0x311b,0x311c,0x311d,0x311e, +0x311f,0x3120,0x3121,0x3122,0x3123,0x3124,0x3125,0x3126, +0x3127,0x3128,0x3129,0x02d9,0x02c9,0x02ca,0x02c7,0x02cb, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x20ac,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x4e00, +0x4e59,0x4e01,0x4e03,0x4e43,0x4e5d,0x4e86,0x4e8c,0x4eba, +0x513f,0x5165,0x516b,0x51e0,0x5200,0x5201,0x529b,0x5315, +0x5341,0x535c,0x53c8,0x4e09,0x4e0b,0x4e08,0x4e0a,0x4e2b, +0x4e38,0x51e1,0x4e45,0x4e48,0x4e5f,0x4e5e,0x4e8e,0x4ea1, +0x5140,0x5203,0x52fa,0x5343,0x53c9,0x53e3,0x571f,0x58eb, +0x5915,0x5927,0x5973,0x5b50,0x5b51,0x5b53,0x5bf8,0x5c0f, +0x5c22,0x5c38,0x5c71,0x5ddd,0x5de5,0x5df1,0x5df2,0x5df3, +0x5dfe,0x5e72,0x5efe,0x5f0b,0x5f13,0x624d,0x4e11,0x4e10, +0x4e0d,0x4e2d,0x4e30,0x4e39,0x4e4b,0x5c39,0x4e88,0x4e91, +0x4e95,0x4e92,0x4e94,0x4ea2,0x4ec1,0x4ec0,0x4ec3,0x4ec6, +0x4ec7,0x4ecd,0x4eca,0x4ecb,0x4ec4,0x5143,0x5141,0x5167, +0x516d,0x516e,0x516c,0x5197,0x51f6,0x5206,0x5207,0x5208, +0x52fb,0x52fe,0x52ff,0x5316,0x5339,0x5348,0x5347,0x5345, +0x535e,0x5384,0x53cb,0x53ca,0x53cd,0x58ec,0x5929,0x592b, +0x592a,0x592d,0x5b54,0x5c11,0x5c24,0x5c3a,0x5c6f,0x5df4, +0x5e7b,0x5eff,0x5f14,0x5f15,0x5fc3,0x6208,0x6236,0x624b, +0x624e,0x652f,0x6587,0x6597,0x65a4,0x65b9,0x65e5,0x66f0, +0x6708,0x6728,0x6b20,0x6b62,0x6b79,0x6bcb,0x6bd4,0x6bdb, +0x6c0f,0x6c34,0x706b,0x722a,0x7236,0x723b,0x7247,0x7259, +0x725b,0x72ac,0x738b,0x4e19,0x4e16,0x4e15,0x4e14,0x4e18, +0x4e3b,0x4e4d,0x4e4f,0x4e4e,0x4ee5,0x4ed8,0x4ed4,0x4ed5, +0x4ed6,0x4ed7,0x4ee3,0x4ee4,0x4ed9,0x4ede,0x5145,0x5144, +0x5189,0x518a,0x51ac,0x51f9,0x51fa,0x51f8,0x520a,0x52a0, +0x529f,0x5305,0x5306,0x5317,0x531d,0x4edf,0x534a,0x5349, +0x5361,0x5360,0x536f,0x536e,0x53bb,0x53ef,0x53e4,0x53f3, +0x53ec,0x53ee,0x53e9,0x53e8,0x53fc,0x53f8,0x53f5,0x53eb, +0x53e6,0x53ea,0x53f2,0x53f1,0x53f0,0x53e5,0x53ed,0x53fb, +0x56db,0x56da,0x5916,0x592e,0x5931,0x5974,0x5976,0x5b55, +0x5b83,0x5c3c,0x5de8,0x5de7,0x5de6,0x5e02,0x5e03,0x5e73, +0x5e7c,0x5f01,0x5f18,0x5f17,0x5fc5,0x620a,0x6253,0x6254, +0x6252,0x6251,0x65a5,0x65e6,0x672e,0x672c,0x672a,0x672b, +0x672d,0x6b63,0x6bcd,0x6c11,0x6c10,0x6c38,0x6c41,0x6c40, +0x6c3e,0x72af,0x7384,0x7389,0x74dc,0x74e6,0x7518,0x751f, +0x7528,0x7529,0x7530,0x7531,0x7532,0x7533,0x758b,0x767d, +0x76ae,0x76bf,0x76ee,0x77db,0x77e2,0x77f3,0x793a,0x79be, +0x7a74,0x7acb,0x4e1e,0x4e1f,0x4e52,0x4e53,0x4e69,0x4e99, +0x4ea4,0x4ea6,0x4ea5,0x4eff,0x4f09,0x4f19,0x4f0a,0x4f15, +0x4f0d,0x4f10,0x4f11,0x4f0f,0x4ef2,0x4ef6,0x4efb,0x4ef0, +0x4ef3,0x4efd,0x4f01,0x4f0b,0x5149,0x5147,0x5146,0x5148, +0x5168,0x5171,0x518d,0x51b0,0x5217,0x5211,0x5212,0x520e, +0x5216,0x52a3,0x5308,0x5321,0x5320,0x5370,0x5371,0x5409, +0x540f,0x540c,0x540a,0x5410,0x5401,0x540b,0x5404,0x5411, +0x540d,0x5408,0x5403,0x540e,0x5406,0x5412,0x56e0,0x56de, +0x56dd,0x5733,0x5730,0x5728,0x572d,0x572c,0x572f,0x5729, +0x5919,0x591a,0x5937,0x5938,0x5984,0x5978,0x5983,0x597d, +0x5979,0x5982,0x5981,0x5b57,0x5b58,0x5b87,0x5b88,0x5b85, +0x5b89,0x5bfa,0x5c16,0x5c79,0x5dde,0x5e06,0x5e76,0x5e74, +0x5f0f,0x5f1b,0x5fd9,0x5fd6,0x620e,0x620c,0x620d,0x6210, +0x6263,0x625b,0x6258,0x6536,0x65e9,0x65e8,0x65ec,0x65ed, +0x66f2,0x66f3,0x6709,0x673d,0x6734,0x6731,0x6735,0x6b21, +0x6b64,0x6b7b,0x6c16,0x6c5d,0x6c57,0x6c59,0x6c5f,0x6c60, +0x6c50,0x6c55,0x6c61,0x6c5b,0x6c4d,0x6c4e,0x7070,0x725f, +0x725d,0x767e,0x7af9,0x7c73,0x7cf8,0x7f36,0x7f8a,0x7fbd, +0x8001,0x8003,0x800c,0x8012,0x8033,0x807f,0x8089,0x808b, +0x808c,0x81e3,0x81ea,0x81f3,0x81fc,0x820c,0x821b,0x821f, +0x826e,0x8272,0x827e,0x866b,0x8840,0x884c,0x8863,0x897f, +0x9621,0x4e32,0x4ea8,0x4f4d,0x4f4f,0x4f47,0x4f57,0x4f5e, +0x4f34,0x4f5b,0x4f55,0x4f30,0x4f50,0x4f51,0x4f3d,0x4f3a, +0x4f38,0x4f43,0x4f54,0x4f3c,0x4f46,0x4f63,0x4f5c,0x4f60, +0x4f2f,0x4f4e,0x4f36,0x4f59,0x4f5d,0x4f48,0x4f5a,0x514c, +0x514b,0x514d,0x5175,0x51b6,0x51b7,0x5225,0x5224,0x5229, +0x522a,0x5228,0x52ab,0x52a9,0x52aa,0x52ac,0x5323,0x5373, +0x5375,0x541d,0x542d,0x541e,0x543e,0x5426,0x544e,0x5427, +0x5446,0x5443,0x5433,0x5448,0x5442,0x541b,0x5429,0x544a, +0x5439,0x543b,0x5438,0x542e,0x5435,0x5436,0x5420,0x543c, +0x5440,0x5431,0x542b,0x541f,0x542c,0x56ea,0x56f0,0x56e4, +0x56eb,0x574a,0x5751,0x5740,0x574d,0x5747,0x574e,0x573e, +0x5750,0x574f,0x573b,0x58ef,0x593e,0x599d,0x5992,0x59a8, +0x599e,0x59a3,0x5999,0x5996,0x598d,0x59a4,0x5993,0x598a, +0x59a5,0x5b5d,0x5b5c,0x5b5a,0x5b5b,0x5b8c,0x5b8b,0x5b8f, +0x5c2c,0x5c40,0x5c41,0x5c3f,0x5c3e,0x5c90,0x5c91,0x5c94, +0x5c8c,0x5deb,0x5e0c,0x5e8f,0x5e87,0x5e8a,0x5ef7,0x5f04, +0x5f1f,0x5f64,0x5f62,0x5f77,0x5f79,0x5fd8,0x5fcc,0x5fd7, +0x5fcd,0x5ff1,0x5feb,0x5ff8,0x5fea,0x6212,0x6211,0x6284, +0x6297,0x6296,0x6280,0x6276,0x6289,0x626d,0x628a,0x627c, +0x627e,0x6279,0x6273,0x6292,0x626f,0x6298,0x626e,0x6295, +0x6293,0x6291,0x6286,0x6539,0x653b,0x6538,0x65f1,0x66f4, +0x675f,0x674e,0x674f,0x6750,0x6751,0x675c,0x6756,0x675e, +0x6749,0x6746,0x6760,0x6753,0x6757,0x6b65,0x6bcf,0x6c42, +0x6c5e,0x6c99,0x6c81,0x6c88,0x6c89,0x6c85,0x6c9b,0x6c6a, +0x6c7a,0x6c90,0x6c70,0x6c8c,0x6c68,0x6c96,0x6c92,0x6c7d, +0x6c83,0x6c72,0x6c7e,0x6c74,0x6c86,0x6c76,0x6c8d,0x6c94, +0x6c98,0x6c82,0x7076,0x707c,0x707d,0x7078,0x7262,0x7261, +0x7260,0x72c4,0x72c2,0x7396,0x752c,0x752b,0x7537,0x7538, +0x7682,0x76ef,0x77e3,0x79c1,0x79c0,0x79bf,0x7a76,0x7cfb, +0x7f55,0x8096,0x8093,0x809d,0x8098,0x809b,0x809a,0x80b2, +0x826f,0x8292,0x828b,0x828d,0x898b,0x89d2,0x8a00,0x8c37, +0x8c46,0x8c55,0x8c9d,0x8d64,0x8d70,0x8db3,0x8eab,0x8eca, +0x8f9b,0x8fb0,0x8fc2,0x8fc6,0x8fc5,0x8fc4,0x5de1,0x9091, +0x90a2,0x90aa,0x90a6,0x90a3,0x9149,0x91c6,0x91cc,0x9632, +0x962e,0x9631,0x962a,0x962c,0x4e26,0x4e56,0x4e73,0x4e8b, +0x4e9b,0x4e9e,0x4eab,0x4eac,0x4f6f,0x4f9d,0x4f8d,0x4f73, +0x4f7f,0x4f6c,0x4f9b,0x4f8b,0x4f86,0x4f83,0x4f70,0x4f75, +0x4f88,0x4f69,0x4f7b,0x4f96,0x4f7e,0x4f8f,0x4f91,0x4f7a, +0x5154,0x5152,0x5155,0x5169,0x5177,0x5176,0x5178,0x51bd, +0x51fd,0x523b,0x5238,0x5237,0x523a,0x5230,0x522e,0x5236, +0x5241,0x52be,0x52bb,0x5352,0x5354,0x5353,0x5351,0x5366, +0x5377,0x5378,0x5379,0x53d6,0x53d4,0x53d7,0x5473,0x5475, +0x5496,0x5478,0x5495,0x5480,0x547b,0x5477,0x5484,0x5492, +0x5486,0x547c,0x5490,0x5471,0x5476,0x548c,0x549a,0x5462, +0x5468,0x548b,0x547d,0x548e,0x56fa,0x5783,0x5777,0x576a, +0x5769,0x5761,0x5766,0x5764,0x577c,0x591c,0x5949,0x5947, +0x5948,0x5944,0x5954,0x59be,0x59bb,0x59d4,0x59b9,0x59ae, +0x59d1,0x59c6,0x59d0,0x59cd,0x59cb,0x59d3,0x59ca,0x59af, +0x59b3,0x59d2,0x59c5,0x5b5f,0x5b64,0x5b63,0x5b97,0x5b9a, +0x5b98,0x5b9c,0x5b99,0x5b9b,0x5c1a,0x5c48,0x5c45,0x5c46, +0x5cb7,0x5ca1,0x5cb8,0x5ca9,0x5cab,0x5cb1,0x5cb3,0x5e18, +0x5e1a,0x5e16,0x5e15,0x5e1b,0x5e11,0x5e78,0x5e9a,0x5e97, +0x5e9c,0x5e95,0x5e96,0x5ef6,0x5f26,0x5f27,0x5f29,0x5f80, +0x5f81,0x5f7f,0x5f7c,0x5fdd,0x5fe0,0x5ffd,0x5ff5,0x5fff, +0x600f,0x6014,0x602f,0x6035,0x6016,0x602a,0x6015,0x6021, +0x6027,0x6029,0x602b,0x601b,0x6216,0x6215,0x623f,0x623e, +0x6240,0x627f,0x62c9,0x62cc,0x62c4,0x62bf,0x62c2,0x62b9, +0x62d2,0x62db,0x62ab,0x62d3,0x62d4,0x62cb,0x62c8,0x62a8, +0x62bd,0x62bc,0x62d0,0x62d9,0x62c7,0x62cd,0x62b5,0x62da, +0x62b1,0x62d8,0x62d6,0x62d7,0x62c6,0x62ac,0x62ce,0x653e, +0x65a7,0x65bc,0x65fa,0x6614,0x6613,0x660c,0x6606,0x6602, +0x660e,0x6600,0x660f,0x6615,0x660a,0x6607,0x670d,0x670b, +0x676d,0x678b,0x6795,0x6771,0x679c,0x6773,0x6777,0x6787, +0x679d,0x6797,0x676f,0x6770,0x677f,0x6789,0x677e,0x6790, +0x6775,0x679a,0x6793,0x677c,0x676a,0x6772,0x6b23,0x6b66, +0x6b67,0x6b7f,0x6c13,0x6c1b,0x6ce3,0x6ce8,0x6cf3,0x6cb1, +0x6ccc,0x6ce5,0x6cb3,0x6cbd,0x6cbe,0x6cbc,0x6ce2,0x6cab, +0x6cd5,0x6cd3,0x6cb8,0x6cc4,0x6cb9,0x6cc1,0x6cae,0x6cd7, +0x6cc5,0x6cf1,0x6cbf,0x6cbb,0x6ce1,0x6cdb,0x6cca,0x6cac, +0x6cef,0x6cdc,0x6cd6,0x6ce0,0x7095,0x708e,0x7092,0x708a, +0x7099,0x722c,0x722d,0x7238,0x7248,0x7267,0x7269,0x72c0, +0x72ce,0x72d9,0x72d7,0x72d0,0x73a9,0x73a8,0x739f,0x73ab, +0x73a5,0x753d,0x759d,0x7599,0x759a,0x7684,0x76c2,0x76f2, +0x76f4,0x77e5,0x77fd,0x793e,0x7940,0x7941,0x79c9,0x79c8, +0x7a7a,0x7a79,0x7afa,0x7cfe,0x7f54,0x7f8c,0x7f8b,0x8005, +0x80ba,0x80a5,0x80a2,0x80b1,0x80a1,0x80ab,0x80a9,0x80b4, +0x80aa,0x80af,0x81e5,0x81fe,0x820d,0x82b3,0x829d,0x8299, +0x82ad,0x82bd,0x829f,0x82b9,0x82b1,0x82ac,0x82a5,0x82af, +0x82b8,0x82a3,0x82b0,0x82be,0x82b7,0x864e,0x8671,0x521d, +0x8868,0x8ecb,0x8fce,0x8fd4,0x8fd1,0x90b5,0x90b8,0x90b1, +0x90b6,0x91c7,0x91d1,0x9577,0x9580,0x961c,0x9640,0x963f, +0x963b,0x9644,0x9642,0x96b9,0x96e8,0x9752,0x975e,0x4e9f, +0x4ead,0x4eae,0x4fe1,0x4fb5,0x4faf,0x4fbf,0x4fe0,0x4fd1, +0x4fcf,0x4fdd,0x4fc3,0x4fb6,0x4fd8,0x4fdf,0x4fca,0x4fd7, +0x4fae,0x4fd0,0x4fc4,0x4fc2,0x4fda,0x4fce,0x4fde,0x4fb7, +0x5157,0x5192,0x5191,0x51a0,0x524e,0x5243,0x524a,0x524d, +0x524c,0x524b,0x5247,0x52c7,0x52c9,0x52c3,0x52c1,0x530d, +0x5357,0x537b,0x539a,0x53db,0x54ac,0x54c0,0x54a8,0x54ce, +0x54c9,0x54b8,0x54a6,0x54b3,0x54c7,0x54c2,0x54bd,0x54aa, +0x54c1,0x54c4,0x54c8,0x54af,0x54ab,0x54b1,0x54bb,0x54a9, +0x54a7,0x54bf,0x56ff,0x5782,0x578b,0x57a0,0x57a3,0x57a2, +0x57ce,0x57ae,0x5793,0x5955,0x5951,0x594f,0x594e,0x5950, +0x59dc,0x59d8,0x59ff,0x59e3,0x59e8,0x5a03,0x59e5,0x59ea, +0x59da,0x59e6,0x5a01,0x59fb,0x5b69,0x5ba3,0x5ba6,0x5ba4, +0x5ba2,0x5ba5,0x5c01,0x5c4e,0x5c4f,0x5c4d,0x5c4b,0x5cd9, +0x5cd2,0x5df7,0x5e1d,0x5e25,0x5e1f,0x5e7d,0x5ea0,0x5ea6, +0x5efa,0x5f08,0x5f2d,0x5f65,0x5f88,0x5f85,0x5f8a,0x5f8b, +0x5f87,0x5f8c,0x5f89,0x6012,0x601d,0x6020,0x6025,0x600e, +0x6028,0x604d,0x6070,0x6068,0x6062,0x6046,0x6043,0x606c, +0x606b,0x606a,0x6064,0x6241,0x62dc,0x6316,0x6309,0x62fc, +0x62ed,0x6301,0x62ee,0x62fd,0x6307,0x62f1,0x62f7,0x62ef, +0x62ec,0x62fe,0x62f4,0x6311,0x6302,0x653f,0x6545,0x65ab, +0x65bd,0x65e2,0x6625,0x662d,0x6620,0x6627,0x662f,0x661f, +0x6628,0x6631,0x6624,0x66f7,0x67ff,0x67d3,0x67f1,0x67d4, +0x67d0,0x67ec,0x67b6,0x67af,0x67f5,0x67e9,0x67ef,0x67c4, +0x67d1,0x67b4,0x67da,0x67e5,0x67b8,0x67cf,0x67de,0x67f3, +0x67b0,0x67d9,0x67e2,0x67dd,0x67d2,0x6b6a,0x6b83,0x6b86, +0x6bb5,0x6bd2,0x6bd7,0x6c1f,0x6cc9,0x6d0b,0x6d32,0x6d2a, +0x6d41,0x6d25,0x6d0c,0x6d31,0x6d1e,0x6d17,0x6d3b,0x6d3d, +0x6d3e,0x6d36,0x6d1b,0x6cf5,0x6d39,0x6d27,0x6d38,0x6d29, +0x6d2e,0x6d35,0x6d0e,0x6d2b,0x70ab,0x70ba,0x70b3,0x70ac, +0x70af,0x70ad,0x70b8,0x70ae,0x70a4,0x7230,0x7272,0x726f, +0x7274,0x72e9,0x72e0,0x72e1,0x73b7,0x73ca,0x73bb,0x73b2, +0x73cd,0x73c0,0x73b3,0x751a,0x752d,0x754f,0x754c,0x754e, +0x754b,0x75ab,0x75a4,0x75a5,0x75a2,0x75a3,0x7678,0x7686, +0x7687,0x7688,0x76c8,0x76c6,0x76c3,0x76c5,0x7701,0x76f9, +0x76f8,0x7709,0x770b,0x76fe,0x76fc,0x7707,0x77dc,0x7802, +0x7814,0x780c,0x780d,0x7946,0x7949,0x7948,0x7947,0x79b9, +0x79ba,0x79d1,0x79d2,0x79cb,0x7a7f,0x7a81,0x7aff,0x7afd, +0x7c7d,0x7d02,0x7d05,0x7d00,0x7d09,0x7d07,0x7d04,0x7d06, +0x7f38,0x7f8e,0x7fbf,0x8004,0x8010,0x800d,0x8011,0x8036, +0x80d6,0x80e5,0x80da,0x80c3,0x80c4,0x80cc,0x80e1,0x80db, +0x80ce,0x80de,0x80e4,0x80dd,0x81f4,0x8222,0x82e7,0x8303, +0x8305,0x82e3,0x82db,0x82e6,0x8304,0x82e5,0x8302,0x8309, +0x82d2,0x82d7,0x82f1,0x8301,0x82dc,0x82d4,0x82d1,0x82de, +0x82d3,0x82df,0x82ef,0x8306,0x8650,0x8679,0x867b,0x867a, +0x884d,0x886b,0x8981,0x89d4,0x8a08,0x8a02,0x8a03,0x8c9e, +0x8ca0,0x8d74,0x8d73,0x8db4,0x8ecd,0x8ecc,0x8ff0,0x8fe6, +0x8fe2,0x8fea,0x8fe5,0x8fed,0x8feb,0x8fe4,0x8fe8,0x90ca, +0x90ce,0x90c1,0x90c3,0x914b,0x914a,0x91cd,0x9582,0x9650, +0x964b,0x964c,0x964d,0x9762,0x9769,0x97cb,0x97ed,0x97f3, +0x9801,0x98a8,0x98db,0x98df,0x9996,0x9999,0x4e58,0x4eb3, +0x500c,0x500d,0x5023,0x4fef,0x5026,0x5025,0x4ff8,0x5029, +0x5016,0x5006,0x503c,0x501f,0x501a,0x5012,0x5011,0x4ffa, +0x5000,0x5014,0x5028,0x4ff1,0x5021,0x500b,0x5019,0x5018, +0x4ff3,0x4fee,0x502d,0x502a,0x4ffe,0x502b,0x5009,0x517c, +0x51a4,0x51a5,0x51a2,0x51cd,0x51cc,0x51c6,0x51cb,0x5256, +0x525c,0x5254,0x525b,0x525d,0x532a,0x537f,0x539f,0x539d, +0x53df,0x54e8,0x5510,0x5501,0x5537,0x54fc,0x54e5,0x54f2, +0x5506,0x54fa,0x5514,0x54e9,0x54ed,0x54e1,0x5509,0x54ee, +0x54ea,0x54e6,0x5527,0x5507,0x54fd,0x550f,0x5703,0x5704, +0x57c2,0x57d4,0x57cb,0x57c3,0x5809,0x590f,0x5957,0x5958, +0x595a,0x5a11,0x5a18,0x5a1c,0x5a1f,0x5a1b,0x5a13,0x59ec, +0x5a20,0x5a23,0x5a29,0x5a25,0x5a0c,0x5a09,0x5b6b,0x5c58, +0x5bb0,0x5bb3,0x5bb6,0x5bb4,0x5bae,0x5bb5,0x5bb9,0x5bb8, +0x5c04,0x5c51,0x5c55,0x5c50,0x5ced,0x5cfd,0x5cfb,0x5cea, +0x5ce8,0x5cf0,0x5cf6,0x5d01,0x5cf4,0x5dee,0x5e2d,0x5e2b, +0x5eab,0x5ead,0x5ea7,0x5f31,0x5f92,0x5f91,0x5f90,0x6059, +0x6063,0x6065,0x6050,0x6055,0x606d,0x6069,0x606f,0x6084, +0x609f,0x609a,0x608d,0x6094,0x608c,0x6085,0x6096,0x6247, +0x62f3,0x6308,0x62ff,0x634e,0x633e,0x632f,0x6355,0x6342, +0x6346,0x634f,0x6349,0x633a,0x6350,0x633d,0x632a,0x632b, +0x6328,0x634d,0x634c,0x6548,0x6549,0x6599,0x65c1,0x65c5, +0x6642,0x6649,0x664f,0x6643,0x6652,0x664c,0x6645,0x6641, +0x66f8,0x6714,0x6715,0x6717,0x6821,0x6838,0x6848,0x6846, +0x6853,0x6839,0x6842,0x6854,0x6829,0x68b3,0x6817,0x684c, +0x6851,0x683d,0x67f4,0x6850,0x6840,0x683c,0x6843,0x682a, +0x6845,0x6813,0x6818,0x6841,0x6b8a,0x6b89,0x6bb7,0x6c23, +0x6c27,0x6c28,0x6c26,0x6c24,0x6cf0,0x6d6a,0x6d95,0x6d88, +0x6d87,0x6d66,0x6d78,0x6d77,0x6d59,0x6d93,0x6d6c,0x6d89, +0x6d6e,0x6d5a,0x6d74,0x6d69,0x6d8c,0x6d8a,0x6d79,0x6d85, +0x6d65,0x6d94,0x70ca,0x70d8,0x70e4,0x70d9,0x70c8,0x70cf, +0x7239,0x7279,0x72fc,0x72f9,0x72fd,0x72f8,0x72f7,0x7386, +0x73ed,0x7409,0x73ee,0x73e0,0x73ea,0x73de,0x7554,0x755d, +0x755c,0x755a,0x7559,0x75be,0x75c5,0x75c7,0x75b2,0x75b3, +0x75bd,0x75bc,0x75b9,0x75c2,0x75b8,0x768b,0x76b0,0x76ca, +0x76cd,0x76ce,0x7729,0x771f,0x7720,0x7728,0x77e9,0x7830, +0x7827,0x7838,0x781d,0x7834,0x7837,0x7825,0x782d,0x7820, +0x781f,0x7832,0x7955,0x7950,0x7960,0x795f,0x7956,0x795e, +0x795d,0x7957,0x795a,0x79e4,0x79e3,0x79e7,0x79df,0x79e6, +0x79e9,0x79d8,0x7a84,0x7a88,0x7ad9,0x7b06,0x7b11,0x7c89, +0x7d21,0x7d17,0x7d0b,0x7d0a,0x7d20,0x7d22,0x7d14,0x7d10, +0x7d15,0x7d1a,0x7d1c,0x7d0d,0x7d19,0x7d1b,0x7f3a,0x7f5f, +0x7f94,0x7fc5,0x7fc1,0x8006,0x8018,0x8015,0x8019,0x8017, +0x803d,0x803f,0x80f1,0x8102,0x80f0,0x8105,0x80ed,0x80f4, +0x8106,0x80f8,0x80f3,0x8108,0x80fd,0x810a,0x80fc,0x80ef, +0x81ed,0x81ec,0x8200,0x8210,0x822a,0x822b,0x8228,0x822c, +0x82bb,0x832b,0x8352,0x8354,0x834a,0x8338,0x8350,0x8349, +0x8335,0x8334,0x834f,0x8332,0x8339,0x8336,0x8317,0x8340, +0x8331,0x8328,0x8343,0x8654,0x868a,0x86aa,0x8693,0x86a4, +0x86a9,0x868c,0x86a3,0x869c,0x8870,0x8877,0x8881,0x8882, +0x887d,0x8879,0x8a18,0x8a10,0x8a0e,0x8a0c,0x8a15,0x8a0a, +0x8a17,0x8a13,0x8a16,0x8a0f,0x8a11,0x8c48,0x8c7a,0x8c79, +0x8ca1,0x8ca2,0x8d77,0x8eac,0x8ed2,0x8ed4,0x8ecf,0x8fb1, +0x9001,0x9006,0x8ff7,0x9000,0x8ffa,0x8ff4,0x9003,0x8ffd, +0x9005,0x8ff8,0x9095,0x90e1,0x90dd,0x90e2,0x9152,0x914d, +0x914c,0x91d8,0x91dd,0x91d7,0x91dc,0x91d9,0x9583,0x9662, +0x9663,0x9661,0x965b,0x965d,0x9664,0x9658,0x965e,0x96bb, +0x98e2,0x99ac,0x9aa8,0x9ad8,0x9b25,0x9b32,0x9b3c,0x4e7e, +0x507a,0x507d,0x505c,0x5047,0x5043,0x504c,0x505a,0x5049, +0x5065,0x5076,0x504e,0x5055,0x5075,0x5074,0x5077,0x504f, +0x500f,0x506f,0x506d,0x515c,0x5195,0x51f0,0x526a,0x526f, +0x52d2,0x52d9,0x52d8,0x52d5,0x5310,0x530f,0x5319,0x533f, +0x5340,0x533e,0x53c3,0x66fc,0x5546,0x556a,0x5566,0x5544, +0x555e,0x5561,0x5543,0x554a,0x5531,0x5556,0x554f,0x5555, +0x552f,0x5564,0x5538,0x552e,0x555c,0x552c,0x5563,0x5533, +0x5541,0x5557,0x5708,0x570b,0x5709,0x57df,0x5805,0x580a, +0x5806,0x57e0,0x57e4,0x57fa,0x5802,0x5835,0x57f7,0x57f9, +0x5920,0x5962,0x5a36,0x5a41,0x5a49,0x5a66,0x5a6a,0x5a40, +0x5a3c,0x5a62,0x5a5a,0x5a46,0x5a4a,0x5b70,0x5bc7,0x5bc5, +0x5bc4,0x5bc2,0x5bbf,0x5bc6,0x5c09,0x5c08,0x5c07,0x5c60, +0x5c5c,0x5c5d,0x5d07,0x5d06,0x5d0e,0x5d1b,0x5d16,0x5d22, +0x5d11,0x5d29,0x5d14,0x5d19,0x5d24,0x5d27,0x5d17,0x5de2, +0x5e38,0x5e36,0x5e33,0x5e37,0x5eb7,0x5eb8,0x5eb6,0x5eb5, +0x5ebe,0x5f35,0x5f37,0x5f57,0x5f6c,0x5f69,0x5f6b,0x5f97, +0x5f99,0x5f9e,0x5f98,0x5fa1,0x5fa0,0x5f9c,0x607f,0x60a3, +0x6089,0x60a0,0x60a8,0x60cb,0x60b4,0x60e6,0x60bd,0x60c5, +0x60bb,0x60b5,0x60dc,0x60bc,0x60d8,0x60d5,0x60c6,0x60df, +0x60b8,0x60da,0x60c7,0x621a,0x621b,0x6248,0x63a0,0x63a7, +0x6372,0x6396,0x63a2,0x63a5,0x6377,0x6367,0x6398,0x63aa, +0x6371,0x63a9,0x6389,0x6383,0x639b,0x636b,0x63a8,0x6384, +0x6388,0x6399,0x63a1,0x63ac,0x6392,0x638f,0x6380,0x637b, +0x6369,0x6368,0x637a,0x655d,0x6556,0x6551,0x6559,0x6557, +0x555f,0x654f,0x6558,0x6555,0x6554,0x659c,0x659b,0x65ac, +0x65cf,0x65cb,0x65cc,0x65ce,0x665d,0x665a,0x6664,0x6668, +0x6666,0x665e,0x66f9,0x52d7,0x671b,0x6881,0x68af,0x68a2, +0x6893,0x68b5,0x687f,0x6876,0x68b1,0x68a7,0x6897,0x68b0, +0x6883,0x68c4,0x68ad,0x6886,0x6885,0x6894,0x689d,0x68a8, +0x689f,0x68a1,0x6882,0x6b32,0x6bba,0x6beb,0x6bec,0x6c2b, +0x6d8e,0x6dbc,0x6df3,0x6dd9,0x6db2,0x6de1,0x6dcc,0x6de4, +0x6dfb,0x6dfa,0x6e05,0x6dc7,0x6dcb,0x6daf,0x6dd1,0x6dae, +0x6dde,0x6df9,0x6db8,0x6df7,0x6df5,0x6dc5,0x6dd2,0x6e1a, +0x6db5,0x6dda,0x6deb,0x6dd8,0x6dea,0x6df1,0x6dee,0x6de8, +0x6dc6,0x6dc4,0x6daa,0x6dec,0x6dbf,0x6de6,0x70f9,0x7109, +0x710a,0x70fd,0x70ef,0x723d,0x727d,0x7281,0x731c,0x731b, +0x7316,0x7313,0x7319,0x7387,0x7405,0x740a,0x7403,0x7406, +0x73fe,0x740d,0x74e0,0x74f6,0x74f7,0x751c,0x7522,0x7565, +0x7566,0x7562,0x7570,0x758f,0x75d4,0x75d5,0x75b5,0x75ca, +0x75cd,0x768e,0x76d4,0x76d2,0x76db,0x7737,0x773e,0x773c, +0x7736,0x7738,0x773a,0x786b,0x7843,0x784e,0x7965,0x7968, +0x796d,0x79fb,0x7a92,0x7a95,0x7b20,0x7b28,0x7b1b,0x7b2c, +0x7b26,0x7b19,0x7b1e,0x7b2e,0x7c92,0x7c97,0x7c95,0x7d46, +0x7d43,0x7d71,0x7d2e,0x7d39,0x7d3c,0x7d40,0x7d30,0x7d33, +0x7d44,0x7d2f,0x7d42,0x7d32,0x7d31,0x7f3d,0x7f9e,0x7f9a, +0x7fcc,0x7fce,0x7fd2,0x801c,0x804a,0x8046,0x812f,0x8116, +0x8123,0x812b,0x8129,0x8130,0x8124,0x8202,0x8235,0x8237, +0x8236,0x8239,0x838e,0x839e,0x8398,0x8378,0x83a2,0x8396, +0x83bd,0x83ab,0x8392,0x838a,0x8393,0x8389,0x83a0,0x8377, +0x837b,0x837c,0x8386,0x83a7,0x8655,0x5f6a,0x86c7,0x86c0, +0x86b6,0x86c4,0x86b5,0x86c6,0x86cb,0x86b1,0x86af,0x86c9, +0x8853,0x889e,0x8888,0x88ab,0x8892,0x8896,0x888d,0x888b, +0x8993,0x898f,0x8a2a,0x8a1d,0x8a23,0x8a25,0x8a31,0x8a2d, +0x8a1f,0x8a1b,0x8a22,0x8c49,0x8c5a,0x8ca9,0x8cac,0x8cab, +0x8ca8,0x8caa,0x8ca7,0x8d67,0x8d66,0x8dbe,0x8dba,0x8edb, +0x8edf,0x9019,0x900d,0x901a,0x9017,0x9023,0x901f,0x901d, +0x9010,0x9015,0x901e,0x9020,0x900f,0x9022,0x9016,0x901b, +0x9014,0x90e8,0x90ed,0x90fd,0x9157,0x91ce,0x91f5,0x91e6, +0x91e3,0x91e7,0x91ed,0x91e9,0x9589,0x966a,0x9675,0x9673, +0x9678,0x9670,0x9674,0x9676,0x9677,0x966c,0x96c0,0x96ea, +0x96e9,0x7ae0,0x7adf,0x9802,0x9803,0x9b5a,0x9ce5,0x9e75, +0x9e7f,0x9ea5,0x9ebb,0x50a2,0x508d,0x5085,0x5099,0x5091, +0x5080,0x5096,0x5098,0x509a,0x6700,0x51f1,0x5272,0x5274, +0x5275,0x5269,0x52de,0x52dd,0x52db,0x535a,0x53a5,0x557b, +0x5580,0x55a7,0x557c,0x558a,0x559d,0x5598,0x5582,0x559c, +0x55aa,0x5594,0x5587,0x558b,0x5583,0x55b3,0x55ae,0x559f, +0x553e,0x55b2,0x559a,0x55bb,0x55ac,0x55b1,0x557e,0x5589, +0x55ab,0x5599,0x570d,0x582f,0x582a,0x5834,0x5824,0x5830, +0x5831,0x5821,0x581d,0x5820,0x58f9,0x58fa,0x5960,0x5a77, +0x5a9a,0x5a7f,0x5a92,0x5a9b,0x5aa7,0x5b73,0x5b71,0x5bd2, +0x5bcc,0x5bd3,0x5bd0,0x5c0a,0x5c0b,0x5c31,0x5d4c,0x5d50, +0x5d34,0x5d47,0x5dfd,0x5e45,0x5e3d,0x5e40,0x5e43,0x5e7e, +0x5eca,0x5ec1,0x5ec2,0x5ec4,0x5f3c,0x5f6d,0x5fa9,0x5faa, +0x5fa8,0x60d1,0x60e1,0x60b2,0x60b6,0x60e0,0x611c,0x6123, +0x60fa,0x6115,0x60f0,0x60fb,0x60f4,0x6168,0x60f1,0x610e, +0x60f6,0x6109,0x6100,0x6112,0x621f,0x6249,0x63a3,0x638c, +0x63cf,0x63c0,0x63e9,0x63c9,0x63c6,0x63cd,0x63d2,0x63e3, +0x63d0,0x63e1,0x63d6,0x63ed,0x63ee,0x6376,0x63f4,0x63ea, +0x63db,0x6452,0x63da,0x63f9,0x655e,0x6566,0x6562,0x6563, +0x6591,0x6590,0x65af,0x666e,0x6670,0x6674,0x6676,0x666f, +0x6691,0x667a,0x667e,0x6677,0x66fe,0x66ff,0x671f,0x671d, +0x68fa,0x68d5,0x68e0,0x68d8,0x68d7,0x6905,0x68df,0x68f5, +0x68ee,0x68e7,0x68f9,0x68d2,0x68f2,0x68e3,0x68cb,0x68cd, +0x690d,0x6912,0x690e,0x68c9,0x68da,0x696e,0x68fb,0x6b3e, +0x6b3a,0x6b3d,0x6b98,0x6b96,0x6bbc,0x6bef,0x6c2e,0x6c2f, +0x6c2c,0x6e2f,0x6e38,0x6e54,0x6e21,0x6e32,0x6e67,0x6e4a, +0x6e20,0x6e25,0x6e23,0x6e1b,0x6e5b,0x6e58,0x6e24,0x6e56, +0x6e6e,0x6e2d,0x6e26,0x6e6f,0x6e34,0x6e4d,0x6e3a,0x6e2c, +0x6e43,0x6e1d,0x6e3e,0x6ecb,0x6e89,0x6e19,0x6e4e,0x6e63, +0x6e44,0x6e72,0x6e69,0x6e5f,0x7119,0x711a,0x7126,0x7130, +0x7121,0x7136,0x716e,0x711c,0x724c,0x7284,0x7280,0x7336, +0x7325,0x7334,0x7329,0x743a,0x742a,0x7433,0x7422,0x7425, +0x7435,0x7436,0x7434,0x742f,0x741b,0x7426,0x7428,0x7525, +0x7526,0x756b,0x756a,0x75e2,0x75db,0x75e3,0x75d9,0x75d8, +0x75de,0x75e0,0x767b,0x767c,0x7696,0x7693,0x76b4,0x76dc, +0x774f,0x77ed,0x785d,0x786c,0x786f,0x7a0d,0x7a08,0x7a0b, +0x7a05,0x7a00,0x7a98,0x7a97,0x7a96,0x7ae5,0x7ae3,0x7b49, +0x7b56,0x7b46,0x7b50,0x7b52,0x7b54,0x7b4d,0x7b4b,0x7b4f, +0x7b51,0x7c9f,0x7ca5,0x7d5e,0x7d50,0x7d68,0x7d55,0x7d2b, +0x7d6e,0x7d72,0x7d61,0x7d66,0x7d62,0x7d70,0x7d73,0x5584, +0x7fd4,0x7fd5,0x800b,0x8052,0x8085,0x8155,0x8154,0x814b, +0x8151,0x814e,0x8139,0x8146,0x813e,0x814c,0x8153,0x8174, +0x8212,0x821c,0x83e9,0x8403,0x83f8,0x840d,0x83e0,0x83c5, +0x840b,0x83c1,0x83ef,0x83f1,0x83f4,0x8457,0x840a,0x83f0, +0x840c,0x83cc,0x83fd,0x83f2,0x83ca,0x8438,0x840e,0x8404, +0x83dc,0x8407,0x83d4,0x83df,0x865b,0x86df,0x86d9,0x86ed, +0x86d4,0x86db,0x86e4,0x86d0,0x86de,0x8857,0x88c1,0x88c2, +0x88b1,0x8983,0x8996,0x8a3b,0x8a60,0x8a55,0x8a5e,0x8a3c, +0x8a41,0x8a54,0x8a5b,0x8a50,0x8a46,0x8a34,0x8a3a,0x8a36, +0x8a56,0x8c61,0x8c82,0x8caf,0x8cbc,0x8cb3,0x8cbd,0x8cc1, +0x8cbb,0x8cc0,0x8cb4,0x8cb7,0x8cb6,0x8cbf,0x8cb8,0x8d8a, +0x8d85,0x8d81,0x8dce,0x8ddd,0x8dcb,0x8dda,0x8dd1,0x8dcc, +0x8ddb,0x8dc6,0x8efb,0x8ef8,0x8efc,0x8f9c,0x902e,0x9035, +0x9031,0x9038,0x9032,0x9036,0x9102,0x90f5,0x9109,0x90fe, +0x9163,0x9165,0x91cf,0x9214,0x9215,0x9223,0x9209,0x921e, +0x920d,0x9210,0x9207,0x9211,0x9594,0x958f,0x958b,0x9591, +0x9593,0x9592,0x958e,0x968a,0x968e,0x968b,0x967d,0x9685, +0x9686,0x968d,0x9672,0x9684,0x96c1,0x96c5,0x96c4,0x96c6, +0x96c7,0x96ef,0x96f2,0x97cc,0x9805,0x9806,0x9808,0x98e7, +0x98ea,0x98ef,0x98e9,0x98f2,0x98ed,0x99ae,0x99ad,0x9ec3, +0x9ecd,0x9ed1,0x4e82,0x50ad,0x50b5,0x50b2,0x50b3,0x50c5, +0x50be,0x50ac,0x50b7,0x50bb,0x50af,0x50c7,0x527f,0x5277, +0x527d,0x52df,0x52e6,0x52e4,0x52e2,0x52e3,0x532f,0x55df, +0x55e8,0x55d3,0x55e6,0x55ce,0x55dc,0x55c7,0x55d1,0x55e3, +0x55e4,0x55ef,0x55da,0x55e1,0x55c5,0x55c6,0x55e5,0x55c9, +0x5712,0x5713,0x585e,0x5851,0x5858,0x5857,0x585a,0x5854, +0x586b,0x584c,0x586d,0x584a,0x5862,0x5852,0x584b,0x5967, +0x5ac1,0x5ac9,0x5acc,0x5abe,0x5abd,0x5abc,0x5ab3,0x5ac2, +0x5ab2,0x5d69,0x5d6f,0x5e4c,0x5e79,0x5ec9,0x5ec8,0x5f12, +0x5f59,0x5fac,0x5fae,0x611a,0x610f,0x6148,0x611f,0x60f3, +0x611b,0x60f9,0x6101,0x6108,0x614e,0x614c,0x6144,0x614d, +0x613e,0x6134,0x6127,0x610d,0x6106,0x6137,0x6221,0x6222, +0x6413,0x643e,0x641e,0x642a,0x642d,0x643d,0x642c,0x640f, +0x641c,0x6414,0x640d,0x6436,0x6416,0x6417,0x6406,0x656c, +0x659f,0x65b0,0x6697,0x6689,0x6687,0x6688,0x6696,0x6684, +0x6698,0x668d,0x6703,0x6994,0x696d,0x695a,0x6977,0x6960, +0x6954,0x6975,0x6930,0x6982,0x694a,0x6968,0x696b,0x695e, +0x6953,0x6979,0x6986,0x695d,0x6963,0x695b,0x6b47,0x6b72, +0x6bc0,0x6bbf,0x6bd3,0x6bfd,0x6ea2,0x6eaf,0x6ed3,0x6eb6, +0x6ec2,0x6e90,0x6e9d,0x6ec7,0x6ec5,0x6ea5,0x6e98,0x6ebc, +0x6eba,0x6eab,0x6ed1,0x6e96,0x6e9c,0x6ec4,0x6ed4,0x6eaa, +0x6ea7,0x6eb4,0x714e,0x7159,0x7169,0x7164,0x7149,0x7167, +0x715c,0x716c,0x7166,0x714c,0x7165,0x715e,0x7146,0x7168, +0x7156,0x723a,0x7252,0x7337,0x7345,0x733f,0x733e,0x746f, +0x745a,0x7455,0x745f,0x745e,0x7441,0x743f,0x7459,0x745b, +0x745c,0x7576,0x7578,0x7600,0x75f0,0x7601,0x75f2,0x75f1, +0x75fa,0x75ff,0x75f4,0x75f3,0x76de,0x76df,0x775b,0x776b, +0x7766,0x775e,0x7763,0x7779,0x776a,0x776c,0x775c,0x7765, +0x7768,0x7762,0x77ee,0x788e,0x78b0,0x7897,0x7898,0x788c, +0x7889,0x787c,0x7891,0x7893,0x787f,0x797a,0x797f,0x7981, +0x842c,0x79bd,0x7a1c,0x7a1a,0x7a20,0x7a14,0x7a1f,0x7a1e, +0x7a9f,0x7aa0,0x7b77,0x7bc0,0x7b60,0x7b6e,0x7b67,0x7cb1, +0x7cb3,0x7cb5,0x7d93,0x7d79,0x7d91,0x7d81,0x7d8f,0x7d5b, +0x7f6e,0x7f69,0x7f6a,0x7f72,0x7fa9,0x7fa8,0x7fa4,0x8056, +0x8058,0x8086,0x8084,0x8171,0x8170,0x8178,0x8165,0x816e, +0x8173,0x816b,0x8179,0x817a,0x8166,0x8205,0x8247,0x8482, +0x8477,0x843d,0x8431,0x8475,0x8466,0x846b,0x8449,0x846c, +0x845b,0x843c,0x8435,0x8461,0x8463,0x8469,0x846d,0x8446, +0x865e,0x865c,0x865f,0x86f9,0x8713,0x8708,0x8707,0x8700, +0x86fe,0x86fb,0x8702,0x8703,0x8706,0x870a,0x8859,0x88df, +0x88d4,0x88d9,0x88dc,0x88d8,0x88dd,0x88e1,0x88ca,0x88d5, +0x88d2,0x899c,0x89e3,0x8a6b,0x8a72,0x8a73,0x8a66,0x8a69, +0x8a70,0x8a87,0x8a7c,0x8a63,0x8aa0,0x8a71,0x8a85,0x8a6d, +0x8a62,0x8a6e,0x8a6c,0x8a79,0x8a7b,0x8a3e,0x8a68,0x8c62, +0x8c8a,0x8c89,0x8cca,0x8cc7,0x8cc8,0x8cc4,0x8cb2,0x8cc3, +0x8cc2,0x8cc5,0x8de1,0x8ddf,0x8de8,0x8def,0x8df3,0x8dfa, +0x8dea,0x8de4,0x8de6,0x8eb2,0x8f03,0x8f09,0x8efe,0x8f0a, +0x8f9f,0x8fb2,0x904b,0x904a,0x9053,0x9042,0x9054,0x903c, +0x9055,0x9050,0x9047,0x904f,0x904e,0x904d,0x9051,0x903e, +0x9041,0x9112,0x9117,0x916c,0x916a,0x9169,0x91c9,0x9237, +0x9257,0x9238,0x923d,0x9240,0x923e,0x925b,0x924b,0x9264, +0x9251,0x9234,0x9249,0x924d,0x9245,0x9239,0x923f,0x925a, +0x9598,0x9698,0x9694,0x9695,0x96cd,0x96cb,0x96c9,0x96ca, +0x96f7,0x96fb,0x96f9,0x96f6,0x9756,0x9774,0x9776,0x9810, +0x9811,0x9813,0x980a,0x9812,0x980c,0x98fc,0x98f4,0x98fd, +0x98fe,0x99b3,0x99b1,0x99b4,0x9ae1,0x9ce9,0x9e82,0x9f0e, +0x9f13,0x9f20,0x50e7,0x50ee,0x50e5,0x50d6,0x50ed,0x50da, +0x50d5,0x50cf,0x50d1,0x50f1,0x50ce,0x50e9,0x5162,0x51f3, +0x5283,0x5282,0x5331,0x53ad,0x55fe,0x5600,0x561b,0x5617, +0x55fd,0x5614,0x5606,0x5609,0x560d,0x560e,0x55f7,0x5616, +0x561f,0x5608,0x5610,0x55f6,0x5718,0x5716,0x5875,0x587e, +0x5883,0x5893,0x588a,0x5879,0x5885,0x587d,0x58fd,0x5925, +0x5922,0x5924,0x596a,0x5969,0x5ae1,0x5ae6,0x5ae9,0x5ad7, +0x5ad6,0x5ad8,0x5ae3,0x5b75,0x5bde,0x5be7,0x5be1,0x5be5, +0x5be6,0x5be8,0x5be2,0x5be4,0x5bdf,0x5c0d,0x5c62,0x5d84, +0x5d87,0x5e5b,0x5e63,0x5e55,0x5e57,0x5e54,0x5ed3,0x5ed6, +0x5f0a,0x5f46,0x5f70,0x5fb9,0x6147,0x613f,0x614b,0x6177, +0x6162,0x6163,0x615f,0x615a,0x6158,0x6175,0x622a,0x6487, +0x6458,0x6454,0x64a4,0x6478,0x645f,0x647a,0x6451,0x6467, +0x6434,0x646d,0x647b,0x6572,0x65a1,0x65d7,0x65d6,0x66a2, +0x66a8,0x669d,0x699c,0x69a8,0x6995,0x69c1,0x69ae,0x69d3, +0x69cb,0x699b,0x69b7,0x69bb,0x69ab,0x69b4,0x69d0,0x69cd, +0x69ad,0x69cc,0x69a6,0x69c3,0x69a3,0x6b49,0x6b4c,0x6c33, +0x6f33,0x6f14,0x6efe,0x6f13,0x6ef4,0x6f29,0x6f3e,0x6f20, +0x6f2c,0x6f0f,0x6f02,0x6f22,0x6eff,0x6eef,0x6f06,0x6f31, +0x6f38,0x6f32,0x6f23,0x6f15,0x6f2b,0x6f2f,0x6f88,0x6f2a, +0x6eec,0x6f01,0x6ef2,0x6ecc,0x6ef7,0x7194,0x7199,0x717d, +0x718a,0x7184,0x7192,0x723e,0x7292,0x7296,0x7344,0x7350, +0x7464,0x7463,0x746a,0x7470,0x746d,0x7504,0x7591,0x7627, +0x760d,0x760b,0x7609,0x7613,0x76e1,0x76e3,0x7784,0x777d, +0x777f,0x7761,0x78c1,0x789f,0x78a7,0x78b3,0x78a9,0x78a3, +0x798e,0x798f,0x798d,0x7a2e,0x7a31,0x7aaa,0x7aa9,0x7aed, +0x7aef,0x7ba1,0x7b95,0x7b8b,0x7b75,0x7b97,0x7b9d,0x7b94, +0x7b8f,0x7bb8,0x7b87,0x7b84,0x7cb9,0x7cbd,0x7cbe,0x7dbb, +0x7db0,0x7d9c,0x7dbd,0x7dbe,0x7da0,0x7dca,0x7db4,0x7db2, +0x7db1,0x7dba,0x7da2,0x7dbf,0x7db5,0x7db8,0x7dad,0x7dd2, +0x7dc7,0x7dac,0x7f70,0x7fe0,0x7fe1,0x7fdf,0x805e,0x805a, +0x8087,0x8150,0x8180,0x818f,0x8188,0x818a,0x817f,0x8182, +0x81e7,0x81fa,0x8207,0x8214,0x821e,0x824b,0x84c9,0x84bf, +0x84c6,0x84c4,0x8499,0x849e,0x84b2,0x849c,0x84cb,0x84b8, +0x84c0,0x84d3,0x8490,0x84bc,0x84d1,0x84ca,0x873f,0x871c, +0x873b,0x8722,0x8725,0x8734,0x8718,0x8755,0x8737,0x8729, +0x88f3,0x8902,0x88f4,0x88f9,0x88f8,0x88fd,0x88e8,0x891a, +0x88ef,0x8aa6,0x8a8c,0x8a9e,0x8aa3,0x8a8d,0x8aa1,0x8a93, +0x8aa4,0x8aaa,0x8aa5,0x8aa8,0x8a98,0x8a91,0x8a9a,0x8aa7, +0x8c6a,0x8c8d,0x8c8c,0x8cd3,0x8cd1,0x8cd2,0x8d6b,0x8d99, +0x8d95,0x8dfc,0x8f14,0x8f12,0x8f15,0x8f13,0x8fa3,0x9060, +0x9058,0x905c,0x9063,0x9059,0x905e,0x9062,0x905d,0x905b, +0x9119,0x9118,0x911e,0x9175,0x9178,0x9177,0x9174,0x9278, +0x9280,0x9285,0x9298,0x9296,0x927b,0x9293,0x929c,0x92a8, +0x927c,0x9291,0x95a1,0x95a8,0x95a9,0x95a3,0x95a5,0x95a4, +0x9699,0x969c,0x969b,0x96cc,0x96d2,0x9700,0x977c,0x9785, +0x97f6,0x9817,0x9818,0x98af,0x98b1,0x9903,0x9905,0x990c, +0x9909,0x99c1,0x9aaf,0x9ab0,0x9ae6,0x9b41,0x9b42,0x9cf4, +0x9cf6,0x9cf3,0x9ebc,0x9f3b,0x9f4a,0x5104,0x5100,0x50fb, +0x50f5,0x50f9,0x5102,0x5108,0x5109,0x5105,0x51dc,0x5287, +0x5288,0x5289,0x528d,0x528a,0x52f0,0x53b2,0x562e,0x563b, +0x5639,0x5632,0x563f,0x5634,0x5629,0x5653,0x564e,0x5657, +0x5674,0x5636,0x562f,0x5630,0x5880,0x589f,0x589e,0x58b3, +0x589c,0x58ae,0x58a9,0x58a6,0x596d,0x5b09,0x5afb,0x5b0b, +0x5af5,0x5b0c,0x5b08,0x5bee,0x5bec,0x5be9,0x5beb,0x5c64, +0x5c65,0x5d9d,0x5d94,0x5e62,0x5e5f,0x5e61,0x5ee2,0x5eda, +0x5edf,0x5edd,0x5ee3,0x5ee0,0x5f48,0x5f71,0x5fb7,0x5fb5, +0x6176,0x6167,0x616e,0x615d,0x6155,0x6182,0x617c,0x6170, +0x616b,0x617e,0x61a7,0x6190,0x61ab,0x618e,0x61ac,0x619a, +0x61a4,0x6194,0x61ae,0x622e,0x6469,0x646f,0x6479,0x649e, +0x64b2,0x6488,0x6490,0x64b0,0x64a5,0x6493,0x6495,0x64a9, +0x6492,0x64ae,0x64ad,0x64ab,0x649a,0x64ac,0x6499,0x64a2, +0x64b3,0x6575,0x6577,0x6578,0x66ae,0x66ab,0x66b4,0x66b1, +0x6a23,0x6a1f,0x69e8,0x6a01,0x6a1e,0x6a19,0x69fd,0x6a21, +0x6a13,0x6a0a,0x69f3,0x6a02,0x6a05,0x69ed,0x6a11,0x6b50, +0x6b4e,0x6ba4,0x6bc5,0x6bc6,0x6f3f,0x6f7c,0x6f84,0x6f51, +0x6f66,0x6f54,0x6f86,0x6f6d,0x6f5b,0x6f78,0x6f6e,0x6f8e, +0x6f7a,0x6f70,0x6f64,0x6f97,0x6f58,0x6ed5,0x6f6f,0x6f60, +0x6f5f,0x719f,0x71ac,0x71b1,0x71a8,0x7256,0x729b,0x734e, +0x7357,0x7469,0x748b,0x7483,0x747e,0x7480,0x757f,0x7620, +0x7629,0x761f,0x7624,0x7626,0x7621,0x7622,0x769a,0x76ba, +0x76e4,0x778e,0x7787,0x778c,0x7791,0x778b,0x78cb,0x78c5, +0x78ba,0x78ca,0x78be,0x78d5,0x78bc,0x78d0,0x7a3f,0x7a3c, +0x7a40,0x7a3d,0x7a37,0x7a3b,0x7aaf,0x7aae,0x7bad,0x7bb1, +0x7bc4,0x7bb4,0x7bc6,0x7bc7,0x7bc1,0x7ba0,0x7bcc,0x7cca, +0x7de0,0x7df4,0x7def,0x7dfb,0x7dd8,0x7dec,0x7ddd,0x7de8, +0x7de3,0x7dda,0x7dde,0x7de9,0x7d9e,0x7dd9,0x7df2,0x7df9, +0x7f75,0x7f77,0x7faf,0x7fe9,0x8026,0x819b,0x819c,0x819d, +0x81a0,0x819a,0x8198,0x8517,0x853d,0x851a,0x84ee,0x852c, +0x852d,0x8513,0x8511,0x8523,0x8521,0x8514,0x84ec,0x8525, +0x84ff,0x8506,0x8782,0x8774,0x8776,0x8760,0x8766,0x8778, +0x8768,0x8759,0x8757,0x874c,0x8753,0x885b,0x885d,0x8910, +0x8907,0x8912,0x8913,0x8915,0x890a,0x8abc,0x8ad2,0x8ac7, +0x8ac4,0x8a95,0x8acb,0x8af8,0x8ab2,0x8ac9,0x8ac2,0x8abf, +0x8ab0,0x8ad6,0x8acd,0x8ab6,0x8ab9,0x8adb,0x8c4c,0x8c4e, +0x8c6c,0x8ce0,0x8cde,0x8ce6,0x8ce4,0x8cec,0x8ced,0x8ce2, +0x8ce3,0x8cdc,0x8cea,0x8ce1,0x8d6d,0x8d9f,0x8da3,0x8e2b, +0x8e10,0x8e1d,0x8e22,0x8e0f,0x8e29,0x8e1f,0x8e21,0x8e1e, +0x8eba,0x8f1d,0x8f1b,0x8f1f,0x8f29,0x8f26,0x8f2a,0x8f1c, +0x8f1e,0x8f25,0x9069,0x906e,0x9068,0x906d,0x9077,0x9130, +0x912d,0x9127,0x9131,0x9187,0x9189,0x918b,0x9183,0x92c5, +0x92bb,0x92b7,0x92ea,0x92ac,0x92e4,0x92c1,0x92b3,0x92bc, +0x92d2,0x92c7,0x92f0,0x92b2,0x95ad,0x95b1,0x9704,0x9706, +0x9707,0x9709,0x9760,0x978d,0x978b,0x978f,0x9821,0x982b, +0x981c,0x98b3,0x990a,0x9913,0x9912,0x9918,0x99dd,0x99d0, +0x99df,0x99db,0x99d1,0x99d5,0x99d2,0x99d9,0x9ab7,0x9aee, +0x9aef,0x9b27,0x9b45,0x9b44,0x9b77,0x9b6f,0x9d06,0x9d09, +0x9d03,0x9ea9,0x9ebe,0x9ece,0x58a8,0x9f52,0x5112,0x5118, +0x5114,0x5110,0x5115,0x5180,0x51aa,0x51dd,0x5291,0x5293, +0x52f3,0x5659,0x566b,0x5679,0x5669,0x5664,0x5678,0x566a, +0x5668,0x5665,0x5671,0x566f,0x566c,0x5662,0x5676,0x58c1, +0x58be,0x58c7,0x58c5,0x596e,0x5b1d,0x5b34,0x5b78,0x5bf0, +0x5c0e,0x5f4a,0x61b2,0x6191,0x61a9,0x618a,0x61cd,0x61b6, +0x61be,0x61ca,0x61c8,0x6230,0x64c5,0x64c1,0x64cb,0x64bb, +0x64bc,0x64da,0x64c4,0x64c7,0x64c2,0x64cd,0x64bf,0x64d2, +0x64d4,0x64be,0x6574,0x66c6,0x66c9,0x66b9,0x66c4,0x66c7, +0x66b8,0x6a3d,0x6a38,0x6a3a,0x6a59,0x6a6b,0x6a58,0x6a39, +0x6a44,0x6a62,0x6a61,0x6a4b,0x6a47,0x6a35,0x6a5f,0x6a48, +0x6b59,0x6b77,0x6c05,0x6fc2,0x6fb1,0x6fa1,0x6fc3,0x6fa4, +0x6fc1,0x6fa7,0x6fb3,0x6fc0,0x6fb9,0x6fb6,0x6fa6,0x6fa0, +0x6fb4,0x71be,0x71c9,0x71d0,0x71d2,0x71c8,0x71d5,0x71b9, +0x71ce,0x71d9,0x71dc,0x71c3,0x71c4,0x7368,0x749c,0x74a3, +0x7498,0x749f,0x749e,0x74e2,0x750c,0x750d,0x7634,0x7638, +0x763a,0x76e7,0x76e5,0x77a0,0x779e,0x779f,0x77a5,0x78e8, +0x78da,0x78ec,0x78e7,0x79a6,0x7a4d,0x7a4e,0x7a46,0x7a4c, +0x7a4b,0x7aba,0x7bd9,0x7c11,0x7bc9,0x7be4,0x7bdb,0x7be1, +0x7be9,0x7be6,0x7cd5,0x7cd6,0x7e0a,0x7e11,0x7e08,0x7e1b, +0x7e23,0x7e1e,0x7e1d,0x7e09,0x7e10,0x7f79,0x7fb2,0x7ff0, +0x7ff1,0x7fee,0x8028,0x81b3,0x81a9,0x81a8,0x81fb,0x8208, +0x8258,0x8259,0x854a,0x8559,0x8548,0x8568,0x8569,0x8543, +0x8549,0x856d,0x856a,0x855e,0x8783,0x879f,0x879e,0x87a2, +0x878d,0x8861,0x892a,0x8932,0x8925,0x892b,0x8921,0x89aa, +0x89a6,0x8ae6,0x8afa,0x8aeb,0x8af1,0x8b00,0x8adc,0x8ae7, +0x8aee,0x8afe,0x8b01,0x8b02,0x8af7,0x8aed,0x8af3,0x8af6, +0x8afc,0x8c6b,0x8c6d,0x8c93,0x8cf4,0x8e44,0x8e31,0x8e34, +0x8e42,0x8e39,0x8e35,0x8f3b,0x8f2f,0x8f38,0x8f33,0x8fa8, +0x8fa6,0x9075,0x9074,0x9078,0x9072,0x907c,0x907a,0x9134, +0x9192,0x9320,0x9336,0x92f8,0x9333,0x932f,0x9322,0x92fc, +0x932b,0x9304,0x931a,0x9310,0x9326,0x9321,0x9315,0x932e, +0x9319,0x95bb,0x96a7,0x96a8,0x96aa,0x96d5,0x970e,0x9711, +0x9716,0x970d,0x9713,0x970f,0x975b,0x975c,0x9766,0x9798, +0x9830,0x9838,0x983b,0x9837,0x982d,0x9839,0x9824,0x9910, +0x9928,0x991e,0x991b,0x9921,0x991a,0x99ed,0x99e2,0x99f1, +0x9ab8,0x9abc,0x9afb,0x9aed,0x9b28,0x9b91,0x9d15,0x9d23, +0x9d26,0x9d28,0x9d12,0x9d1b,0x9ed8,0x9ed4,0x9f8d,0x9f9c, +0x512a,0x511f,0x5121,0x5132,0x52f5,0x568e,0x5680,0x5690, +0x5685,0x5687,0x568f,0x58d5,0x58d3,0x58d1,0x58ce,0x5b30, +0x5b2a,0x5b24,0x5b7a,0x5c37,0x5c68,0x5dbc,0x5dba,0x5dbd, +0x5db8,0x5e6b,0x5f4c,0x5fbd,0x61c9,0x61c2,0x61c7,0x61e6, +0x61cb,0x6232,0x6234,0x64ce,0x64ca,0x64d8,0x64e0,0x64f0, +0x64e6,0x64ec,0x64f1,0x64e2,0x64ed,0x6582,0x6583,0x66d9, +0x66d6,0x6a80,0x6a94,0x6a84,0x6aa2,0x6a9c,0x6adb,0x6aa3, +0x6a7e,0x6a97,0x6a90,0x6aa0,0x6b5c,0x6bae,0x6bda,0x6c08, +0x6fd8,0x6ff1,0x6fdf,0x6fe0,0x6fdb,0x6fe4,0x6feb,0x6fef, +0x6f80,0x6fec,0x6fe1,0x6fe9,0x6fd5,0x6fee,0x6ff0,0x71e7, +0x71df,0x71ee,0x71e6,0x71e5,0x71ed,0x71ec,0x71f4,0x71e0, +0x7235,0x7246,0x7370,0x7372,0x74a9,0x74b0,0x74a6,0x74a8, +0x7646,0x7642,0x764c,0x76ea,0x77b3,0x77aa,0x77b0,0x77ac, +0x77a7,0x77ad,0x77ef,0x78f7,0x78fa,0x78f4,0x78ef,0x7901, +0x79a7,0x79aa,0x7a57,0x7abf,0x7c07,0x7c0d,0x7bfe,0x7bf7, +0x7c0c,0x7be0,0x7ce0,0x7cdc,0x7cde,0x7ce2,0x7cdf,0x7cd9, +0x7cdd,0x7e2e,0x7e3e,0x7e46,0x7e37,0x7e32,0x7e43,0x7e2b, +0x7e3d,0x7e31,0x7e45,0x7e41,0x7e34,0x7e39,0x7e48,0x7e35, +0x7e3f,0x7e2f,0x7f44,0x7ff3,0x7ffc,0x8071,0x8072,0x8070, +0x806f,0x8073,0x81c6,0x81c3,0x81ba,0x81c2,0x81c0,0x81bf, +0x81bd,0x81c9,0x81be,0x81e8,0x8209,0x8271,0x85aa,0x8584, +0x857e,0x859c,0x8591,0x8594,0x85af,0x859b,0x8587,0x85a8, +0x858a,0x8667,0x87c0,0x87d1,0x87b3,0x87d2,0x87c6,0x87ab, +0x87bb,0x87ba,0x87c8,0x87cb,0x893b,0x8936,0x8944,0x8938, +0x893d,0x89ac,0x8b0e,0x8b17,0x8b19,0x8b1b,0x8b0a,0x8b20, +0x8b1d,0x8b04,0x8b10,0x8c41,0x8c3f,0x8c73,0x8cfa,0x8cfd, +0x8cfc,0x8cf8,0x8cfb,0x8da8,0x8e49,0x8e4b,0x8e48,0x8e4a, +0x8f44,0x8f3e,0x8f42,0x8f45,0x8f3f,0x907f,0x907d,0x9084, +0x9081,0x9082,0x9080,0x9139,0x91a3,0x919e,0x919c,0x934d, +0x9382,0x9328,0x9375,0x934a,0x9365,0x934b,0x9318,0x937e, +0x936c,0x935b,0x9370,0x935a,0x9354,0x95ca,0x95cb,0x95cc, +0x95c8,0x95c6,0x96b1,0x96b8,0x96d6,0x971c,0x971e,0x97a0, +0x97d3,0x9846,0x98b6,0x9935,0x9a01,0x99ff,0x9bae,0x9bab, +0x9baa,0x9bad,0x9d3b,0x9d3f,0x9e8b,0x9ecf,0x9ede,0x9edc, +0x9edd,0x9edb,0x9f3e,0x9f4b,0x53e2,0x5695,0x56ae,0x58d9, +0x58d8,0x5b38,0x5f5d,0x61e3,0x6233,0x64f4,0x64f2,0x64fe, +0x6506,0x64fa,0x64fb,0x64f7,0x65b7,0x66dc,0x6726,0x6ab3, +0x6aac,0x6ac3,0x6abb,0x6ab8,0x6ac2,0x6aae,0x6aaf,0x6b5f, +0x6b78,0x6baf,0x7009,0x700b,0x6ffe,0x7006,0x6ffa,0x7011, +0x700f,0x71fb,0x71fc,0x71fe,0x71f8,0x7377,0x7375,0x74a7, +0x74bf,0x7515,0x7656,0x7658,0x7652,0x77bd,0x77bf,0x77bb, +0x77bc,0x790e,0x79ae,0x7a61,0x7a62,0x7a60,0x7ac4,0x7ac5, +0x7c2b,0x7c27,0x7c2a,0x7c1e,0x7c23,0x7c21,0x7ce7,0x7e54, +0x7e55,0x7e5e,0x7e5a,0x7e61,0x7e52,0x7e59,0x7f48,0x7ff9, +0x7ffb,0x8077,0x8076,0x81cd,0x81cf,0x820a,0x85cf,0x85a9, +0x85cd,0x85d0,0x85c9,0x85b0,0x85ba,0x85b9,0x85a6,0x87ef, +0x87ec,0x87f2,0x87e0,0x8986,0x89b2,0x89f4,0x8b28,0x8b39, +0x8b2c,0x8b2b,0x8c50,0x8d05,0x8e59,0x8e63,0x8e66,0x8e64, +0x8e5f,0x8e55,0x8ec0,0x8f49,0x8f4d,0x9087,0x9083,0x9088, +0x91ab,0x91ac,0x91d0,0x9394,0x938a,0x9396,0x93a2,0x93b3, +0x93ae,0x93ac,0x93b0,0x9398,0x939a,0x9397,0x95d4,0x95d6, +0x95d0,0x95d5,0x96e2,0x96dc,0x96d9,0x96db,0x96de,0x9724, +0x97a3,0x97a6,0x97ad,0x97f9,0x984d,0x984f,0x984c,0x984e, +0x9853,0x98ba,0x993e,0x993f,0x993d,0x992e,0x99a5,0x9a0e, +0x9ac1,0x9b03,0x9b06,0x9b4f,0x9b4e,0x9b4d,0x9bca,0x9bc9, +0x9bfd,0x9bc8,0x9bc0,0x9d51,0x9d5d,0x9d60,0x9ee0,0x9f15, +0x9f2c,0x5133,0x56a5,0x58de,0x58df,0x58e2,0x5bf5,0x9f90, +0x5eec,0x61f2,0x61f7,0x61f6,0x61f5,0x6500,0x650f,0x66e0, +0x66dd,0x6ae5,0x6add,0x6ada,0x6ad3,0x701b,0x701f,0x7028, +0x701a,0x701d,0x7015,0x7018,0x7206,0x720d,0x7258,0x72a2, +0x7378,0x737a,0x74bd,0x74ca,0x74e3,0x7587,0x7586,0x765f, +0x7661,0x77c7,0x7919,0x79b1,0x7a6b,0x7a69,0x7c3e,0x7c3f, +0x7c38,0x7c3d,0x7c37,0x7c40,0x7e6b,0x7e6d,0x7e79,0x7e69, +0x7e6a,0x7f85,0x7e73,0x7fb6,0x7fb9,0x7fb8,0x81d8,0x85e9, +0x85dd,0x85ea,0x85d5,0x85e4,0x85e5,0x85f7,0x87fb,0x8805, +0x880d,0x87f9,0x87fe,0x8960,0x895f,0x8956,0x895e,0x8b41, +0x8b5c,0x8b58,0x8b49,0x8b5a,0x8b4e,0x8b4f,0x8b46,0x8b59, +0x8d08,0x8d0a,0x8e7c,0x8e72,0x8e87,0x8e76,0x8e6c,0x8e7a, +0x8e74,0x8f54,0x8f4e,0x8fad,0x908a,0x908b,0x91b1,0x91ae, +0x93e1,0x93d1,0x93df,0x93c3,0x93c8,0x93dc,0x93dd,0x93d6, +0x93e2,0x93cd,0x93d8,0x93e4,0x93d7,0x93e8,0x95dc,0x96b4, +0x96e3,0x972a,0x9727,0x9761,0x97dc,0x97fb,0x985e,0x9858, +0x985b,0x98bc,0x9945,0x9949,0x9a16,0x9a19,0x9b0d,0x9be8, +0x9be7,0x9bd6,0x9bdb,0x9d89,0x9d61,0x9d72,0x9d6a,0x9d6c, +0x9e92,0x9e97,0x9e93,0x9eb4,0x52f8,0x56a8,0x56b7,0x56b6, +0x56b4,0x56bc,0x58e4,0x5b40,0x5b43,0x5b7d,0x5bf6,0x5dc9, +0x61f8,0x61fa,0x6518,0x6514,0x6519,0x66e6,0x6727,0x6aec, +0x703e,0x7030,0x7032,0x7210,0x737b,0x74cf,0x7662,0x7665, +0x7926,0x792a,0x792c,0x792b,0x7ac7,0x7af6,0x7c4c,0x7c43, +0x7c4d,0x7cef,0x7cf0,0x8fae,0x7e7d,0x7e7c,0x7e82,0x7f4c, +0x8000,0x81da,0x8266,0x85fb,0x85f9,0x8611,0x85fa,0x8606, +0x860b,0x8607,0x860a,0x8814,0x8815,0x8964,0x89ba,0x89f8, +0x8b70,0x8b6c,0x8b66,0x8b6f,0x8b5f,0x8b6b,0x8d0f,0x8d0d, +0x8e89,0x8e81,0x8e85,0x8e82,0x91b4,0x91cb,0x9418,0x9403, +0x93fd,0x95e1,0x9730,0x98c4,0x9952,0x9951,0x99a8,0x9a2b, +0x9a30,0x9a37,0x9a35,0x9c13,0x9c0d,0x9e79,0x9eb5,0x9ee8, +0x9f2f,0x9f5f,0x9f63,0x9f61,0x5137,0x5138,0x56c1,0x56c0, +0x56c2,0x5914,0x5c6c,0x5dcd,0x61fc,0x61fe,0x651d,0x651c, +0x6595,0x66e9,0x6afb,0x6b04,0x6afa,0x6bb2,0x704c,0x721b, +0x72a7,0x74d6,0x74d4,0x7669,0x77d3,0x7c50,0x7e8f,0x7e8c, +0x7fbc,0x8617,0x862d,0x861a,0x8823,0x8822,0x8821,0x881f, +0x896a,0x896c,0x89bd,0x8b74,0x8b77,0x8b7d,0x8d13,0x8e8a, +0x8e8d,0x8e8b,0x8f5f,0x8faf,0x91ba,0x942e,0x9433,0x9435, +0x943a,0x9438,0x9432,0x942b,0x95e2,0x9738,0x9739,0x9732, +0x97ff,0x9867,0x9865,0x9957,0x9a45,0x9a43,0x9a40,0x9a3e, +0x9acf,0x9b54,0x9b51,0x9c2d,0x9c25,0x9daf,0x9db4,0x9dc2, +0x9db8,0x9e9d,0x9eef,0x9f19,0x9f5c,0x9f66,0x9f67,0x513c, +0x513b,0x56c8,0x56ca,0x56c9,0x5b7f,0x5dd4,0x5dd2,0x5f4e, +0x61ff,0x6524,0x6b0a,0x6b61,0x7051,0x7058,0x7380,0x74e4, +0x758a,0x766e,0x766c,0x79b3,0x7c60,0x7c5f,0x807e,0x807d, +0x81df,0x8972,0x896f,0x89fc,0x8b80,0x8d16,0x8d17,0x8e91, +0x8e93,0x8f61,0x9148,0x9444,0x9451,0x9452,0x973d,0x973e, +0x97c3,0x97c1,0x986b,0x9955,0x9a55,0x9a4d,0x9ad2,0x9b1a, +0x9c49,0x9c31,0x9c3e,0x9c3b,0x9dd3,0x9dd7,0x9f34,0x9f6c, +0x9f6a,0x9f94,0x56cc,0x5dd6,0x6200,0x6523,0x652b,0x652a, +0x66ec,0x6b10,0x74da,0x7aca,0x7c64,0x7c63,0x7c65,0x7e93, +0x7e96,0x7e94,0x81e2,0x8638,0x863f,0x8831,0x8b8a,0x9090, +0x908f,0x9463,0x9460,0x9464,0x9768,0x986f,0x995c,0x9a5a, +0x9a5b,0x9a57,0x9ad3,0x9ad4,0x9ad1,0x9c54,0x9c57,0x9c56, +0x9de5,0x9e9f,0x9ef4,0x56d1,0x58e9,0x652c,0x705e,0x7671, +0x7672,0x77d7,0x7f50,0x7f88,0x8836,0x8839,0x8862,0x8b93, +0x8b92,0x8b96,0x8277,0x8d1b,0x91c0,0x946a,0x9742,0x9748, +0x9744,0x97c6,0x9870,0x9a5f,0x9b22,0x9b58,0x9c5f,0x9df9, +0x9dfa,0x9e7c,0x9e7d,0x9f07,0x9f77,0x9f72,0x5ef3,0x6b16, +0x7063,0x7c6c,0x7c6e,0x883b,0x89c0,0x8ea1,0x91c1,0x9472, +0x9470,0x9871,0x995e,0x9ad6,0x9b23,0x9ecc,0x7064,0x77da, +0x8b9a,0x9477,0x97c9,0x9a62,0x9a65,0x7e9c,0x8b9c,0x8eaa, +0x91c5,0x947d,0x947e,0x947c,0x9c77,0x9c78,0x9ef7,0x8c54, +0x947f,0x9e1a,0x7228,0x9a6a,0x9b31,0x9e1b,0x9e1e,0x7c72, +0xf6b1,0xf6b2,0xf6b3,0xf6b4,0xf6b5,0xf6b6,0xf6b7,0xf6b8, +0xf6b9,0xf6ba,0xf6bb,0xf6bc,0xf6bd,0xf6be,0xf6bf,0xf6c0, +0xf6c1,0xf6c2,0xf6c3,0xf6c4,0xf6c5,0xf6c6,0xf6c7,0xf6c8, +0xf6c9,0xf6ca,0xf6cb,0xf6cc,0xf6cd,0xf6ce,0xf6cf,0xf6d0, +0xf6d1,0xf6d2,0xf6d3,0xf6d4,0xf6d5,0xf6d6,0xf6d7,0xf6d8, +0xf6d9,0xf6da,0xf6db,0xf6dc,0xf6dd,0xf6de,0xf6df,0xf6e0, +0xf6e1,0xf6e2,0xf6e3,0xf6e4,0xf6e5,0xf6e6,0xf6e7,0xf6e8, +0xf6e9,0xf6ea,0xf6eb,0xf6ec,0xf6ed,0xf6ee,0xf6ef,0xf6f0, +0xf6f1,0xf6f2,0xf6f3,0xf6f4,0xf6f5,0xf6f6,0xf6f7,0xf6f8, +0xf6f9,0xf6fa,0xf6fb,0xf6fc,0xf6fd,0xf6fe,0xf6ff,0xf700, +0xf701,0xf702,0xf703,0xf704,0xf705,0xf706,0xf707,0xf708, +0xf709,0xf70a,0xf70b,0xf70c,0xf70d,0xf70e,0xf70f,0xf710, +0xf711,0xf712,0xf713,0xf714,0xf715,0xf716,0xf717,0xf718, +0xf719,0xf71a,0xf71b,0xf71c,0xf71d,0xf71e,0xf71f,0xf720, +0xf721,0xf722,0xf723,0xf724,0xf725,0xf726,0xf727,0xf728, +0xf729,0xf72a,0xf72b,0xf72c,0xf72d,0xf72e,0xf72f,0xf730, +0xf731,0xf732,0xf733,0xf734,0xf735,0xf736,0xf737,0xf738, +0xf739,0xf73a,0xf73b,0xf73c,0xf73d,0xf73e,0xf73f,0xf740, +0xf741,0xf742,0xf743,0xf744,0xf745,0xf746,0xf747,0xf748, +0xf749,0xf74a,0xf74b,0xf74c,0xf74d,0xf74e,0xf74f,0xf750, +0xf751,0xf752,0xf753,0xf754,0xf755,0xf756,0xf757,0xf758, +0xf759,0xf75a,0xf75b,0xf75c,0xf75d,0xf75e,0xf75f,0xf760, +0xf761,0xf762,0xf763,0xf764,0xf765,0xf766,0xf767,0xf768, +0xf769,0xf76a,0xf76b,0xf76c,0xf76d,0xf76e,0xf76f,0xf770, +0xf771,0xf772,0xf773,0xf774,0xf775,0xf776,0xf777,0xf778, +0xf779,0xf77a,0xf77b,0xf77c,0xf77d,0xf77e,0xf77f,0xf780, +0xf781,0xf782,0xf783,0xf784,0xf785,0xf786,0xf787,0xf788, +0xf789,0xf78a,0xf78b,0xf78c,0xf78d,0xf78e,0xf78f,0xf790, +0xf791,0xf792,0xf793,0xf794,0xf795,0xf796,0xf797,0xf798, +0xf799,0xf79a,0xf79b,0xf79c,0xf79d,0xf79e,0xf79f,0xf7a0, +0xf7a1,0xf7a2,0xf7a3,0xf7a4,0xf7a5,0xf7a6,0xf7a7,0xf7a8, +0xf7a9,0xf7aa,0xf7ab,0xf7ac,0xf7ad,0xf7ae,0xf7af,0xf7b0, +0xf7b1,0xf7b2,0xf7b3,0xf7b4,0xf7b5,0xf7b6,0xf7b7,0xf7b8, +0xf7b9,0xf7ba,0xf7bb,0xf7bc,0xf7bd,0xf7be,0xf7bf,0xf7c0, +0xf7c1,0xf7c2,0xf7c3,0xf7c4,0xf7c5,0xf7c6,0xf7c7,0xf7c8, +0xf7c9,0xf7ca,0xf7cb,0xf7cc,0xf7cd,0xf7ce,0xf7cf,0xf7d0, +0xf7d1,0xf7d2,0xf7d3,0xf7d4,0xf7d5,0xf7d6,0xf7d7,0xf7d8, +0xf7d9,0xf7da,0xf7db,0xf7dc,0xf7dd,0xf7de,0xf7df,0xf7e0, +0xf7e1,0xf7e2,0xf7e3,0xf7e4,0xf7e5,0xf7e6,0xf7e7,0xf7e8, +0xf7e9,0xf7ea,0xf7eb,0xf7ec,0xf7ed,0xf7ee,0xf7ef,0xf7f0, +0xf7f1,0xf7f2,0xf7f3,0xf7f4,0xf7f5,0xf7f6,0xf7f7,0xf7f8, +0xf7f9,0xf7fa,0xf7fb,0xf7fc,0xf7fd,0xf7fe,0xf7ff,0xf800, +0xf801,0xf802,0xf803,0xf804,0xf805,0xf806,0xf807,0xf808, +0xf809,0xf80a,0xf80b,0xf80c,0xf80d,0xf80e,0xf80f,0xf810, +0xf811,0xf812,0xf813,0xf814,0xf815,0xf816,0xf817,0xf818, +0xf819,0xf81a,0xf81b,0xf81c,0xf81d,0xf81e,0xf81f,0xf820, +0xf821,0xf822,0xf823,0xf824,0xf825,0xf826,0xf827,0xf828, +0xf829,0xf82a,0xf82b,0xf82c,0xf82d,0xf82e,0xf82f,0xf830, +0xf831,0xf832,0xf833,0xf834,0xf835,0xf836,0xf837,0xf838, +0xf839,0xf83a,0xf83b,0xf83c,0xf83d,0xf83e,0xf83f,0xf840, +0xf841,0xf842,0xf843,0xf844,0xf845,0xf846,0xf847,0xf848, +0x4e42,0x4e5c,0x51f5,0x531a,0x5382,0x4e07,0x4e0c,0x4e47, +0x4e8d,0x56d7,0xfa0c,0x5c6e,0x5f73,0x4e0f,0x5187,0x4e0e, +0x4e2e,0x4e93,0x4ec2,0x4ec9,0x4ec8,0x5198,0x52fc,0x536c, +0x53b9,0x5720,0x5903,0x592c,0x5c10,0x5dff,0x65e1,0x6bb3, +0x6bcc,0x6c14,0x723f,0x4e31,0x4e3c,0x4ee8,0x4edc,0x4ee9, +0x4ee1,0x4edd,0x4eda,0x520c,0x531c,0x534c,0x5722,0x5723, +0x5917,0x592f,0x5b81,0x5b84,0x5c12,0x5c3b,0x5c74,0x5c73, +0x5e04,0x5e80,0x5e82,0x5fc9,0x6209,0x6250,0x6c15,0x6c36, +0x6c43,0x6c3f,0x6c3b,0x72ae,0x72b0,0x738a,0x79b8,0x808a, +0x961e,0x4f0e,0x4f18,0x4f2c,0x4ef5,0x4f14,0x4ef1,0x4f00, +0x4ef7,0x4f08,0x4f1d,0x4f02,0x4f05,0x4f22,0x4f13,0x4f04, +0x4ef4,0x4f12,0x51b1,0x5213,0x5209,0x5210,0x52a6,0x5322, +0x531f,0x534d,0x538a,0x5407,0x56e1,0x56df,0x572e,0x572a, +0x5734,0x593c,0x5980,0x597c,0x5985,0x597b,0x597e,0x5977, +0x597f,0x5b56,0x5c15,0x5c25,0x5c7c,0x5c7a,0x5c7b,0x5c7e, +0x5ddf,0x5e75,0x5e84,0x5f02,0x5f1a,0x5f74,0x5fd5,0x5fd4, +0x5fcf,0x625c,0x625e,0x6264,0x6261,0x6266,0x6262,0x6259, +0x6260,0x625a,0x6265,0x65ef,0x65ee,0x673e,0x6739,0x6738, +0x673b,0x673a,0x673f,0x673c,0x6733,0x6c18,0x6c46,0x6c52, +0x6c5c,0x6c4f,0x6c4a,0x6c54,0x6c4b,0x6c4c,0x7071,0x725e, +0x72b4,0x72b5,0x738e,0x752a,0x767f,0x7a75,0x7f51,0x8278, +0x827c,0x8280,0x827d,0x827f,0x864d,0x897e,0x9099,0x9097, +0x9098,0x909b,0x9094,0x9622,0x9624,0x9620,0x9623,0x4f56, +0x4f3b,0x4f62,0x4f49,0x4f53,0x4f64,0x4f3e,0x4f67,0x4f52, +0x4f5f,0x4f41,0x4f58,0x4f2d,0x4f33,0x4f3f,0x4f61,0x518f, +0x51b9,0x521c,0x521e,0x5221,0x52ad,0x52ae,0x5309,0x5363, +0x5372,0x538e,0x538f,0x5430,0x5437,0x542a,0x5454,0x5445, +0x5419,0x541c,0x5425,0x5418,0x543d,0x544f,0x5441,0x5428, +0x5424,0x5447,0x56ee,0x56e7,0x56e5,0x5741,0x5745,0x574c, +0x5749,0x574b,0x5752,0x5906,0x5940,0x59a6,0x5998,0x59a0, +0x5997,0x598e,0x59a2,0x5990,0x598f,0x59a7,0x59a1,0x5b8e, +0x5b92,0x5c28,0x5c2a,0x5c8d,0x5c8f,0x5c88,0x5c8b,0x5c89, +0x5c92,0x5c8a,0x5c86,0x5c93,0x5c95,0x5de0,0x5e0a,0x5e0e, +0x5e8b,0x5e89,0x5e8c,0x5e88,0x5e8d,0x5f05,0x5f1d,0x5f78, +0x5f76,0x5fd2,0x5fd1,0x5fd0,0x5fed,0x5fe8,0x5fee,0x5ff3, +0x5fe1,0x5fe4,0x5fe3,0x5ffa,0x5fef,0x5ff7,0x5ffb,0x6000, +0x5ff4,0x623a,0x6283,0x628c,0x628e,0x628f,0x6294,0x6287, +0x6271,0x627b,0x627a,0x6270,0x6281,0x6288,0x6277,0x627d, +0x6272,0x6274,0x6537,0x65f0,0x65f4,0x65f3,0x65f2,0x65f5, +0x6745,0x6747,0x6759,0x6755,0x674c,0x6748,0x675d,0x674d, +0x675a,0x674b,0x6bd0,0x6c19,0x6c1a,0x6c78,0x6c67,0x6c6b, +0x6c84,0x6c8b,0x6c8f,0x6c71,0x6c6f,0x6c69,0x6c9a,0x6c6d, +0x6c87,0x6c95,0x6c9c,0x6c66,0x6c73,0x6c65,0x6c7b,0x6c8e, +0x7074,0x707a,0x7263,0x72bf,0x72bd,0x72c3,0x72c6,0x72c1, +0x72ba,0x72c5,0x7395,0x7397,0x7393,0x7394,0x7392,0x753a, +0x7539,0x7594,0x7595,0x7681,0x793d,0x8034,0x8095,0x8099, +0x8090,0x8092,0x809c,0x8290,0x828f,0x8285,0x828e,0x8291, +0x8293,0x828a,0x8283,0x8284,0x8c78,0x8fc9,0x8fbf,0x909f, +0x90a1,0x90a5,0x909e,0x90a7,0x90a0,0x9630,0x9628,0x962f, +0x962d,0x4e33,0x4f98,0x4f7c,0x4f85,0x4f7d,0x4f80,0x4f87, +0x4f76,0x4f74,0x4f89,0x4f84,0x4f77,0x4f4c,0x4f97,0x4f6a, +0x4f9a,0x4f79,0x4f81,0x4f78,0x4f90,0x4f9c,0x4f94,0x4f9e, +0x4f92,0x4f82,0x4f95,0x4f6b,0x4f6e,0x519e,0x51bc,0x51be, +0x5235,0x5232,0x5233,0x5246,0x5231,0x52bc,0x530a,0x530b, +0x533c,0x5392,0x5394,0x5487,0x547f,0x5481,0x5491,0x5482, +0x5488,0x546b,0x547a,0x547e,0x5465,0x546c,0x5474,0x5466, +0x548d,0x546f,0x5461,0x5460,0x5498,0x5463,0x5467,0x5464, +0x56f7,0x56f9,0x576f,0x5772,0x576d,0x576b,0x5771,0x5770, +0x5776,0x5780,0x5775,0x577b,0x5773,0x5774,0x5762,0x5768, +0x577d,0x590c,0x5945,0x59b5,0x59ba,0x59cf,0x59ce,0x59b2, +0x59cc,0x59c1,0x59b6,0x59bc,0x59c3,0x59d6,0x59b1,0x59bd, +0x59c0,0x59c8,0x59b4,0x59c7,0x5b62,0x5b65,0x5b93,0x5b95, +0x5c44,0x5c47,0x5cae,0x5ca4,0x5ca0,0x5cb5,0x5caf,0x5ca8, +0x5cac,0x5c9f,0x5ca3,0x5cad,0x5ca2,0x5caa,0x5ca7,0x5c9d, +0x5ca5,0x5cb6,0x5cb0,0x5ca6,0x5e17,0x5e14,0x5e19,0x5f28, +0x5f22,0x5f23,0x5f24,0x5f54,0x5f82,0x5f7e,0x5f7d,0x5fde, +0x5fe5,0x602d,0x6026,0x6019,0x6032,0x600b,0x6034,0x600a, +0x6017,0x6033,0x601a,0x601e,0x602c,0x6022,0x600d,0x6010, +0x602e,0x6013,0x6011,0x600c,0x6009,0x601c,0x6214,0x623d, +0x62ad,0x62b4,0x62d1,0x62be,0x62aa,0x62b6,0x62ca,0x62ae, +0x62b3,0x62af,0x62bb,0x62a9,0x62b0,0x62b8,0x653d,0x65a8, +0x65bb,0x6609,0x65fc,0x6604,0x6612,0x6608,0x65fb,0x6603, +0x660b,0x660d,0x6605,0x65fd,0x6611,0x6610,0x66f6,0x670a, +0x6785,0x676c,0x678e,0x6792,0x6776,0x677b,0x6798,0x6786, +0x6784,0x6774,0x678d,0x678c,0x677a,0x679f,0x6791,0x6799, +0x6783,0x677d,0x6781,0x6778,0x6779,0x6794,0x6b25,0x6b80, +0x6b7e,0x6bde,0x6c1d,0x6c93,0x6cec,0x6ceb,0x6cee,0x6cd9, +0x6cb6,0x6cd4,0x6cad,0x6ce7,0x6cb7,0x6cd0,0x6cc2,0x6cba, +0x6cc3,0x6cc6,0x6ced,0x6cf2,0x6cd2,0x6cdd,0x6cb4,0x6c8a, +0x6c9d,0x6c80,0x6cde,0x6cc0,0x6d30,0x6ccd,0x6cc7,0x6cb0, +0x6cf9,0x6ccf,0x6ce9,0x6cd1,0x7094,0x7098,0x7085,0x7093, +0x7086,0x7084,0x7091,0x7096,0x7082,0x709a,0x7083,0x726a, +0x72d6,0x72cb,0x72d8,0x72c9,0x72dc,0x72d2,0x72d4,0x72da, +0x72cc,0x72d1,0x73a4,0x73a1,0x73ad,0x73a6,0x73a2,0x73a0, +0x73ac,0x739d,0x74dd,0x74e8,0x753f,0x7540,0x753e,0x758c, +0x7598,0x76af,0x76f3,0x76f1,0x76f0,0x76f5,0x77f8,0x77fc, +0x77f9,0x77fb,0x77fa,0x77f7,0x7942,0x793f,0x79c5,0x7a78, +0x7a7b,0x7afb,0x7c75,0x7cfd,0x8035,0x808f,0x80ae,0x80a3, +0x80b8,0x80b5,0x80ad,0x8220,0x82a0,0x82c0,0x82ab,0x829a, +0x8298,0x829b,0x82b5,0x82a7,0x82ae,0x82bc,0x829e,0x82ba, +0x82b4,0x82a8,0x82a1,0x82a9,0x82c2,0x82a4,0x82c3,0x82b6, +0x82a2,0x8670,0x866f,0x866d,0x866e,0x8c56,0x8fd2,0x8fcb, +0x8fd3,0x8fcd,0x8fd6,0x8fd5,0x8fd7,0x90b2,0x90b4,0x90af, +0x90b3,0x90b0,0x9639,0x963d,0x963c,0x963a,0x9643,0x4fcd, +0x4fc5,0x4fd3,0x4fb2,0x4fc9,0x4fcb,0x4fc1,0x4fd4,0x4fdc, +0x4fd9,0x4fbb,0x4fb3,0x4fdb,0x4fc7,0x4fd6,0x4fba,0x4fc0, +0x4fb9,0x4fec,0x5244,0x5249,0x52c0,0x52c2,0x533d,0x537c, +0x5397,0x5396,0x5399,0x5398,0x54ba,0x54a1,0x54ad,0x54a5, +0x54cf,0x54c3,0x830d,0x54b7,0x54ae,0x54d6,0x54b6,0x54c5, +0x54c6,0x54a0,0x5470,0x54bc,0x54a2,0x54be,0x5472,0x54de, +0x54b0,0x57b5,0x579e,0x579f,0x57a4,0x578c,0x5797,0x579d, +0x579b,0x5794,0x5798,0x578f,0x5799,0x57a5,0x579a,0x5795, +0x58f4,0x590d,0x5953,0x59e1,0x59de,0x59ee,0x5a00,0x59f1, +0x59dd,0x59fa,0x59fd,0x59fc,0x59f6,0x59e4,0x59f2,0x59f7, +0x59db,0x59e9,0x59f3,0x59f5,0x59e0,0x59fe,0x59f4,0x59ed, +0x5ba8,0x5c4c,0x5cd0,0x5cd8,0x5ccc,0x5cd7,0x5ccb,0x5cdb, +0x5cde,0x5cda,0x5cc9,0x5cc7,0x5cca,0x5cd6,0x5cd3,0x5cd4, +0x5ccf,0x5cc8,0x5cc6,0x5cce,0x5cdf,0x5cf8,0x5df9,0x5e21, +0x5e22,0x5e23,0x5e20,0x5e24,0x5eb0,0x5ea4,0x5ea2,0x5e9b, +0x5ea3,0x5ea5,0x5f07,0x5f2e,0x5f56,0x5f86,0x6037,0x6039, +0x6054,0x6072,0x605e,0x6045,0x6053,0x6047,0x6049,0x605b, +0x604c,0x6040,0x6042,0x605f,0x6024,0x6044,0x6058,0x6066, +0x606e,0x6242,0x6243,0x62cf,0x630d,0x630b,0x62f5,0x630e, +0x6303,0x62eb,0x62f9,0x630f,0x630c,0x62f8,0x62f6,0x6300, +0x6313,0x6314,0x62fa,0x6315,0x62fb,0x62f0,0x6541,0x6543, +0x65aa,0x65bf,0x6636,0x6621,0x6632,0x6635,0x661c,0x6626, +0x6622,0x6633,0x662b,0x663a,0x661d,0x6634,0x6639,0x662e, +0x670f,0x6710,0x67c1,0x67f2,0x67c8,0x67ba,0x67dc,0x67bb, +0x67f8,0x67d8,0x67c0,0x67b7,0x67c5,0x67eb,0x67e4,0x67df, +0x67b5,0x67cd,0x67b3,0x67f7,0x67f6,0x67ee,0x67e3,0x67c2, +0x67b9,0x67ce,0x67e7,0x67f0,0x67b2,0x67fc,0x67c6,0x67ed, +0x67cc,0x67ae,0x67e6,0x67db,0x67fa,0x67c9,0x67ca,0x67c3, +0x67ea,0x67cb,0x6b28,0x6b82,0x6b84,0x6bb6,0x6bd6,0x6bd8, +0x6be0,0x6c20,0x6c21,0x6d28,0x6d34,0x6d2d,0x6d1f,0x6d3c, +0x6d3f,0x6d12,0x6d0a,0x6cda,0x6d33,0x6d04,0x6d19,0x6d3a, +0x6d1a,0x6d11,0x6d00,0x6d1d,0x6d42,0x6d01,0x6d18,0x6d37, +0x6d03,0x6d0f,0x6d40,0x6d07,0x6d20,0x6d2c,0x6d08,0x6d22, +0x6d09,0x6d10,0x70b7,0x709f,0x70be,0x70b1,0x70b0,0x70a1, +0x70b4,0x70b5,0x70a9,0x7241,0x7249,0x724a,0x726c,0x7270, +0x7273,0x726e,0x72ca,0x72e4,0x72e8,0x72eb,0x72df,0x72ea, +0x72e6,0x72e3,0x7385,0x73cc,0x73c2,0x73c8,0x73c5,0x73b9, +0x73b6,0x73b5,0x73b4,0x73eb,0x73bf,0x73c7,0x73be,0x73c3, +0x73c6,0x73b8,0x73cb,0x74ec,0x74ee,0x752e,0x7547,0x7548, +0x75a7,0x75aa,0x7679,0x76c4,0x7708,0x7703,0x7704,0x7705, +0x770a,0x76f7,0x76fb,0x76fa,0x77e7,0x77e8,0x7806,0x7811, +0x7812,0x7805,0x7810,0x780f,0x780e,0x7809,0x7803,0x7813, +0x794a,0x794c,0x794b,0x7945,0x7944,0x79d5,0x79cd,0x79cf, +0x79d6,0x79ce,0x7a80,0x7a7e,0x7ad1,0x7b00,0x7b01,0x7c7a, +0x7c78,0x7c79,0x7c7f,0x7c80,0x7c81,0x7d03,0x7d08,0x7d01, +0x7f58,0x7f91,0x7f8d,0x7fbe,0x8007,0x800e,0x800f,0x8014, +0x8037,0x80d8,0x80c7,0x80e0,0x80d1,0x80c8,0x80c2,0x80d0, +0x80c5,0x80e3,0x80d9,0x80dc,0x80ca,0x80d5,0x80c9,0x80cf, +0x80d7,0x80e6,0x80cd,0x81ff,0x8221,0x8294,0x82d9,0x82fe, +0x82f9,0x8307,0x82e8,0x8300,0x82d5,0x833a,0x82eb,0x82d6, +0x82f4,0x82ec,0x82e1,0x82f2,0x82f5,0x830c,0x82fb,0x82f6, +0x82f0,0x82ea,0x82e4,0x82e0,0x82fa,0x82f3,0x82ed,0x8677, +0x8674,0x867c,0x8673,0x8841,0x884e,0x8867,0x886a,0x8869, +0x89d3,0x8a04,0x8a07,0x8d72,0x8fe3,0x8fe1,0x8fee,0x8fe0, +0x90f1,0x90bd,0x90bf,0x90d5,0x90c5,0x90be,0x90c7,0x90cb, +0x90c8,0x91d4,0x91d3,0x9654,0x964f,0x9651,0x9653,0x964a, +0x964e,0x501e,0x5005,0x5007,0x5013,0x5022,0x5030,0x501b, +0x4ff5,0x4ff4,0x5033,0x5037,0x502c,0x4ff6,0x4ff7,0x5017, +0x501c,0x5020,0x5027,0x5035,0x502f,0x5031,0x500e,0x515a, +0x5194,0x5193,0x51ca,0x51c4,0x51c5,0x51c8,0x51ce,0x5261, +0x525a,0x5252,0x525e,0x525f,0x5255,0x5262,0x52cd,0x530e, +0x539e,0x5526,0x54e2,0x5517,0x5512,0x54e7,0x54f3,0x54e4, +0x551a,0x54ff,0x5504,0x5508,0x54eb,0x5511,0x5505,0x54f1, +0x550a,0x54fb,0x54f7,0x54f8,0x54e0,0x550e,0x5503,0x550b, +0x5701,0x5702,0x57cc,0x5832,0x57d5,0x57d2,0x57ba,0x57c6, +0x57bd,0x57bc,0x57b8,0x57b6,0x57bf,0x57c7,0x57d0,0x57b9, +0x57c1,0x590e,0x594a,0x5a19,0x5a16,0x5a2d,0x5a2e,0x5a15, +0x5a0f,0x5a17,0x5a0a,0x5a1e,0x5a33,0x5b6c,0x5ba7,0x5bad, +0x5bac,0x5c03,0x5c56,0x5c54,0x5cec,0x5cff,0x5cee,0x5cf1, +0x5cf7,0x5d00,0x5cf9,0x5e29,0x5e28,0x5ea8,0x5eae,0x5eaa, +0x5eac,0x5f33,0x5f30,0x5f67,0x605d,0x605a,0x6067,0x6041, +0x60a2,0x6088,0x6080,0x6092,0x6081,0x609d,0x6083,0x6095, +0x609b,0x6097,0x6087,0x609c,0x608e,0x6219,0x6246,0x62f2, +0x6310,0x6356,0x632c,0x6344,0x6345,0x6336,0x6343,0x63e4, +0x6339,0x634b,0x634a,0x633c,0x6329,0x6341,0x6334,0x6358, +0x6354,0x6359,0x632d,0x6347,0x6333,0x635a,0x6351,0x6338, +0x6357,0x6340,0x6348,0x654a,0x6546,0x65c6,0x65c3,0x65c4, +0x65c2,0x664a,0x665f,0x6647,0x6651,0x6712,0x6713,0x681f, +0x681a,0x6849,0x6832,0x6833,0x683b,0x684b,0x684f,0x6816, +0x6831,0x681c,0x6835,0x682b,0x682d,0x682f,0x684e,0x6844, +0x6834,0x681d,0x6812,0x6814,0x6826,0x6828,0x682e,0x684d, +0x683a,0x6825,0x6820,0x6b2c,0x6b2f,0x6b2d,0x6b31,0x6b34, +0x6b6d,0x8082,0x6b88,0x6be6,0x6be4,0x6be8,0x6be3,0x6be2, +0x6be7,0x6c25,0x6d7a,0x6d63,0x6d64,0x6d76,0x6d0d,0x6d61, +0x6d92,0x6d58,0x6d62,0x6d6d,0x6d6f,0x6d91,0x6d8d,0x6def, +0x6d7f,0x6d86,0x6d5e,0x6d67,0x6d60,0x6d97,0x6d70,0x6d7c, +0x6d5f,0x6d82,0x6d98,0x6d2f,0x6d68,0x6d8b,0x6d7e,0x6d80, +0x6d84,0x6d16,0x6d83,0x6d7b,0x6d7d,0x6d75,0x6d90,0x70dc, +0x70d3,0x70d1,0x70dd,0x70cb,0x7f39,0x70e2,0x70d7,0x70d2, +0x70de,0x70e0,0x70d4,0x70cd,0x70c5,0x70c6,0x70c7,0x70da, +0x70ce,0x70e1,0x7242,0x7278,0x7277,0x7276,0x7300,0x72fa, +0x72f4,0x72fe,0x72f6,0x72f3,0x72fb,0x7301,0x73d3,0x73d9, +0x73e5,0x73d6,0x73bc,0x73e7,0x73e3,0x73e9,0x73dc,0x73d2, +0x73db,0x73d4,0x73dd,0x73da,0x73d7,0x73d8,0x73e8,0x74de, +0x74df,0x74f4,0x74f5,0x7521,0x755b,0x755f,0x75b0,0x75c1, +0x75bb,0x75c4,0x75c0,0x75bf,0x75b6,0x75ba,0x768a,0x76c9, +0x771d,0x771b,0x7710,0x7713,0x7712,0x7723,0x7711,0x7715, +0x7719,0x771a,0x7722,0x7727,0x7823,0x782c,0x7822,0x7835, +0x782f,0x7828,0x782e,0x782b,0x7821,0x7829,0x7833,0x782a, +0x7831,0x7954,0x795b,0x794f,0x795c,0x7953,0x7952,0x7951, +0x79eb,0x79ec,0x79e0,0x79ee,0x79ed,0x79ea,0x79dc,0x79de, +0x79dd,0x7a86,0x7a89,0x7a85,0x7a8b,0x7a8c,0x7a8a,0x7a87, +0x7ad8,0x7b10,0x7b04,0x7b13,0x7b05,0x7b0f,0x7b08,0x7b0a, +0x7b0e,0x7b09,0x7b12,0x7c84,0x7c91,0x7c8a,0x7c8c,0x7c88, +0x7c8d,0x7c85,0x7d1e,0x7d1d,0x7d11,0x7d0e,0x7d18,0x7d16, +0x7d13,0x7d1f,0x7d12,0x7d0f,0x7d0c,0x7f5c,0x7f61,0x7f5e, +0x7f60,0x7f5d,0x7f5b,0x7f96,0x7f92,0x7fc3,0x7fc2,0x7fc0, +0x8016,0x803e,0x8039,0x80fa,0x80f2,0x80f9,0x80f5,0x8101, +0x80fb,0x8100,0x8201,0x822f,0x8225,0x8333,0x832d,0x8344, +0x8319,0x8351,0x8325,0x8356,0x833f,0x8341,0x8326,0x831c, +0x8322,0x8342,0x834e,0x831b,0x832a,0x8308,0x833c,0x834d, +0x8316,0x8324,0x8320,0x8337,0x832f,0x8329,0x8347,0x8345, +0x834c,0x8353,0x831e,0x832c,0x834b,0x8327,0x8348,0x8653, +0x8652,0x86a2,0x86a8,0x8696,0x868d,0x8691,0x869e,0x8687, +0x8697,0x8686,0x868b,0x869a,0x8685,0x86a5,0x8699,0x86a1, +0x86a7,0x8695,0x8698,0x868e,0x869d,0x8690,0x8694,0x8843, +0x8844,0x886d,0x8875,0x8876,0x8872,0x8880,0x8871,0x887f, +0x886f,0x8883,0x887e,0x8874,0x887c,0x8a12,0x8c47,0x8c57, +0x8c7b,0x8ca4,0x8ca3,0x8d76,0x8d78,0x8db5,0x8db7,0x8db6, +0x8ed1,0x8ed3,0x8ffe,0x8ff5,0x9002,0x8fff,0x8ffb,0x9004, +0x8ffc,0x8ff6,0x90d6,0x90e0,0x90d9,0x90da,0x90e3,0x90df, +0x90e5,0x90d8,0x90db,0x90d7,0x90dc,0x90e4,0x9150,0x914e, +0x914f,0x91d5,0x91e2,0x91da,0x965c,0x965f,0x96bc,0x98e3, +0x9adf,0x9b2f,0x4e7f,0x5070,0x506a,0x5061,0x505e,0x5060, +0x5053,0x504b,0x505d,0x5072,0x5048,0x504d,0x5041,0x505b, +0x504a,0x5062,0x5015,0x5045,0x505f,0x5069,0x506b,0x5063, +0x5064,0x5046,0x5040,0x506e,0x5073,0x5057,0x5051,0x51d0, +0x526b,0x526d,0x526c,0x526e,0x52d6,0x52d3,0x532d,0x539c, +0x5575,0x5576,0x553c,0x554d,0x5550,0x5534,0x552a,0x5551, +0x5562,0x5536,0x5535,0x5530,0x5552,0x5545,0x550c,0x5532, +0x5565,0x554e,0x5539,0x5548,0x552d,0x553b,0x5540,0x554b, +0x570a,0x5707,0x57fb,0x5814,0x57e2,0x57f6,0x57dc,0x57f4, +0x5800,0x57ed,0x57fd,0x5808,0x57f8,0x580b,0x57f3,0x57cf, +0x5807,0x57ee,0x57e3,0x57f2,0x57e5,0x57ec,0x57e1,0x580e, +0x57fc,0x5810,0x57e7,0x5801,0x580c,0x57f1,0x57e9,0x57f0, +0x580d,0x5804,0x595c,0x5a60,0x5a58,0x5a55,0x5a67,0x5a5e, +0x5a38,0x5a35,0x5a6d,0x5a50,0x5a5f,0x5a65,0x5a6c,0x5a53, +0x5a64,0x5a57,0x5a43,0x5a5d,0x5a52,0x5a44,0x5a5b,0x5a48, +0x5a8e,0x5a3e,0x5a4d,0x5a39,0x5a4c,0x5a70,0x5a69,0x5a47, +0x5a51,0x5a56,0x5a42,0x5a5c,0x5b72,0x5b6e,0x5bc1,0x5bc0, +0x5c59,0x5d1e,0x5d0b,0x5d1d,0x5d1a,0x5d20,0x5d0c,0x5d28, +0x5d0d,0x5d26,0x5d25,0x5d0f,0x5d30,0x5d12,0x5d23,0x5d1f, +0x5d2e,0x5e3e,0x5e34,0x5eb1,0x5eb4,0x5eb9,0x5eb2,0x5eb3, +0x5f36,0x5f38,0x5f9b,0x5f96,0x5f9f,0x608a,0x6090,0x6086, +0x60be,0x60b0,0x60ba,0x60d3,0x60d4,0x60cf,0x60e4,0x60d9, +0x60dd,0x60c8,0x60b1,0x60db,0x60b7,0x60ca,0x60bf,0x60c3, +0x60cd,0x60c0,0x6332,0x6365,0x638a,0x6382,0x637d,0x63bd, +0x639e,0x63ad,0x639d,0x6397,0x63ab,0x638e,0x636f,0x6387, +0x6390,0x636e,0x63af,0x6375,0x639c,0x636d,0x63ae,0x637c, +0x63a4,0x633b,0x639f,0x6378,0x6385,0x6381,0x6391,0x638d, +0x6370,0x6553,0x65cd,0x6665,0x6661,0x665b,0x6659,0x665c, +0x6662,0x6718,0x6879,0x6887,0x6890,0x689c,0x686d,0x686e, +0x68ae,0x68ab,0x6956,0x686f,0x68a3,0x68ac,0x68a9,0x6875, +0x6874,0x68b2,0x688f,0x6877,0x6892,0x687c,0x686b,0x6872, +0x68aa,0x6880,0x6871,0x687e,0x689b,0x6896,0x688b,0x68a0, +0x6889,0x68a4,0x6878,0x687b,0x6891,0x688c,0x688a,0x687d, +0x6b36,0x6b33,0x6b37,0x6b38,0x6b91,0x6b8f,0x6b8d,0x6b8e, +0x6b8c,0x6c2a,0x6dc0,0x6dab,0x6db4,0x6db3,0x6e74,0x6dac, +0x6de9,0x6de2,0x6db7,0x6df6,0x6dd4,0x6e00,0x6dc8,0x6de0, +0x6ddf,0x6dd6,0x6dbe,0x6de5,0x6ddc,0x6ddd,0x6ddb,0x6df4, +0x6dca,0x6dbd,0x6ded,0x6df0,0x6dba,0x6dd5,0x6dc2,0x6dcf, +0x6dc9,0x6dd0,0x6df2,0x6dd3,0x6dfd,0x6dd7,0x6dcd,0x6de3, +0x6dbb,0x70fa,0x710d,0x70f7,0x7117,0x70f4,0x710c,0x70f0, +0x7104,0x70f3,0x7110,0x70fc,0x70ff,0x7106,0x7113,0x7100, +0x70f8,0x70f6,0x710b,0x7102,0x710e,0x727e,0x727b,0x727c, +0x727f,0x731d,0x7317,0x7307,0x7311,0x7318,0x730a,0x7308, +0x72ff,0x730f,0x731e,0x7388,0x73f6,0x73f8,0x73f5,0x7404, +0x7401,0x73fd,0x7407,0x7400,0x73fa,0x73fc,0x73ff,0x740c, +0x740b,0x73f4,0x7408,0x7564,0x7563,0x75ce,0x75d2,0x75cf, +0x75cb,0x75cc,0x75d1,0x75d0,0x768f,0x7689,0x76d3,0x7739, +0x772f,0x772d,0x7731,0x7732,0x7734,0x7733,0x773d,0x7725, +0x773b,0x7735,0x7848,0x7852,0x7849,0x784d,0x784a,0x784c, +0x7826,0x7845,0x7850,0x7964,0x7967,0x7969,0x796a,0x7963, +0x796b,0x7961,0x79bb,0x79fa,0x79f8,0x79f6,0x79f7,0x7a8f, +0x7a94,0x7a90,0x7b35,0x7b47,0x7b34,0x7b25,0x7b30,0x7b22, +0x7b24,0x7b33,0x7b18,0x7b2a,0x7b1d,0x7b31,0x7b2b,0x7b2d, +0x7b2f,0x7b32,0x7b38,0x7b1a,0x7b23,0x7c94,0x7c98,0x7c96, +0x7ca3,0x7d35,0x7d3d,0x7d38,0x7d36,0x7d3a,0x7d45,0x7d2c, +0x7d29,0x7d41,0x7d47,0x7d3e,0x7d3f,0x7d4a,0x7d3b,0x7d28, +0x7f63,0x7f95,0x7f9c,0x7f9d,0x7f9b,0x7fca,0x7fcb,0x7fcd, +0x7fd0,0x7fd1,0x7fc7,0x7fcf,0x7fc9,0x801f,0x801e,0x801b, +0x8047,0x8043,0x8048,0x8118,0x8125,0x8119,0x811b,0x812d, +0x811f,0x812c,0x811e,0x8121,0x8115,0x8127,0x811d,0x8122, +0x8211,0x8238,0x8233,0x823a,0x8234,0x8232,0x8274,0x8390, +0x83a3,0x83a8,0x838d,0x837a,0x8373,0x83a4,0x8374,0x838f, +0x8381,0x8395,0x8399,0x8375,0x8394,0x83a9,0x837d,0x8383, +0x838c,0x839d,0x839b,0x83aa,0x838b,0x837e,0x83a5,0x83af, +0x8388,0x8397,0x83b0,0x837f,0x83a6,0x8387,0x83ae,0x8376, +0x839a,0x8659,0x8656,0x86bf,0x86b7,0x86c2,0x86c1,0x86c5, +0x86ba,0x86b0,0x86c8,0x86b9,0x86b3,0x86b8,0x86cc,0x86b4, +0x86bb,0x86bc,0x86c3,0x86bd,0x86be,0x8852,0x8889,0x8895, +0x88a8,0x88a2,0x88aa,0x889a,0x8891,0x88a1,0x889f,0x8898, +0x88a7,0x8899,0x889b,0x8897,0x88a4,0x88ac,0x888c,0x8893, +0x888e,0x8982,0x89d6,0x89d9,0x89d5,0x8a30,0x8a27,0x8a2c, +0x8a1e,0x8c39,0x8c3b,0x8c5c,0x8c5d,0x8c7d,0x8ca5,0x8d7d, +0x8d7b,0x8d79,0x8dbc,0x8dc2,0x8db9,0x8dbf,0x8dc1,0x8ed8, +0x8ede,0x8edd,0x8edc,0x8ed7,0x8ee0,0x8ee1,0x9024,0x900b, +0x9011,0x901c,0x900c,0x9021,0x90ef,0x90ea,0x90f0,0x90f4, +0x90f2,0x90f3,0x90d4,0x90eb,0x90ec,0x90e9,0x9156,0x9158, +0x915a,0x9153,0x9155,0x91ec,0x91f4,0x91f1,0x91f3,0x91f8, +0x91e4,0x91f9,0x91ea,0x91eb,0x91f7,0x91e8,0x91ee,0x957a, +0x9586,0x9588,0x967c,0x966d,0x966b,0x9671,0x966f,0x96bf, +0x976a,0x9804,0x98e5,0x9997,0x509b,0x5095,0x5094,0x509e, +0x508b,0x50a3,0x5083,0x508c,0x508e,0x509d,0x5068,0x509c, +0x5092,0x5082,0x5087,0x515f,0x51d4,0x5312,0x5311,0x53a4, +0x53a7,0x5591,0x55a8,0x55a5,0x55ad,0x5577,0x5645,0x55a2, +0x5593,0x5588,0x558f,0x55b5,0x5581,0x55a3,0x5592,0x55a4, +0x557d,0x558c,0x55a6,0x557f,0x5595,0x55a1,0x558e,0x570c, +0x5829,0x5837,0x5819,0x581e,0x5827,0x5823,0x5828,0x57f5, +0x5848,0x5825,0x581c,0x581b,0x5833,0x583f,0x5836,0x582e, +0x5839,0x5838,0x582d,0x582c,0x583b,0x5961,0x5aaf,0x5a94, +0x5a9f,0x5a7a,0x5aa2,0x5a9e,0x5a78,0x5aa6,0x5a7c,0x5aa5, +0x5aac,0x5a95,0x5aae,0x5a37,0x5a84,0x5a8a,0x5a97,0x5a83, +0x5a8b,0x5aa9,0x5a7b,0x5a7d,0x5a8c,0x5a9c,0x5a8f,0x5a93, +0x5a9d,0x5bea,0x5bcd,0x5bcb,0x5bd4,0x5bd1,0x5bca,0x5bce, +0x5c0c,0x5c30,0x5d37,0x5d43,0x5d6b,0x5d41,0x5d4b,0x5d3f, +0x5d35,0x5d51,0x5d4e,0x5d55,0x5d33,0x5d3a,0x5d52,0x5d3d, +0x5d31,0x5d59,0x5d42,0x5d39,0x5d49,0x5d38,0x5d3c,0x5d32, +0x5d36,0x5d40,0x5d45,0x5e44,0x5e41,0x5f58,0x5fa6,0x5fa5, +0x5fab,0x60c9,0x60b9,0x60cc,0x60e2,0x60ce,0x60c4,0x6114, +0x60f2,0x610a,0x6116,0x6105,0x60f5,0x6113,0x60f8,0x60fc, +0x60fe,0x60c1,0x6103,0x6118,0x611d,0x6110,0x60ff,0x6104, +0x610b,0x624a,0x6394,0x63b1,0x63b0,0x63ce,0x63e5,0x63e8, +0x63ef,0x63c3,0x649d,0x63f3,0x63ca,0x63e0,0x63f6,0x63d5, +0x63f2,0x63f5,0x6461,0x63df,0x63be,0x63dd,0x63dc,0x63c4, +0x63d8,0x63d3,0x63c2,0x63c7,0x63cc,0x63cb,0x63c8,0x63f0, +0x63d7,0x63d9,0x6532,0x6567,0x656a,0x6564,0x655c,0x6568, +0x6565,0x658c,0x659d,0x659e,0x65ae,0x65d0,0x65d2,0x667c, +0x666c,0x667b,0x6680,0x6671,0x6679,0x666a,0x6672,0x6701, +0x690c,0x68d3,0x6904,0x68dc,0x692a,0x68ec,0x68ea,0x68f1, +0x690f,0x68d6,0x68f7,0x68eb,0x68e4,0x68f6,0x6913,0x6910, +0x68f3,0x68e1,0x6907,0x68cc,0x6908,0x6970,0x68b4,0x6911, +0x68ef,0x68c6,0x6914,0x68f8,0x68d0,0x68fd,0x68fc,0x68e8, +0x690b,0x690a,0x6917,0x68ce,0x68c8,0x68dd,0x68de,0x68e6, +0x68f4,0x68d1,0x6906,0x68d4,0x68e9,0x6915,0x6925,0x68c7, +0x6b39,0x6b3b,0x6b3f,0x6b3c,0x6b94,0x6b97,0x6b99,0x6b95, +0x6bbd,0x6bf0,0x6bf2,0x6bf3,0x6c30,0x6dfc,0x6e46,0x6e47, +0x6e1f,0x6e49,0x6e88,0x6e3c,0x6e3d,0x6e45,0x6e62,0x6e2b, +0x6e3f,0x6e41,0x6e5d,0x6e73,0x6e1c,0x6e33,0x6e4b,0x6e40, +0x6e51,0x6e3b,0x6e03,0x6e2e,0x6e5e,0x6e68,0x6e5c,0x6e61, +0x6e31,0x6e28,0x6e60,0x6e71,0x6e6b,0x6e39,0x6e22,0x6e30, +0x6e53,0x6e65,0x6e27,0x6e78,0x6e64,0x6e77,0x6e55,0x6e79, +0x6e52,0x6e66,0x6e35,0x6e36,0x6e5a,0x7120,0x711e,0x712f, +0x70fb,0x712e,0x7131,0x7123,0x7125,0x7122,0x7132,0x711f, +0x7128,0x713a,0x711b,0x724b,0x725a,0x7288,0x7289,0x7286, +0x7285,0x728b,0x7312,0x730b,0x7330,0x7322,0x7331,0x7333, +0x7327,0x7332,0x732d,0x7326,0x7323,0x7335,0x730c,0x742e, +0x742c,0x7430,0x742b,0x7416,0x741a,0x7421,0x742d,0x7431, +0x7424,0x7423,0x741d,0x7429,0x7420,0x7432,0x74fb,0x752f, +0x756f,0x756c,0x75e7,0x75da,0x75e1,0x75e6,0x75dd,0x75df, +0x75e4,0x75d7,0x7695,0x7692,0x76da,0x7746,0x7747,0x7744, +0x774d,0x7745,0x774a,0x774e,0x774b,0x774c,0x77de,0x77ec, +0x7860,0x7864,0x7865,0x785c,0x786d,0x7871,0x786a,0x786e, +0x7870,0x7869,0x7868,0x785e,0x7862,0x7974,0x7973,0x7972, +0x7970,0x7a02,0x7a0a,0x7a03,0x7a0c,0x7a04,0x7a99,0x7ae6, +0x7ae4,0x7b4a,0x7b3b,0x7b44,0x7b48,0x7b4c,0x7b4e,0x7b40, +0x7b58,0x7b45,0x7ca2,0x7c9e,0x7ca8,0x7ca1,0x7d58,0x7d6f, +0x7d63,0x7d53,0x7d56,0x7d67,0x7d6a,0x7d4f,0x7d6d,0x7d5c, +0x7d6b,0x7d52,0x7d54,0x7d69,0x7d51,0x7d5f,0x7d4e,0x7f3e, +0x7f3f,0x7f65,0x7f66,0x7fa2,0x7fa0,0x7fa1,0x7fd7,0x8051, +0x804f,0x8050,0x80fe,0x80d4,0x8143,0x814a,0x8152,0x814f, +0x8147,0x813d,0x814d,0x813a,0x81e6,0x81ee,0x81f7,0x81f8, +0x81f9,0x8204,0x823c,0x823d,0x823f,0x8275,0x833b,0x83cf, +0x83f9,0x8423,0x83c0,0x83e8,0x8412,0x83e7,0x83e4,0x83fc, +0x83f6,0x8410,0x83c6,0x83c8,0x83eb,0x83e3,0x83bf,0x8401, +0x83dd,0x83e5,0x83d8,0x83ff,0x83e1,0x83cb,0x83ce,0x83d6, +0x83f5,0x83c9,0x8409,0x840f,0x83de,0x8411,0x8406,0x83c2, +0x83f3,0x83d5,0x83fa,0x83c7,0x83d1,0x83ea,0x8413,0x83c3, +0x83ec,0x83ee,0x83c4,0x83fb,0x83d7,0x83e2,0x841b,0x83db, +0x83fe,0x86d8,0x86e2,0x86e6,0x86d3,0x86e3,0x86da,0x86ea, +0x86dd,0x86eb,0x86dc,0x86ec,0x86e9,0x86d7,0x86e8,0x86d1, +0x8848,0x8856,0x8855,0x88ba,0x88d7,0x88b9,0x88b8,0x88c0, +0x88be,0x88b6,0x88bc,0x88b7,0x88bd,0x88b2,0x8901,0x88c9, +0x8995,0x8998,0x8997,0x89dd,0x89da,0x89db,0x8a4e,0x8a4d, +0x8a39,0x8a59,0x8a40,0x8a57,0x8a58,0x8a44,0x8a45,0x8a52, +0x8a48,0x8a51,0x8a4a,0x8a4c,0x8a4f,0x8c5f,0x8c81,0x8c80, +0x8cba,0x8cbe,0x8cb0,0x8cb9,0x8cb5,0x8d84,0x8d80,0x8d89, +0x8dd8,0x8dd3,0x8dcd,0x8dc7,0x8dd6,0x8ddc,0x8dcf,0x8dd5, +0x8dd9,0x8dc8,0x8dd7,0x8dc5,0x8eef,0x8ef7,0x8efa,0x8ef9, +0x8ee6,0x8eee,0x8ee5,0x8ef5,0x8ee7,0x8ee8,0x8ef6,0x8eeb, +0x8ef1,0x8eec,0x8ef4,0x8ee9,0x902d,0x9034,0x902f,0x9106, +0x912c,0x9104,0x90ff,0x90fc,0x9108,0x90f9,0x90fb,0x9101, +0x9100,0x9107,0x9105,0x9103,0x9161,0x9164,0x915f,0x9162, +0x9160,0x9201,0x920a,0x9225,0x9203,0x921a,0x9226,0x920f, +0x920c,0x9200,0x9212,0x91ff,0x91fd,0x9206,0x9204,0x9227, +0x9202,0x921c,0x9224,0x9219,0x9217,0x9205,0x9216,0x957b, +0x958d,0x958c,0x9590,0x9687,0x967e,0x9688,0x9689,0x9683, +0x9680,0x96c2,0x96c8,0x96c3,0x96f1,0x96f0,0x976c,0x9770, +0x976e,0x9807,0x98a9,0x98eb,0x9ce6,0x9ef9,0x4e83,0x4e84, +0x4eb6,0x50bd,0x50bf,0x50c6,0x50ae,0x50c4,0x50ca,0x50b4, +0x50c8,0x50c2,0x50b0,0x50c1,0x50ba,0x50b1,0x50cb,0x50c9, +0x50b6,0x50b8,0x51d7,0x527a,0x5278,0x527b,0x527c,0x55c3, +0x55db,0x55cc,0x55d0,0x55cb,0x55ca,0x55dd,0x55c0,0x55d4, +0x55c4,0x55e9,0x55bf,0x55d2,0x558d,0x55cf,0x55d5,0x55e2, +0x55d6,0x55c8,0x55f2,0x55cd,0x55d9,0x55c2,0x5714,0x5853, +0x5868,0x5864,0x584f,0x584d,0x5849,0x586f,0x5855,0x584e, +0x585d,0x5859,0x5865,0x585b,0x583d,0x5863,0x5871,0x58fc, +0x5ac7,0x5ac4,0x5acb,0x5aba,0x5ab8,0x5ab1,0x5ab5,0x5ab0, +0x5abf,0x5ac8,0x5abb,0x5ac6,0x5ab7,0x5ac0,0x5aca,0x5ab4, +0x5ab6,0x5acd,0x5ab9,0x5a90,0x5bd6,0x5bd8,0x5bd9,0x5c1f, +0x5c33,0x5d71,0x5d63,0x5d4a,0x5d65,0x5d72,0x5d6c,0x5d5e, +0x5d68,0x5d67,0x5d62,0x5df0,0x5e4f,0x5e4e,0x5e4a,0x5e4d, +0x5e4b,0x5ec5,0x5ecc,0x5ec6,0x5ecb,0x5ec7,0x5f40,0x5faf, +0x5fad,0x60f7,0x6149,0x614a,0x612b,0x6145,0x6136,0x6132, +0x612e,0x6146,0x612f,0x614f,0x6129,0x6140,0x6220,0x9168, +0x6223,0x6225,0x6224,0x63c5,0x63f1,0x63eb,0x6410,0x6412, +0x6409,0x6420,0x6424,0x6433,0x6443,0x641f,0x6415,0x6418, +0x6439,0x6437,0x6422,0x6423,0x640c,0x6426,0x6430,0x6428, +0x6441,0x6435,0x642f,0x640a,0x641a,0x6440,0x6425,0x6427, +0x640b,0x63e7,0x641b,0x642e,0x6421,0x640e,0x656f,0x6592, +0x65d3,0x6686,0x668c,0x6695,0x6690,0x668b,0x668a,0x6699, +0x6694,0x6678,0x6720,0x6966,0x695f,0x6938,0x694e,0x6962, +0x6971,0x693f,0x6945,0x696a,0x6939,0x6942,0x6957,0x6959, +0x697a,0x6948,0x6949,0x6935,0x696c,0x6933,0x693d,0x6965, +0x68f0,0x6978,0x6934,0x6969,0x6940,0x696f,0x6944,0x6976, +0x6958,0x6941,0x6974,0x694c,0x693b,0x694b,0x6937,0x695c, +0x694f,0x6951,0x6932,0x6952,0x692f,0x697b,0x693c,0x6b46, +0x6b45,0x6b43,0x6b42,0x6b48,0x6b41,0x6b9b,0xfa0d,0x6bfb, +0x6bfc,0x6bf9,0x6bf7,0x6bf8,0x6e9b,0x6ed6,0x6ec8,0x6e8f, +0x6ec0,0x6e9f,0x6e93,0x6e94,0x6ea0,0x6eb1,0x6eb9,0x6ec6, +0x6ed2,0x6ebd,0x6ec1,0x6e9e,0x6ec9,0x6eb7,0x6eb0,0x6ecd, +0x6ea6,0x6ecf,0x6eb2,0x6ebe,0x6ec3,0x6edc,0x6ed8,0x6e99, +0x6e92,0x6e8e,0x6e8d,0x6ea4,0x6ea1,0x6ebf,0x6eb3,0x6ed0, +0x6eca,0x6e97,0x6eae,0x6ea3,0x7147,0x7154,0x7152,0x7163, +0x7160,0x7141,0x715d,0x7162,0x7172,0x7178,0x716a,0x7161, +0x7142,0x7158,0x7143,0x714b,0x7170,0x715f,0x7150,0x7153, +0x7144,0x714d,0x715a,0x724f,0x728d,0x728c,0x7291,0x7290, +0x728e,0x733c,0x7342,0x733b,0x733a,0x7340,0x734a,0x7349, +0x7444,0x744a,0x744b,0x7452,0x7451,0x7457,0x7440,0x744f, +0x7450,0x744e,0x7442,0x7446,0x744d,0x7454,0x74e1,0x74ff, +0x74fe,0x74fd,0x751d,0x7579,0x7577,0x6983,0x75ef,0x760f, +0x7603,0x75f7,0x75fe,0x75fc,0x75f9,0x75f8,0x7610,0x75fb, +0x75f6,0x75ed,0x75f5,0x75fd,0x7699,0x76b5,0x76dd,0x7755, +0x775f,0x7760,0x7752,0x7756,0x775a,0x7769,0x7767,0x7754, +0x7759,0x776d,0x77e0,0x7887,0x789a,0x7894,0x788f,0x7884, +0x7895,0x7885,0x7886,0x78a1,0x7883,0x7879,0x7899,0x7880, +0x7896,0x787b,0x797c,0x7982,0x797d,0x7979,0x7a11,0x7a18, +0x7a19,0x7a12,0x7a17,0x7a15,0x7a22,0x7a13,0x7a1b,0x7a10, +0x7aa3,0x7aa2,0x7a9e,0x7aeb,0x7b66,0x7b64,0x7b6d,0x7b74, +0x7b69,0x7b72,0x7b65,0x7b73,0x7b71,0x7b70,0x7b61,0x7b78, +0x7b76,0x7b63,0x7cb2,0x7cb4,0x7caf,0x7d88,0x7d86,0x7d80, +0x7d8d,0x7d7f,0x7d85,0x7d7a,0x7d8e,0x7d7b,0x7d83,0x7d7c, +0x7d8c,0x7d94,0x7d84,0x7d7d,0x7d92,0x7f6d,0x7f6b,0x7f67, +0x7f68,0x7f6c,0x7fa6,0x7fa5,0x7fa7,0x7fdb,0x7fdc,0x8021, +0x8164,0x8160,0x8177,0x815c,0x8169,0x815b,0x8162,0x8172, +0x6721,0x815e,0x8176,0x8167,0x816f,0x8144,0x8161,0x821d, +0x8249,0x8244,0x8240,0x8242,0x8245,0x84f1,0x843f,0x8456, +0x8476,0x8479,0x848f,0x848d,0x8465,0x8451,0x8440,0x8486, +0x8467,0x8430,0x844d,0x847d,0x845a,0x8459,0x8474,0x8473, +0x845d,0x8507,0x845e,0x8437,0x843a,0x8434,0x847a,0x8443, +0x8478,0x8432,0x8445,0x8429,0x83d9,0x844b,0x842f,0x8442, +0x842d,0x845f,0x8470,0x8439,0x844e,0x844c,0x8452,0x846f, +0x84c5,0x848e,0x843b,0x8447,0x8436,0x8433,0x8468,0x847e, +0x8444,0x842b,0x8460,0x8454,0x846e,0x8450,0x870b,0x8704, +0x86f7,0x870c,0x86fa,0x86d6,0x86f5,0x874d,0x86f8,0x870e, +0x8709,0x8701,0x86f6,0x870d,0x8705,0x88d6,0x88cb,0x88cd, +0x88ce,0x88de,0x88db,0x88da,0x88cc,0x88d0,0x8985,0x899b, +0x89df,0x89e5,0x89e4,0x89e1,0x89e0,0x89e2,0x89dc,0x89e6, +0x8a76,0x8a86,0x8a7f,0x8a61,0x8a3f,0x8a77,0x8a82,0x8a84, +0x8a75,0x8a83,0x8a81,0x8a74,0x8a7a,0x8c3c,0x8c4b,0x8c4a, +0x8c65,0x8c64,0x8c66,0x8c86,0x8c84,0x8c85,0x8ccc,0x8d68, +0x8d69,0x8d91,0x8d8c,0x8d8e,0x8d8f,0x8d8d,0x8d93,0x8d94, +0x8d90,0x8d92,0x8df0,0x8de0,0x8dec,0x8df1,0x8dee,0x8dd0, +0x8de9,0x8de3,0x8de2,0x8de7,0x8df2,0x8deb,0x8df4,0x8f06, +0x8eff,0x8f01,0x8f00,0x8f05,0x8f07,0x8f08,0x8f02,0x8f0b, +0x9052,0x903f,0x9044,0x9049,0x903d,0x9110,0x910d,0x910f, +0x9111,0x9116,0x9114,0x910b,0x910e,0x916e,0x916f,0x9248, +0x9252,0x9230,0x923a,0x9266,0x9233,0x9265,0x925e,0x9283, +0x922e,0x924a,0x9246,0x926d,0x926c,0x924f,0x9260,0x9267, +0x926f,0x9236,0x9261,0x9270,0x9231,0x9254,0x9263,0x9250, +0x9272,0x924e,0x9253,0x924c,0x9256,0x9232,0x959f,0x959c, +0x959e,0x959b,0x9692,0x9693,0x9691,0x9697,0x96ce,0x96fa, +0x96fd,0x96f8,0x96f5,0x9773,0x9777,0x9778,0x9772,0x980f, +0x980d,0x980e,0x98ac,0x98f6,0x98f9,0x99af,0x99b2,0x99b0, +0x99b5,0x9aad,0x9aab,0x9b5b,0x9cea,0x9ced,0x9ce7,0x9e80, +0x9efd,0x50e6,0x50d4,0x50d7,0x50e8,0x50f3,0x50db,0x50ea, +0x50dd,0x50e4,0x50d3,0x50ec,0x50f0,0x50ef,0x50e3,0x50e0, +0x51d8,0x5280,0x5281,0x52e9,0x52eb,0x5330,0x53ac,0x5627, +0x5615,0x560c,0x5612,0x55fc,0x560f,0x561c,0x5601,0x5613, +0x5602,0x55fa,0x561d,0x5604,0x55ff,0x55f9,0x5889,0x587c, +0x5890,0x5898,0x5886,0x5881,0x587f,0x5874,0x588b,0x587a, +0x5887,0x5891,0x588e,0x5876,0x5882,0x5888,0x587b,0x5894, +0x588f,0x58fe,0x596b,0x5adc,0x5aee,0x5ae5,0x5ad5,0x5aea, +0x5ada,0x5aed,0x5aeb,0x5af3,0x5ae2,0x5ae0,0x5adb,0x5aec, +0x5ade,0x5add,0x5ad9,0x5ae8,0x5adf,0x5b77,0x5be0,0x5be3, +0x5c63,0x5d82,0x5d80,0x5d7d,0x5d86,0x5d7a,0x5d81,0x5d77, +0x5d8a,0x5d89,0x5d88,0x5d7e,0x5d7c,0x5d8d,0x5d79,0x5d7f, +0x5e58,0x5e59,0x5e53,0x5ed8,0x5ed1,0x5ed7,0x5ece,0x5edc, +0x5ed5,0x5ed9,0x5ed2,0x5ed4,0x5f44,0x5f43,0x5f6f,0x5fb6, +0x612c,0x6128,0x6141,0x615e,0x6171,0x6173,0x6152,0x6153, +0x6172,0x616c,0x6180,0x6174,0x6154,0x617a,0x615b,0x6165, +0x613b,0x616a,0x6161,0x6156,0x6229,0x6227,0x622b,0x642b, +0x644d,0x645b,0x645d,0x6474,0x6476,0x6472,0x6473,0x647d, +0x6475,0x6466,0x64a6,0x644e,0x6482,0x645e,0x645c,0x644b, +0x6453,0x6460,0x6450,0x647f,0x643f,0x646c,0x646b,0x6459, +0x6465,0x6477,0x6573,0x65a0,0x66a1,0x66a0,0x669f,0x6705, +0x6704,0x6722,0x69b1,0x69b6,0x69c9,0x69a0,0x69ce,0x6996, +0x69b0,0x69ac,0x69bc,0x6991,0x6999,0x698e,0x69a7,0x698d, +0x69a9,0x69be,0x69af,0x69bf,0x69c4,0x69bd,0x69a4,0x69d4, +0x69b9,0x69ca,0x699a,0x69cf,0x69b3,0x6993,0x69aa,0x69a1, +0x699e,0x69d9,0x6997,0x6990,0x69c2,0x69b5,0x69a5,0x69c6, +0x6b4a,0x6b4d,0x6b4b,0x6b9e,0x6b9f,0x6ba0,0x6bc3,0x6bc4, +0x6bfe,0x6ece,0x6ef5,0x6ef1,0x6f03,0x6f25,0x6ef8,0x6f37, +0x6efb,0x6f2e,0x6f09,0x6f4e,0x6f19,0x6f1a,0x6f27,0x6f18, +0x6f3b,0x6f12,0x6eed,0x6f0a,0x6f36,0x6f73,0x6ef9,0x6eee, +0x6f2d,0x6f40,0x6f30,0x6f3c,0x6f35,0x6eeb,0x6f07,0x6f0e, +0x6f43,0x6f05,0x6efd,0x6ef6,0x6f39,0x6f1c,0x6efc,0x6f3a, +0x6f1f,0x6f0d,0x6f1e,0x6f08,0x6f21,0x7187,0x7190,0x7189, +0x7180,0x7185,0x7182,0x718f,0x717b,0x7186,0x7181,0x7197, +0x7244,0x7253,0x7297,0x7295,0x7293,0x7343,0x734d,0x7351, +0x734c,0x7462,0x7473,0x7471,0x7475,0x7472,0x7467,0x746e, +0x7500,0x7502,0x7503,0x757d,0x7590,0x7616,0x7608,0x760c, +0x7615,0x7611,0x760a,0x7614,0x76b8,0x7781,0x777c,0x7785, +0x7782,0x776e,0x7780,0x776f,0x777e,0x7783,0x78b2,0x78aa, +0x78b4,0x78ad,0x78a8,0x787e,0x78ab,0x789e,0x78a5,0x78a0, +0x78ac,0x78a2,0x78a4,0x7998,0x798a,0x798b,0x7996,0x7995, +0x7994,0x7993,0x7997,0x7988,0x7992,0x7990,0x7a2b,0x7a4a, +0x7a30,0x7a2f,0x7a28,0x7a26,0x7aa8,0x7aab,0x7aac,0x7aee, +0x7b88,0x7b9c,0x7b8a,0x7b91,0x7b90,0x7b96,0x7b8d,0x7b8c, +0x7b9b,0x7b8e,0x7b85,0x7b98,0x5284,0x7b99,0x7ba4,0x7b82, +0x7cbb,0x7cbf,0x7cbc,0x7cba,0x7da7,0x7db7,0x7dc2,0x7da3, +0x7daa,0x7dc1,0x7dc0,0x7dc5,0x7d9d,0x7dce,0x7dc4,0x7dc6, +0x7dcb,0x7dcc,0x7daf,0x7db9,0x7d96,0x7dbc,0x7d9f,0x7da6, +0x7dae,0x7da9,0x7da1,0x7dc9,0x7f73,0x7fe2,0x7fe3,0x7fe5, +0x7fde,0x8024,0x805d,0x805c,0x8189,0x8186,0x8183,0x8187, +0x818d,0x818c,0x818b,0x8215,0x8497,0x84a4,0x84a1,0x849f, +0x84ba,0x84ce,0x84c2,0x84ac,0x84ae,0x84ab,0x84b9,0x84b4, +0x84c1,0x84cd,0x84aa,0x849a,0x84b1,0x84d0,0x849d,0x84a7, +0x84bb,0x84a2,0x8494,0x84c7,0x84cc,0x849b,0x84a9,0x84af, +0x84a8,0x84d6,0x8498,0x84b6,0x84cf,0x84a0,0x84d7,0x84d4, +0x84d2,0x84db,0x84b0,0x8491,0x8661,0x8733,0x8723,0x8728, +0x876b,0x8740,0x872e,0x871e,0x8721,0x8719,0x871b,0x8743, +0x872c,0x8741,0x873e,0x8746,0x8720,0x8732,0x872a,0x872d, +0x873c,0x8712,0x873a,0x8731,0x8735,0x8742,0x8726,0x8727, +0x8738,0x8724,0x871a,0x8730,0x8711,0x88f7,0x88e7,0x88f1, +0x88f2,0x88fa,0x88fe,0x88ee,0x88fc,0x88f6,0x88fb,0x88f0, +0x88ec,0x88eb,0x899d,0x89a1,0x899f,0x899e,0x89e9,0x89eb, +0x89e8,0x8aab,0x8a99,0x8a8b,0x8a92,0x8a8f,0x8a96,0x8c3d, +0x8c68,0x8c69,0x8cd5,0x8ccf,0x8cd7,0x8d96,0x8e09,0x8e02, +0x8dff,0x8e0d,0x8dfd,0x8e0a,0x8e03,0x8e07,0x8e06,0x8e05, +0x8dfe,0x8e00,0x8e04,0x8f10,0x8f11,0x8f0e,0x8f0d,0x9123, +0x911c,0x9120,0x9122,0x911f,0x911d,0x911a,0x9124,0x9121, +0x911b,0x917a,0x9172,0x9179,0x9173,0x92a5,0x92a4,0x9276, +0x929b,0x927a,0x92a0,0x9294,0x92aa,0x928d,0x92a6,0x929a, +0x92ab,0x9279,0x9297,0x927f,0x92a3,0x92ee,0x928e,0x9282, +0x9295,0x92a2,0x927d,0x9288,0x92a1,0x928a,0x9286,0x928c, +0x9299,0x92a7,0x927e,0x9287,0x92a9,0x929d,0x928b,0x922d, +0x969e,0x96a1,0x96ff,0x9758,0x977d,0x977a,0x977e,0x9783, +0x9780,0x9782,0x977b,0x9784,0x9781,0x977f,0x97ce,0x97cd, +0x9816,0x98ad,0x98ae,0x9902,0x9900,0x9907,0x999d,0x999c, +0x99c3,0x99b9,0x99bb,0x99ba,0x99c2,0x99bd,0x99c7,0x9ab1, +0x9ae3,0x9ae7,0x9b3e,0x9b3f,0x9b60,0x9b61,0x9b5f,0x9cf1, +0x9cf2,0x9cf5,0x9ea7,0x50ff,0x5103,0x5130,0x50f8,0x5106, +0x5107,0x50f6,0x50fe,0x510b,0x510c,0x50fd,0x510a,0x528b, +0x528c,0x52f1,0x52ef,0x5648,0x5642,0x564c,0x5635,0x5641, +0x564a,0x5649,0x5646,0x5658,0x565a,0x5640,0x5633,0x563d, +0x562c,0x563e,0x5638,0x562a,0x563a,0x571a,0x58ab,0x589d, +0x58b1,0x58a0,0x58a3,0x58af,0x58ac,0x58a5,0x58a1,0x58ff, +0x5aff,0x5af4,0x5afd,0x5af7,0x5af6,0x5b03,0x5af8,0x5b02, +0x5af9,0x5b01,0x5b07,0x5b05,0x5b0f,0x5c67,0x5d99,0x5d97, +0x5d9f,0x5d92,0x5da2,0x5d93,0x5d95,0x5da0,0x5d9c,0x5da1, +0x5d9a,0x5d9e,0x5e69,0x5e5d,0x5e60,0x5e5c,0x7df3,0x5edb, +0x5ede,0x5ee1,0x5f49,0x5fb2,0x618b,0x6183,0x6179,0x61b1, +0x61b0,0x61a2,0x6189,0x619b,0x6193,0x61af,0x61ad,0x619f, +0x6192,0x61aa,0x61a1,0x618d,0x6166,0x61b3,0x622d,0x646e, +0x6470,0x6496,0x64a0,0x6485,0x6497,0x649c,0x648f,0x648b, +0x648a,0x648c,0x64a3,0x649f,0x6468,0x64b1,0x6498,0x6576, +0x657a,0x6579,0x657b,0x65b2,0x65b3,0x66b5,0x66b0,0x66a9, +0x66b2,0x66b7,0x66aa,0x66af,0x6a00,0x6a06,0x6a17,0x69e5, +0x69f8,0x6a15,0x69f1,0x69e4,0x6a20,0x69ff,0x69ec,0x69e2, +0x6a1b,0x6a1d,0x69fe,0x6a27,0x69f2,0x69ee,0x6a14,0x69f7, +0x69e7,0x6a40,0x6a08,0x69e6,0x69fb,0x6a0d,0x69fc,0x69eb, +0x6a09,0x6a04,0x6a18,0x6a25,0x6a0f,0x69f6,0x6a26,0x6a07, +0x69f4,0x6a16,0x6b51,0x6ba5,0x6ba3,0x6ba2,0x6ba6,0x6c01, +0x6c00,0x6bff,0x6c02,0x6f41,0x6f26,0x6f7e,0x6f87,0x6fc6, +0x6f92,0x6f8d,0x6f89,0x6f8c,0x6f62,0x6f4f,0x6f85,0x6f5a, +0x6f96,0x6f76,0x6f6c,0x6f82,0x6f55,0x6f72,0x6f52,0x6f50, +0x6f57,0x6f94,0x6f93,0x6f5d,0x6f00,0x6f61,0x6f6b,0x6f7d, +0x6f67,0x6f90,0x6f53,0x6f8b,0x6f69,0x6f7f,0x6f95,0x6f63, +0x6f77,0x6f6a,0x6f7b,0x71b2,0x71af,0x719b,0x71b0,0x71a0, +0x719a,0x71a9,0x71b5,0x719d,0x71a5,0x719e,0x71a4,0x71a1, +0x71aa,0x719c,0x71a7,0x71b3,0x7298,0x729a,0x7358,0x7352, +0x735e,0x735f,0x7360,0x735d,0x735b,0x7361,0x735a,0x7359, +0x7362,0x7487,0x7489,0x748a,0x7486,0x7481,0x747d,0x7485, +0x7488,0x747c,0x7479,0x7508,0x7507,0x757e,0x7625,0x761e, +0x7619,0x761d,0x761c,0x7623,0x761a,0x7628,0x761b,0x769c, +0x769d,0x769e,0x769b,0x778d,0x778f,0x7789,0x7788,0x78cd, +0x78bb,0x78cf,0x78cc,0x78d1,0x78ce,0x78d4,0x78c8,0x78c3, +0x78c4,0x78c9,0x799a,0x79a1,0x79a0,0x799c,0x79a2,0x799b, +0x6b76,0x7a39,0x7ab2,0x7ab4,0x7ab3,0x7bb7,0x7bcb,0x7bbe, +0x7bac,0x7bce,0x7baf,0x7bb9,0x7bca,0x7bb5,0x7cc5,0x7cc8, +0x7ccc,0x7ccb,0x7df7,0x7ddb,0x7dea,0x7de7,0x7dd7,0x7de1, +0x7e03,0x7dfa,0x7de6,0x7df6,0x7df1,0x7df0,0x7dee,0x7ddf, +0x7f76,0x7fac,0x7fb0,0x7fad,0x7fed,0x7feb,0x7fea,0x7fec, +0x7fe6,0x7fe8,0x8064,0x8067,0x81a3,0x819f,0x819e,0x8195, +0x81a2,0x8199,0x8197,0x8216,0x824f,0x8253,0x8252,0x8250, +0x824e,0x8251,0x8524,0x853b,0x850f,0x8500,0x8529,0x850e, +0x8509,0x850d,0x851f,0x850a,0x8527,0x851c,0x84fb,0x852b, +0x84fa,0x8508,0x850c,0x84f4,0x852a,0x84f2,0x8515,0x84f7, +0x84eb,0x84f3,0x84fc,0x8512,0x84ea,0x84e9,0x8516,0x84fe, +0x8528,0x851d,0x852e,0x8502,0x84fd,0x851e,0x84f6,0x8531, +0x8526,0x84e7,0x84e8,0x84f0,0x84ef,0x84f9,0x8518,0x8520, +0x8530,0x850b,0x8519,0x852f,0x8662,0x8756,0x8763,0x8764, +0x8777,0x87e1,0x8773,0x8758,0x8754,0x875b,0x8752,0x8761, +0x875a,0x8751,0x875e,0x876d,0x876a,0x8750,0x874e,0x875f, +0x875d,0x876f,0x876c,0x877a,0x876e,0x875c,0x8765,0x874f, +0x877b,0x8775,0x8762,0x8767,0x8769,0x885a,0x8905,0x890c, +0x8914,0x890b,0x8917,0x8918,0x8919,0x8906,0x8916,0x8911, +0x890e,0x8909,0x89a2,0x89a4,0x89a3,0x89ed,0x89f0,0x89ec, +0x8acf,0x8ac6,0x8ab8,0x8ad3,0x8ad1,0x8ad4,0x8ad5,0x8abb, +0x8ad7,0x8abe,0x8ac0,0x8ac5,0x8ad8,0x8ac3,0x8aba,0x8abd, +0x8ad9,0x8c3e,0x8c4d,0x8c8f,0x8ce5,0x8cdf,0x8cd9,0x8ce8, +0x8cda,0x8cdd,0x8ce7,0x8da0,0x8d9c,0x8da1,0x8d9b,0x8e20, +0x8e23,0x8e25,0x8e24,0x8e2e,0x8e15,0x8e1b,0x8e16,0x8e11, +0x8e19,0x8e26,0x8e27,0x8e14,0x8e12,0x8e18,0x8e13,0x8e1c, +0x8e17,0x8e1a,0x8f2c,0x8f24,0x8f18,0x8f1a,0x8f20,0x8f23, +0x8f16,0x8f17,0x9073,0x9070,0x906f,0x9067,0x906b,0x912f, +0x912b,0x9129,0x912a,0x9132,0x9126,0x912e,0x9185,0x9186, +0x918a,0x9181,0x9182,0x9184,0x9180,0x92d0,0x92c3,0x92c4, +0x92c0,0x92d9,0x92b6,0x92cf,0x92f1,0x92df,0x92d8,0x92e9, +0x92d7,0x92dd,0x92cc,0x92ef,0x92c2,0x92e8,0x92ca,0x92c8, +0x92ce,0x92e6,0x92cd,0x92d5,0x92c9,0x92e0,0x92de,0x92e7, +0x92d1,0x92d3,0x92b5,0x92e1,0x92c6,0x92b4,0x957c,0x95ac, +0x95ab,0x95ae,0x95b0,0x96a4,0x96a2,0x96d3,0x9705,0x9708, +0x9702,0x975a,0x978a,0x978e,0x9788,0x97d0,0x97cf,0x981e, +0x981d,0x9826,0x9829,0x9828,0x9820,0x981b,0x9827,0x98b2, +0x9908,0x98fa,0x9911,0x9914,0x9916,0x9917,0x9915,0x99dc, +0x99cd,0x99cf,0x99d3,0x99d4,0x99ce,0x99c9,0x99d6,0x99d8, +0x99cb,0x99d7,0x99cc,0x9ab3,0x9aec,0x9aeb,0x9af3,0x9af2, +0x9af1,0x9b46,0x9b43,0x9b67,0x9b74,0x9b71,0x9b66,0x9b76, +0x9b75,0x9b70,0x9b68,0x9b64,0x9b6c,0x9cfc,0x9cfa,0x9cfd, +0x9cff,0x9cf7,0x9d07,0x9d00,0x9cf9,0x9cfb,0x9d08,0x9d05, +0x9d04,0x9e83,0x9ed3,0x9f0f,0x9f10,0x511c,0x5113,0x5117, +0x511a,0x5111,0x51de,0x5334,0x53e1,0x5670,0x5660,0x566e, +0x5673,0x5666,0x5663,0x566d,0x5672,0x565e,0x5677,0x571c, +0x571b,0x58c8,0x58bd,0x58c9,0x58bf,0x58ba,0x58c2,0x58bc, +0x58c6,0x5b17,0x5b19,0x5b1b,0x5b21,0x5b14,0x5b13,0x5b10, +0x5b16,0x5b28,0x5b1a,0x5b20,0x5b1e,0x5bef,0x5dac,0x5db1, +0x5da9,0x5da7,0x5db5,0x5db0,0x5dae,0x5daa,0x5da8,0x5db2, +0x5dad,0x5daf,0x5db4,0x5e67,0x5e68,0x5e66,0x5e6f,0x5ee9, +0x5ee7,0x5ee6,0x5ee8,0x5ee5,0x5f4b,0x5fbc,0x619d,0x61a8, +0x6196,0x61c5,0x61b4,0x61c6,0x61c1,0x61cc,0x61ba,0x61bf, +0x61b8,0x618c,0x64d7,0x64d6,0x64d0,0x64cf,0x64c9,0x64bd, +0x6489,0x64c3,0x64db,0x64f3,0x64d9,0x6533,0x657f,0x657c, +0x65a2,0x66c8,0x66be,0x66c0,0x66ca,0x66cb,0x66cf,0x66bd, +0x66bb,0x66ba,0x66cc,0x6723,0x6a34,0x6a66,0x6a49,0x6a67, +0x6a32,0x6a68,0x6a3e,0x6a5d,0x6a6d,0x6a76,0x6a5b,0x6a51, +0x6a28,0x6a5a,0x6a3b,0x6a3f,0x6a41,0x6a6a,0x6a64,0x6a50, +0x6a4f,0x6a54,0x6a6f,0x6a69,0x6a60,0x6a3c,0x6a5e,0x6a56, +0x6a55,0x6a4d,0x6a4e,0x6a46,0x6b55,0x6b54,0x6b56,0x6ba7, +0x6baa,0x6bab,0x6bc8,0x6bc7,0x6c04,0x6c03,0x6c06,0x6fad, +0x6fcb,0x6fa3,0x6fc7,0x6fbc,0x6fce,0x6fc8,0x6f5e,0x6fc4, +0x6fbd,0x6f9e,0x6fca,0x6fa8,0x7004,0x6fa5,0x6fae,0x6fba, +0x6fac,0x6faa,0x6fcf,0x6fbf,0x6fb8,0x6fa2,0x6fc9,0x6fab, +0x6fcd,0x6faf,0x6fb2,0x6fb0,0x71c5,0x71c2,0x71bf,0x71b8, +0x71d6,0x71c0,0x71c1,0x71cb,0x71d4,0x71ca,0x71c7,0x71cf, +0x71bd,0x71d8,0x71bc,0x71c6,0x71da,0x71db,0x729d,0x729e, +0x7369,0x7366,0x7367,0x736c,0x7365,0x736b,0x736a,0x747f, +0x749a,0x74a0,0x7494,0x7492,0x7495,0x74a1,0x750b,0x7580, +0x762f,0x762d,0x7631,0x763d,0x7633,0x763c,0x7635,0x7632, +0x7630,0x76bb,0x76e6,0x779a,0x779d,0x77a1,0x779c,0x779b, +0x77a2,0x77a3,0x7795,0x7799,0x7797,0x78dd,0x78e9,0x78e5, +0x78ea,0x78de,0x78e3,0x78db,0x78e1,0x78e2,0x78ed,0x78df, +0x78e0,0x79a4,0x7a44,0x7a48,0x7a47,0x7ab6,0x7ab8,0x7ab5, +0x7ab1,0x7ab7,0x7bde,0x7be3,0x7be7,0x7bdd,0x7bd5,0x7be5, +0x7bda,0x7be8,0x7bf9,0x7bd4,0x7bea,0x7be2,0x7bdc,0x7beb, +0x7bd8,0x7bdf,0x7cd2,0x7cd4,0x7cd7,0x7cd0,0x7cd1,0x7e12, +0x7e21,0x7e17,0x7e0c,0x7e1f,0x7e20,0x7e13,0x7e0e,0x7e1c, +0x7e15,0x7e1a,0x7e22,0x7e0b,0x7e0f,0x7e16,0x7e0d,0x7e14, +0x7e25,0x7e24,0x7f43,0x7f7b,0x7f7c,0x7f7a,0x7fb1,0x7fef, +0x802a,0x8029,0x806c,0x81b1,0x81a6,0x81ae,0x81b9,0x81b5, +0x81ab,0x81b0,0x81ac,0x81b4,0x81b2,0x81b7,0x81a7,0x81f2, +0x8255,0x8256,0x8257,0x8556,0x8545,0x856b,0x854d,0x8553, +0x8561,0x8558,0x8540,0x8546,0x8564,0x8541,0x8562,0x8544, +0x8551,0x8547,0x8563,0x853e,0x855b,0x8571,0x854e,0x856e, +0x8575,0x8555,0x8567,0x8560,0x858c,0x8566,0x855d,0x8554, +0x8565,0x856c,0x8663,0x8665,0x8664,0x879b,0x878f,0x8797, +0x8793,0x8792,0x8788,0x8781,0x8796,0x8798,0x8779,0x8787, +0x87a3,0x8785,0x8790,0x8791,0x879d,0x8784,0x8794,0x879c, +0x879a,0x8789,0x891e,0x8926,0x8930,0x892d,0x892e,0x8927, +0x8931,0x8922,0x8929,0x8923,0x892f,0x892c,0x891f,0x89f1, +0x8ae0,0x8ae2,0x8af2,0x8af4,0x8af5,0x8add,0x8b14,0x8ae4, +0x8adf,0x8af0,0x8ac8,0x8ade,0x8ae1,0x8ae8,0x8aff,0x8aef, +0x8afb,0x8c91,0x8c92,0x8c90,0x8cf5,0x8cee,0x8cf1,0x8cf0, +0x8cf3,0x8d6c,0x8d6e,0x8da5,0x8da7,0x8e33,0x8e3e,0x8e38, +0x8e40,0x8e45,0x8e36,0x8e3c,0x8e3d,0x8e41,0x8e30,0x8e3f, +0x8ebd,0x8f36,0x8f2e,0x8f35,0x8f32,0x8f39,0x8f37,0x8f34, +0x9076,0x9079,0x907b,0x9086,0x90fa,0x9133,0x9135,0x9136, +0x9193,0x9190,0x9191,0x918d,0x918f,0x9327,0x931e,0x9308, +0x931f,0x9306,0x930f,0x937a,0x9338,0x933c,0x931b,0x9323, +0x9312,0x9301,0x9346,0x932d,0x930e,0x930d,0x92cb,0x931d, +0x92fa,0x9325,0x9313,0x92f9,0x92f7,0x9334,0x9302,0x9324, +0x92ff,0x9329,0x9339,0x9335,0x932a,0x9314,0x930c,0x930b, +0x92fe,0x9309,0x9300,0x92fb,0x9316,0x95bc,0x95cd,0x95be, +0x95b9,0x95ba,0x95b6,0x95bf,0x95b5,0x95bd,0x96a9,0x96d4, +0x970b,0x9712,0x9710,0x9799,0x9797,0x9794,0x97f0,0x97f8, +0x9835,0x982f,0x9832,0x9924,0x991f,0x9927,0x9929,0x999e, +0x99ee,0x99ec,0x99e5,0x99e4,0x99f0,0x99e3,0x99ea,0x99e9, +0x99e7,0x9ab9,0x9abf,0x9ab4,0x9abb,0x9af6,0x9afa,0x9af9, +0x9af7,0x9b33,0x9b80,0x9b85,0x9b87,0x9b7c,0x9b7e,0x9b7b, +0x9b82,0x9b93,0x9b92,0x9b90,0x9b7a,0x9b95,0x9b7d,0x9b88, +0x9d25,0x9d17,0x9d20,0x9d1e,0x9d14,0x9d29,0x9d1d,0x9d18, +0x9d22,0x9d10,0x9d19,0x9d1f,0x9e88,0x9e86,0x9e87,0x9eae, +0x9ead,0x9ed5,0x9ed6,0x9efa,0x9f12,0x9f3d,0x5126,0x5125, +0x5122,0x5124,0x5120,0x5129,0x52f4,0x5693,0x568c,0x568d, +0x5686,0x5684,0x5683,0x567e,0x5682,0x567f,0x5681,0x58d6, +0x58d4,0x58cf,0x58d2,0x5b2d,0x5b25,0x5b32,0x5b23,0x5b2c, +0x5b27,0x5b26,0x5b2f,0x5b2e,0x5b7b,0x5bf1,0x5bf2,0x5db7, +0x5e6c,0x5e6a,0x5fbe,0x5fbb,0x61c3,0x61b5,0x61bc,0x61e7, +0x61e0,0x61e5,0x61e4,0x61e8,0x61de,0x64ef,0x64e9,0x64e3, +0x64eb,0x64e4,0x64e8,0x6581,0x6580,0x65b6,0x65da,0x66d2, +0x6a8d,0x6a96,0x6a81,0x6aa5,0x6a89,0x6a9f,0x6a9b,0x6aa1, +0x6a9e,0x6a87,0x6a93,0x6a8e,0x6a95,0x6a83,0x6aa8,0x6aa4, +0x6a91,0x6a7f,0x6aa6,0x6a9a,0x6a85,0x6a8c,0x6a92,0x6b5b, +0x6bad,0x6c09,0x6fcc,0x6fa9,0x6ff4,0x6fd4,0x6fe3,0x6fdc, +0x6fed,0x6fe7,0x6fe6,0x6fde,0x6ff2,0x6fdd,0x6fe2,0x6fe8, +0x71e1,0x71f1,0x71e8,0x71f2,0x71e4,0x71f0,0x71e2,0x7373, +0x736e,0x736f,0x7497,0x74b2,0x74ab,0x7490,0x74aa,0x74ad, +0x74b1,0x74a5,0x74af,0x7510,0x7511,0x7512,0x750f,0x7584, +0x7643,0x7648,0x7649,0x7647,0x76a4,0x76e9,0x77b5,0x77ab, +0x77b2,0x77b7,0x77b6,0x77b4,0x77b1,0x77a8,0x77f0,0x78f3, +0x78fd,0x7902,0x78fb,0x78fc,0x78f2,0x7905,0x78f9,0x78fe, +0x7904,0x79ab,0x79a8,0x7a5c,0x7a5b,0x7a56,0x7a58,0x7a54, +0x7a5a,0x7abe,0x7ac0,0x7ac1,0x7c05,0x7c0f,0x7bf2,0x7c00, +0x7bff,0x7bfb,0x7c0e,0x7bf4,0x7c0b,0x7bf3,0x7c02,0x7c09, +0x7c03,0x7c01,0x7bf8,0x7bfd,0x7c06,0x7bf0,0x7bf1,0x7c10, +0x7c0a,0x7ce8,0x7e2d,0x7e3c,0x7e42,0x7e33,0x9848,0x7e38, +0x7e2a,0x7e49,0x7e40,0x7e47,0x7e29,0x7e4c,0x7e30,0x7e3b, +0x7e36,0x7e44,0x7e3a,0x7f45,0x7f7f,0x7f7e,0x7f7d,0x7ff4, +0x7ff2,0x802c,0x81bb,0x81c4,0x81cc,0x81ca,0x81c5,0x81c7, +0x81bc,0x81e9,0x825b,0x825a,0x825c,0x8583,0x8580,0x858f, +0x85a7,0x8595,0x85a0,0x858b,0x85a3,0x857b,0x85a4,0x859a, +0x859e,0x8577,0x857c,0x8589,0x85a1,0x857a,0x8578,0x8557, +0x858e,0x8596,0x8586,0x858d,0x8599,0x859d,0x8581,0x85a2, +0x8582,0x8588,0x8585,0x8579,0x8576,0x8598,0x8590,0x859f, +0x8668,0x87be,0x87aa,0x87ad,0x87c5,0x87b0,0x87ac,0x87b9, +0x87b5,0x87bc,0x87ae,0x87c9,0x87c3,0x87c2,0x87cc,0x87b7, +0x87af,0x87c4,0x87ca,0x87b4,0x87b6,0x87bf,0x87b8,0x87bd, +0x87de,0x87b2,0x8935,0x8933,0x893c,0x893e,0x8941,0x8952, +0x8937,0x8942,0x89ad,0x89af,0x89ae,0x89f2,0x89f3,0x8b1e, +0x8b18,0x8b16,0x8b11,0x8b05,0x8b0b,0x8b22,0x8b0f,0x8b12, +0x8b15,0x8b07,0x8b0d,0x8b08,0x8b06,0x8b1c,0x8b13,0x8b1a, +0x8c4f,0x8c70,0x8c72,0x8c71,0x8c6f,0x8c95,0x8c94,0x8cf9, +0x8d6f,0x8e4e,0x8e4d,0x8e53,0x8e50,0x8e4c,0x8e47,0x8f43, +0x8f40,0x9085,0x907e,0x9138,0x919a,0x91a2,0x919b,0x9199, +0x919f,0x91a1,0x919d,0x91a0,0x93a1,0x9383,0x93af,0x9364, +0x9356,0x9347,0x937c,0x9358,0x935c,0x9376,0x9349,0x9350, +0x9351,0x9360,0x936d,0x938f,0x934c,0x936a,0x9379,0x9357, +0x9355,0x9352,0x934f,0x9371,0x9377,0x937b,0x9361,0x935e, +0x9363,0x9367,0x9380,0x934e,0x9359,0x95c7,0x95c0,0x95c9, +0x95c3,0x95c5,0x95b7,0x96ae,0x96b0,0x96ac,0x9720,0x971f, +0x9718,0x971d,0x9719,0x979a,0x97a1,0x979c,0x979e,0x979d, +0x97d5,0x97d4,0x97f1,0x9841,0x9844,0x984a,0x9849,0x9845, +0x9843,0x9925,0x992b,0x992c,0x992a,0x9933,0x9932,0x992f, +0x992d,0x9931,0x9930,0x9998,0x99a3,0x99a1,0x9a02,0x99fa, +0x99f4,0x99f7,0x99f9,0x99f8,0x99f6,0x99fb,0x99fd,0x99fe, +0x99fc,0x9a03,0x9abe,0x9afe,0x9afd,0x9b01,0x9afc,0x9b48, +0x9b9a,0x9ba8,0x9b9e,0x9b9b,0x9ba6,0x9ba1,0x9ba5,0x9ba4, +0x9b86,0x9ba2,0x9ba0,0x9baf,0x9d33,0x9d41,0x9d67,0x9d36, +0x9d2e,0x9d2f,0x9d31,0x9d38,0x9d30,0x9d45,0x9d42,0x9d43, +0x9d3e,0x9d37,0x9d40,0x9d3d,0x7ff5,0x9d2d,0x9e8a,0x9e89, +0x9e8d,0x9eb0,0x9ec8,0x9eda,0x9efb,0x9eff,0x9f24,0x9f23, +0x9f22,0x9f54,0x9fa0,0x5131,0x512d,0x512e,0x5698,0x569c, +0x5697,0x569a,0x569d,0x5699,0x5970,0x5b3c,0x5c69,0x5c6a, +0x5dc0,0x5e6d,0x5e6e,0x61d8,0x61df,0x61ed,0x61ee,0x61f1, +0x61ea,0x61f0,0x61eb,0x61d6,0x61e9,0x64ff,0x6504,0x64fd, +0x64f8,0x6501,0x6503,0x64fc,0x6594,0x65db,0x66da,0x66db, +0x66d8,0x6ac5,0x6ab9,0x6abd,0x6ae1,0x6ac6,0x6aba,0x6ab6, +0x6ab7,0x6ac7,0x6ab4,0x6aad,0x6b5e,0x6bc9,0x6c0b,0x7007, +0x700c,0x700d,0x7001,0x7005,0x7014,0x700e,0x6fff,0x7000, +0x6ffb,0x7026,0x6ffc,0x6ff7,0x700a,0x7201,0x71ff,0x71f9, +0x7203,0x71fd,0x7376,0x74b8,0x74c0,0x74b5,0x74c1,0x74be, +0x74b6,0x74bb,0x74c2,0x7514,0x7513,0x765c,0x7664,0x7659, +0x7650,0x7653,0x7657,0x765a,0x76a6,0x76bd,0x76ec,0x77c2, +0x77ba,0x78ff,0x790c,0x7913,0x7914,0x7909,0x7910,0x7912, +0x7911,0x79ad,0x79ac,0x7a5f,0x7c1c,0x7c29,0x7c19,0x7c20, +0x7c1f,0x7c2d,0x7c1d,0x7c26,0x7c28,0x7c22,0x7c25,0x7c30, +0x7e5c,0x7e50,0x7e56,0x7e63,0x7e58,0x7e62,0x7e5f,0x7e51, +0x7e60,0x7e57,0x7e53,0x7fb5,0x7fb3,0x7ff7,0x7ff8,0x8075, +0x81d1,0x81d2,0x81d0,0x825f,0x825e,0x85b4,0x85c6,0x85c0, +0x85c3,0x85c2,0x85b3,0x85b5,0x85bd,0x85c7,0x85c4,0x85bf, +0x85cb,0x85ce,0x85c8,0x85c5,0x85b1,0x85b6,0x85d2,0x8624, +0x85b8,0x85b7,0x85be,0x8669,0x87e7,0x87e6,0x87e2,0x87db, +0x87eb,0x87ea,0x87e5,0x87df,0x87f3,0x87e4,0x87d4,0x87dc, +0x87d3,0x87ed,0x87d8,0x87e3,0x87a4,0x87d7,0x87d9,0x8801, +0x87f4,0x87e8,0x87dd,0x8953,0x894b,0x894f,0x894c,0x8946, +0x8950,0x8951,0x8949,0x8b2a,0x8b27,0x8b23,0x8b33,0x8b30, +0x8b35,0x8b47,0x8b2f,0x8b3c,0x8b3e,0x8b31,0x8b25,0x8b37, +0x8b26,0x8b36,0x8b2e,0x8b24,0x8b3b,0x8b3d,0x8b3a,0x8c42, +0x8c75,0x8c99,0x8c98,0x8c97,0x8cfe,0x8d04,0x8d02,0x8d00, +0x8e5c,0x8e62,0x8e60,0x8e57,0x8e56,0x8e5e,0x8e65,0x8e67, +0x8e5b,0x8e5a,0x8e61,0x8e5d,0x8e69,0x8e54,0x8f46,0x8f47, +0x8f48,0x8f4b,0x9128,0x913a,0x913b,0x913e,0x91a8,0x91a5, +0x91a7,0x91af,0x91aa,0x93b5,0x938c,0x9392,0x93b7,0x939b, +0x939d,0x9389,0x93a7,0x938e,0x93aa,0x939e,0x93a6,0x9395, +0x9388,0x9399,0x939f,0x938d,0x93b1,0x9391,0x93b2,0x93a4, +0x93a8,0x93b4,0x93a3,0x93a5,0x95d2,0x95d3,0x95d1,0x96b3, +0x96d7,0x96da,0x5dc2,0x96df,0x96d8,0x96dd,0x9723,0x9722, +0x9725,0x97ac,0x97ae,0x97a8,0x97ab,0x97a4,0x97aa,0x97a2, +0x97a5,0x97d7,0x97d9,0x97d6,0x97d8,0x97fa,0x9850,0x9851, +0x9852,0x98b8,0x9941,0x993c,0x993a,0x9a0f,0x9a0b,0x9a09, +0x9a0d,0x9a04,0x9a11,0x9a0a,0x9a05,0x9a07,0x9a06,0x9ac0, +0x9adc,0x9b08,0x9b04,0x9b05,0x9b29,0x9b35,0x9b4a,0x9b4c, +0x9b4b,0x9bc7,0x9bc6,0x9bc3,0x9bbf,0x9bc1,0x9bb5,0x9bb8, +0x9bd3,0x9bb6,0x9bc4,0x9bb9,0x9bbd,0x9d5c,0x9d53,0x9d4f, +0x9d4a,0x9d5b,0x9d4b,0x9d59,0x9d56,0x9d4c,0x9d57,0x9d52, +0x9d54,0x9d5f,0x9d58,0x9d5a,0x9e8e,0x9e8c,0x9edf,0x9f01, +0x9f00,0x9f16,0x9f25,0x9f2b,0x9f2a,0x9f29,0x9f28,0x9f4c, +0x9f55,0x5134,0x5135,0x5296,0x52f7,0x53b4,0x56ab,0x56ad, +0x56a6,0x56a7,0x56aa,0x56ac,0x58da,0x58dd,0x58db,0x5912, +0x5b3d,0x5b3e,0x5b3f,0x5dc3,0x5e70,0x5fbf,0x61fb,0x6507, +0x6510,0x650d,0x6509,0x650c,0x650e,0x6584,0x65de,0x65dd, +0x66de,0x6ae7,0x6ae0,0x6acc,0x6ad1,0x6ad9,0x6acb,0x6adf, +0x6adc,0x6ad0,0x6aeb,0x6acf,0x6acd,0x6ade,0x6b60,0x6bb0, +0x6c0c,0x7019,0x7027,0x7020,0x7016,0x702b,0x7021,0x7022, +0x7023,0x7029,0x7017,0x7024,0x701c,0x702a,0x720c,0x720a, +0x7207,0x7202,0x7205,0x72a5,0x72a6,0x72a4,0x72a3,0x72a1, +0x74cb,0x74c5,0x74b7,0x74c3,0x7516,0x7660,0x77c9,0x77ca, +0x77c4,0x77f1,0x791d,0x791b,0x7921,0x791c,0x7917,0x791e, +0x79b0,0x7a67,0x7a68,0x7c33,0x7c3c,0x7c39,0x7c2c,0x7c3b, +0x7cec,0x7cea,0x7e76,0x7e75,0x7e78,0x7e70,0x7e77,0x7e6f, +0x7e7a,0x7e72,0x7e74,0x7e68,0x7f4b,0x7f4a,0x7f83,0x7f86, +0x7fb7,0x7ffd,0x7ffe,0x8078,0x81d7,0x81d5,0x8264,0x8261, +0x8263,0x85eb,0x85f1,0x85ed,0x85d9,0x85e1,0x85e8,0x85da, +0x85d7,0x85ec,0x85f2,0x85f8,0x85d8,0x85df,0x85e3,0x85dc, +0x85d1,0x85f0,0x85e6,0x85ef,0x85de,0x85e2,0x8800,0x87fa, +0x8803,0x87f6,0x87f7,0x8809,0x880c,0x880b,0x8806,0x87fc, +0x8808,0x87ff,0x880a,0x8802,0x8962,0x895a,0x895b,0x8957, +0x8961,0x895c,0x8958,0x895d,0x8959,0x8988,0x89b7,0x89b6, +0x89f6,0x8b50,0x8b48,0x8b4a,0x8b40,0x8b53,0x8b56,0x8b54, +0x8b4b,0x8b55,0x8b51,0x8b42,0x8b52,0x8b57,0x8c43,0x8c77, +0x8c76,0x8c9a,0x8d06,0x8d07,0x8d09,0x8dac,0x8daa,0x8dad, +0x8dab,0x8e6d,0x8e78,0x8e73,0x8e6a,0x8e6f,0x8e7b,0x8ec2, +0x8f52,0x8f51,0x8f4f,0x8f50,0x8f53,0x8fb4,0x9140,0x913f, +0x91b0,0x91ad,0x93de,0x93c7,0x93cf,0x93c2,0x93da,0x93d0, +0x93f9,0x93ec,0x93cc,0x93d9,0x93a9,0x93e6,0x93ca,0x93d4, +0x93ee,0x93e3,0x93d5,0x93c4,0x93ce,0x93c0,0x93d2,0x93e7, +0x957d,0x95da,0x95db,0x96e1,0x9729,0x972b,0x972c,0x9728, +0x9726,0x97b3,0x97b7,0x97b6,0x97dd,0x97de,0x97df,0x985c, +0x9859,0x985d,0x9857,0x98bf,0x98bd,0x98bb,0x98be,0x9948, +0x9947,0x9943,0x99a6,0x99a7,0x9a1a,0x9a15,0x9a25,0x9a1d, +0x9a24,0x9a1b,0x9a22,0x9a20,0x9a27,0x9a23,0x9a1e,0x9a1c, +0x9a14,0x9ac2,0x9b0b,0x9b0a,0x9b0e,0x9b0c,0x9b37,0x9bea, +0x9beb,0x9be0,0x9bde,0x9be4,0x9be6,0x9be2,0x9bf0,0x9bd4, +0x9bd7,0x9bec,0x9bdc,0x9bd9,0x9be5,0x9bd5,0x9be1,0x9bda, +0x9d77,0x9d81,0x9d8a,0x9d84,0x9d88,0x9d71,0x9d80,0x9d78, +0x9d86,0x9d8b,0x9d8c,0x9d7d,0x9d6b,0x9d74,0x9d75,0x9d70, +0x9d69,0x9d85,0x9d73,0x9d7b,0x9d82,0x9d6f,0x9d79,0x9d7f, +0x9d87,0x9d68,0x9e94,0x9e91,0x9ec0,0x9efc,0x9f2d,0x9f40, +0x9f41,0x9f4d,0x9f56,0x9f57,0x9f58,0x5337,0x56b2,0x56b5, +0x56b3,0x58e3,0x5b45,0x5dc6,0x5dc7,0x5eee,0x5eef,0x5fc0, +0x5fc1,0x61f9,0x6517,0x6516,0x6515,0x6513,0x65df,0x66e8, +0x66e3,0x66e4,0x6af3,0x6af0,0x6aea,0x6ae8,0x6af9,0x6af1, +0x6aee,0x6aef,0x703c,0x7035,0x702f,0x7037,0x7034,0x7031, +0x7042,0x7038,0x703f,0x703a,0x7039,0x7040,0x703b,0x7033, +0x7041,0x7213,0x7214,0x72a8,0x737d,0x737c,0x74ba,0x76ab, +0x76aa,0x76be,0x76ed,0x77cc,0x77ce,0x77cf,0x77cd,0x77f2, +0x7925,0x7923,0x7927,0x7928,0x7924,0x7929,0x79b2,0x7a6e, +0x7a6c,0x7a6d,0x7af7,0x7c49,0x7c48,0x7c4a,0x7c47,0x7c45, +0x7cee,0x7e7b,0x7e7e,0x7e81,0x7e80,0x7fba,0x7fff,0x8079, +0x81db,0x81d9,0x820b,0x8268,0x8269,0x8622,0x85ff,0x8601, +0x85fe,0x861b,0x8600,0x85f6,0x8604,0x8609,0x8605,0x860c, +0x85fd,0x8819,0x8810,0x8811,0x8817,0x8813,0x8816,0x8963, +0x8966,0x89b9,0x89f7,0x8b60,0x8b6a,0x8b5d,0x8b68,0x8b63, +0x8b65,0x8b67,0x8b6d,0x8dae,0x8e86,0x8e88,0x8e84,0x8f59, +0x8f56,0x8f57,0x8f55,0x8f58,0x8f5a,0x908d,0x9143,0x9141, +0x91b7,0x91b5,0x91b2,0x91b3,0x940b,0x9413,0x93fb,0x9420, +0x940f,0x9414,0x93fe,0x9415,0x9410,0x9428,0x9419,0x940d, +0x93f5,0x9400,0x93f7,0x9407,0x940e,0x9416,0x9412,0x93fa, +0x9409,0x93f8,0x940a,0x93ff,0x93fc,0x940c,0x93f6,0x9411, +0x9406,0x95de,0x95e0,0x95df,0x972e,0x972f,0x97b9,0x97bb, +0x97fd,0x97fe,0x9860,0x9862,0x9863,0x985f,0x98c1,0x98c2, +0x9950,0x994e,0x9959,0x994c,0x994b,0x9953,0x9a32,0x9a34, +0x9a31,0x9a2c,0x9a2a,0x9a36,0x9a29,0x9a2e,0x9a38,0x9a2d, +0x9ac7,0x9aca,0x9ac6,0x9b10,0x9b12,0x9b11,0x9c0b,0x9c08, +0x9bf7,0x9c05,0x9c12,0x9bf8,0x9c40,0x9c07,0x9c0e,0x9c06, +0x9c17,0x9c14,0x9c09,0x9d9f,0x9d99,0x9da4,0x9d9d,0x9d92, +0x9d98,0x9d90,0x9d9b,0x9da0,0x9d94,0x9d9c,0x9daa,0x9d97, +0x9da1,0x9d9a,0x9da2,0x9da8,0x9d9e,0x9da3,0x9dbf,0x9da9, +0x9d96,0x9da6,0x9da7,0x9e99,0x9e9b,0x9e9a,0x9ee5,0x9ee4, +0x9ee7,0x9ee6,0x9f30,0x9f2e,0x9f5b,0x9f60,0x9f5e,0x9f5d, +0x9f59,0x9f91,0x513a,0x5139,0x5298,0x5297,0x56c3,0x56bd, +0x56be,0x5b48,0x5b47,0x5dcb,0x5dcf,0x5ef1,0x61fd,0x651b, +0x6b02,0x6afc,0x6b03,0x6af8,0x6b00,0x7043,0x7044,0x704a, +0x7048,0x7049,0x7045,0x7046,0x721d,0x721a,0x7219,0x737e, +0x7517,0x766a,0x77d0,0x792d,0x7931,0x792f,0x7c54,0x7c53, +0x7cf2,0x7e8a,0x7e87,0x7e88,0x7e8b,0x7e86,0x7e8d,0x7f4d, +0x7fbb,0x8030,0x81dd,0x8618,0x862a,0x8626,0x861f,0x8623, +0x861c,0x8619,0x8627,0x862e,0x8621,0x8620,0x8629,0x861e, +0x8625,0x8829,0x881d,0x881b,0x8820,0x8824,0x881c,0x882b, +0x884a,0x896d,0x8969,0x896e,0x896b,0x89fa,0x8b79,0x8b78, +0x8b45,0x8b7a,0x8b7b,0x8d10,0x8d14,0x8daf,0x8e8e,0x8e8c, +0x8f5e,0x8f5b,0x8f5d,0x9146,0x9144,0x9145,0x91b9,0x943f, +0x943b,0x9436,0x9429,0x943d,0x943c,0x9430,0x9439,0x942a, +0x9437,0x942c,0x9440,0x9431,0x95e5,0x95e4,0x95e3,0x9735, +0x973a,0x97bf,0x97e1,0x9864,0x98c9,0x98c6,0x98c0,0x9958, +0x9956,0x9a39,0x9a3d,0x9a46,0x9a44,0x9a42,0x9a41,0x9a3a, +0x9a3f,0x9acd,0x9b15,0x9b17,0x9b18,0x9b16,0x9b3a,0x9b52, +0x9c2b,0x9c1d,0x9c1c,0x9c2c,0x9c23,0x9c28,0x9c29,0x9c24, +0x9c21,0x9db7,0x9db6,0x9dbc,0x9dc1,0x9dc7,0x9dca,0x9dcf, +0x9dbe,0x9dc5,0x9dc3,0x9dbb,0x9db5,0x9dce,0x9db9,0x9dba, +0x9dac,0x9dc8,0x9db1,0x9dad,0x9dcc,0x9db3,0x9dcd,0x9db2, +0x9e7a,0x9e9c,0x9eeb,0x9eee,0x9eed,0x9f1b,0x9f18,0x9f1a, +0x9f31,0x9f4e,0x9f65,0x9f64,0x9f92,0x4eb9,0x56c6,0x56c5, +0x56cb,0x5971,0x5b4b,0x5b4c,0x5dd5,0x5dd1,0x5ef2,0x6521, +0x6520,0x6526,0x6522,0x6b0b,0x6b08,0x6b09,0x6c0d,0x7055, +0x7056,0x7057,0x7052,0x721e,0x721f,0x72a9,0x737f,0x74d8, +0x74d5,0x74d9,0x74d7,0x766d,0x76ad,0x7935,0x79b4,0x7a70, +0x7a71,0x7c57,0x7c5c,0x7c59,0x7c5b,0x7c5a,0x7cf4,0x7cf1, +0x7e91,0x7f4f,0x7f87,0x81de,0x826b,0x8634,0x8635,0x8633, +0x862c,0x8632,0x8636,0x882c,0x8828,0x8826,0x882a,0x8825, +0x8971,0x89bf,0x89be,0x89fb,0x8b7e,0x8b84,0x8b82,0x8b86, +0x8b85,0x8b7f,0x8d15,0x8e95,0x8e94,0x8e9a,0x8e92,0x8e90, +0x8e96,0x8e97,0x8f60,0x8f62,0x9147,0x944c,0x9450,0x944a, +0x944b,0x944f,0x9447,0x9445,0x9448,0x9449,0x9446,0x973f, +0x97e3,0x986a,0x9869,0x98cb,0x9954,0x995b,0x9a4e,0x9a53, +0x9a54,0x9a4c,0x9a4f,0x9a48,0x9a4a,0x9a49,0x9a52,0x9a50, +0x9ad0,0x9b19,0x9b2b,0x9b3b,0x9b56,0x9b55,0x9c46,0x9c48, +0x9c3f,0x9c44,0x9c39,0x9c33,0x9c41,0x9c3c,0x9c37,0x9c34, +0x9c32,0x9c3d,0x9c36,0x9ddb,0x9dd2,0x9dde,0x9dda,0x9dcb, +0x9dd0,0x9ddc,0x9dd1,0x9ddf,0x9de9,0x9dd9,0x9dd8,0x9dd6, +0x9df5,0x9dd5,0x9ddd,0x9eb6,0x9ef0,0x9f35,0x9f33,0x9f32, +0x9f42,0x9f6b,0x9f95,0x9fa2,0x513d,0x5299,0x58e8,0x58e7, +0x5972,0x5b4d,0x5dd8,0x882f,0x5f4f,0x6201,0x6203,0x6204, +0x6529,0x6525,0x6596,0x66eb,0x6b11,0x6b12,0x6b0f,0x6bca, +0x705b,0x705a,0x7222,0x7382,0x7381,0x7383,0x7670,0x77d4, +0x7c67,0x7c66,0x7e95,0x826c,0x863a,0x8640,0x8639,0x863c, +0x8631,0x863b,0x863e,0x8830,0x8832,0x882e,0x8833,0x8976, +0x8974,0x8973,0x89fe,0x8b8c,0x8b8e,0x8b8b,0x8b88,0x8c45, +0x8d19,0x8e98,0x8f64,0x8f63,0x91bc,0x9462,0x9455,0x945d, +0x9457,0x945e,0x97c4,0x97c5,0x9800,0x9a56,0x9a59,0x9b1e, +0x9b1f,0x9b20,0x9c52,0x9c58,0x9c50,0x9c4a,0x9c4d,0x9c4b, +0x9c55,0x9c59,0x9c4c,0x9c4e,0x9dfb,0x9df7,0x9def,0x9de3, +0x9deb,0x9df8,0x9de4,0x9df6,0x9de1,0x9dee,0x9de6,0x9df2, +0x9df0,0x9de2,0x9dec,0x9df4,0x9df3,0x9de8,0x9ded,0x9ec2, +0x9ed0,0x9ef2,0x9ef3,0x9f06,0x9f1c,0x9f38,0x9f37,0x9f36, +0x9f43,0x9f4f,0x9f71,0x9f70,0x9f6e,0x9f6f,0x56d3,0x56cd, +0x5b4e,0x5c6d,0x652d,0x66ed,0x66ee,0x6b13,0x705f,0x7061, +0x705d,0x7060,0x7223,0x74db,0x74e5,0x77d5,0x7938,0x79b7, +0x79b6,0x7c6a,0x7e97,0x7f89,0x826d,0x8643,0x8838,0x8837, +0x8835,0x884b,0x8b94,0x8b95,0x8e9e,0x8e9f,0x8ea0,0x8e9d, +0x91be,0x91bd,0x91c2,0x946b,0x9468,0x9469,0x96e5,0x9746, +0x9743,0x9747,0x97c7,0x97e5,0x9a5e,0x9ad5,0x9b59,0x9c63, +0x9c67,0x9c66,0x9c62,0x9c5e,0x9c60,0x9e02,0x9dfe,0x9e07, +0x9e03,0x9e06,0x9e05,0x9e00,0x9e01,0x9e09,0x9dff,0x9dfd, +0x9e04,0x9ea0,0x9f1e,0x9f46,0x9f74,0x9f75,0x9f76,0x56d4, +0x652e,0x65b8,0x6b18,0x6b19,0x6b17,0x6b1a,0x7062,0x7226, +0x72aa,0x77d8,0x77d9,0x7939,0x7c69,0x7c6b,0x7cf6,0x7e9a, +0x7e98,0x7e9b,0x7e99,0x81e0,0x81e1,0x8646,0x8647,0x8648, +0x8979,0x897a,0x897c,0x897b,0x89ff,0x8b98,0x8b99,0x8ea5, +0x8ea4,0x8ea3,0x946e,0x946d,0x946f,0x9471,0x9473,0x9749, +0x9872,0x995f,0x9c68,0x9c6e,0x9c6d,0x9e0b,0x9e0d,0x9e10, +0x9e0f,0x9e12,0x9e11,0x9ea1,0x9ef5,0x9f09,0x9f47,0x9f78, +0x9f7b,0x9f7a,0x9f79,0x571e,0x7066,0x7c6f,0x883c,0x8db2, +0x8ea6,0x91c3,0x9474,0x9478,0x9476,0x9475,0x9a60,0x9c74, +0x9c73,0x9c71,0x9c75,0x9e14,0x9e13,0x9ef6,0x9f0a,0x9fa4, +0x7068,0x7065,0x7cf7,0x866a,0x883e,0x883d,0x883f,0x8b9e, +0x8c9c,0x8ea9,0x8ec9,0x974b,0x9873,0x9874,0x98cc,0x9961, +0x99ab,0x9a64,0x9a66,0x9a67,0x9b24,0x9e15,0x9e17,0x9f48, +0x6207,0x6b1e,0x7227,0x864c,0x8ea8,0x9482,0x9480,0x9481, +0x9a69,0x9a68,0x9b2e,0x9e19,0x7229,0x864b,0x8b9f,0x9483, +0x9c79,0x9eb7,0x7675,0x9a6b,0x9c7a,0x9e1d,0x7069,0x706a, +0x9ea4,0x9f7e,0x9f49,0x9f98,0x7881,0x92b9,0x88cf,0x58bb, +0x6052,0x7ca7,0x5afa,0x2554,0x2566,0x2557,0x2560,0x256c, +0x2563,0x255a,0x2569,0x255d,0x2552,0x2564,0x2555,0x255e, +0x256a,0x2561,0x2558,0x2567,0x255b,0x2553,0x2565,0x2556, +0x255f,0x256b,0x2562,0x2559,0x2568,0x255c,0x2551,0x2550, +0x256d,0x256e,0x2570,0x256f,0x2593}; + +static const int big5_ucs_table_size = sizeof(big5_ucs_table)/sizeof(unsigned short); + +/* UCS -> Big5 */ +static const unsigned short ucs_a1_big5_table[] = { +/* 0x0000 */ +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000a,0x000b,0x000c,0x000d,0x000e,0x000f, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001a,0x001b,0x001c,0x001d,0x001e,0x001f, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002a,0x002b,0x002c,0x002d,0x002e,0x002f, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003a,0x003b,0x003c,0x003d,0x003e,0x003f, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004a,0x004b,0x004c,0x004d,0x004e,0x004f, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005a,0x005b,0x005c,0x005d,0x005e,0x005f, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006a,0x006b,0x006c,0x006d,0x006e,0x006f, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007a,0x007b,0x007c,0x007d,0x007e,0x007f, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xa1b1, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xa1c2, +0xa258,0xa1d3,0x0000,0x0000,0x0000,0x0000,0x0000,0xa150, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xa1d1, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xa1d2, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x0100 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x0200 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xa3be, +0x0000,0xa3bc,0xa3bd,0xa3bf,0x0000,0xa1c5,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xa3bb,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x0300 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xa344,0xa345,0xa346,0xa347,0xa348,0xa349,0xa34a, +0xa34b,0xa34c,0xa34d,0xa34e,0xa34f,0xa350,0xa351,0xa352, +0xa353,0xa354,0x0000,0xa355,0xa356,0xa357,0xa358,0xa359, +0xa35a,0xa35b,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xa35c,0xa35d,0xa35e,0xa35f,0xa360,0xa361,0xa362, +0xa363,0xa364,0xa365,0xa366,0xa367,0xa368,0xa369,0xa36a, +0xa36b,0xa36c,0x0000,0xa36d,0xa36e,0xa36f,0xa370,0xa371, +0xa372,0xa373}; + +static const int ucs_a1_big5_table_min = 0x0000; +static const int ucs_a1_big5_table_max = 0x0000 + (sizeof (ucs_a1_big5_table) / sizeof (unsigned short)); + + +static const unsigned short ucs_a2_big5_table[] = { +/* 0x2000 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xa156,0xa158,0x0000,0x0000,0x0000, +0xa1a5,0xa1a6,0x0000,0x0000,0xa1a7,0xa1a8,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xa14c,0xa14b,0xa145, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xa1ac,0x0000,0x0000,0xa1ab,0x0000,0x0000, +0x0000,0x0000,0x0000,0xa1b0,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xa3e1,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x2100 */ +0x0000,0x0000,0x0000,0xa24a,0x0000,0xa1c1,0x0000,0x0000, +0x0000,0xa24b,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa2b9,0xa2ba,0xa2bb,0xa2bc,0xa2bd,0xa2be,0xa2bf,0xa2c0, +0xa2c1,0xa2c2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa1f6,0xa1f4,0xa1f7,0xa1f5,0x0000,0x0000,0xa1f8,0xa1f9, +0xa1fb,0xa1fa,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x2200 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xa241,0x0000,0x0000, +0x0000,0x0000,0xa1d4,0x0000,0x0000,0x0000,0xa1db,0xa1e8, +0xa1e7,0x0000,0x0000,0xa1fd,0x0000,0xa1fc,0x0000,0x0000, +0x0000,0xa1e4,0xa1e5,0xa1ec,0x0000,0x0000,0xa1ed,0x0000, +0x0000,0x0000,0x0000,0x0000,0xa1ef,0xa1ee,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xa1dc,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa1da,0xa1dd,0x0000,0x0000,0x0000,0x0000,0xa1d8,0xa1d9, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xa1f2,0x0000,0x0000, +0x0000,0xa1f3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xa1e6,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xa1e9, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x2300 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x2400 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa277,0x0000,0xa278,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xa27a,0x0000,0x0000,0x0000, +0xa27b,0x0000,0x0000,0x0000,0xa27c,0x0000,0x0000,0x0000, +0xa27d,0x0000,0x0000,0x0000,0xa275,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xa274,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xa273,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xa272,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xa271,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xf9f9,0xf9f8,0xf9e6,0xf9ef,0xf9dd,0xf9e8,0xf9f1,0xf9df, +0xf9ec,0xf9f5,0xf9e3,0xf9ee,0xf9f7,0xf9e5,0xf9e9,0xf9f2, +0xf9e0,0xf9eb,0xf9f4,0xf9e2,0xf9e7,0xf9f0,0xf9de,0xf9ed, +0xf9f6,0xf9e4,0xf9ea,0xf9f3,0xf9e1,0xf9fa,0xf9fb,0xf9fd, +0xf9fc,0xa2ac,0xa2ad,0xa2ae,0xa15a,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xa262,0xa263,0xa264,0xa265,0xa266,0xa267,0xa268, +0xa269,0xa270,0xa26f,0xa26e,0xa26d,0xa26c,0xa26b,0xa26a, +0x0000,0x0000,0x0000,0xf9fe,0xa276,0xa279,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa1bd,0xa1bc,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xa1b6,0xa1b5,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xa1bf,0xa1be,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xa1bb,0xa1ba, +0x0000,0x0000,0x0000,0xa1b3,0x0000,0x0000,0xa1b7,0xa1b4, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xa2a8,0xa2a9,0xa2ab,0xa2aa,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x2600 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0xa1b9,0xa1b8,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa1f0,0x0000,0xa1f1}; + +static const int ucs_a2_big5_table_min = 0x2000; +static const int ucs_a2_big5_table_max = 0x2000 + (sizeof (ucs_a2_big5_table) / sizeof (unsigned short)); + + +static const unsigned short ucs_a3_big5_table[] = { +/* 0x2f00 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa140,0xa142,0xa143,0xa1b2,0x0000,0x0000,0x0000,0x0000, +0xa171,0xa172,0xa16d,0xa16e,0xa175,0xa176,0xa179,0xa17a, +0xa169,0xa16a,0xa245,0x0000,0xa165,0xa166,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xa1a9,0xa1aa,0x0000, +0x0000,0xa2c3,0xa2c4,0xa2c5,0xa2c6,0xa2c7,0xa2c8,0xa2c9, +0xa2ca,0xa2cb,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x3100 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0xa374,0xa375,0xa376, +0xa377,0xa378,0xa379,0xa37a,0xa37b,0xa37c,0xa37d,0xa37e, +0xa3a1,0xa3a2,0xa3a3,0xa3a4,0xa3a5,0xa3a6,0xa3a7,0xa3a8, +0xa3a9,0xa3aa,0xa3ab,0xa3ac,0xa3ad,0xa3ae,0xa3af,0xa3b0, +0xa3b1,0xa3b2,0xa3b3,0xa3b4,0xa3b5,0xa3b6,0xa3b7,0xa3b8, +0xa3b9,0xa3ba,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x3200 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xa1c0,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x3300 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xa255,0xa256, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xa250,0xa251,0xa252,0x0000, +0x0000,0xa254,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xa257,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xa253,0x0000, +0x0000,0xa1eb,0xa1ea,0x0000,0x0000,0xa24f}; + +static const int ucs_a3_big5_table_min = 0x2f00; +static const int ucs_a3_big5_table_max = 0x2f00 + (sizeof (ucs_a3_big5_table) / sizeof (unsigned short)); + +static const unsigned short ucs_i_big5_table[] = { +/* 0x4d00 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa440,0xa442,0x0000,0xa443,0x0000,0x0000,0x0000,0xc945, +0xa456,0xa454,0xa457,0xa455,0xc946,0xa4a3,0xc94f,0xc94d, +0xa4a2,0xa4a1,0x0000,0x0000,0xa542,0xa541,0xa540,0x0000, +0xa543,0xa4fe,0x0000,0x0000,0x0000,0x0000,0xa5e0,0xa5e1, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xa8c3,0x0000, +0x0000,0x0000,0x0000,0xa458,0x0000,0xa4a4,0xc950,0x0000, +0xa4a5,0xc963,0xa6ea,0xcbb1,0x0000,0x0000,0x0000,0x0000, +0xa459,0xa4a6,0x0000,0xa544,0xc964,0x0000,0x0000,0x0000, +0x0000,0x0000,0xc940,0xa444,0x0000,0xa45b,0x0000,0xc947, +0xa45c,0x0000,0x0000,0xa4a7,0x0000,0xa545,0xa547,0xa546, +0x0000,0x0000,0xa5e2,0xa5e3,0x0000,0x0000,0xa8c4,0x0000, +0xadbc,0xa441,0x0000,0x0000,0xc941,0xa445,0xa45e,0xa45d, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xa5e4,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xa8c5,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xb0ae,0xd44b, +0x0000,0x0000,0xb6c3,0xdcb1,0xdcb2,0x0000,0xa446,0x0000, +0xa4a9,0x0000,0x0000,0xa8c6,0xa447,0xc948,0xa45f,0x0000, +0x0000,0xa4aa,0xa4ac,0xc951,0xa4ad,0xa4ab,0x0000,0x0000, +0x0000,0xa5e5,0x0000,0xa8c7,0x0000,0x0000,0xa8c8,0xab45, +0x0000,0xa460,0xa4ae,0x0000,0xa5e6,0xa5e8,0xa5e7,0x0000, +0xa6eb,0x0000,0x0000,0xa8c9,0xa8ca,0xab46,0xab47,0x0000, +0x0000,0x0000,0x0000,0xadbd,0x0000,0x0000,0xdcb3,0x0000, +0x0000,0xf6d6,0xa448,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa4b0,0xa4af,0xc952,0xa4b1,0xa4b7,0x0000,0xa4b2,0xa4b3, +0xc954,0xc953,0xa4b5,0xa4b6,0x0000,0xa4b4,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xa54a,0xa54b,0xa54c,0xa54d, +0xa549,0xa550,0xc96a,0x0000,0xc966,0xc969,0xa551,0xa561, +0x0000,0xc968,0x0000,0xa54e,0xa54f,0xa548,0x0000,0x0000, +0xc965,0xc967,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa5f5,0xc9b0,0xa5f2,0xa5f6,0xc9ba,0xc9ae,0xa5f3,0xc9b2, +0x0000,0x0000,0x0000,0xa5f4,0x0000,0xa5f7,0x0000,0xa5e9, +0xc9b1,0xa5f8,0xc9b5,0x0000,0xc9b9,0xc9b6,0x0000,0x0000, +0xc9b3,0xa5ea,0xa5ec,0xa5f9,0x0000,0xa5ee,0xc9ab,0xa5f1, +0xa5ef,0xa5f0,0xc9bb,0xc9b8,0xc9af,0xa5ed,0x0000,0x0000, +0xc9ac,0xa5eb,0x0000,0x0000,0x0000,0xc9b4,0x0000,0x0000, +0x0000,0x0000,0xc9b7,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xc9ad,0xca66,0x0000,0xa742, +0xa6f4,0x0000,0x0000,0xca67,0xa6f1,0x0000,0xa744,0x0000, +0xa6f9,0x0000,0xa6f8,0xca5b,0xa6fc,0xa6f7,0xca60,0xca68, +0x0000,0xca64,0x0000,0xa6fa,0x0000,0x0000,0xa6fd,0xa6ee, +0xa747,0xca5d,0x0000,0x0000,0xcbbd,0xa6ec,0xa743,0xa6ed, +0xa6f5,0xa6f6,0xca62,0xca5e,0xa6fb,0xa6f3,0xca5a,0xa6ef, +0xca65,0xa745,0xa748,0xa6f2,0xa740,0xa746,0xa6f0,0xca63, +0xa741,0xca69,0xca5c,0xa6fe,0xca5f,0x0000,0x0000,0xca61, +0x0000,0xa8d8,0xcbbf,0xcbcb,0xa8d0,0x0000,0xcbcc,0xa8cb, +0xa8d5,0x0000,0x0000,0xa8ce,0xcbb9,0xa8d6,0xcbb8,0xcbbc, +0xcbc3,0xcbc1,0xa8de,0xa8d9,0xcbb3,0xcbb5,0xa8db,0xa8cf, +0xcbb6,0xcbc2,0xcbc9,0xa8d4,0xcbbb,0xcbb4,0xa8d3,0xcbb7, +0xa8d7,0xcbba,0x0000,0xa8d2,0x0000,0xa8cd,0x0000,0xa8dc, +0xcbc4,0xa8dd,0xcbc8,0x0000,0xcbc6,0xcbca,0xa8da,0xcbbe, +0xcbb2,0x0000,0xcbc0,0xa8d1,0xcbc5,0xa8cc,0xcbc7,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xab56,0xab4a, +0x0000,0x0000,0xcde0,0xcde8,0x0000,0xab49,0xab51,0xab5d, +0x0000,0xcdee,0xcdec,0xcde7,0x0000,0x0000,0x0000,0xab4b, +0xcded,0xcde3,0xab59,0xab50,0xab58,0xcdde,0x0000,0xcdea, +0x0000,0xcde1,0xab54,0xcde2,0x0000,0xcddd,0xab5b,0xab4e, +0xab57,0xab4d,0x0000,0xcddf,0xcde4,0x0000,0xcdeb,0xab55, +0xab52,0xcde6,0xab5a,0xcde9,0xcde5,0xab4f,0xab5c,0xab53, +0xab4c,0xab48,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xcdef,0x0000,0xadd7,0xadc1, +0x0000,0xadd1,0x0000,0xadd6,0xd0d0,0xd0cf,0xd0d4,0xd0d5, +0xadc4,0x0000,0xadcd,0x0000,0x0000,0x0000,0xadda,0x0000, +0xadce,0x0000,0x0000,0x0000,0x0000,0xd0c9,0xadc7,0xd0ca, +0x0000,0xaddc,0x0000,0xadd3,0xadbe,0xadbf,0xd0dd,0xb0bf, +0x0000,0xadcc,0xadcb,0xd0cb,0xadcf,0xd45b,0xadc6,0xd0d6, +0xadd5,0xadd4,0xadca,0xd0ce,0xd0d7,0x0000,0xd0c8,0xadc9, +0xd0d8,0xadd2,0xd0cc,0xadc0,0x0000,0xadc3,0xadc2,0xd0d9, +0xadd0,0xadc5,0xadd9,0xaddb,0xd0d3,0xadd8,0x0000,0xd0db, +0xd0cd,0xd0dc,0x0000,0xd0d1,0x0000,0xd0da,0x0000,0xd0d2, +0x0000,0x0000,0x0000,0x0000,0xadc8,0x0000,0x0000,0x0000, +0xd463,0xd457,0x0000,0xb0b3,0x0000,0xd45c,0xd462,0xb0b2, +0xd455,0xb0b6,0xd459,0xd452,0xb0b4,0xd456,0xb0b9,0xb0be, +0x0000,0xd467,0x0000,0xd451,0x0000,0xb0ba,0x0000,0xd466, +0x0000,0x0000,0xb0b5,0xd458,0xb0b1,0xd453,0xd44f,0xd45d, +0xd450,0xd44e,0xd45a,0xd460,0xd461,0xb0b7,0x0000,0x0000, +0xd85b,0xd45e,0xd44d,0xd45f,0x0000,0xb0c1,0xd464,0xb0c0, +0xd44c,0x0000,0xd454,0xd465,0xb0bc,0xb0bb,0xb0b8,0xb0bd, +0x0000,0x0000,0xb0af,0x0000,0x0000,0xb0b0,0x0000,0x0000, +0xb3c8,0x0000,0xd85e,0xd857,0x0000,0xb3c5,0x0000,0xd85f, +0x0000,0x0000,0x0000,0xd855,0xd858,0xb3c4,0xd859,0x0000, +0x0000,0xb3c7,0xd85d,0x0000,0xd853,0xd852,0xb3c9,0x0000, +0xb3ca,0xb3c6,0xb3cb,0xd851,0xd85c,0xd85a,0xd854,0x0000, +0x0000,0x0000,0xb3c3,0xd856,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xb6ca,0xb6c4,0xdcb7,0xb6cd, +0xdcbd,0xdcc0,0xb6c6,0xb6c7,0xdcba,0xb6c5,0xdcc3,0xb6cb, +0xdcc4,0x0000,0xdcbf,0xb6cc,0x0000,0xdcb4,0xb6c9,0xdcb5, +0x0000,0xdcbe,0xdcbc,0x0000,0xdcb8,0xb6c8,0xdcb6,0xb6ce, +0xdcbb,0xdcc2,0xdcb9,0xdcc1,0x0000,0x0000,0xb9b6,0xb9b3, +0x0000,0xb9b4,0x0000,0xe0f9,0xe0f1,0xb9b2,0xb9af,0xe0f2, +0x0000,0x0000,0xb9b1,0xe0f5,0x0000,0xe0f7,0x0000,0x0000, +0xe0fe,0x0000,0x0000,0xe0fd,0xe0f8,0xb9ae,0xe0f0,0xb9ac, +0xe0f3,0xb9b7,0xe0f6,0x0000,0xe0fa,0xb9b0,0xb9ad,0xe0fc, +0xe0fb,0xb9b5,0x0000,0xe0f4,0x0000,0xbbf8,0xe4ec,0x0000, +0xe4e9,0xbbf9,0x0000,0xbbf7,0x0000,0xe4f0,0xe4ed,0xe4e6, +0xbbf6,0x0000,0xbbfa,0xe4e7,0xbbf5,0xbbfd,0xe4ea,0xe4eb, +0xbbfb,0xbbfc,0xe4f1,0xe4ee,0xe4ef,0x0000,0x0000,0x0000, +0xbeaa,0xe8f8,0xbea7,0xe8f5,0xbea9,0xbeab,0x0000,0xe8f6, +0xbea8,0x0000,0xe8f7,0x0000,0xe8f4,0x0000,0x0000,0xc076, +0xecbd,0xc077,0xecbb,0x0000,0xecbc,0xecba,0xecb9,0x0000, +0x0000,0xecbe,0xc075,0x0000,0x0000,0xefb8,0xefb9,0x0000, +0xe4e8,0xefb7,0xc078,0xc35f,0xf1eb,0xf1ec,0x0000,0xc4d7, +0xc4d8,0xf5c1,0xf5c0,0xc56c,0xc56b,0xf7d0,0x0000,0xa449, +0xa461,0xa4b9,0x0000,0xa4b8,0xa553,0xa552,0xa5fc,0xa5fb, +0xa5fd,0xa5fa,0x0000,0xa74a,0xa749,0xa74b,0x0000,0x0000, +0x0000,0x0000,0xa8e0,0x0000,0xa8df,0xa8e1,0x0000,0xab5e, +0x0000,0xa259,0xd0de,0xa25a,0xb0c2,0xa25c,0xa25b,0xd860, +0x0000,0xa25d,0xb9b8,0xa25e,0x0000,0xa44a,0x0000,0xa4ba, +0xa5fe,0xa8e2,0x0000,0xa44b,0xa4bd,0xa4bb,0xa4bc,0x0000, +0x0000,0xa640,0x0000,0x0000,0x0000,0xa74c,0xa8e4,0xa8e3, +0xa8e5,0x0000,0x0000,0x0000,0xaddd,0x0000,0x0000,0x0000, +0xbeac,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xc94e, +0x0000,0xa554,0xa555,0x0000,0x0000,0xa641,0x0000,0xca6a, +0x0000,0xab60,0xab5f,0xd0e0,0xd0df,0xb0c3,0x0000,0xa4be, +0xc955,0x0000,0x0000,0x0000,0x0000,0x0000,0xcbcd,0x0000, +0xab61,0x0000,0xade0,0x0000,0xadde,0xaddf,0x0000,0x0000, +0x0000,0x0000,0xbead,0x0000,0xa556,0x0000,0x0000,0x0000, +0xa642,0xc9bc,0x0000,0x0000,0x0000,0x0000,0xa74d,0xa74e, +0x0000,0xca6b,0x0000,0x0000,0xcbce,0xa8e6,0xcbcf,0x0000, +0x0000,0x0000,0x0000,0x0000,0xd0e2,0xd0e3,0xade3,0x0000, +0xd0e4,0x0000,0xd0e1,0xade4,0xade2,0xade1,0xd0e5,0x0000, +0xd468,0x0000,0x0000,0x0000,0xd861,0x0000,0x0000,0xdcc5, +0xe140,0x0000,0x0000,0x0000,0xbbfe,0xbeae,0xe8f9,0x0000, +0xa44c,0xa45a,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xb0c4,0xb3cd,0x0000,0xb9b9,0x0000,0xc942,0xa4bf,0x0000, +0xa559,0xa557,0xa558,0x0000,0x0000,0xa8e7,0x0000,0x0000, +0xa44d,0xa44e,0x0000,0xa462,0x0000,0x0000,0xa4c0,0xa4c1, +0xa4c2,0xc9be,0xa55a,0x0000,0xc96b,0x0000,0xa646,0x0000, +0xc9bf,0xa644,0xa645,0xc9bd,0x0000,0x0000,0xa647,0xa643, +0x0000,0x0000,0x0000,0x0000,0xca6c,0xaaec,0xca6d,0x0000, +0x0000,0xca6e,0x0000,0x0000,0xa750,0xa74f,0x0000,0x0000, +0xa753,0xa751,0xa752,0x0000,0x0000,0x0000,0xa8ed,0x0000, +0xa8ec,0xcbd4,0xcbd1,0xcbd2,0x0000,0xcbd0,0xa8ee,0xa8ea, +0xa8e9,0x0000,0xa8eb,0xa8e8,0x0000,0x0000,0x0000,0x0000, +0x0000,0xa8ef,0x0000,0xab63,0xcdf0,0x0000,0xcbd3,0xab68, +0x0000,0xcdf1,0xab64,0xab67,0xab66,0xab65,0xab62,0x0000, +0x0000,0x0000,0xd0e8,0x0000,0xade7,0xd0eb,0xade5,0x0000, +0x0000,0x0000,0xd0e7,0xade8,0xade6,0xade9,0xd0e9,0xd0ea, +0x0000,0xd0e6,0xd0ec,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xb3d1,0xb0c5,0xd469,0xd46b,0xd46a,0xd46c,0xb0c6, +0x0000,0x0000,0xb3ce,0x0000,0xb3cf,0xb3d0,0x0000,0xb6d0, +0xdcc7,0x0000,0xdcc6,0xdcc8,0xdcc9,0xb6d1,0x0000,0xb6cf, +0xe141,0xe142,0xb9bb,0xb9ba,0xe35a,0x0000,0x0000,0xbc40, +0xbc41,0xbc42,0xbc44,0xe4f2,0xe4f3,0xbc43,0x0000,0x0000, +0x0000,0xbeaf,0x0000,0xbeb0,0x0000,0x0000,0xf1ed,0xf5c3, +0xf5c2,0xf7d1,0x0000,0xa44f,0x0000,0x0000,0x0000,0xa55c, +0xa55b,0x0000,0x0000,0xa648,0x0000,0x0000,0xc9c0,0x0000, +0x0000,0xa755,0xa756,0xa754,0xa757,0xca6f,0xca70,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xa8f1,0xcbd5,0x0000,0xa8f0,0x0000, +0xcdf2,0xab6c,0xcdf3,0xab6b,0x0000,0x0000,0x0000,0xab69, +0x0000,0xab6a,0x0000,0x0000,0x0000,0xd0ed,0x0000,0x0000, +0x0000,0x0000,0xb0c7,0xd46e,0x0000,0xb0ca,0xd46d,0xb1e5, +0xb0c9,0xb0c8,0x0000,0xb3d4,0x0000,0xb3d3,0xb3d2,0xb6d2, +0x0000,0x0000,0xb6d5,0xb6d6,0xb6d4,0x0000,0xb6d3,0x0000, +0x0000,0xe143,0x0000,0xe144,0x0000,0x0000,0x0000,0xe4f5, +0xbc45,0xe4f4,0x0000,0xbeb1,0xecbf,0xc079,0x0000,0xf1ee, +0xc455,0x0000,0xa463,0xa4c3,0xc956,0x0000,0xa4c4,0xa4c5, +/* 0x5300 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0xa55d,0xa55e,0x0000, +0xa649,0xca71,0xcbd6,0xcbd7,0x0000,0xab6d,0xd0ee,0xb0cc, +0xb0cb,0xd863,0xd862,0x0000,0x0000,0xa450,0xa4c6,0xa55f, +0x0000,0xb0cd,0xc943,0x0000,0xc96c,0xa560,0x0000,0xc9c2, +0xa64b,0xa64a,0xc9c1,0xa758,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xadea,0x0000,0x0000,0xd46f,0x0000,0xb6d7, +0xe145,0xb9bc,0x0000,0x0000,0xe8fa,0x0000,0x0000,0xf3fd, +0x0000,0xa4c7,0x0000,0x0000,0xcbd8,0xcdf4,0xb0d0,0xb0ce, +0xb0cf,0xa451,0x0000,0xa464,0xa2cd,0xa4ca,0x0000,0xa4c9, +0xa4c8,0xa563,0xa562,0x0000,0xc96d,0xc9c3,0x0000,0x0000, +0x0000,0xa8f5,0xa8f2,0xa8f4,0xa8f3,0x0000,0x0000,0xab6e, +0x0000,0x0000,0xb3d5,0x0000,0xa452,0x0000,0xa4cb,0x0000, +0xa565,0xa564,0x0000,0xca72,0x0000,0x0000,0xa8f6,0x0000, +0x0000,0x0000,0x0000,0x0000,0xc957,0x0000,0xa567,0xa566, +0xa64c,0xa64d,0xca73,0xa759,0x0000,0xa75a,0x0000,0xa8f7, +0xa8f8,0xa8f9,0x0000,0xab6f,0xcdf5,0x0000,0x0000,0xadeb, +0x0000,0x0000,0xc944,0x0000,0xa4cc,0x0000,0x0000,0x0000, +0x0000,0x0000,0xc9c4,0x0000,0x0000,0x0000,0xca74,0xca75, +0x0000,0x0000,0xcbd9,0x0000,0xcbda,0x0000,0xcdf7,0xcdf6, +0xcdf9,0xcdf8,0xab70,0x0000,0xd470,0xaded,0xd0ef,0xadec, +0x0000,0x0000,0x0000,0x0000,0xd864,0xb3d6,0x0000,0xd865, +0x0000,0x0000,0x0000,0x0000,0xe146,0xb9bd,0x0000,0x0000, +0x0000,0x0000,0xbc46,0x0000,0xf1ef,0x0000,0x0000,0x0000, +0x0000,0xc958,0x0000,0xa568,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xb0d1,0x0000,0x0000,0x0000,0x0000, +0xa453,0xa465,0xa4ce,0xa4cd,0x0000,0xa4cf,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xa8fb,0x0000,0xa8fa,0xa8fc, +0x0000,0x0000,0x0000,0xab71,0x0000,0x0000,0x0000,0xadee, +0x0000,0xe8fb,0xc24f,0xa466,0xa56a,0xa579,0xa574,0x0000, +0xa56f,0xa56e,0xa575,0xa573,0xa56c,0xa57a,0xa56d,0xa569, +0xa578,0xa577,0xa576,0xa56b,0x0000,0xa572,0x0000,0x0000, +0xa571,0x0000,0x0000,0xa57b,0xa570,0x0000,0x0000,0x0000, +/* 0x5400 */ +0x0000,0xa653,0x0000,0xa659,0xa655,0x0000,0xa65b,0xc9c5, +0xa658,0xa64e,0xa651,0xa654,0xa650,0xa657,0xa65a,0xa64f, +0xa652,0xa656,0xa65c,0x0000,0x0000,0x0000,0x0000,0x0000, +0xca7e,0xca7b,0x0000,0xa767,0xca7c,0xa75b,0xa75d,0xa775, +0xa770,0x0000,0x0000,0x0000,0xcaa5,0xca7d,0xa75f,0xa761, +0xcaa4,0xa768,0xca78,0xa774,0xa776,0xa75c,0xa76d,0x0000, +0xca76,0xa773,0x0000,0xa764,0x0000,0xa76e,0xa76f,0xca77, +0xa76c,0xa76a,0x0000,0xa76b,0xa771,0xcaa1,0xa75e,0x0000, +0xa772,0xcaa3,0xa766,0xa763,0x0000,0xca7a,0xa762,0xcaa6, +0xa765,0x0000,0xa769,0x0000,0x0000,0x0000,0xa760,0xcaa2, +0x0000,0x0000,0x0000,0x0000,0xca79,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xcbeb,0xcbea,0xa94f,0xcbed,0xcbef,0xcbe4,0xcbe7,0xcbee, +0xa950,0x0000,0x0000,0xcbe1,0xcbe5,0x0000,0x0000,0xcbe9, +0xce49,0xa94b,0xce4d,0xa8fd,0xcbe6,0xa8fe,0xa94c,0xa945, +0xa941,0x0000,0xcbe2,0xa944,0xa949,0xa952,0xcbe3,0xcbdc, +0xa943,0xcbdd,0xcbdf,0x0000,0xa946,0x0000,0xa948,0xcbdb, +0xcbe0,0x0000,0x0000,0xa951,0xa94d,0xcbe8,0xa953,0x0000, +0xa94a,0xcbde,0xa947,0x0000,0x0000,0xa942,0xa940,0x0000, +0xcbec,0x0000,0xa94e,0x0000,0x0000,0x0000,0x0000,0x0000, +0xce48,0xcdfb,0xce4b,0x0000,0x0000,0xcdfd,0xab78,0xaba8, +0xab74,0xaba7,0xab7d,0xaba4,0xab72,0xcdfc,0xce43,0xaba3, +0xce4f,0xaba5,0x0000,0xab79,0x0000,0x0000,0xce45,0xce42, +0xab77,0x0000,0xcdfa,0xaba6,0xce4a,0xab7c,0xce4c,0xaba9, +0xab73,0xab7e,0xab7b,0xce40,0xaba1,0xce46,0xce47,0xab7a, +0xaba2,0xab76,0x0000,0x0000,0x0000,0x0000,0xab75,0xcdfe, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xce44,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xce4e,0x0000, +0xd144,0xadfb,0xd0f1,0x0000,0xd0f6,0xadf4,0xae40,0xd0f4, +0xadef,0xadf9,0xadfe,0xd0fb,0x0000,0xadfa,0xadfd,0x0000, +0x0000,0xd0fe,0xadf5,0xd0f5,0x0000,0x0000,0x0000,0xd142, +0xd143,0x0000,0xadf7,0xd141,0xadf3,0xae43,0x0000,0xd0f8, +/* 0x5500 */ +0x0000,0xadf1,0x0000,0xd146,0xd0f9,0xd0fd,0xadf6,0xae42, +0xd0fa,0xadfc,0xd140,0xd147,0xd4a1,0x0000,0xd145,0xae44, +0xadf0,0xd0fc,0xd0f3,0x0000,0xadf8,0x0000,0x0000,0xd0f2, +0x0000,0x0000,0xd0f7,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd0f0,0xae41, +0x0000,0x0000,0xd477,0x0000,0xb0e4,0xd4a7,0xb0e2,0xb0df, +0xd47c,0xb0db,0xd4a2,0xb0e6,0xd476,0xd47b,0xd47a,0xadf2, +0xb0e1,0xd4a5,0x0000,0xd4a8,0xd473,0x0000,0xb3e8,0x0000, +0xd4a9,0xb0e7,0x0000,0xb0d9,0xb0d6,0xd47e,0xb0d3,0x0000, +0xd4a6,0x0000,0xb0da,0xd4aa,0x0000,0xd474,0xd4a4,0xb0dd, +0xd475,0xd478,0xd47d,0x0000,0x0000,0xb0de,0xb0dc,0xb0e8, +0x0000,0x0000,0x0000,0x0000,0xb0e3,0x0000,0xb0d7,0xb1d2, +0x0000,0xb0d8,0xd479,0xb0e5,0xb0e0,0xd4a3,0xb0d5,0x0000, +0x0000,0x0000,0xb0d4,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xd471,0xd472,0xd86a, +0x0000,0x0000,0x0000,0xb3d7,0xb3da,0xd875,0xb3ee,0xd878, +0xb3d8,0xd871,0xb3de,0xb3e4,0xb5bd,0x0000,0x0000,0xb3e2, +0xd86e,0xb3ef,0xb3db,0xb3e3,0xd876,0xdcd7,0xd87b,0xd86f, +0x0000,0xd866,0xd873,0xd86d,0xb3e1,0xd879,0x0000,0x0000, +0xb3dd,0xb3f1,0xb3ea,0x0000,0xb3df,0xb3dc,0x0000,0xb3e7, +0x0000,0xd87a,0xd86c,0xd872,0xd874,0xd868,0xd877,0xb3d9, +0xd867,0x0000,0xb3e0,0xb3f0,0xb3ec,0xd869,0xb3e6,0x0000, +0x0000,0xb3ed,0xb3e9,0xb3e5,0x0000,0xd870,0x0000,0x0000, +0x0000,0x0000,0x0000,0xb3eb,0x0000,0x0000,0x0000,0xdcd5, +0xdcd1,0x0000,0xdce0,0xdcca,0xdcd3,0xb6e5,0xb6e6,0xb6de, +0xdcdc,0xb6e8,0xdccf,0xdcce,0xdccc,0xdcde,0xb6dc,0xdcd8, +0xdccd,0xb6df,0xdcd6,0xb6da,0xdcd2,0xdcd9,0xdcdb,0x0000, +0x0000,0xdcdf,0xb6e3,0xdccb,0xb6dd,0xdcd0,0x0000,0xb6d8, +0x0000,0xb6e4,0xdcda,0xb6e0,0xb6e1,0xb6e7,0xb6db,0xa25f, +0xb6d9,0xdcd4,0x0000,0x0000,0x0000,0x0000,0x0000,0xb6e2, +0x0000,0x0000,0xdcdd,0x0000,0x0000,0x0000,0xb9cd,0xb9c8, +0x0000,0xe155,0xe151,0x0000,0xe14b,0xb9c2,0xb9be,0xe154, +0xb9bf,0xe14e,0xe150,0x0000,0xe153,0x0000,0xb9c4,0x0000, +0xb9cb,0xb9c5,0x0000,0x0000,0xe149,0xb9c6,0xb9c7,0xe14c, +0xb9cc,0x0000,0xe14a,0xe14f,0xb9c3,0xe148,0xb9c9,0xb9c1, +0x0000,0x0000,0x0000,0xb9c0,0xe14d,0xe152,0x0000,0xb9ca, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xe147, +0x0000,0xbc4d,0xe547,0x0000,0xe544,0x0000,0xbc47,0xbc53, +0xbc54,0x0000,0xbc4a,0xe542,0xbc4c,0xe4f9,0xbc52,0x0000, +0xe546,0xbc49,0xe548,0xbc48,0x0000,0xe543,0xe545,0xbc4b, +0xe541,0xe4fa,0xe4f7,0x0000,0x0000,0xd86b,0xe4fd,0x0000, +0xe4f6,0xe4fc,0xe4fb,0x0000,0xe4f8,0x0000,0xbc4f,0x0000, +0x0000,0x0000,0x0000,0xbc4e,0x0000,0x0000,0x0000,0xbc50, +0xe4fe,0xbeb2,0xe540,0x0000,0x0000,0x0000,0xe945,0x0000, +0xe8fd,0x0000,0xbebe,0xe942,0xbeb6,0xbeba,0xe941,0x0000, +0xbeb9,0xbeb5,0xbeb8,0xbeb3,0xbebd,0xe943,0xe8fe,0xbebc, +0xe8fc,0xbebb,0xe944,0xe940,0xbc51,0x0000,0xbebf,0xe946, +0xbeb7,0xbeb4,0x0000,0x0000,0x0000,0x0000,0xecc6,0xecc8, +0xc07b,0xecc9,0xecc7,0xecc5,0xecc4,0xc07d,0xecc3,0xc07e, +0x0000,0x0000,0x0000,0x0000,0xecc1,0xecc2,0xc07a,0xc0a1, +0xc07c,0x0000,0x0000,0xecc0,0x0000,0xc250,0x0000,0xefbc, +0xefba,0xefbf,0xefbd,0x0000,0xefbb,0xefbe,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xc360,0xf1f2,0xf1f3, +0xc456,0x0000,0xf1f4,0xf1f0,0xf1f5,0xf1f1,0xc251,0x0000, +0x0000,0x0000,0xf3fe,0xf441,0xc459,0xf440,0xc458,0xc457, +0x0000,0x0000,0x0000,0x0000,0xc45a,0xf5c5,0xf5c6,0x0000, +0xc4da,0xc4d9,0xc4db,0xf5c4,0x0000,0xf6d8,0xf6d7,0x0000, +0xc56d,0xc56f,0xc56e,0xf6d9,0xc5c8,0xf8a6,0x0000,0x0000, +0x0000,0xc5f1,0x0000,0xf8a5,0xf8ee,0x0000,0x0000,0xc949, +0x0000,0x0000,0xa57d,0xa57c,0x0000,0xa65f,0xa65e,0xc9c7, +0xa65d,0xc9c6,0x0000,0x0000,0xa779,0xcaa9,0x0000,0xcaa8, +0x0000,0x0000,0xa777,0xa77a,0x0000,0x0000,0xcaa7,0x0000, +0xa778,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xcbf0, +0x0000,0xcbf1,0xa954,0x0000,0x0000,0x0000,0x0000,0xabaa, +/* 0x5700 */ +0x0000,0xd148,0xd149,0xae45,0xae46,0x0000,0x0000,0xd4ac, +0xb0e9,0xb0eb,0xd4ab,0xb0ea,0xd87c,0xb3f2,0x0000,0x0000, +0x0000,0x0000,0xb6e9,0xb6ea,0xdce1,0x0000,0xb9cf,0x0000, +0xb9ce,0x0000,0xe549,0xe948,0xe947,0x0000,0xf96b,0xa467, +0xc959,0x0000,0xc96e,0xc96f,0x0000,0x0000,0x0000,0x0000, +0xa662,0xa666,0xc9c9,0x0000,0xa664,0xa663,0xc9c8,0xa665, +0xa661,0x0000,0x0000,0xa660,0xc9ca,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xa7a6,0x0000,0x0000,0xa7a3,0x0000, +0xa77d,0xcaaa,0x0000,0x0000,0x0000,0xcaab,0x0000,0xa7a1, +0x0000,0xcaad,0xa77b,0xcaae,0xcaac,0xa77e,0xa7a2,0xa7a5, +0xa7a4,0xa77c,0xcaaf,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xa959,0xcbfe,0x0000,0xa95b,0x0000,0xa95a,0x0000, +0xcc40,0xa958,0xa957,0xcbf5,0x0000,0xcbf4,0x0000,0xcbf2, +0xcbf7,0xcbf6,0xcbf3,0xcbfc,0xcbfd,0xcbfa,0xcbf8,0xa956, +0x0000,0x0000,0x0000,0xcbfb,0xa95c,0xcc41,0x0000,0x0000, +0xcbf9,0x0000,0xabab,0xa955,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xabac,0xce54,0x0000,0x0000,0xce5a, +0x0000,0x0000,0x0000,0xabb2,0xce58,0xce5e,0x0000,0xce55, +0xce59,0xce5b,0xce5d,0xce57,0x0000,0xce56,0xce51,0xce52, +0xabad,0x0000,0xabaf,0xabae,0xce53,0xce5c,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xabb1,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xce50,0xd153,0x0000, +0xd152,0xd157,0xd14e,0x0000,0xd151,0xd150,0x0000,0xd154, +0x0000,0xd158,0xae47,0xae4a,0x0000,0x0000,0xd14f,0xd155, +0x0000,0x0000,0x0000,0xae49,0xd14a,0x0000,0xabb0,0xd4ba, +0xd156,0x0000,0xd14d,0x0000,0xae48,0xd14c,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xd4b1,0x0000,0x0000,0xb0ec, +0xb0f0,0xd4c1,0xd4af,0xd4bd,0xb0f1,0xd4bf,0x0000,0xd4c5, +0x0000,0xd4c9,0x0000,0x0000,0xd4c0,0xd4b4,0xd4bc,0x0000, +0xd4ca,0xd4c8,0xd4be,0xd4b9,0xd4b2,0xd8a6,0xd4b0,0xb0f5, +0xd4b7,0xb0f6,0xb0f2,0xd4ad,0xd4c3,0xd4b5,0x0000,0x0000, +0xd4b3,0xd4c6,0xb0f3,0x0000,0xd4cc,0xb0ed,0xb0ef,0xd4bb, +0xd4b6,0xae4b,0xb0ee,0xd4b8,0xd4c7,0xd4cb,0xd4c2,0x0000, +0xd4c4,0x0000,0x0000,0x0000,0xd4ae,0x0000,0x0000,0x0000, +0x0000,0xd8a1,0x0000,0xd8aa,0xd8a9,0xb3fa,0xd8a2,0x0000, +0xb3fb,0xb3f9,0x0000,0xd8a4,0xb3f6,0xd8a8,0x0000,0xd8a3, +0xd8a5,0xd87d,0xb3f4,0x0000,0xd8b2,0xd8b1,0xd8ae,0xb3f3, +0xb3f7,0xb3f8,0xd14b,0xd8ab,0xb3f5,0xb0f4,0xd8ad,0xd87e, +0xd8b0,0xd8af,0x0000,0xd8b3,0x0000,0xdcef,0x0000,0xd8ac, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xd8a7,0xdce7,0xb6f4,0xb6f7,0xb6f2,0xdce6,0xdcea,0xdce5, +0x0000,0xb6ec,0xb6f6,0xdce2,0xb6f0,0xdce9,0x0000,0xb6ee, +0xb6ed,0xdcec,0xb6ef,0xdcee,0x0000,0xdceb,0xb6eb,0x0000, +0x0000,0x0000,0xb6f5,0xdcf0,0xdce4,0xdced,0x0000,0x0000, +0xdce3,0x0000,0x0000,0xb6f1,0x0000,0xb6f3,0x0000,0xdce8, +0x0000,0xdcf1,0x0000,0x0000,0xe15d,0xb9d0,0xe163,0x0000, +0x0000,0xb9d5,0xe15f,0xe166,0xe157,0xb9d7,0xb9d1,0xe15c, +0xbc55,0xe15b,0xe164,0xb9d2,0x0000,0xb9d6,0xe15a,0xe160, +0xe165,0xe156,0xb9d4,0xe15e,0x0000,0x0000,0xe162,0xe168, +0xe158,0xe161,0x0000,0xb9d3,0xe167,0x0000,0x0000,0x0000, +0xe159,0x0000,0x0000,0x0000,0xbc59,0xe54b,0xbc57,0xbc56, +0xe54d,0xe552,0x0000,0xe54e,0x0000,0xe551,0xbc5c,0x0000, +0xbea5,0xbc5b,0x0000,0xe54a,0xe550,0x0000,0xbc5a,0xe54f, +0x0000,0xe54c,0x0000,0xbc58,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xe94d,0xf9d9,0xe94f,0xe94a,0xbec1,0xe94c, +0x0000,0xbec0,0xe94e,0x0000,0x0000,0xbec3,0xe950,0xbec2, +0xe949,0xe94b,0x0000,0x0000,0x0000,0x0000,0xc0a5,0xeccc, +0x0000,0xc0a4,0xeccd,0xc0a3,0xeccb,0xc0a2,0xecca,0x0000, +0xc253,0xc252,0xf1f6,0xf1f8,0x0000,0xf1f7,0xc361,0xc362, +0x0000,0x0000,0xc363,0xf442,0xc45b,0x0000,0x0000,0xf7d3, +0xf7d2,0xc5f2,0x0000,0xa468,0xa4d0,0x0000,0x0000,0xa7a7, +0x0000,0x0000,0x0000,0x0000,0xce5f,0x0000,0x0000,0x0000, +0x0000,0xb3fc,0xb3fd,0x0000,0xdcf2,0xb9d8,0xe169,0xe553, +/* 0x5900 */ +0x0000,0x0000,0x0000,0xc95a,0x0000,0x0000,0xcab0,0x0000, +0x0000,0x0000,0x0000,0x0000,0xcc42,0xce60,0xd159,0xae4c, +0x0000,0x0000,0xf1f9,0x0000,0xc4dc,0xa469,0xa57e,0xc970, +0x0000,0xa667,0xa668,0x0000,0xa95d,0x0000,0x0000,0x0000, +0xb0f7,0x0000,0xb9da,0x0000,0xb9db,0xb9d9,0x0000,0xa46a, +0x0000,0xa4d1,0xa4d3,0xa4d2,0xc95b,0xa4d4,0xa5a1,0xc971, +0x0000,0xa5a2,0x0000,0x0000,0x0000,0x0000,0x0000,0xa669, +0xa66a,0x0000,0x0000,0x0000,0xc9cb,0x0000,0xa7a8,0x0000, +0xcab1,0x0000,0x0000,0x0000,0xa961,0xcc43,0x0000,0xa95f, +0xa960,0xa95e,0xd15a,0x0000,0x0000,0x0000,0xabb6,0xabb5, +0xabb7,0xabb4,0x0000,0xce61,0xa962,0xabb3,0x0000,0xae4d, +0xae4e,0x0000,0xae4f,0x0000,0xd4cd,0x0000,0x0000,0x0000, +0xb3fe,0xd8b4,0xb0f8,0x0000,0x0000,0x0000,0x0000,0xb6f8, +0x0000,0xb9dd,0xb9dc,0xe16a,0x0000,0xbc5d,0xbec4,0x0000, +0xefc0,0xf6da,0xf7d4,0xa46b,0xa5a3,0x0000,0xa5a4,0xc9d1, +0xa66c,0xa66f,0x0000,0xc9cf,0xc9cd,0xa66e,0xc9d0,0xc9d2, +0xc9cc,0xa671,0xa670,0xa66d,0xa66b,0xc9ce,0x0000,0x0000, +0x0000,0x0000,0xa7b3,0x0000,0x0000,0xa7b0,0xcab6,0xcab9, +0xcab8,0x0000,0xa7aa,0xa7b2,0x0000,0x0000,0xa7af,0xcab5, +0xcab3,0xa7ae,0x0000,0x0000,0x0000,0xa7a9,0xa7ac,0x0000, +0xcab4,0xcabb,0xcab7,0xa7ad,0xa7b1,0xa7b4,0xcab2,0xcaba, +0xa7ab,0x0000,0x0000,0x0000,0x0000,0x0000,0xa967,0xa96f, +0x0000,0xcc4f,0xcc48,0xa970,0xcc53,0xcc44,0xcc4b,0x0000, +0x0000,0xa966,0xcc45,0xa964,0xcc4c,0xcc50,0xa963,0x0000, +0xcc51,0xcc4a,0x0000,0xcc4d,0x0000,0xa972,0xa969,0xcc54, +0xcc52,0x0000,0xa96e,0xa96c,0xcc49,0xa96b,0xcc47,0xcc46, +0xa96a,0xa968,0xa971,0xa96d,0xa965,0x0000,0xcc4e,0x0000, +0xabb9,0x0000,0xabc0,0xce6f,0xabb8,0xce67,0xce63,0x0000, +0xce73,0xce62,0x0000,0xabbb,0xce6c,0xabbe,0xabc1,0x0000, +0xabbc,0xce70,0xabbf,0x0000,0xae56,0xce76,0xce64,0x0000, +0x0000,0xce66,0xce6d,0xce71,0xce75,0xce72,0xce6b,0xce6e, +0x0000,0x0000,0xce68,0xabc3,0xce6a,0xce69,0xce74,0xabba, +0xce65,0xabc2,0x0000,0xabbd,0x0000,0x0000,0x0000,0x0000, +0x0000,0xae5c,0xd162,0x0000,0xae5b,0x0000,0x0000,0xd160, +0x0000,0xae50,0x0000,0xae55,0x0000,0xd15f,0xd15c,0xd161, +0xae51,0xd15b,0x0000,0xae54,0xae52,0x0000,0xd163,0xae53, +0xae57,0x0000,0x0000,0xae58,0x0000,0xae5a,0x0000,0x0000, +0x0000,0xae59,0x0000,0x0000,0x0000,0xd15d,0xd15e,0x0000, +0x0000,0x0000,0x0000,0xd164,0x0000,0xd4d4,0xb0f9,0xd8c2, +0xd4d3,0xd4e6,0x0000,0x0000,0xb140,0x0000,0xd4e4,0x0000, +0xb0fe,0xb0fa,0xd4ed,0xd4dd,0xd4e0,0x0000,0xb143,0xd4ea, +0xd4e2,0xb0fb,0xb144,0x0000,0xd4e7,0xd4e5,0x0000,0x0000, +0xd4d6,0xd4eb,0xd4df,0xd4da,0x0000,0xd4d0,0xd4ec,0xd4dc, +0xd4cf,0x0000,0xb142,0xd4e1,0xd4ee,0xd4de,0xd4d2,0xd4d7, +0xd4ce,0x0000,0xb141,0x0000,0xd4db,0xd4d8,0xb0fc,0xd4d1, +0x0000,0xd4e9,0xb0fd,0x0000,0xd4d9,0xd4d5,0x0000,0x0000, +0xd4e8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xb440, +0xd8bb,0x0000,0xd8b8,0xd8c9,0xd8bd,0xd8ca,0x0000,0xb442, +0x0000,0x0000,0x0000,0xd8c6,0xd8c3,0x0000,0x0000,0x0000, +0x0000,0x0000,0xd8c4,0xd8c7,0xd8cb,0x0000,0xd4e3,0xd8cd, +0xdd47,0x0000,0xb443,0xd8ce,0xd8b6,0xd8c0,0x0000,0xd8c5, +0x0000,0x0000,0xb441,0xb444,0xd8cc,0xd8cf,0xd8ba,0xd8b7, +0x0000,0x0000,0xd8b9,0x0000,0x0000,0xd8be,0xd8bc,0xb445, +0x0000,0xd8c8,0x0000,0x0000,0xd8bf,0x0000,0xd8c1,0xd8b5, +0xdcfa,0xdcf8,0xb742,0xb740,0xdd43,0xdcf9,0xdd44,0xdd40, +0xdcf7,0xdd46,0xdcf6,0xdcfd,0xb6fe,0xb6fd,0xb6fc,0xdcfb, +0xdd41,0xb6f9,0xb741,0x0000,0xdcf4,0x0000,0xdcfe,0xdcf3, +0xdcfc,0xb6fa,0xdd42,0xdcf5,0xb6fb,0xdd45,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xe16e,0xb9e2,0xb9e1, +0xb9e3,0xe17a,0xe170,0xe176,0xe16b,0xe179,0xe178,0xe17c, +0xe175,0xb9de,0xe174,0xb9e4,0x0000,0xe16d,0xb9df,0x0000, +0xe17b,0xb9e0,0xe16f,0xe172,0xe177,0xe171,0xe16c,0x0000, +0x0000,0x0000,0x0000,0xe173,0xe555,0xbc61,0xe558,0xe557, +0xe55a,0xe55c,0xf9dc,0xbc5f,0x0000,0xe556,0x0000,0xe554, +/* 0x5b00 */ +0x0000,0xe55d,0xe55b,0xe559,0x0000,0xe55f,0x0000,0xe55e, +0xbc63,0xbc5e,0x0000,0xbc60,0xbc62,0x0000,0x0000,0xe560, +0xe957,0x0000,0x0000,0xe956,0xe955,0x0000,0xe958,0xe951, +0x0000,0xe952,0xe95a,0xe953,0x0000,0xbec5,0xe95c,0x0000, +0xe95b,0xe954,0x0000,0xecd1,0xc0a8,0xeccf,0xecd4,0xecd3, +0xe959,0x0000,0xc0a7,0x0000,0xecd2,0xecce,0xecd6,0xecd5, +0xc0a6,0x0000,0xecd0,0x0000,0xbec6,0x0000,0x0000,0x0000, +0xc254,0x0000,0x0000,0x0000,0xefc1,0xf1fa,0xf1fb,0xf1fc, +0xc45c,0x0000,0x0000,0xc45d,0x0000,0xf443,0x0000,0xf5c8, +0xf5c7,0x0000,0x0000,0xf6db,0xf6dc,0xf7d5,0xf8a7,0x0000, +0xa46c,0xa46d,0x0000,0xa46e,0xa4d5,0xa5a5,0xc9d3,0xa672, +0xa673,0x0000,0xa7b7,0xa7b8,0xa7b6,0xa7b5,0x0000,0xa973, +0x0000,0x0000,0xcc55,0xa975,0xa974,0xcc56,0x0000,0x0000, +0x0000,0xabc4,0x0000,0xae5d,0xd165,0x0000,0xd4f0,0x0000, +0xb145,0xb447,0xd4ef,0xb446,0x0000,0xb9e5,0x0000,0xe17d, +0xbec7,0x0000,0xc0a9,0xecd7,0x0000,0xc45e,0x0000,0xc570, +0x0000,0xc972,0x0000,0xa5a6,0xc973,0xa676,0x0000,0xa674, +0xa675,0xa677,0x0000,0xa7ba,0xa7b9,0x0000,0xcabc,0xa7bb, +0x0000,0x0000,0xcabd,0xcc57,0x0000,0xcc58,0x0000,0xa976, +0xa978,0xa97a,0xa977,0xa97b,0xa979,0x0000,0x0000,0x0000, +0x0000,0x0000,0xabc8,0xabc5,0xabc7,0xabc9,0xabc6,0xd166, +0xce77,0x0000,0x0000,0x0000,0xd168,0xd167,0xae63,0x0000, +0xae5f,0x0000,0x0000,0xae60,0xae62,0xae64,0xae61,0x0000, +0xae66,0xae65,0x0000,0x0000,0x0000,0x0000,0x0000,0xb14a, +0xd4f2,0xd4f1,0xb149,0x0000,0xb148,0xb147,0xb14b,0xb146, +0x0000,0x0000,0xd8d5,0xd8d2,0xb449,0xd8d1,0xd8d6,0x0000, +0xb44b,0xd8d4,0xb448,0xb44a,0xd8d3,0x0000,0xdd48,0x0000, +0xdd49,0xdd4a,0x0000,0x0000,0x0000,0x0000,0xb9e6,0xb9ee, +0xe17e,0xb9e8,0xb9ec,0xe1a1,0xb9ed,0xb9e9,0xb9ea,0xb9e7, +0xb9eb,0xbc66,0xd8d0,0xbc67,0xbc65,0x0000,0xbc64,0xe95d, +0xbec8,0xecd8,0xecd9,0x0000,0x0000,0xc364,0xc45f,0x0000, +0xa46f,0x0000,0xa678,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x5c00 */ +0x0000,0xabca,0x0000,0xd169,0xae67,0x0000,0x0000,0xb14e, +0xb14d,0xb14c,0xb44c,0xb44d,0xd8d7,0xb9ef,0xbec9,0xa470, +0xc95c,0xa4d6,0xc974,0x0000,0x0000,0xc9d4,0xa679,0x0000, +0x0000,0x0000,0xa97c,0x0000,0x0000,0x0000,0x0000,0xdd4b, +0x0000,0x0000,0xa471,0x0000,0xa4d7,0xc9d5,0x0000,0x0000, +0xcabe,0x0000,0xcabf,0x0000,0xa7bc,0x0000,0x0000,0x0000, +0xd8d8,0xb44e,0x0000,0xdd4c,0x0000,0x0000,0x0000,0xc0aa, +0xa472,0xa4a8,0xa4d8,0xc975,0xa5a7,0x0000,0xa7c0,0xa7bf, +0xa7bd,0xa7be,0x0000,0x0000,0xcc59,0xa97e,0xa9a1,0xcc5a, +0xa97d,0x0000,0x0000,0xabce,0xce78,0xabcd,0xabcb,0xabcc, +0xae6a,0xae68,0x0000,0x0000,0xd16b,0xae69,0xd16a,0x0000, +0xae5e,0xd4f3,0x0000,0x0000,0xb150,0xb151,0x0000,0x0000, +0xb14f,0x0000,0xb9f0,0xe1a2,0xbc68,0xbc69,0x0000,0xe561, +0xc0ab,0xefc2,0xefc3,0x0000,0xc4dd,0xf8a8,0xc94b,0xa4d9, +0x0000,0xa473,0x0000,0xc977,0xc976,0x0000,0x0000,0x0000, +0x0000,0xa67a,0xc9d7,0xc9d8,0xc9d6,0x0000,0xc9d9,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xcac7,0x0000, +0xcac2,0xcac4,0xcac6,0xcac3,0xa7c4,0xcac0,0x0000,0xcac1, +0xa7c1,0xa7c2,0xcac5,0xcac8,0xa7c3,0xcac9,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xcc68,0x0000,0xcc62, +0xcc5d,0xa9a3,0xcc65,0xcc63,0xcc5c,0xcc69,0xcc6c,0xcc67, +0xcc60,0xa9a5,0xcc66,0xa9a6,0xcc61,0xcc64,0xcc5b,0xcc5f, +0xcc6b,0xa9a7,0x0000,0xa9a8,0x0000,0xcc5e,0xcc6a,0xa9a2, +0xa9a4,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xceab,0xcea4, +0xceaa,0xcea3,0xcea5,0xce7d,0xce7b,0x0000,0xceac,0xcea9, +0xce79,0x0000,0xabd0,0xcea7,0xcea8,0x0000,0xcea6,0xce7c, +0xce7a,0xabcf,0xcea2,0xce7e,0x0000,0x0000,0xcea1,0xcead, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xae6f,0x0000,0xae6e,0x0000,0xd16c,0xae6b,0xd16e,0x0000, +0xae70,0xd16f,0x0000,0x0000,0xae73,0x0000,0xae71,0xd170, +0xceae,0xd172,0x0000,0xae6d,0x0000,0xae6c,0x0000,0xd16d, +0xd171,0xae72,0x0000,0x0000,0x0000,0x0000,0xb153,0xb152, +0x0000,0x0000,0x0000,0xd4f5,0xd4f9,0xd4fb,0xb154,0xd4fe, +0x0000,0xb158,0xd541,0x0000,0xb15a,0x0000,0xb156,0xb15e, +0x0000,0xb15b,0xd4f7,0xb155,0x0000,0xd4f6,0xd4f4,0xd543, +0xd4f8,0x0000,0xb157,0xd542,0xb15c,0xd4fd,0xd4fc,0xb15d, +0xd4fa,0xb159,0x0000,0x0000,0x0000,0x0000,0xd544,0x0000, +0xd540,0xd8e7,0xd8ee,0xd8e3,0xb451,0xd8df,0xd8ef,0xd8d9, +0xd8ec,0xd8ea,0xd8e4,0x0000,0xd8ed,0xd8e6,0x0000,0xd8de, +0xd8f0,0xd8dc,0xd8e9,0xd8da,0x0000,0xd8f1,0x0000,0xb452, +0x0000,0xd8eb,0xdd4f,0xd8dd,0xb44f,0x0000,0xd8e1,0x0000, +0xb450,0xd8e0,0xd8e5,0x0000,0x0000,0xd8e2,0x0000,0x0000, +0x0000,0xd8e8,0x0000,0x0000,0x0000,0x0000,0xdd53,0x0000, +0x0000,0x0000,0xdd56,0xdd4e,0x0000,0xdd50,0x0000,0xdd55, +0xdd54,0xb743,0x0000,0xd8db,0xdd52,0x0000,0x0000,0xb744, +0x0000,0xdd4d,0xdd51,0x0000,0x0000,0x0000,0x0000,0xe1a9, +0x0000,0xe1b0,0xe1a7,0x0000,0xe1ae,0xe1a5,0xe1ad,0xe1b1, +0xe1a4,0xe1a8,0xe1a3,0x0000,0xb9f1,0x0000,0xe1a6,0xb9f2, +0xe1ac,0xe1ab,0xe1aa,0x0000,0x0000,0xe1af,0x0000,0x0000, +0x0000,0x0000,0xe565,0xe567,0xbc6b,0xe568,0x0000,0xe563, +0x0000,0xe562,0xe56c,0x0000,0xe56a,0xbc6a,0xe56d,0xe564, +0xe569,0xe56b,0xe566,0x0000,0x0000,0x0000,0x0000,0xe961, +0xe966,0xe960,0xe965,0x0000,0xe95e,0xe968,0xe964,0xe969, +0xe963,0xe95f,0xe967,0x0000,0xe96a,0xe962,0x0000,0xecda, +0xc0af,0x0000,0xc0ad,0x0000,0xc0ac,0xc0ae,0x0000,0x0000, +0xefc4,0x0000,0xf172,0xf1fd,0x0000,0x0000,0xf444,0xf445, +0x0000,0xc460,0x0000,0xf5c9,0x0000,0xc4de,0x0000,0xf5ca, +0x0000,0xf6de,0xc572,0x0000,0xc571,0xf6dd,0xc5c9,0x0000, +0xf7d6,0x0000,0x0000,0x0000,0x0000,0xa474,0xa67b,0xc9da, +0xcaca,0xa8b5,0xb15f,0x0000,0x0000,0xa475,0xa5aa,0xa5a9, +0xa5a8,0x0000,0x0000,0xa7c5,0x0000,0x0000,0xae74,0x0000, +0xdd57,0xa476,0xa477,0xa478,0xa4da,0x0000,0x0000,0xabd1, +0x0000,0xceaf,0x0000,0x0000,0x0000,0xb453,0xa479,0xc95d, +/* 0x5e00 */ +0x0000,0x0000,0xa5ab,0xa5ac,0xc978,0x0000,0xa67c,0x0000, +0x0000,0x0000,0xcacb,0x0000,0xa7c6,0x0000,0xcacc,0x0000, +0x0000,0xa9ae,0x0000,0x0000,0xcc6e,0xa9ac,0xa9ab,0xcc6d, +0xa9a9,0xcc6f,0xa9aa,0xa9ad,0x0000,0xabd2,0x0000,0xabd4, +0xceb3,0xceb0,0xceb1,0xceb2,0xceb4,0xabd3,0x0000,0x0000, +0xd174,0xd173,0x0000,0xae76,0x0000,0xae75,0x0000,0x0000, +0x0000,0x0000,0x0000,0xb162,0xd546,0x0000,0xb161,0xb163, +0xb160,0x0000,0x0000,0x0000,0x0000,0xb455,0xd545,0x0000, +0xb456,0xd8f3,0x0000,0xb457,0xd8f2,0xb454,0x0000,0x0000, +0x0000,0x0000,0xdd5a,0xdd5c,0xb745,0xdd5b,0xdd59,0xdd58, +0x0000,0x0000,0x0000,0xe1b4,0xb9f7,0xb9f5,0x0000,0xb9f6, +0xe1b2,0xe1b3,0x0000,0xb9f3,0xe571,0xe56f,0x0000,0xbc6d, +0xe570,0xbc6e,0xbc6c,0xb9f4,0x0000,0x0000,0xe96d,0xe96b, +0xe96c,0xe56e,0xecdc,0xc0b0,0xecdb,0xefc5,0xefc6,0xe96e, +0xf1fe,0x0000,0xa47a,0xa5ad,0xa67e,0xc9db,0xa67d,0x0000, +0xa9af,0xb746,0x0000,0xa4db,0xa5ae,0xabd5,0xb458,0x0000, +0xc979,0x0000,0xc97a,0x0000,0xc9dc,0x0000,0x0000,0xa7c8, +0xcad0,0xcace,0xa7c9,0xcacd,0xcacf,0xcad1,0x0000,0xa7c7, +0x0000,0x0000,0x0000,0x0000,0x0000,0xa9b3,0xa9b4,0xa9b1, +0x0000,0x0000,0xa9b0,0xceb8,0xa9b2,0x0000,0x0000,0x0000, +0xabd6,0x0000,0xceb7,0xceb9,0xceb6,0xceba,0xabd7,0xae79, +0xd175,0x0000,0xd177,0xae77,0xd178,0xae78,0xd176,0x0000, +0xceb5,0xd547,0xd54a,0xd54b,0xd548,0xb167,0xb166,0xb164, +0xb165,0xd549,0x0000,0x0000,0x0000,0x0000,0xb168,0x0000, +0x0000,0xb45a,0xb45b,0x0000,0xb45c,0xdd5d,0xdd5f,0xdd61, +0xb748,0xb747,0xb459,0xdd60,0xdd5e,0x0000,0xe1b8,0x0000, +0x0000,0xe1b6,0xe1bc,0xb9f8,0xe1bd,0xe1ba,0xb9f9,0xe1b7, +0xe1b5,0xe1bb,0xbc70,0xe573,0xe1b9,0xbc72,0xe574,0xbc71, +0xbc74,0xe575,0xbc6f,0xbc73,0x0000,0xe973,0xe971,0xe970, +0xe972,0xe96f,0x0000,0x0000,0xc366,0x0000,0xf446,0xf447, +0x0000,0xf5cb,0xf6df,0xc655,0x0000,0x0000,0xa9b5,0xa7ca, +0x0000,0x0000,0xabd8,0x0000,0x0000,0x0000,0xa47b,0xa4dc, +/* 0x5f00 */ +0x0000,0xa5af,0xc9dd,0x0000,0xa7cb,0xcad2,0x0000,0xcebb, +0xabd9,0x0000,0xb9fa,0xa47c,0x0000,0x0000,0x0000,0xa6a1, +0x0000,0x0000,0xb749,0xa47d,0xa4dd,0xa4de,0x0000,0xa5b1, +0xa5b0,0x0000,0xc9de,0xa6a2,0x0000,0xcad3,0x0000,0xa7cc, +0x0000,0x0000,0xcc71,0xcc72,0xcc73,0x0000,0xa9b6,0xa9b7, +0xcc70,0xa9b8,0x0000,0x0000,0x0000,0xabda,0xcebc,0x0000, +0xd17a,0xae7a,0x0000,0xd179,0x0000,0xb169,0xd54c,0xb16a, +0xd54d,0x0000,0x0000,0x0000,0xb45d,0x0000,0x0000,0x0000, +0xdd62,0x0000,0x0000,0xe1bf,0xe1be,0x0000,0xb9fb,0x0000, +0xbc75,0xe576,0xbeca,0xe974,0xc0b1,0x0000,0xc573,0xf7d8, +0x0000,0x0000,0x0000,0x0000,0xcc74,0x0000,0xcebd,0xb16b, +0xd8f4,0xb74a,0x0000,0x0000,0x0000,0xc255,0x0000,0x0000, +0x0000,0x0000,0xa7ce,0x0000,0xa7cd,0xabdb,0x0000,0xd17b, +0x0000,0xb16d,0xb343,0xb16e,0xb16c,0xb45e,0x0000,0xe1c0, +0xb9fc,0xbc76,0x0000,0xc94c,0xc9df,0x0000,0xcad5,0xa7cf, +0xcad4,0xa7d0,0x0000,0x0000,0xa9bc,0xcc77,0xcc76,0xa9bb, +0xa9b9,0xa9ba,0xcc75,0x0000,0x0000,0xabdd,0xcebe,0xabe0, +0xabdc,0xabe2,0xabde,0xabdf,0xabe1,0x0000,0x0000,0x0000, +0xae7d,0xae7c,0xae7b,0x0000,0x0000,0x0000,0xd54f,0xb16f, +0xb172,0xb170,0x0000,0xd54e,0xb175,0x0000,0xb171,0xd550, +0xb174,0xb173,0x0000,0x0000,0x0000,0xd8f6,0xd8f5,0x0000, +0xb461,0xb45f,0xb460,0xd8f7,0xb74b,0xdd64,0xb74c,0xdd63, +0x0000,0x0000,0xe577,0x0000,0x0000,0xbc78,0xe1c1,0xbc77, +0x0000,0xb9fd,0x0000,0xecde,0xe975,0xc0b2,0xecdd,0xf240, +0xf448,0xf449,0x0000,0xa4df,0x0000,0xa5b2,0x0000,0x0000, +0x0000,0xc97b,0x0000,0x0000,0xa7d2,0xa7d4,0x0000,0xc9e2, +0xcad8,0xcad7,0xcad6,0x0000,0xc9e1,0xc9e0,0xa6a4,0xa7d3, +0xa7d1,0xa6a3,0x0000,0x0000,0x0000,0xa9bd,0xcc78,0x0000, +0xa9be,0xcadd,0x0000,0xcadf,0xcade,0xcc79,0x0000,0x0000, +0xcada,0x0000,0xa7d8,0xa7d6,0x0000,0xcad9,0xcadb,0xcae1, +0x0000,0xa7d5,0x0000,0xcadc,0xcae5,0xa9c0,0x0000,0xcae2, +0xa7d7,0x0000,0xcae0,0xcae3,0x0000,0xa9bf,0x0000,0xa9c1, +0xcae4,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xccaf,0xcca2,0xcc7e,0xccae,0xcca9,0xabe7,0xa9c2, +0xccaa,0xccad,0xabe3,0xccac,0xa9c3,0xa9c8,0xa9c6,0xcca3, +0x0000,0xcc7c,0xcca5,0xa9cd,0xccb0,0xabe4,0xcca6,0x0000, +0xabe5,0xa9c9,0xcca8,0x0000,0xcecd,0xabe6,0xcc7b,0xa9ca, +0xabe8,0xa9cb,0xa9c7,0xa9cc,0xcca7,0xcc7a,0xccab,0xa9c4, +0x0000,0x0000,0xcc7d,0xcca4,0xcca1,0xa9c5,0x0000,0xcebf, +0x0000,0xcec0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xceca,0xd1a1,0xcecb,0xabee,0xcece,0xcec4,0xabed,0xcec6, +0x0000,0xcec7,0x0000,0x0000,0xcec9,0xabe9,0x0000,0x0000, +0xaea3,0x0000,0xf9da,0xcec5,0xcec1,0xaea4,0x0000,0x0000, +0xcecf,0xae7e,0xd17d,0xcec8,0x0000,0xd17c,0xcec3,0xcecc, +0x0000,0x0000,0xabec,0xaea1,0xabf2,0xaea2,0xced0,0xd17e, +0xabeb,0xaea6,0xabf1,0xabf0,0xabef,0xaea5,0xced1,0xaea7, +0xabea,0x0000,0xcec2,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xb176, +0xd1a4,0xd1a6,0x0000,0xd1a8,0xaea8,0xaeae,0xd553,0xd1ac, +0xd1a3,0xb178,0xd551,0x0000,0xaead,0xaeab,0xd1ae,0x0000, +0xd552,0x0000,0xd1a5,0x0000,0xaeac,0xd1a9,0xaeaf,0xd1ab, +0x0000,0x0000,0xaeaa,0xd1aa,0xd1ad,0xd1a7,0x0000,0xaea9, +0xb179,0x0000,0xd1a2,0xb177,0x0000,0x0000,0x0000,0x0000, +0xb17a,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xd555,0xd55e,0xb464,0x0000,0xb17c,0xb1a3,0xb465,0xd560, +0xb1aa,0xd8f9,0xd556,0xb1a2,0xb1a5,0xb17e,0xd554,0xd562, +0xd565,0xd949,0x0000,0xd563,0xd8fd,0xb1a1,0xb1a8,0xb1ac, +0xd55d,0xd8f8,0xd561,0xb17b,0xd8fa,0xd564,0xd8fc,0xd559, +0x0000,0xb462,0x0000,0xd557,0xd558,0xb1a7,0x0000,0x0000, +0xb1a6,0xd55b,0xb1ab,0xd55f,0xb1a4,0xd55c,0x0000,0xb1a9, +0xb466,0xb463,0xd8fb,0x0000,0xd55a,0x0000,0xb17d,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xb46b,0xb46f,0xd940,0xb751,0xb46d,0xd944,0xb471,0xdd65, +0xd946,0xb753,0xb469,0xb46c,0xd947,0x0000,0xd948,0xd94e, +0xb473,0xb754,0x0000,0xd94a,0xd94f,0xd943,0xb75e,0x0000, +0xb755,0xb472,0xd941,0xd950,0x0000,0xb75d,0xb470,0xb74e, +0xd94d,0x0000,0xb474,0xd945,0xd8fe,0xb46a,0xd942,0x0000, +0xd94b,0x0000,0xb74d,0xb752,0xb467,0xd94c,0x0000,0xb750, +0x0000,0x0000,0x0000,0xb468,0x0000,0x0000,0x0000,0xb75c, +0xe1c3,0xdd70,0x0000,0xdd68,0xe1c2,0x0000,0xdd6c,0xdd6e, +0x0000,0x0000,0xdd6b,0x0000,0xb75b,0x0000,0xdd6a,0xb75f, +0x0000,0x0000,0x0000,0xe1d2,0x0000,0x0000,0xb75a,0xba40, +0xdd71,0xe1c4,0x0000,0x0000,0xb758,0xdd69,0xdd6d,0xb9fe, +0xb74f,0xdd66,0xdd67,0xba41,0xb757,0xb759,0xb756,0xdd6f, +0x0000,0x0000,0xe1c8,0xe1c9,0xe1ce,0xbc7d,0xe1d5,0x0000, +0xba47,0x0000,0xba46,0xe1d0,0x0000,0xbc7c,0xe1c5,0xba45, +0x0000,0xe1d4,0xba43,0xba44,0x0000,0xe1d1,0xe5aa,0xbc7a, +0xb46e,0x0000,0xe1d3,0xbca3,0xe1cb,0x0000,0xbc7b,0x0000, +0xbca2,0xe1c6,0xe1ca,0xe1c7,0xe1cd,0xba48,0xbc79,0xba42, +0x0000,0xe57a,0xe1cf,0x0000,0xbca1,0x0000,0xbca4,0x0000, +0xe1cc,0x0000,0xbc7e,0xe579,0x0000,0x0000,0x0000,0x0000, +0x0000,0xe57e,0xbece,0xe578,0xe9a3,0xe5a9,0xbca8,0x0000, +0xbca6,0xbecc,0xe5a6,0xe5a2,0xbcac,0x0000,0xe978,0x0000, +0x0000,0x0000,0xbcaa,0xe5a1,0x0000,0xe976,0x0000,0xe5a5, +0x0000,0xe5a8,0xe57d,0x0000,0xbcab,0x0000,0x0000,0xbca5, +0xe977,0xbecd,0xe5a7,0xbca7,0xbca9,0xe5a4,0xbcad,0xe5a3, +0xe57c,0xe57b,0xbecb,0xe5ab,0xe97a,0xece0,0xbed0,0x0000, +0xe9a2,0x0000,0xe97e,0x0000,0xece1,0x0000,0xbed1,0xe9a1, +0x0000,0xe97c,0xc0b4,0xecdf,0x0000,0xe979,0xe97b,0xc0b5, +0xbed3,0xc0b3,0xbed2,0xc0b7,0xe97d,0xbecf,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xefcf,0x0000, +0xefc7,0x0000,0x0000,0x0000,0x0000,0x0000,0xece7,0xefc8, +0xece3,0x0000,0x0000,0xc256,0xece5,0xece4,0xc0b6,0xece2, +0xece6,0xefd0,0xefcc,0xefce,0x0000,0xefc9,0xefca,0x0000, +0xefcd,0xefcb,0xc367,0x0000,0x0000,0xc36a,0xc369,0xc368, +0xc461,0xf44a,0xc462,0xf241,0xc4df,0xf5cc,0xc4e0,0xc574, +0xc5ca,0xf7d9,0x0000,0xf7da,0xf7db,0x0000,0x0000,0xf9ba, +0xa4e0,0xc97c,0xa5b3,0x0000,0xa6a6,0xa6a7,0xa6a5,0x0000, +0xa6a8,0xa7da,0xa7d9,0x0000,0xccb1,0xa9cf,0xa9ce,0x0000, +0x0000,0xd1af,0xb1ad,0xb1ae,0x0000,0x0000,0x0000,0xb475, +0xdd72,0xb760,0xb761,0xdd74,0xdd76,0xdd75,0x0000,0xe1d7, +0x0000,0xe1d6,0xba49,0xe1d8,0x0000,0xe5ac,0xbcae,0x0000, +0xbed4,0x0000,0xc0b8,0xc257,0xc0b9,0x0000,0xa4e1,0x0000, +0x0000,0x0000,0xcae6,0x0000,0x0000,0xccb2,0xa9d1,0xa9d0, +0xa9d2,0xabf3,0xced2,0xced3,0x0000,0x0000,0xd1b0,0xaeb0, +0xb1af,0xb476,0xd951,0xa4e2,0x0000,0xa47e,0xa4e3,0x0000, +0xc97d,0xa5b7,0xa5b6,0xa5b4,0xa5b5,0x0000,0x0000,0x0000, +0xa6ab,0xc9e9,0xc9eb,0xa6aa,0xc9e3,0x0000,0xc9e4,0x0000, +0xc9ea,0xc9e6,0xc9e8,0xa6a9,0xc9e5,0xc9ec,0xc9e7,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xa7e1,0xa7ea,0xa7e8, +0xcaf0,0xcaed,0xcaf5,0xa7e6,0xcaf6,0x0000,0xa7df,0xcaf3, +0x0000,0xa7e5,0xcaef,0xcaee,0xa7e3,0xcaf4,0xa7e4,0xa9d3, +0xa7de,0xcaf1,0x0000,0xcae7,0xa7db,0x0000,0xa7ee,0xcaec, +0xcaf2,0xa7e0,0xa7e2,0x0000,0xcae8,0x0000,0xcae9,0xcaea, +0x0000,0xa7ed,0xa7e7,0xa7ec,0xcaeb,0xa7eb,0xa7dd,0xa7dc, +0xa7e9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa9e1,0xccbe,0xccb7,0xa9dc,0xa9ef,0xccb3,0xccba,0xccbc, +0xccbf,0xa9ea,0x0000,0xccbb,0xccb4,0xa9e8,0xccb8,0x0000, +0xccc0,0xa9d9,0x0000,0xccbd,0xa9e3,0xa9e2,0xccb6,0xa9d7, +0x0000,0x0000,0xa9d8,0x0000,0xa9d6,0x0000,0xa9ee,0xa9e6, +0xa9e0,0xa9d4,0xccb9,0xa9df,0xa9d5,0xa9e7,0xa9f0,0xced4, +0xa9e4,0xccb5,0xa9da,0xa9dd,0xa9de,0x0000,0xa9ec,0xa9ed, +0xa9eb,0xa9e5,0xa9e9,0xa9db,0xabf4,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xceda,0xac41,0xabf8,0xabfa,0xac40, +0xcee6,0xabfd,0xd1b1,0xaeb1,0xac43,0xced7,0xcedf,0xabfe, +0xcede,0xcedb,0xcee3,0xcee5,0xabf7,0xabfb,0xac42,0xaeb3, +0xcee0,0xabf9,0xac45,0xced9,0x0000,0x0000,0x0000,0xabfc, +0xaeb2,0xabf6,0x0000,0xced6,0xcedd,0xced5,0xced8,0xcedc, +0xd1b2,0xac44,0x0000,0xcee1,0xcee2,0xcee4,0xabf5,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xaec1,0xd1be,0xaebf,0xaec0,0xd1b4,0xd1c4,0x0000,0xaeb6, +0x0000,0x0000,0xd566,0xd1c6,0xd1c0,0x0000,0xd1b7,0x0000, +0xd1c9,0xd1ba,0xaebc,0xd57d,0xd1bd,0xaebe,0xaeb5,0x0000, +0xd1cb,0xd1bf,0xaeb8,0xd1b8,0xd1b5,0xd1b6,0xaeb9,0xd1c5, +0xd1cc,0xaebb,0xd1bc,0xd1bb,0xaec3,0xaec2,0xaeb4,0xaeba, +0xaebd,0xd1c8,0x0000,0x0000,0xd1c2,0xaeb7,0xd1b3,0xd1ca, +0xd1c1,0xd1c3,0xd1c7,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xd567,0x0000,0xb1b7, +0xb1cb,0xb1ca,0x0000,0xb1bf,0x0000,0xd579,0xd575,0xd572, +0xd5a6,0xb1ba,0xb1b2,0x0000,0x0000,0xd577,0xb4a8,0xb1b6, +0xd5a1,0x0000,0xb1cc,0xb1c9,0xd57b,0xd56a,0x0000,0x0000, +0xb1c8,0xd5a3,0xd569,0xb1bd,0xb1c1,0xd5a2,0x0000,0xd573, +0xb1c2,0xb1bc,0xd568,0x0000,0xb478,0xd5a5,0xd571,0xb1c7, +0xd574,0xd5a4,0xb1c6,0x0000,0xd952,0x0000,0xb1b3,0xd56f, +0xb1b8,0xb1c3,0x0000,0xb1be,0xd578,0xd56e,0xd56c,0xd57e, +0xb1b0,0xb1c4,0xb1b4,0xb477,0xd57c,0xb1b5,0x0000,0xb1b1, +0xb1c0,0xb1bb,0xb1b9,0xd570,0xb1c5,0xd56d,0xd57a,0xd576, +0xd954,0xd953,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xd56b,0xd964,0x0000, +0xb47a,0x0000,0xd96a,0xd959,0xd967,0xdd77,0xb47d,0xd96b, +0xd96e,0xb47c,0xd95c,0xd96d,0xd96c,0xb47e,0xd955,0xb479, +0xb4a3,0x0000,0xb4a1,0xd969,0x0000,0xd95f,0xb4a5,0xd970, +0xd968,0xd971,0xb4ad,0xb4ab,0xd966,0xd965,0x0000,0xd963, +0xd95d,0xb4a4,0x0000,0xb4a2,0xd1b9,0xd956,0x0000,0xddb7, +0xd957,0xb47b,0xb4aa,0xdd79,0x0000,0xb4a6,0xb4a7,0xd958, +0xd96f,0xdd78,0xd960,0xd95b,0xb4a9,0xd961,0xd95e,0x0000, +0x0000,0xb4ae,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x6400 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xb770,0x0000, +0x0000,0xdd7c,0xddb1,0xddb6,0xddaa,0xb76c,0xddbb,0xb769, +0xdd7a,0x0000,0xdd7b,0xb762,0xb76b,0xdda4,0xb76e,0xb76f, +0xdda5,0x0000,0xddb2,0xddb8,0xb76a,0x0000,0xb764,0xdda3, +0xdd7d,0xddba,0xdda8,0xdda9,0xdd7e,0xddb4,0xddab,0xddb5, +0xddad,0x0000,0xb765,0xe1d9,0xb768,0xb766,0xddb9,0xddb0, +0xddac,0x0000,0x0000,0xdda1,0xba53,0xddaf,0xb76d,0xdda7, +0x0000,0xdda6,0x0000,0x0000,0x0000,0xb767,0xb763,0xe1ee, +0xddb3,0xddae,0x0000,0xdda2,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xe1e9,0x0000,0xe1da,0xe1e5,0x0000, +0xe1ec,0xba51,0xb4ac,0xe1ea,0xba4c,0x0000,0x0000,0x0000, +0xba4b,0xe1f1,0x0000,0xe1db,0xe1e8,0xe1dc,0xe1e7,0xba4f, +0xe1eb,0xd962,0x0000,0x0000,0x0000,0xe1f2,0xe1e3,0xba52, +0xe5ba,0xbcaf,0x0000,0xe1f0,0xe1ef,0xba54,0xe5ad,0xbcb0, +0xe5ae,0x0000,0xe1df,0xe1e0,0xe1dd,0xe1e2,0xe1de,0xe1f3, +0xba4e,0xbcb1,0xba50,0xba55,0x0000,0xe1e1,0x0000,0xe1ed, +0x0000,0x0000,0xe1e6,0x0000,0x0000,0xe5b1,0x0000,0xba4a, +0xbcb4,0xe9aa,0xe5b6,0xe5b5,0xe5b7,0x0000,0x0000,0xe5b4, +0xbcb5,0x0000,0xbcbb,0xbcb8,0x0000,0xbcb9,0xe5af,0xe5b2, +0xe5bc,0xbcc1,0xbcbf,0x0000,0xe5b3,0xd95a,0xbcb2,0xe5b9, +0xe5b0,0x0000,0xbcc2,0xe5b8,0xba4d,0xbcb7,0xe1e4,0x0000, +0x0000,0xbcba,0x0000,0xbcbe,0xbcc0,0xbcbd,0xbcbc,0x0000, +0xbcb6,0xe5bb,0xbcb3,0xbcc3,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xbed8,0xbed9,0xe9a9,0xbee2,0xbedf, +0x0000,0xbed6,0xbedd,0xe9ab,0xbedb,0xbed5,0x0000,0xbedc, +0x0000,0xe9a8,0xc0bb,0xbed7,0x0000,0xbede,0xc0ba,0xe9a7, +0xe9a6,0x0000,0xbee0,0x0000,0xbee1,0x0000,0xe9a5,0xe9a4, +0xc0bc,0xe9ae,0xbeda,0xe9ac,0x0000,0x0000,0x0000,0x0000, +0xc0bd,0x0000,0xc0c2,0xecea,0xecec,0x0000,0xc0bf,0x0000, +0xeced,0xece9,0x0000,0xeceb,0xc0c0,0xc0c3,0x0000,0xece8, +0xc0be,0xc0c1,0xc259,0xe9ad,0xc258,0x0000,0x0000,0xc25e, +0xefd4,0x0000,0xc25c,0xc25d,0xefd7,0xefd3,0xc25a,0xefd1, +0xc36b,0xefd5,0x0000,0xefd6,0xefd2,0x0000,0xc25b,0xf242, +0x0000,0xf245,0x0000,0x0000,0xf246,0xf244,0xf247,0xc36c, +0xf243,0x0000,0x0000,0xf44e,0xc464,0xf44d,0xf44c,0xf44b, +0xc463,0xc465,0x0000,0xf5cd,0xc4e2,0xc4e1,0x0000,0x0000, +0xf6e1,0xf6e0,0xf6e3,0xc5cb,0xc575,0xf7dd,0xf6e2,0x0000, +0x0000,0xf7dc,0xc5cd,0xc5cc,0xc5f3,0xf8a9,0xf8ef,0xa4e4, +0x0000,0x0000,0xd972,0xe9af,0x0000,0x0000,0xa6ac,0xcaf7, +0xa7f1,0xa7ef,0x0000,0xa7f0,0x0000,0xccc1,0xa9f1,0xac46, +0x0000,0xcee7,0x0000,0xcee8,0x0000,0xac47,0xd1ce,0x0000, +0xaec4,0xaec5,0xd1cd,0x0000,0x0000,0x0000,0x0000,0xb1d3, +0x0000,0xb1cf,0x0000,0xd5a7,0xb1d6,0xb1d5,0xb1ce,0xb1d1, +0xb1d4,0xb1d0,0x0000,0x0000,0xd976,0xb1cd,0xb4af,0x0000, +0x0000,0x0000,0xb4b1,0xb4b2,0xd975,0xd978,0xb4b0,0xd973, +0xd977,0x0000,0xd974,0x0000,0xb771,0x0000,0x0000,0xddbc, +0x0000,0x0000,0xba56,0xe1f4,0xbee3,0xbcc4,0xe5bd,0xbcc5, +0xbcc6,0xe5bf,0xe5be,0xe5c0,0xe9b1,0x0000,0x0000,0xe9b0, +0xecef,0xecee,0xc0c4,0xc0c5,0xf248,0x0000,0x0000,0xa4e5, +0x0000,0x0000,0x0000,0x0000,0xd979,0x0000,0x0000,0x0000, +0xb4b4,0xb4b3,0xddbd,0x0000,0xefd8,0xc4e3,0xf7de,0xa4e6, +0x0000,0xaec6,0x0000,0xb1d8,0xb1d7,0xd97a,0xd97b,0xb772, +0xe1f5,0xba57,0xe9b2,0x0000,0xa4e7,0xa5b8,0x0000,0xa9f2, +0xccc2,0x0000,0xcee9,0xac48,0xb1d9,0x0000,0xd97c,0xb4b5, +0xb773,0x0000,0xe5c1,0xe5c2,0x0000,0x0000,0xecf0,0xc25f, +0xf8f0,0xa4e8,0x0000,0xccc3,0xa9f3,0xac49,0x0000,0xceea, +0x0000,0xaec7,0xd1d2,0xd1d0,0xd1d1,0xaec8,0xd1cf,0x0000, +0x0000,0x0000,0x0000,0xb1db,0xb1dc,0xd5a8,0xb1dd,0xb1da, +0xd97d,0x0000,0xd97e,0xddbe,0x0000,0x0000,0xba59,0xba58, +0x0000,0x0000,0xecf1,0xefd9,0x0000,0xf24a,0xf249,0xf44f, +0x0000,0xc95e,0xac4a,0x0000,0x0000,0xa4e9,0xa5b9,0x0000, +0xa6ae,0xa6ad,0x0000,0x0000,0xa6af,0xa6b0,0xc9ee,0xc9ed, +0xcaf8,0xa7f2,0xcafb,0xcafa,0xcaf9,0xcafc,0x0000,0x0000, +0x0000,0x0000,0xa9f4,0xccc9,0xccc5,0xccce,0x0000,0x0000, +0xa9fb,0x0000,0xa9f9,0xccca,0xccc6,0xcccd,0xa9f8,0xaa40, +0xccc8,0xccc4,0xa9fe,0xcccb,0xa9f7,0xcccc,0xa9fa,0xa9fc, +0xccd0,0xcccf,0xccc7,0xa9f6,0xa9f5,0xa9fd,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xceef,0xcef5,0x0000,0xac50, +0xac4d,0xceec,0xcef1,0x0000,0xac53,0xac4b,0xcef0,0xac4e, +0xac51,0x0000,0x0000,0xcef3,0x0000,0xac4c,0xcef8,0xac4f, +0x0000,0xac52,0xceed,0xcef2,0xcef6,0xceee,0xceeb,0x0000, +0x0000,0xcef7,0xcef4,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xaed0,0xaec9,0xaecc,0x0000,0xaecf,0x0000,0xd1d5, +0x0000,0xaeca,0xd1d3,0x0000,0xaece,0x0000,0x0000,0xaecb, +0x0000,0xd1d6,0xaecd,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xd5ac,0xb1df,0xd5ab,0xd5ad,0xb1de,0xb1e3,0xd1d4, +0x0000,0xd5aa,0xd5ae,0x0000,0xb1e0,0xd5a9,0xb1e2,0x0000, +0xb1e1,0x0000,0xd9a7,0x0000,0xd9a2,0x0000,0xb4b6,0xb4ba, +0xb4b7,0xd9a5,0xd9a8,0x0000,0xb4b8,0x0000,0xb4b9,0xb4be, +0xddc7,0xd9a6,0xb4bc,0xd9a3,0xd9a1,0x0000,0xb4bd,0x0000, +0xd9a4,0x0000,0x0000,0x0000,0xb779,0x0000,0xddbf,0xb776, +0xb777,0xb775,0xddc4,0xddc3,0xddc0,0xb77b,0x0000,0x0000, +0xddc2,0xb4bb,0x0000,0x0000,0xddc6,0xddc1,0xb778,0xb774, +0xb77a,0xddc5,0x0000,0x0000,0x0000,0xba5c,0x0000,0xe1f8, +0xe1f7,0xe1f6,0xba5a,0x0000,0x0000,0x0000,0x0000,0x0000, +0xba5b,0xe5c5,0xe5c8,0xbcc8,0x0000,0x0000,0xbcc7,0xe5c9, +0xe5c4,0xbcca,0xe5c6,0x0000,0xbcc9,0xe5c3,0x0000,0xe5c7, +0xbee9,0xbee6,0xe9bb,0xe9ba,0x0000,0xe9b9,0xe9b4,0x0000, +0xe9b5,0x0000,0x0000,0x0000,0xbee7,0x0000,0xbee4,0xbee8, +0xe9b3,0xbee5,0xe9b6,0xe9b7,0xe9bc,0x0000,0x0000,0xe9b8, +0x0000,0x0000,0xecf2,0x0000,0x0000,0x0000,0xc0c7,0x0000, +0xefdc,0xc0c6,0xefda,0xefdb,0xc260,0xc36e,0xf24b,0x0000, +0xc36d,0x0000,0x0000,0xf451,0xf452,0x0000,0xc466,0x0000, +0xf450,0xc4e4,0x0000,0xf7df,0xc5ce,0xf8aa,0xf8ab,0x0000, +0xa4ea,0x0000,0xa6b1,0xa6b2,0xa7f3,0x0000,0xccd1,0xac54, +0xaed1,0xb1e4,0x0000,0x0000,0xb0d2,0x0000,0xb4bf,0xb4c0, +0xb3cc,0xd9a9,0x0000,0xb77c,0xe1fa,0xe1f9,0x0000,0x0000, +0xa4eb,0xa6b3,0xccd2,0xaa42,0x0000,0xaa41,0x0000,0xcef9, +0xcefa,0x0000,0xd1d7,0xd1d8,0xaed2,0xaed3,0x0000,0xaed4, +0xd5af,0x0000,0x0000,0xb1e6,0x0000,0xb4c2,0x0000,0xb4c1, +0xddc8,0xdf7a,0xe1fb,0xe9bd,0x0000,0x0000,0xc261,0xc467, +0xa4ec,0x0000,0xa5bc,0xa5bd,0xa5bb,0xa5be,0xa5ba,0x0000, +0x0000,0xa6b6,0x0000,0xc9f6,0xa6b5,0xa6b7,0x0000,0x0000, +0xc9f1,0xc9f0,0xc9f3,0xc9f2,0xc9f5,0xa6b4,0xc9ef,0xc9f4, +0x0000,0x0000,0x0000,0x0000,0x0000,0xcafd,0xa7fd,0xcafe, +0xcb43,0xa7fc,0x0000,0xcb47,0xcb42,0xcb45,0xa7f5,0xa7f6, +0xa7f7,0xa7f8,0x0000,0xa840,0x0000,0xcb41,0xa7fa,0xa841, +0x0000,0xcb40,0xcb46,0x0000,0xa7f9,0xcb44,0xa7fb,0xa7f4, +0xa7fe,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xaa57,0x0000,0xccd4,0xaa43,0x0000,0xaa4d, +0xaa4e,0xaa46,0xaa58,0xaa48,0xccdc,0xaa53,0xccd7,0xaa49, +0xcce6,0xcce7,0xccdf,0xccd8,0xaa56,0xcce4,0xaa51,0xaa4f, +0x0000,0xcce5,0x0000,0xcce3,0xccdb,0xccd3,0xccda,0xaa4a, +0x0000,0xaa50,0x0000,0xaa44,0xccde,0xccdd,0xccd5,0x0000, +0xaa52,0xcce1,0xccd6,0xaa55,0xcce8,0xaa45,0x0000,0xaa4c, +0xccd9,0xcce2,0xaa54,0x0000,0xaa47,0xaa4b,0x0000,0xcce0, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xcf5b,0xac5c, +0xac69,0x0000,0xcf56,0xcf4c,0xac62,0xcf4a,0xac5b,0xcf45, +0xac65,0xcf52,0xcefe,0xcf41,0x0000,0x0000,0x0000,0x0000, +0xcf44,0xcefb,0xcf51,0xcf61,0xac60,0xcf46,0xcf58,0x0000, +0xcefd,0xcf5f,0xcf60,0xcf63,0xcf5a,0xcf4b,0xcf53,0xac66, +0xac59,0xac61,0xac6d,0xac56,0xac58,0x0000,0x0000,0x0000, +0xcf43,0xac6a,0xac63,0xcf5d,0xcf40,0xac6c,0xac67,0xcf49, +0x0000,0x0000,0xac6b,0xcf50,0xcf48,0xac64,0xcf5c,0xcf54, +0x0000,0xac5e,0xcf62,0xcf47,0xac5a,0xcf59,0xcf4f,0xac5f, +0xcf55,0xac57,0xcefc,0xac68,0xaee3,0xac5d,0xcf4e,0xcf4d, +0xcf42,0x0000,0xcf5e,0x0000,0xcf57,0x0000,0x0000,0xac55, +/* 0x6800 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xd1ec,0xaeea,0xd1ed,0x0000,0xd1e1,0xaedf, +0xaeeb,0x0000,0xd1da,0x0000,0xd1e3,0xd1eb,0x0000,0xd1d9, +0xd1f4,0xaed5,0x0000,0x0000,0x0000,0xd1f3,0xd1ee,0x0000, +0xd1ef,0xaedd,0xaee8,0xd1e5,0x0000,0xd1e6,0xd1f0,0xd1e7, +0x0000,0xd1e2,0xd1dc,0xd1dd,0xd1ea,0xd1e4,0x0000,0x0000, +0xaed6,0xaeda,0xd1f2,0xd1de,0xaee6,0xaee2,0x0000,0x0000, +0xaee5,0xaeec,0xaedb,0xaee7,0xd1e9,0xaee9,0xaed8,0x0000, +0xaed7,0xd1db,0x0000,0xd1df,0xaee0,0xd1f1,0xd1e8,0xd1e0, +0xaee4,0xaee1,0x0000,0xaed9,0xaedc,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xd5c4,0x0000,0xd5b4,0xd5b5,0xd5b9, +0x0000,0xd5c8,0xd5c5,0x0000,0xd5be,0xd5bd,0xb1ed,0xd5c1, +0xd5d0,0xd5b0,0x0000,0xd5d1,0xd5c3,0xd5d5,0xd5c9,0xb1ec, +0xd5c7,0xb1e7,0xb1fc,0xb1f2,0x0000,0xb1f6,0xb1f5,0xd5b1, +0x0000,0xd5ce,0xd5d4,0xd5cc,0xd5d3,0x0000,0x0000,0xd5c0, +0xd5b2,0xd5d2,0xd5c2,0xb1ea,0xb1f7,0x0000,0xd5cb,0xb1f0, +0x0000,0x0000,0x0000,0xd5ca,0xd5b3,0xb1f8,0x0000,0xb1fa, +0xd5cd,0xb1fb,0xb1e9,0xd5ba,0xd5cf,0x0000,0x0000,0xb1ef, +0xb1f9,0xd5bc,0xd5c6,0xd5b7,0xd5bb,0xb1f4,0xd5b6,0xb1e8, +0xb1f1,0xb1ee,0xd5bf,0xaede,0xd9c0,0xb1eb,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xb1f3,0x0000,0xd9c3,0xd9d9, +0xd9ce,0xb4d6,0x0000,0xb4d1,0xd9bd,0xb4d2,0xd9cd,0x0000, +0xd9c6,0xd9d3,0xb4ce,0xd9ab,0xd9d5,0xb4c4,0xd9b3,0xb4c7, +0xb4c6,0x0000,0xb4d7,0x0000,0xd9ad,0xd9cf,0xd9d0,0xb4c9, +0xb4c5,0xd9bb,0x0000,0xb4d0,0xd9b6,0x0000,0xd9d1,0xb4cc, +0xd9c9,0xd9d6,0xd9b0,0xd9b5,0xd9af,0x0000,0xb4cb,0xd9c2, +0xddde,0xd9b1,0xb4cf,0xd9ba,0xd9d2,0xb4ca,0xd9b7,0xd9b4, +0xd9c5,0xb4cd,0xb4c3,0xb4d9,0xd9c8,0xd9c7,0x0000,0x0000, +/* 0x6900 */ +0x0000,0x0000,0x0000,0x0000,0xd9ac,0xb4c8,0xd9d4,0xd9bc, +0xd9be,0x0000,0xd9cb,0xd9ca,0xd9aa,0xb4d3,0xb4d5,0xd9b2, +0xd9b9,0xd9c1,0xb4d4,0xd9b8,0xd9c4,0xd9d7,0x0000,0xd9cc, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xd9d8,0x0000,0x0000, +0x0000,0x0000,0xd9ae,0x0000,0x0000,0x0000,0x0000,0xddf2, +0xb7a6,0x0000,0xddf0,0xdddb,0xdde0,0xddd9,0x0000,0xddec, +0xddcb,0xddd2,0x0000,0xddea,0xddf4,0xdddc,0x0000,0xddcf, +0xdde2,0xdde7,0xddd3,0x0000,0xdde4,0xddd0,0x0000,0x0000, +0xddd7,0xddd8,0xb7a8,0xddeb,0xdde9,0x0000,0xddcc,0xddee, +0x0000,0xddef,0xddf1,0xb7ac,0xb7a4,0x0000,0xd5b8,0xddd4, +0xdde6,0xddd5,0xb7a1,0xb7b1,0xdded,0xb7af,0xb7ab,0xddca, +0xb7a3,0x0000,0xddcd,0xb7b0,0x0000,0xdddd,0xddc9,0x0000, +0xb7a9,0xdde1,0xddd1,0xb7aa,0xddda,0xb77e,0xb4d8,0xdde3, +0xd9bf,0xddce,0x0000,0x0000,0xdde8,0xb7a5,0xdde5,0xb7a2, +0xdddf,0xb7ad,0xddd6,0xddf3,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xb7a7,0xdec6,0x0000,0x0000,0xb7ae,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xe24a,0xe248,0x0000, +0xe25e,0xe246,0x0000,0xe258,0xb77d,0xba5f,0xe242,0xe25d, +0x0000,0xe247,0xe255,0xba64,0xba5d,0x0000,0xe25b,0x0000, +0xe240,0xe25a,0x0000,0xba6f,0xe251,0xe261,0xba6d,0xe249, +0xba5e,0xe24b,0xe259,0xba67,0xe244,0xba6b,0xba61,0xe24d, +0xe243,0xe1fc,0x0000,0xe257,0xba68,0xe260,0xe1fd,0xba65, +0x0000,0xe253,0x0000,0xba66,0xe245,0xe250,0xe24c,0xe24e, +0x0000,0xba60,0xe25f,0xba6e,0xe24f,0x0000,0xe262,0x0000, +0x0000,0xe1fe,0xe254,0xba63,0xba6c,0xba6a,0xe241,0xe256, +0xba69,0x0000,0x0000,0xba62,0xe252,0x0000,0x0000,0x0000, +0x0000,0xe25c,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xe5d5,0x0000,0xe5d1,0xe5cd,0xe5e1,0xe5de, +0xbccd,0x0000,0x0000,0xe5e5,0xe5d4,0xbcd8,0xe5db,0x0000, +0x0000,0xe5d0,0xe5da,0xbcd5,0xe5ee,0x0000,0xe5eb,0xe5dd, +0xe5ce,0x0000,0x0000,0xe5e2,0xe5e4,0xbcd1,0xe5d8,0xe5d3, +0xe5ca,0xbcce,0xbcd6,0x0000,0xe5e7,0xbcd7,0xe5cb,0xe5ed, +0xe5e0,0xe5e6,0xbcd4,0x0000,0x0000,0xe5e3,0x0000,0xe5ea, +0x0000,0xbcd9,0x0000,0xbcd3,0xe5dc,0xe5cf,0xe5ef,0xe5cc, +0xe5e8,0xbcd0,0x0000,0xe5d6,0x0000,0xe5d7,0xbccf,0xbccc, +0xe5d2,0xbcd2,0x0000,0xbccb,0x0000,0xe5e9,0xe5ec,0xe5d9, +0xe9ca,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xe9c2,0x0000,0xe9be,0xbef6,0x0000,0x0000, +0xbeeb,0xbef0,0xbeec,0xe9cc,0xe9d7,0xbeea,0xe9c4,0xe9cd, +0xe5df,0xe9ce,0x0000,0x0000,0xbef1,0x0000,0xe9dd,0xbef5, +0xbef8,0xe9c0,0x0000,0xbef4,0x0000,0xe9db,0xe9dc,0xe9d2, +0xe9d1,0xe9c9,0x0000,0x0000,0xe9d3,0xe9da,0xe9d9,0x0000, +0xbeef,0xbeed,0xe9cb,0xe9c8,0x0000,0xe9c5,0xe9d8,0xbef7, +0xe9d6,0xbef3,0xbef2,0x0000,0xe9d0,0x0000,0xe9bf,0xe9c1, +0xe9c3,0xe9d5,0xe9cf,0xbeee,0x0000,0xe9c6,0x0000,0xe9d4, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xe9c7,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xc0cf,0xed45, +0xc0c8,0xecf5,0x0000,0xed41,0xc0ca,0xed48,0x0000,0xecfc, +0x0000,0xecf7,0x0000,0x0000,0xed49,0xecf3,0xecfe,0x0000, +0xc0d1,0xed44,0xed4a,0xecfd,0xc0c9,0xed40,0xecf4,0xc0d0, +0x0000,0x0000,0xed47,0xecf9,0xc0cc,0x0000,0xecfb,0xecf8, +0xc0d2,0xecfa,0xc0cb,0xc0ce,0xed43,0xecf6,0xed46,0x0000, +0xed42,0x0000,0x0000,0x0000,0xc263,0xefe7,0xc268,0xc269, +0x0000,0x0000,0x0000,0xc262,0xefe6,0x0000,0xefe3,0xefe4, +0xc266,0xefde,0xefe2,0xc265,0x0000,0xefdf,0x0000,0x0000, +0x0000,0x0000,0xc267,0xc264,0x0000,0xefdd,0xefe1,0xefe5, +0x0000,0x0000,0x0000,0xf251,0xf24e,0xf257,0x0000,0xf256, +0xf254,0xf24f,0x0000,0xc372,0x0000,0x0000,0x0000,0x0000, +0x0000,0xf250,0xc371,0xc0cd,0xf253,0xc370,0xf258,0xf252, +0xf24d,0xefe0,0x0000,0x0000,0x0000,0xc36f,0x0000,0xf24c, +0xf456,0x0000,0xf455,0xf255,0xc468,0x0000,0xf459,0xf45a, +0xf454,0xf458,0x0000,0xf453,0x0000,0x0000,0x0000,0x0000, +0xf5d1,0xf457,0xc4e7,0xc4e5,0xf5cf,0x0000,0x0000,0x0000, +0xf5d2,0x0000,0xf5ce,0xf5d0,0xc4e6,0x0000,0x0000,0x0000, +0xf6e5,0xf6e6,0xc576,0xf6e4,0x0000,0x0000,0x0000,0xf7e2, +0xc5cf,0xf7e0,0xf7e1,0xf8ac,0x0000,0x0000,0xc656,0xf8f3, +0xf8f1,0xf8f2,0xf8f4,0x0000,0x0000,0x0000,0xf9bb,0x0000, +0xa4ed,0xa6b8,0x0000,0xaa59,0x0000,0xcce9,0x0000,0x0000, +0xcf64,0x0000,0x0000,0x0000,0xd1f5,0xd1f7,0x0000,0xd1f6, +0x0000,0xd1f8,0xb1fd,0xd5d7,0xd1f9,0x0000,0xd5d6,0xd5d8, +0xd5d9,0xd9da,0xb4db,0xd9db,0xd9dd,0xb4dc,0xb4da,0xd9dc, +0x0000,0xddfa,0xddf8,0xddf7,0x0000,0xddf6,0xddf5,0xb7b2, +0xddf9,0xba70,0xe263,0xe265,0xba71,0xe264,0xbcdb,0x0000, +0xbcda,0xe5f0,0x0000,0x0000,0xe9df,0xe9de,0xe9e0,0x0000, +0x0000,0xbef9,0x0000,0xed4b,0xc0d3,0x0000,0xefe8,0xc26a, +0xf259,0xc577,0xa4ee,0xa5bf,0xa6b9,0xa842,0xaa5a,0xaa5b, +0x0000,0x0000,0xac6e,0x0000,0x0000,0xd1fa,0x0000,0x0000, +0x0000,0x0000,0xb7b3,0x0000,0x0000,0x0000,0xe6d1,0xbefa, +0xc26b,0xa4ef,0x0000,0xa6ba,0x0000,0x0000,0xcceb,0xaa5c, +0xccea,0x0000,0xcf65,0xac6f,0xcf66,0x0000,0xac70,0x0000, +0xd1fc,0xaeee,0xaeed,0x0000,0xd5de,0xd5dc,0xd5dd,0xd5db, +0x0000,0xd5da,0x0000,0x0000,0xd9de,0xd9e1,0xb4de,0xd9df, +0xb4dd,0xd9e0,0x0000,0xddfb,0x0000,0x0000,0xe266,0xe267, +0xe268,0x0000,0xe5f3,0xe5f2,0xbcdc,0xe5f1,0xe5f4,0xe9e1, +0x0000,0x0000,0xe9e2,0xe9e3,0x0000,0xed4c,0xc0d4,0xc26c, +0xf25a,0x0000,0xc4e8,0xc95f,0x0000,0xac71,0xcf67,0xaeef, +0x0000,0x0000,0xb1fe,0x0000,0xb4df,0xd9e2,0x0000,0xb7b5, +0xb7b4,0x0000,0x0000,0xe269,0xe26a,0xbcdd,0xbcde,0xe9e5, +0xe9e4,0xefe9,0xf7e3,0xa4f0,0xc960,0xa5c0,0x0000,0xa843, +0xcb48,0x0000,0xac72,0xb7b6,0xa4f1,0x0000,0xcf68,0xac73, +0xcf69,0x0000,0xc0d5,0xa4f2,0x0000,0x0000,0xccec,0x0000, +0xcf6a,0x0000,0xd242,0xd241,0xd1fe,0x0000,0xd1fd,0xd243, +0xd240,0x0000,0x0000,0xb240,0xb241,0x0000,0x0000,0xb4e0, +0xd9e3,0x0000,0xd9e4,0xd9e5,0x0000,0x0000,0x0000,0xde41, +0xde42,0xde40,0x0000,0xddfd,0xddfe,0xb7b7,0xe26b,0xe5f7, +0xe5f6,0xe5f5,0xe5f8,0xe9e7,0xe9e6,0xbefb,0xe9e8,0x0000, +0xc0d6,0xed4d,0x0000,0xefea,0xf25b,0xf6e7,0x0000,0xa4f3, +0xa5c2,0xa5c1,0x0000,0xaa5d,0xc961,0xc97e,0xa6bb,0x0000, +0xc9f7,0xcb49,0xcb4a,0xaa5e,0x0000,0xcced,0x0000,0xac74, +0xcf6b,0xcf6c,0x0000,0xaef0,0xaef4,0xd244,0xaef3,0xaef1, +0xaef2,0x0000,0xd5df,0xb242,0xb4e3,0x0000,0xb4e1,0xb4e2, +0xd9e6,0x0000,0x0000,0xba72,0xa4f4,0x0000,0xc9a1,0x0000, +0xa5c3,0x0000,0x0000,0xc9a4,0x0000,0x0000,0xa5c6,0xc9a3, +0xa5c5,0xa5c4,0xa844,0xc9a2,0x0000,0x0000,0xc9f8,0x0000, +0x0000,0x0000,0xc9fc,0xc9fe,0xca40,0xa6c5,0xa6c6,0xc9fb, +0xa6c1,0x0000,0xc9f9,0x0000,0xc9fd,0xa6c2,0x0000,0xa6bd, +0x0000,0xa6be,0x0000,0xa6c4,0xc9fa,0xa6bc,0xa845,0xa6bf, +0xa6c0,0xa6c3,0x0000,0x0000,0x0000,0xcb5b,0xcb59,0xcb4c, +0xa851,0xcb53,0xa84c,0xcb4d,0x0000,0xcb55,0x0000,0xcb52, +0xa84f,0xcb51,0xa856,0xcb5a,0xa858,0x0000,0xa85a,0x0000, +0xcb4b,0x0000,0xa84d,0xcb5c,0x0000,0xa854,0xa857,0x0000, +0xcd45,0xa847,0xa85e,0xa855,0xcb4e,0xa84a,0xa859,0xcb56, +0xa848,0xa849,0xcd43,0xcb4f,0xa850,0xa85b,0xcb5d,0xcb50, +0xa84e,0x0000,0xa853,0xccee,0xa85c,0xcb57,0xa852,0x0000, +0xa85d,0xa846,0xcb54,0xa84b,0xcb58,0xcd44,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xaa6a,0xaa7a,0xccf5,0xaa71,0x0000, +0xcd4b,0xaa62,0x0000,0xaa65,0xcd42,0x0000,0xccf3,0xccf7, +0xaa6d,0xaa6f,0xccfa,0xaa76,0xaa68,0xaa66,0xaa67,0xaa75, +0xcd47,0xaa70,0xccf9,0xccfb,0xaa6e,0xaa73,0xccfc,0xcd4a, +0x0000,0xac75,0xaa79,0x0000,0xaa63,0xcd49,0x0000,0xcd4d, +0xccf8,0xcd4f,0xcd40,0xaa6c,0xccf4,0xaa6b,0xaa7d,0xaa72, +0x0000,0xccf2,0xcf75,0xaa78,0xaa7c,0xcd41,0xcd46,0x0000, +0xaa7e,0xaa77,0xaa69,0xaa5f,0x0000,0xaa64,0x0000,0xccf6, +0xaa60,0xcd4e,0x0000,0xccf0,0xccef,0xccfd,0xccf1,0xaa7b, +0xaef5,0xaa74,0xccfe,0xaa61,0x0000,0xaca6,0x0000,0x0000, +0x0000,0xcd4c,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xcf7c,0xcfa1,0x0000,0xcfa4,0xcf77,0x0000,0x0000,0xcfa7, +0xcfaa,0xcfac,0xcf74,0xac76,0xac7b,0xd249,0xacad,0xcfa5, +0xcfad,0xcf7b,0xcf73,0x0000,0x0000,0x0000,0xd264,0xac7e, +0xcfa2,0xcf78,0xcf7a,0xaca5,0x0000,0xcf7d,0xac7d,0xcf70, +0xcfa8,0x0000,0xcfab,0x0000,0x0000,0xac7a,0x0000,0xaca8, +0xcf6d,0xacaa,0xac78,0xacae,0xcfa9,0xcf6f,0xacab,0xd25e, +0xcd48,0xac7c,0xac77,0xcf76,0xcf6e,0xacac,0xaca4,0xcfa3, +0xaca9,0xaca7,0xcf79,0xaca1,0xcf71,0xaca2,0xaca3,0xcf72, +0xcfa6,0xac79,0xcf7e,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xd24c,0xaefd,0xaf43,0x0000,0x0000,0x0000,0xd255,0xd25b, +0xd257,0xd24a,0xd24d,0xd246,0xd247,0xaf4a,0xaefa,0xd256, +0xd25f,0xaf45,0xaef6,0x0000,0xaf40,0xd24e,0xaf42,0xd24f, +0xd259,0x0000,0x0000,0x0000,0xaf44,0xd268,0xd248,0xaefc, +0xaefb,0xaf48,0xd245,0xd266,0xd25a,0xd267,0xd261,0xd253, +0xd262,0x0000,0xd25c,0xd265,0xd263,0xaf49,0xd254,0xaef9, +0xaef8,0xaf41,0xaf47,0xd260,0xaf46,0xd251,0xb243,0x0000, +0xd269,0xd250,0xd24b,0xaefe,0xaf4b,0xaef7,0x0000,0xd258, +0xd25d,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xb265,0xd5e1,0xd5e5,0x0000,0xb252,0xb250, +0x0000,0x0000,0xb247,0xd5e3,0xd5e2,0xb25b,0x0000,0xd5e8, +0xb255,0x0000,0xd5fa,0xd647,0xb244,0xd5f7,0xd5f0,0xb267, +0xd5e0,0x0000,0xd5fc,0x0000,0xb264,0xb258,0xb263,0xb24e, +0xd5ec,0xd5fe,0xd5f6,0xb24f,0xb249,0xd645,0x0000,0xd5fd, +0xd640,0xb251,0xb259,0xd642,0xd5ea,0xd5fb,0xd5ef,0xd644, +0xb25e,0xb246,0xb25c,0xd5f4,0xd5f2,0xd5f3,0xb253,0xd5ee, +0xd5ed,0xb248,0xd5e7,0xd646,0xb24a,0xd5f1,0xb268,0x0000, +0xb262,0xd5e6,0xb25f,0xb25d,0xb266,0xd5f8,0xb261,0xd252, +0xd5f9,0xb260,0xd641,0xb245,0xd5f5,0xb257,0xd5e9,0xb256, +0x0000,0xb254,0xb24c,0xb24b,0xd9e7,0xd643,0x0000,0x0000, +0xd5eb,0x0000,0x0000,0xd9fc,0x0000,0xb24d,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xb541,0xb25a,0xb4ee,0xd9f6,0xb4fc,0x0000,0xd9ea, +0xb4eb,0xb4e7,0xda49,0xb4ed,0xb4f1,0xb4ec,0xb4f5,0xda4d, +0xda44,0x0000,0x0000,0xd9f1,0xb4fa,0xb4f4,0xd9fd,0xb4e4, +0xda4a,0xda43,0xb4e8,0xd9f7,0xb4f7,0xda55,0xda56,0x0000, +0xb4e5,0xda48,0xb4f9,0xd9fb,0xd9ed,0xd9ee,0xb4fd,0xd9f2, +0xd9f9,0xd9f3,0x0000,0xb4fb,0xb544,0xd9ef,0xd9e8,0xd9e9, +0x0000,0xd9eb,0xb4ea,0xd9f8,0x0000,0xb4f8,0xb542,0x0000, +0x0000,0xd9fa,0xda53,0xda4b,0xb4e6,0xda51,0xb4f2,0x0000, +0xb4f0,0x0000,0xda57,0xb4ef,0xda41,0xd9f4,0xd9fe,0xb547, +0xda45,0xda42,0xd9f0,0xb543,0xda4f,0xda4c,0xda54,0xb4e9, +0xda40,0xb546,0x0000,0xda47,0x0000,0x0000,0xb4f3,0xb4f6, +0x0000,0xda46,0xb545,0xd9f5,0xd5e4,0x0000,0x0000,0xda50, +0xda4e,0xda52,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xd9ec,0xb540,0x0000,0x0000,0x0000,0xde61,0xde60,0xde46, +0xb7bd,0x0000,0xde5f,0xde49,0xde4a,0x0000,0xb7c7,0xde68, +0xb7c2,0xde5e,0x0000,0xde43,0xb7c8,0xb7be,0xde52,0xde48, +0xde4b,0xde63,0xb7b8,0xde6a,0xde62,0xb7c1,0xde57,0xb7cc, +0x0000,0x0000,0xb7cb,0xb7c5,0x0000,0x0000,0xde69,0xb7b9, +0xde55,0xde4c,0xde59,0xde65,0xb7cd,0x0000,0xb7bb,0xde54, +0x0000,0xde4d,0xb7c4,0x0000,0xb7c3,0xde50,0xde5a,0xde64, +0xde47,0xde51,0xb7bc,0xde5b,0xb7c9,0xb7c0,0xde4e,0xb7bf, +0xde45,0xde53,0xde67,0xb4fe,0xbab0,0xde56,0xe26c,0xde58, +0xde66,0xb7c6,0xde4f,0xb7ba,0xb7ca,0xbcf0,0xde44,0x0000, +0xde5d,0x0000,0x0000,0x0000,0xde5c,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xe2aa,0xbaad,0xe27d,0xe2a4,0xbaa2, +0x0000,0xe26e,0xbaaf,0x0000,0xba77,0xe26d,0xe2b0,0xbab1, +0xe271,0xe2a3,0x0000,0xe273,0xe2b3,0xe2af,0xba75,0xbaa1, +0xe653,0xbaae,0xba7d,0xe26f,0x0000,0xe2ae,0xbaa3,0xe2ab, +0xe2b8,0xe275,0xe27e,0x0000,0x0000,0xe2b6,0xe2ac,0xba7c, +0x0000,0x0000,0xe27c,0xba76,0xba74,0xbaa8,0x0000,0x0000, +0xe27a,0xe277,0xe278,0x0000,0xe2b2,0x0000,0xe2b7,0xe2b5, +0xba7a,0xe2b9,0xba7e,0xbaa7,0x0000,0xe270,0xe5fa,0xe279, +0x0000,0xba78,0xbaac,0xbaa9,0xba7b,0xe2a5,0xe274,0xbaaa, +0xe2a7,0xbaa4,0xbaa6,0xba73,0x0000,0xe2a9,0xe2a1,0xe272, +0xbaa5,0xe2b1,0xe2b4,0xe27b,0xe2a8,0x0000,0xba79,0xbcdf, +0xe2a6,0xe5f9,0x0000,0xe2ad,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xe276,0xe644, +0xe64e,0xbce2,0xe64d,0xe659,0xbce4,0xe64b,0x0000,0xe64f, +0xbcef,0x0000,0xe646,0xbce7,0x0000,0xe652,0xe9f0,0xbcf3, +0xbcf2,0xe654,0xe643,0xe65e,0xbced,0x0000,0xbce3,0xe657, +0x0000,0xe65b,0xe660,0xe655,0xe649,0xbce6,0xbce9,0xbcf1, +0xbcec,0x0000,0xe64c,0xe2a2,0x0000,0x0000,0xe648,0xe65f, +0xbce8,0x0000,0xbceb,0xe661,0xbce0,0xe656,0xe5fb,0xe65c, +0xc0df,0x0000,0xe64a,0x0000,0xbce1,0xe645,0xbce5,0xe5fc, +0xbaab,0xe641,0x0000,0xe65a,0xe642,0xe640,0xbcea,0x0000, +0xe658,0x0000,0xe5fe,0xe651,0xe650,0xe65d,0xe647,0xbcee, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xe9f3,0x0000, +0xbf49,0xbefe,0xea40,0xe9eb,0xbf41,0xe9f7,0xbf48,0xbf43, +0xe9f5,0xed4f,0xe9fb,0xea42,0xe9fa,0xe9e9,0xe9f8,0xea44, +0xea46,0xbefd,0xea45,0xbf44,0xbf4a,0x0000,0xbf47,0x0000, +0xe9fe,0xbf46,0xe9f9,0x0000,0xe9ed,0xe9f2,0x0000,0xe9fd, +0xbf45,0xbf42,0xbefc,0xbf40,0xe9f1,0x0000,0xe5fd,0xe9ec, +0xe9ef,0xea41,0xe9f4,0xe9ea,0xed4e,0xea43,0xe9ee,0xe9fc, +0x0000,0x0000,0x0000,0x0000,0xed51,0xc0e3,0x0000,0x0000, +0xc0d7,0x0000,0x0000,0xc0db,0xed53,0xed59,0xed57,0xc0d9, +0xc0da,0xc0e1,0xed5a,0xed52,0xc0dc,0x0000,0xed56,0xed55, +0xed5b,0xc0e2,0x0000,0xc0dd,0xc0e0,0xed54,0xc0e4,0xc0de, +0xc0e5,0xc0d8,0xed58,0x0000,0xed50,0x0000,0x0000,0xeff7, +0x0000,0x0000,0xc271,0xeff4,0xeff6,0x0000,0xc26f,0xeff2, +0xeff3,0xefee,0x0000,0x0000,0xe9f6,0xefef,0xc270,0xefeb, +0x0000,0xc26d,0xeff8,0xc26e,0xefec,0xefed,0xeff1,0xc273, +0x0000,0xc272,0x0000,0x0000,0xeff0,0xc378,0xf25f,0xf265, +0xc379,0xf25c,0xc376,0xc373,0xf267,0xc377,0x0000,0xc374, +0xf25e,0xf261,0xf262,0xf263,0xf266,0x0000,0xeff5,0xf25d, +0xc375,0xf264,0xf268,0xf260,0x0000,0x0000,0x0000,0xf45d, +0xc46a,0xf460,0xc46b,0xf468,0xf45f,0xf45c,0x0000,0xf45e, +0xf462,0xf465,0xf464,0xf467,0xf45b,0x0000,0xc469,0xf463, +0xf466,0xf469,0xf461,0xf5d3,0xf5d4,0xf5d8,0xf5d9,0x0000, +0xf5d6,0xf5d7,0xf5d5,0x0000,0xc4e9,0x0000,0x0000,0x0000, +0x0000,0xc578,0xf6eb,0x0000,0x0000,0xf6e8,0xf6e9,0xf6ea, +0xc579,0x0000,0xf7e5,0xf7e4,0x0000,0xf8af,0xc5f4,0xf8ad, +0xf8b0,0xf8ae,0xf8f5,0xc657,0xc665,0xf9a3,0xf96c,0x0000, +0xf9a2,0xf9d0,0xf9d1,0xa4f5,0x0000,0x0000,0x0000,0x0000, +0xa6c7,0xca41,0x0000,0x0000,0xcb5e,0x0000,0xa85f,0x0000, +0xa862,0x0000,0xcb5f,0x0000,0xa860,0xa861,0x0000,0x0000, +0x0000,0x0000,0xcd58,0xcd5a,0xcd55,0xcd52,0xcd54,0x0000, +0x0000,0x0000,0xaaa4,0x0000,0x0000,0x0000,0xaaa2,0x0000, +0x0000,0xcd56,0xaaa3,0xcd53,0xcd50,0xaaa1,0xcd57,0x0000, +0xcd51,0xaaa5,0xcd59,0x0000,0x0000,0x0000,0x0000,0xcfaf, +0x0000,0xcfb3,0x0000,0x0000,0xacb7,0x0000,0x0000,0x0000, +0x0000,0xcfb6,0x0000,0xacaf,0xacb2,0xacb4,0xacb6,0xacb3, +0xcfb2,0xcfb1,0x0000,0xacb1,0xcfb4,0xcfb5,0x0000,0xcfae, +0xacb5,0x0000,0xacb0,0x0000,0x0000,0x0000,0xcfb0,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xd277,0xd278,0xd279, +0xaf50,0x0000,0xaf4c,0xd26e,0x0000,0xd276,0xd27b,0xaf51, +0x0000,0xd26c,0xd272,0xd26b,0xd275,0x0000,0x0000,0xd271, +0xaf4d,0xaf4f,0xd27a,0x0000,0xd26a,0xd26d,0xd273,0x0000, +0xd274,0xd27c,0xd270,0x0000,0xaf4e,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xb26d, +0xd64e,0x0000,0x0000,0xd650,0xd64c,0x0000,0xd658,0xd64a, +0xd657,0xb269,0xd648,0xda5b,0xd652,0xb26c,0x0000,0xd653, +0xd656,0x0000,0xd65a,0x0000,0xd64f,0x0000,0xd654,0x0000, +0x0000,0xb26a,0xb26b,0xd659,0xd64d,0xd649,0xd65b,0x0000, +0xd651,0x0000,0x0000,0xd655,0x0000,0x0000,0x0000,0xd64b, +0x0000,0xb548,0xb549,0xda65,0xb54f,0x0000,0xda59,0xda62, +0xda58,0xb54c,0xda60,0xda5e,0x0000,0xda5f,0xb54a,0x0000, +0xda63,0x0000,0x0000,0x0000,0x0000,0x0000,0xda5c,0xda5a, +0xb54b,0xda5d,0xda61,0x0000,0x0000,0x0000,0xb54d,0x0000, +0x0000,0x0000,0xda64,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xde70,0xde77,0xde79,0xdea1,0x0000,0xb7da,0xde6b, +0x0000,0xb7d2,0x0000,0xde7a,0xb7d7,0xdea2,0xb7ce,0x0000, +0xde7d,0x0000,0xde6d,0xde7e,0xde6c,0x0000,0xb7dc,0x0000, +0xde78,0xb7cf,0xdea3,0x0000,0xb7d4,0xde71,0xb7d9,0xde7c, +0xde6f,0xde76,0xde72,0xde6e,0xb7d1,0xb7d8,0xb7d6,0xb7d3, +0xb7db,0xb7d0,0xde75,0x0000,0xb7d5,0x0000,0xb54e,0x0000, +0xde7b,0x0000,0xde73,0x0000,0x0000,0x0000,0x0000,0x0000, +0xde74,0x0000,0x0000,0xe2c1,0x0000,0xbab4,0x0000,0x0000, +0xe2bd,0xe2c3,0xe2bf,0x0000,0xbab6,0xe2be,0xe2c2,0xe2ba, +0x0000,0xe2bc,0xbab5,0x0000,0x0000,0x0000,0x0000,0xe2c0, +0xe2bb,0x0000,0xbab7,0x0000,0xbab2,0x0000,0x0000,0xe2c4, +0x0000,0xbab3,0xe667,0xe664,0xe670,0xe66a,0xe66c,0xbcf4, +0xe666,0xe66e,0x0000,0x0000,0xe66d,0xe66b,0x0000,0xe671, +0xbcf7,0xe668,0xe66f,0x0000,0xbcf5,0x0000,0x0000,0xe663, +0xe665,0xbcf6,0xe662,0xe672,0x0000,0xe669,0x0000,0x0000, +0xea4a,0xbf51,0x0000,0x0000,0xea55,0xea53,0xbf4b,0xea49, +0xea4c,0xea4d,0xea48,0xbf55,0xbf56,0xea47,0xea56,0xea51, +0xbf4f,0xbf4c,0xea50,0xea4e,0x0000,0x0000,0xbf52,0xea52, +0xbf4d,0x0000,0xbf4e,0x0000,0xea4f,0xbf50,0xea4b,0x0000, +0xea54,0xbf53,0xea57,0xea58,0xbf54,0x0000,0x0000,0xc0e7, +0xc0ee,0xed5c,0xed62,0x0000,0xed60,0xc0ea,0xc0e9,0xc0e6, +0xed5e,0x0000,0x0000,0x0000,0xc0ec,0xc0eb,0xc0e8,0x0000, +0xed61,0xed5d,0xed5f,0x0000,0xc0ed,0x0000,0x0000,0x0000, +0xc277,0xeffb,0x0000,0xc274,0xc275,0xeffd,0xc276,0xeffa, +/* 0x7200 */ +0x0000,0xeff9,0xf26c,0xeffc,0x0000,0xf26d,0xc37a,0xf26b, +0x0000,0x0000,0xf26a,0x0000,0xf269,0xc37b,0x0000,0x0000, +0xc46c,0x0000,0x0000,0xf46a,0xf46b,0x0000,0x0000,0x0000, +0x0000,0xf5dc,0xf5db,0xc4ea,0x0000,0xf5da,0xf6ec,0xf6ed, +0x0000,0x0000,0xf7e6,0xf8b1,0x0000,0x0000,0xf8f6,0xf9bc, +0xc679,0xf9c6,0xa4f6,0x0000,0xaaa6,0xaaa7,0x0000,0x0000, +0xacb8,0x0000,0x0000,0x0000,0x0000,0xc0ef,0xa4f7,0x0000, +0xaaa8,0xaf52,0xb7dd,0xa4f8,0x0000,0xb26e,0xbab8,0xc962, +0x0000,0xcfb7,0xd27d,0x0000,0xe2c5,0x0000,0xc0f0,0xa4f9, +0xaaa9,0xcfb8,0xcfb9,0xda66,0xb550,0x0000,0x0000,0xdea4, +0x0000,0x0000,0xb7de,0xe2c6,0x0000,0x0000,0xbcf8,0x0000, +0xc37c,0xa4fa,0xda67,0xa4fb,0x0000,0xa6c9,0xca42,0xa6c8, +0xa865,0xa864,0xa863,0xcb60,0x0000,0x0000,0x0000,0xaaaa, +0x0000,0xaaab,0xcd5b,0x0000,0xcfba,0x0000,0xcfbd,0xacba, +0xcfbb,0x0000,0xacb9,0xcfbc,0xacbb,0x0000,0xd2a2,0xd2a1, +0xd27e,0xaf53,0x0000,0xd65d,0xd65e,0xb26f,0xd65c,0xd65f, +0xb552,0xb270,0x0000,0x0000,0xb551,0xda6b,0xda6a,0x0000, +0xda68,0xda69,0x0000,0xda6c,0xdea6,0xdea5,0xdea9,0x0000, +0xdea8,0xdea7,0xbab9,0xe2c9,0x0000,0xe2c8,0xbaba,0xe2c7, +0xe673,0x0000,0xe674,0xbcf9,0x0000,0xea59,0xea5a,0x0000, +0x0000,0xf272,0xc37d,0xf271,0xf270,0xf26e,0xf26f,0xc4eb, +0xf46c,0xf6ee,0xf8f7,0x0000,0xa4fc,0x0000,0xc9a5,0xa5c7, +0xc9a6,0x0000,0x0000,0x0000,0xca43,0xca44,0x0000,0x0000, +0x0000,0x0000,0xcb66,0x0000,0x0000,0xcb62,0x0000,0xcb61, +0xaaac,0xcb65,0xa867,0xcb63,0xa866,0xcb67,0xcb64,0x0000, +0x0000,0xcd5f,0xcfbe,0xcd5d,0xcd64,0x0000,0xaaad,0x0000, +0xaab0,0xcd65,0xcd61,0x0000,0xcd62,0x0000,0xcd5c,0xaaaf, +0xcd5e,0xaaae,0xcd63,0x0000,0xcd60,0x0000,0x0000,0xcfc2, +0xacbd,0xacbe,0x0000,0xcfc5,0xcfbf,0x0000,0xcfc4,0x0000, +0xcfc0,0xacbc,0xcfc3,0xcfc1,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xd2a8,0xd2a5,0x0000,0xd2a7,0xaf58, +0xaf57,0xaf55,0xd2a4,0xd2a9,0xaf54,0xaf56,0xd2a6,0xd667, +0xd2a3,0xd2aa,0x0000,0x0000,0x0000,0x0000,0x0000,0xd662, +0xd666,0x0000,0xd665,0xda6e,0xda79,0x0000,0x0000,0xd668, +0x0000,0xd663,0xda6d,0xb274,0x0000,0x0000,0xb273,0xd661, +0xd664,0xb275,0x0000,0xb272,0xb271,0xd660,0xd669,0x0000, +0x0000,0x0000,0xda70,0xda77,0x0000,0xb554,0xda76,0xda73, +0x0000,0xb556,0x0000,0x0000,0x0000,0xda75,0x0000,0x0000, +0xda6f,0xda71,0xda74,0xda72,0xb555,0xda78,0xb553,0xb7df, +0x0000,0x0000,0xdead,0xdeac,0xdeaa,0x0000,0xb7e2,0xb7e1, +0xdeae,0x0000,0xdeab,0xe2ca,0xbabb,0xb7e0,0x0000,0x0000, +0x0000,0xdeb0,0xdeaf,0x0000,0xe2cd,0xe2cb,0xbcfa,0x0000, +0xbabc,0xe2cc,0xe676,0x0000,0x0000,0x0000,0x0000,0xbcfb, +0xe675,0xe67e,0xe67d,0xe67b,0x0000,0xe67a,0xe677,0xe678, +0xe679,0xe67c,0xe6a1,0x0000,0x0000,0xea5f,0xea5c,0xea5d, +0xbf57,0xea5b,0xea61,0xea60,0xea5e,0x0000,0xed64,0xed65, +0xc0f1,0x0000,0xc0f2,0xed63,0x0000,0xc279,0xeffe,0xc278, +0xc37e,0x0000,0xc3a1,0xc46d,0xf46e,0xf46d,0xf5dd,0xf6ef, +0xc57a,0xf7e8,0xf7e7,0xf7e9,0xa5c8,0xcfc6,0xaf59,0xb276, +0xd66a,0xa5c9,0xc9a7,0xa4fd,0x0000,0x0000,0xca45,0x0000, +0x0000,0x0000,0xcb6c,0xcb6a,0xcb6b,0xcb68,0xa868,0xcb69, +0x0000,0x0000,0x0000,0x0000,0x0000,0xcd6d,0x0000,0xaab3, +0xcd6b,0xcd67,0xcd6a,0x0000,0xcd66,0xaab5,0xcd69,0x0000, +0xaab2,0xaab1,0x0000,0xaab4,0xcd6c,0xcd68,0x0000,0x0000, +0x0000,0x0000,0xacc2,0xacc5,0xcfce,0xcfcd,0xcfcc,0xacbf, +0xcfd5,0xcfcb,0x0000,0xacc1,0xd2af,0x0000,0xcfd2,0xcfd0, +0xacc4,0x0000,0xcfc8,0xcfd3,0x0000,0xcfca,0xcfd4,0xcfd1, +0xcfc9,0x0000,0xacc0,0xcfd6,0xcfc7,0xacc3,0x0000,0x0000, +0x0000,0x0000,0xd2b4,0xd2ab,0xd2b6,0x0000,0xd2ae,0xd2b9, +0xd2ba,0xd2ac,0xd2b8,0xd2b5,0xd2b3,0xd2b7,0xaf5f,0x0000, +0xaf5d,0x0000,0x0000,0xd2b1,0x0000,0xd2ad,0x0000,0xd2b0, +0xd2bb,0xd2b2,0xaf5e,0xcfcf,0x0000,0xaf5a,0xaf5c,0x0000, +0x0000,0x0000,0x0000,0x0000,0xd678,0xd66d,0xd66b,0x0000, +0xd66c,0x0000,0xd673,0x0000,0xd674,0xd670,0xb27b,0xd675, +0xd672,0xd66f,0x0000,0xb279,0xd66e,0xb277,0xb27a,0xd671, +0xd679,0xaf5b,0xb278,0xd677,0xd676,0xb27c,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xda7e,0x0000, +0x0000,0x0000,0xdaa1,0xb560,0x0000,0xdaa7,0x0000,0x0000, +0xdaa9,0xdaa2,0xb55a,0xdaa6,0xdaa5,0xb55b,0xb561,0x0000, +0xb562,0xdaa8,0xb558,0xda7d,0xda7b,0xdaa3,0xda7a,0xb55f, +0xda7c,0xdaa4,0xdaaa,0xb559,0xb55e,0xb55c,0xb55d,0x0000, +0x0000,0x0000,0xb557,0x0000,0x0000,0x0000,0x0000,0xb7e9, +0xdeb7,0xb7e8,0xdebb,0x0000,0xdeb1,0x0000,0xdebc,0x0000, +0x0000,0x0000,0xdeb2,0xdeb3,0x0000,0xdebd,0xdeba,0xdeb8, +0xdeb9,0xdeb5,0xdeb4,0x0000,0xdebe,0xb7e5,0x0000,0xdeb6, +0x0000,0xb7ea,0xb7e4,0xb7eb,0xb7ec,0x0000,0xb7e7,0xb7e6, +0x0000,0x0000,0xe2ce,0xbabe,0xbabd,0x0000,0x0000,0xe2d3, +0x0000,0xbcfc,0xbabf,0x0000,0x0000,0xbac1,0xe2d4,0xb7e3, +0xbac0,0xe2d0,0xe2d2,0xe2cf,0x0000,0xe2d1,0x0000,0x0000, +0x0000,0xe6ab,0x0000,0x0000,0xe6aa,0xe6a7,0xbd40,0xea62, +0xbd41,0xe6a6,0x0000,0xbcfe,0x0000,0xe6a8,0xe6a5,0xe6a2, +0xe6a9,0xe6a3,0xe6a4,0xbcfd,0x0000,0x0000,0x0000,0x0000, +0xed69,0x0000,0xea66,0x0000,0xea65,0xea67,0x0000,0xed66, +0xbf5a,0x0000,0xea63,0x0000,0xbf58,0x0000,0xbf5c,0xbf5b, +0xea64,0xea68,0x0000,0xbf59,0x0000,0xed6d,0xc0f5,0xc27a, +0xc0f6,0xc0f3,0xed6a,0xed68,0x0000,0xed6b,0x0000,0xed6e, +0xc0f4,0xed6c,0xed67,0x0000,0x0000,0xf042,0xf045,0xf275, +0xf040,0x0000,0xf46f,0xf046,0x0000,0xc3a2,0xf044,0xc27b, +0xf041,0xf043,0xf047,0xf276,0x0000,0xf274,0x0000,0x0000, +0x0000,0x0000,0xc3a3,0xf273,0x0000,0x0000,0x0000,0xc46e, +0x0000,0x0000,0x0000,0x0000,0xc4ed,0xf6f1,0xc4ec,0xf6f3, +0xf6f0,0xf6f2,0xc5d0,0xf8b2,0xa5ca,0xcd6e,0xd2bc,0xd2bd, +0xb27d,0xdebf,0xbf5d,0xc3a4,0xc57b,0xf8b3,0xa5cb,0x0000, +0xcd6f,0xa260,0x0000,0x0000,0xcfd7,0x0000,0xcfd8,0x0000, +0x0000,0x0000,0x0000,0x0000,0xd2be,0xd2bf,0xb27e,0xb2a1, +0x0000,0x0000,0x0000,0xdaab,0x0000,0xdec2,0xdec1,0xdec0, +0xe2d5,0x0000,0xe2d6,0xe2d7,0xbac2,0x0000,0x0000,0xe6ad, +0xe6ac,0x0000,0x0000,0xea69,0xbf5e,0xbf5f,0x0000,0xed72, +0xed6f,0xed70,0xed71,0xf049,0xf048,0xc27c,0xf277,0xf5de, +0xa5cc,0x0000,0xacc6,0x0000,0xb2a2,0xdec3,0x0000,0xa5cd, +0x0000,0xd2c0,0xb2a3,0x0000,0x0000,0xb563,0xb564,0x0000, +0xa5ce,0xa5cf,0xca46,0xa86a,0xa869,0xacc7,0xcfd9,0xdaac, +0xa5d0,0xa5d1,0xa5d2,0xa5d3,0x0000,0x0000,0x0000,0xa86b, +0xa86c,0xcb6e,0xcb6d,0x0000,0x0000,0xaab6,0xcd72,0xcd70, +0xcd71,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xcfda, +0xcfdb,0x0000,0x0000,0xaccb,0xacc9,0x0000,0xacca,0xacc8, +0x0000,0x0000,0x0000,0x0000,0xaf60,0x0000,0x0000,0x0000, +0x0000,0xaf64,0xaf63,0xd2c1,0xaf62,0xaf61,0x0000,0xd2c2, +0x0000,0x0000,0xb2a6,0xd67b,0xd67a,0xb2a4,0xb2a5,0x0000, +0x0000,0x0000,0xb566,0xb565,0xdaae,0x0000,0x0000,0xdaad, +0xb2a7,0x0000,0x0000,0x0000,0x0000,0x0000,0xb7ed,0xdec5, +0xb7ee,0xdec4,0x0000,0x0000,0x0000,0xe2d8,0xe6ae,0xbd42, +0xea6a,0x0000,0x0000,0x0000,0xed73,0x0000,0xc3a6,0xc3a5, +0x0000,0x0000,0xc57c,0xa5d4,0xcd73,0x0000,0x0000,0xb2a8, +0xe2d9,0xbac3,0x0000,0x0000,0xcb6f,0xcb70,0x0000,0x0000, +0xcd74,0xaab8,0xaab9,0x0000,0x0000,0xaab7,0x0000,0x0000, +0x0000,0x0000,0xaccf,0xacd0,0xaccd,0xacce,0x0000,0xcfdc, +0x0000,0x0000,0xcfdd,0xaccc,0x0000,0x0000,0x0000,0x0000, +0xd2c3,0x0000,0xaf68,0xaf69,0x0000,0xb2ab,0xd2c9,0x0000, +0xaf6e,0xaf6c,0xd2ca,0xd2c5,0xaf6b,0xaf6a,0xaf65,0xd2c8, +0xd2c7,0xd2c4,0xaf6d,0x0000,0xd2c6,0xaf66,0x0000,0xaf67, +0x0000,0x0000,0xb2ac,0xd6a1,0xd6a2,0xb2ad,0xd67c,0xd67e, +0xd6a4,0xd6a3,0xd67d,0x0000,0xb2a9,0xb2aa,0x0000,0xdab6, +0xb56b,0xb56a,0xdab0,0xb568,0x0000,0xdab3,0xb56c,0xdab4, +0xb56d,0xdab1,0xb567,0xb569,0xdab5,0x0000,0xdab2,0xdaaf, +0x0000,0x0000,0x0000,0x0000,0x0000,0xded2,0x0000,0xdec7, +0xb7f0,0xb7f3,0xb7f2,0xb7f7,0xb7f6,0xded3,0xded1,0xdeca, +0xdece,0xdecd,0xb7f4,0xded0,0xdecc,0xded4,0xdecb,0xb7f5, +0xb7ef,0xb7f1,0x0000,0xdec9,0x0000,0x0000,0x0000,0x0000, +0xe2db,0xbac7,0xe2df,0xbac6,0xe2dc,0xbac5,0x0000,0xdec8, +0xdecf,0xe2de,0x0000,0xbac8,0xe2e0,0xe2dd,0xe2da,0x0000, +0x0000,0xe6b1,0xe6b5,0xe6b7,0xe6b3,0xe6b2,0xe6b0,0xbd45, +0xbd43,0xbd48,0xbd49,0xe6b4,0xbd46,0xe6af,0xbd47,0xbac4, +0xe6b6,0xbd44,0x0000,0x0000,0x0000,0xea6c,0x0000,0xea6b, +0xea73,0xea6d,0xea72,0xea6f,0xbf60,0xea71,0x0000,0x0000, +0xbf61,0x0000,0xbf62,0x0000,0xea70,0xea6e,0x0000,0x0000, +0x0000,0x0000,0xc0f8,0xed74,0x0000,0x0000,0xc0f7,0xed77, +0xed75,0xed76,0x0000,0x0000,0xc0f9,0x0000,0x0000,0x0000, +0xf04d,0x0000,0xc2a1,0xf04e,0x0000,0x0000,0xc27d,0xf04f, +0xc27e,0xf04c,0xf050,0x0000,0xf04a,0x0000,0x0000,0xc3a7, +0xf278,0xc3a8,0xc46f,0x0000,0xf04b,0xc470,0x0000,0x0000, +0x0000,0xc4ee,0xf5df,0x0000,0xc57e,0xf6f4,0xc57d,0x0000, +0xf7ea,0xc5f5,0xc5f6,0x0000,0x0000,0xf9cc,0x0000,0x0000, +0xacd1,0xcfde,0x0000,0xb56e,0xb56f,0xa5d5,0xa6ca,0xca47, +0x0000,0xcb71,0xa86d,0x0000,0xaaba,0x0000,0xacd2,0xacd3, +0xacd4,0xd6a6,0xd2cb,0xaf6f,0x0000,0x0000,0xb2ae,0xd6a5, +0x0000,0x0000,0xdab8,0xb571,0x0000,0xdab7,0xb570,0x0000, +0x0000,0xded5,0xbd4a,0xe6bb,0xe6b8,0xe6b9,0xe6ba,0x0000, +0x0000,0x0000,0x0000,0x0000,0xed78,0x0000,0xf051,0x0000, +0x0000,0x0000,0xf471,0xf470,0x0000,0xf6f5,0xa5d6,0xcd75, +0xaf70,0x0000,0x0000,0x0000,0xb572,0xded6,0x0000,0x0000, +0xe2e1,0x0000,0xbd4b,0xea74,0x0000,0xf052,0xf472,0xa5d7, +0x0000,0x0000,0xaabb,0xacd7,0xcfdf,0xacd8,0xacd6,0x0000, +0xacd5,0xd2cc,0xaf71,0x0000,0x0000,0xaf72,0xaf73,0x0000, +0x0000,0x0000,0xb2b0,0xd6a7,0xb2af,0x0000,0x0000,0x0000, +0x0000,0x0000,0xdab9,0xb2b1,0xb573,0xded7,0xb7f8,0xb7f9, +0x0000,0xbac9,0x0000,0xbaca,0xbd4c,0xbf64,0xea75,0xbf63, +0x0000,0xed79,0xc0fa,0x0000,0xf053,0xf473,0xa5d8,0xa86e, +0xcd78,0xcd77,0xaabc,0xcd76,0xaabd,0xcd79,0x0000,0xcfe5, +0xacdb,0xacda,0xcfe7,0xcfe6,0xacdf,0x0000,0xacde,0x0000, +/* 0x7700 */ +0x0000,0xacd9,0x0000,0xcfe1,0xcfe2,0xcfe3,0x0000,0xace0, +0xcfe0,0xacdc,0xcfe4,0xacdd,0x0000,0x0000,0x0000,0x0000, +0xd2cf,0xd2d3,0xd2d1,0xd2d0,0x0000,0xd2d4,0x0000,0x0000, +0x0000,0xd2d5,0xd2d6,0xd2ce,0x0000,0xd2cd,0x0000,0xaf75, +0xaf76,0x0000,0xd2d7,0xd2d2,0x0000,0xd6b0,0x0000,0xd2d8, +0xaf77,0xaf74,0x0000,0x0000,0x0000,0xd6aa,0x0000,0xd6a9, +0x0000,0xd6ab,0xd6ac,0xd6ae,0xd6ad,0xd6b2,0xb2b5,0xb2b2, +0xb2b6,0xd6a8,0xb2b7,0xd6b1,0xb2b4,0xd6af,0xb2b3,0x0000, +0x0000,0x0000,0x0000,0x0000,0xdabc,0xdabe,0xdaba,0xdabb, +0x0000,0x0000,0xdabf,0xdac1,0xdac2,0xdabd,0xdac0,0xb574, +0x0000,0x0000,0xdedb,0x0000,0xdee0,0xded8,0xdedc,0x0000, +0x0000,0xdee1,0xdedd,0xb7fa,0xb843,0x0000,0xb7fd,0xded9, +0xdeda,0xbace,0xb846,0xb7fe,0x0000,0xb844,0xb7fc,0xdedf, +0xb845,0xdede,0xb841,0xb7fb,0xb842,0xdee2,0xe2e6,0xe2e8, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xb840,0x0000,0x0000,0xe2e3,0xbacc,0xe2e9,0xbacd, +0xe2e7,0xe2e2,0xe2e5,0xe2ea,0xbacb,0xe2e4,0x0000,0xbd4e, +0xe6bf,0xe6be,0x0000,0xbd51,0xbd4f,0xe6bc,0xbd4d,0xe6bd, +0x0000,0xbd50,0x0000,0x0000,0x0000,0xea7d,0x0000,0xeaa1, +0x0000,0xea7e,0xea76,0xea7a,0xea79,0xea77,0xbf66,0xbf67, +0xbf65,0xea78,0xea7b,0xea7c,0x0000,0xbf68,0x0000,0xc140, +0xeda3,0x0000,0xc0fc,0xed7b,0xc0fe,0xc141,0x0000,0x0000, +0xc0fd,0xeda2,0xed7c,0xc0fb,0xeda1,0xed7a,0xed7e,0xed7d, +0x0000,0x0000,0xf055,0xc2a4,0xc2a5,0xc2a2,0x0000,0xc2a3, +0x0000,0x0000,0xf054,0x0000,0xf27b,0x0000,0x0000,0xc3a9, +0x0000,0xf279,0xf27a,0x0000,0xf474,0xf477,0xf475,0xf476, +0xf5e0,0x0000,0x0000,0xc4ef,0xf7eb,0xf8b4,0x0000,0xc5f7, +0xf8f8,0xf8f9,0xc666,0xa5d9,0xace1,0x0000,0xdac3,0x0000, +0xdee3,0x0000,0xa5da,0xa86f,0x0000,0xaabe,0x0000,0xcfe8, +0xcfe9,0xaf78,0x0000,0x0000,0xdac4,0xb575,0xb847,0xc142, +0xeda4,0xf27c,0xf478,0xa5db,0x0000,0x0000,0x0000,0xcda1, +0xcd7a,0xcd7c,0xcd7e,0xcd7d,0xcd7b,0xaabf,0x0000,0x0000, +/* 0x7800 */ +0x0000,0x0000,0xace2,0xcff2,0x0000,0xcfed,0xcfea,0x0000, +0x0000,0xcff1,0x0000,0x0000,0xace4,0xace5,0xcff0,0xcfef, +0xcfee,0xcfeb,0xcfec,0xcff3,0xace3,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xaf7c,0x0000,0xafa4, +0xafa3,0xd2e1,0xd2db,0xd2d9,0x0000,0xafa1,0xd6b9,0xaf7a, +0xd2de,0xd2e2,0xd2e4,0xd2e0,0xd2da,0xafa2,0xd2df,0xd2dd, +0xaf79,0xd2e5,0xafa5,0xd2e3,0xaf7d,0xd2dc,0x0000,0xaf7e, +0xaf7b,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xb2b9,0x0000,0xd6ba,0x0000,0x0000, +0xd6b3,0xd6b5,0xd6b7,0x0000,0xd6b8,0xd6b6,0xb2ba,0x0000, +0xd6bb,0x0000,0xd6b4,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xdac8,0xb576,0xdad0,0x0000, +0xdac5,0x0000,0xdad1,0x0000,0xdac6,0xdac7,0x0000,0x0000, +0xdacf,0xdace,0xdacb,0xb2b8,0xb577,0xdac9,0xdacc,0xb578, +0xdacd,0xdaca,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xdeee,0x0000,0xdef2,0xb84e,0x0000,0xe2f0,0xb851, +0xdef0,0xf9d6,0x0000,0xdeed,0xdee8,0xdeea,0xdeeb,0xdee4, +0x0000,0xb84d,0x0000,0x0000,0xb84c,0x0000,0xb848,0xdee7, +0x0000,0xb84f,0x0000,0xb850,0xdee6,0xdee9,0xdef1,0xb84a, +0xb84b,0xdeef,0xdee5,0x0000,0x0000,0x0000,0xe2f2,0xbad0, +0xe2f4,0xdeec,0xe2f6,0xbad4,0xe2f7,0xe2f3,0x0000,0xbad1, +0xe2ef,0xbad3,0xe2ec,0xe2f1,0xe2f5,0xe2ee,0x0000,0x0000, +0xb849,0x0000,0xe2eb,0xbad2,0xe2ed,0x0000,0x0000,0x0000, +0x0000,0x0000,0xbd54,0xe6c1,0xbd58,0x0000,0xbd56,0x0000, +0x0000,0xbacf,0x0000,0xe6c8,0xe6c9,0xbd53,0x0000,0x0000, +0xe6c7,0xe6ca,0xbd55,0xbd52,0xe6c3,0xe6c0,0xe6c5,0xe6c2, +0xbd59,0xe6c4,0x0000,0x0000,0xe6c6,0xbd57,0x0000,0x0000, +0x0000,0x0000,0xbf6a,0xeaa8,0x0000,0xeaa2,0xeaa6,0xeaac, +0xeaad,0xeaa9,0xeaaa,0xeaa7,0x0000,0xeaa4,0x0000,0xbf6c, +0xbf69,0xeaa3,0xeaa5,0x0000,0xbf6b,0xeaab,0x0000,0xc146, +0x0000,0x0000,0xedaa,0xeda5,0xc145,0x0000,0x0000,0xc143, +0x0000,0xedac,0xc144,0xeda8,0xeda9,0xeda6,0xedad,0xf056, +/* 0x7900 */ +0x0000,0xc147,0xeda7,0x0000,0xedae,0xedab,0x0000,0x0000, +0x0000,0xf05a,0x0000,0x0000,0xf057,0x0000,0xc2a6,0x0000, +0xf05b,0xf05d,0xf05c,0xf058,0xf059,0x0000,0x0000,0xf2a3, +0x0000,0xc3aa,0x0000,0xf27e,0xf2a2,0xf27d,0xf2a4,0x0000, +0x0000,0xf2a1,0x0000,0xf47a,0xf47d,0xf479,0xc471,0xf47b, +0xf47c,0xf47e,0xc472,0xc474,0xc473,0xf5e1,0x0000,0xf5e3, +0x0000,0xf5e2,0x0000,0x0000,0x0000,0xf6f6,0x0000,0x0000, +0xf8b5,0xf8fa,0xa5dc,0x0000,0x0000,0xcb72,0xaac0,0xcda3, +0xaac1,0xaac2,0xcda2,0x0000,0xcff8,0xcff7,0xace6,0xace9, +0xace8,0xace7,0xcff4,0xcff6,0xcff5,0x0000,0x0000,0xd2e8, +0xafa7,0xd2ec,0xd2eb,0xd2ea,0xd2e6,0xafa6,0xafaa,0xafad, +0x0000,0x0000,0xafae,0xd2e7,0xd2e9,0xafac,0xafab,0xafa9, +0xafa8,0xd6c2,0x0000,0xd6c0,0xd6bc,0xb2bb,0x0000,0xd6bd, +0xb2bc,0xd6be,0xd6bf,0xd6c1,0x0000,0xb2bd,0x0000,0x0000, +0xdad5,0x0000,0xdad4,0xdad3,0xdad2,0x0000,0x0000,0x0000, +0x0000,0xdef6,0xb852,0x0000,0xdef3,0xdef5,0x0000,0xb853, +0x0000,0xb854,0xdef4,0x0000,0x0000,0x0000,0x0000,0x0000, +0xe341,0x0000,0xe2f9,0xe2fa,0x0000,0xbad7,0xbad5,0xbad6, +0xe343,0x0000,0xe342,0xe2fe,0xe2fd,0xe2fc,0xe2fb,0xe340, +0xe2f8,0x0000,0xe6cb,0xe6d0,0xe6ce,0x0000,0x0000,0x0000, +0xe6cd,0xe6cc,0xe6cf,0x0000,0xeaae,0x0000,0xbf6d,0xc148, +0xedb0,0x0000,0xc149,0xedaf,0xf05f,0xf05e,0xc2a7,0x0000, +0xf2a5,0xc3ab,0xf4a1,0xc5a1,0xf6f7,0x0000,0xf8b7,0xf8b6, +0xc9a8,0xacea,0xaceb,0xd6c3,0x0000,0xb856,0xa5dd,0xa872, +0xa871,0xa870,0x0000,0x0000,0x0000,0xcda4,0x0000,0x0000, +0xaac4,0xaac3,0x0000,0xacee,0x0000,0xcffa,0xcffd,0xcffb, +0x0000,0xacec,0xaced,0x0000,0x0000,0xcff9,0xcffc,0x0000, +0xafb5,0x0000,0x0000,0x0000,0xd2f3,0xd2f5,0xd2f4,0xafb2, +0xd2ef,0x0000,0x0000,0xafb0,0xafaf,0x0000,0xafb3,0xafb1, +0x0000,0xafb4,0xd2f2,0xd2ed,0xd2ee,0xd2f1,0xd2f0,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd6c6,0xd6c7, +0xd6c5,0x0000,0xd6c4,0xb2be,0x0000,0x0000,0x0000,0x0000, +0xb57d,0x0000,0xdad6,0xdad8,0xdada,0xb57c,0x0000,0x0000, +0xb57a,0x0000,0xdad7,0xb57b,0xdad9,0xb579,0x0000,0x0000, +0xdf41,0xdef7,0xdefa,0xdefe,0xb85a,0xdefc,0x0000,0xdefb, +0xdef8,0xdef9,0xb858,0xdf40,0xb857,0x0000,0xb85c,0xb85b, +0xb859,0x0000,0xdefd,0x0000,0x0000,0x0000,0xe349,0x0000, +0xe348,0x0000,0x0000,0xe344,0x0000,0x0000,0xbad8,0xe347, +0xe346,0xbad9,0x0000,0x0000,0x0000,0x0000,0x0000,0xbd5e, +0x0000,0xe6d2,0x0000,0xbd5f,0xbd5b,0xbd5d,0x0000,0xbd5a, +0xbd5c,0x0000,0x0000,0x0000,0xeaaf,0x0000,0xbf70,0xeab1, +0xeab0,0x0000,0xe345,0xbf72,0xbf71,0xbf6e,0xbf6f,0x0000, +0x0000,0x0000,0x0000,0x0000,0xedb5,0x0000,0xedb3,0xc14a, +0xedb4,0x0000,0xedb6,0xedb2,0xedb1,0x0000,0x0000,0xf060, +0xc2aa,0xc2a8,0xc2a9,0x0000,0x0000,0x0000,0x0000,0xf2a6, +0xf2a7,0xc3ad,0x0000,0xc3ac,0xf4a3,0xf4a4,0xf4a2,0x0000, +0xf6f8,0xf6f9,0x0000,0x0000,0xa5de,0xca48,0xa873,0x0000, +0xcda5,0xaac6,0xaac5,0xcda6,0x0000,0x0000,0xd040,0xacef, +0xcffe,0xacf0,0x0000,0x0000,0xafb6,0xd2f8,0xd2f6,0xd2fc, +0xafb7,0xd2f7,0xd2fb,0xd2f9,0xd2fa,0x0000,0x0000,0xd6c8, +0xd6ca,0x0000,0xb2bf,0x0000,0xd6c9,0xb2c0,0xb5a2,0xb5a1, +0xb57e,0xdadb,0x0000,0x0000,0x0000,0x0000,0xdf44,0xb85d, +0xb85e,0x0000,0xdf43,0xdf42,0x0000,0x0000,0x0000,0x0000, +0xe34a,0xbadb,0xbada,0xe34b,0xe34c,0x0000,0xbd61,0xbd60, +0x0000,0xeab5,0xe6d3,0xe6d5,0xe6d4,0xeab4,0xeab2,0xeab6, +0xeab3,0x0000,0xbf73,0x0000,0x0000,0x0000,0xedb7,0xc14b, +0xedb8,0xedb9,0x0000,0x0000,0xc2ab,0xc2ac,0x0000,0xc475, +0x0000,0x0000,0xc5d1,0xa5df,0x0000,0x0000,0x0000,0x0000, +0x0000,0xd041,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xd2fd,0xafb8,0x0000,0x0000,0x0000,0x0000,0x0000,0xb3ba, +0xb3b9,0x0000,0x0000,0xb5a4,0xdadd,0xb5a3,0xdadc,0x0000, +0x0000,0x0000,0x0000,0xdf45,0x0000,0xbadc,0xe34d,0xbadd, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xc476,0xf4a5, +0x0000,0xa6cb,0xaac7,0xcda7,0x0000,0xacf2,0x0000,0xacf1, +0xd042,0xd043,0x0000,0x0000,0xd340,0xd342,0xafb9,0x0000, +0xd344,0xd347,0xd345,0x0000,0x0000,0x0000,0xd346,0xd343, +0xd2fe,0xafba,0xd348,0xd341,0x0000,0x0000,0x0000,0x0000, +0xd6d3,0xb2c6,0xd6dc,0xb2c3,0x0000,0xd6d5,0xb2c7,0x0000, +0xb2c1,0x0000,0xd6d0,0xd6dd,0xd6d1,0xd6ce,0xb2c5,0x0000, +0xb2c2,0x0000,0xd6d4,0xd6d7,0xb2c4,0xd6d8,0xb2c8,0xd6d9, +0xd6cf,0xd6d6,0xd6da,0xd6d2,0xd6cd,0xd6cb,0x0000,0x0000, +0xd6db,0x0000,0x0000,0xdadf,0x0000,0x0000,0x0000,0x0000, +0xdae4,0x0000,0x0000,0x0000,0xdae0,0xdae6,0xb5a7,0xd6cc, +0xdae1,0xb5a5,0xdade,0xb5ac,0xdae2,0xb5ab,0xdae3,0xb5ad, +0xb5a8,0xb5ae,0xb5a9,0x0000,0xb5aa,0x0000,0xb5a6,0x0000, +0xdae5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xb861,0xdf50,0x0000,0xdf53,0xdf47,0xdf4c,0xdf46,0xb863, +0x0000,0xdf4a,0x0000,0x0000,0x0000,0xdf48,0xb862,0x0000, +0xdf4f,0xdf4e,0xdf4b,0xdf4d,0xdf49,0xbae1,0xdf52,0xb85f, +0xdf51,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xe35d,0x0000,0xbae8,0xe358,0x0000,0xbae7, +0xe34e,0x0000,0xe350,0xbae0,0xe355,0xe354,0xe357,0xbae5, +0xe352,0xe351,0x0000,0x0000,0xbae4,0xbadf,0xe353,0xbae2, +0xe359,0xe35b,0x0000,0xe356,0xe34f,0xbae3,0x0000,0x0000, +0xbd69,0xbade,0x0000,0x0000,0xe35c,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xe6d9,0xbd62,0x0000,0xe6db, +0x0000,0xbd63,0x0000,0x0000,0xbd65,0xe6de,0x0000,0xe6d6, +0xbae6,0xe6dc,0x0000,0x0000,0x0000,0x0000,0xe6d8,0x0000, +0xb860,0xbd68,0x0000,0x0000,0xbd64,0x0000,0xbd66,0xbd67, +0x0000,0xbf76,0xe6dd,0xe6d7,0xbd6a,0x0000,0xe6da,0x0000, +0x0000,0x0000,0x0000,0x0000,0xeac0,0xeabb,0x0000,0x0000, +0xeac5,0xbf74,0xeabd,0xbf78,0xeac3,0xeaba,0xeab7,0xeac6, +0xc151,0xbf79,0xeac2,0xeab8,0xbf77,0xeabc,0xbf7b,0xeab9, +0xeabe,0xbf7a,0xeac1,0xeac4,0x0000,0x0000,0x0000,0x0000, +0xedcb,0xedcc,0xedbc,0xedc3,0xedc1,0x0000,0x0000,0xc14f, +0xedc8,0xeabf,0x0000,0xedbf,0x0000,0xedc9,0xc14e,0xedbe, +0xedbd,0xedc7,0xedc4,0xedc6,0x0000,0xedba,0xedca,0xc14c, +0x0000,0xedc5,0xedce,0xedc2,0xc150,0xc14d,0xedc0,0xedbb, +0xedcd,0xbf75,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xf063,0x0000,0x0000,0xf061,0xf067,0xc2b0,0xf065, +0xf064,0xc2b2,0xf06a,0xc2b1,0x0000,0xf06b,0xf068,0xc2ae, +0xf069,0xf062,0xc2af,0xc2ad,0xf2ab,0xf066,0x0000,0x0000, +0xf06c,0x0000,0x0000,0xf2a8,0x0000,0x0000,0x0000,0xc3b2, +0xc3b0,0xf2aa,0x0000,0xf2ac,0xf2a9,0xc3b1,0xc3ae,0xc3af, +0xc3b3,0x0000,0x0000,0xc478,0x0000,0xf4aa,0x0000,0xf4a9, +0xf4a7,0xf4a6,0xf4a8,0x0000,0xc477,0xc479,0x0000,0x0000, +0xc4f0,0x0000,0x0000,0xf5e5,0xf5e4,0x0000,0x0000,0xf6fa, +0x0000,0xf6fc,0xf6fe,0xf6fd,0xf6fb,0x0000,0x0000,0xc5a3, +0xc5a2,0x0000,0x0000,0xc5d3,0xc5d2,0xc5d4,0xf7ed,0xf7ec, +0x0000,0xf8fb,0xf8b8,0xf8fc,0xc658,0x0000,0xc659,0xf96d, +0x0000,0x0000,0xc67e,0xa6cc,0x0000,0xcda8,0x0000,0x0000, +0xd045,0xd046,0xd044,0x0000,0x0000,0xacf3,0x0000,0xd047, +0xd048,0xd049,0x0000,0x0000,0xd349,0xd34f,0x0000,0x0000, +0xd34d,0xafbb,0xd34b,0x0000,0xd34c,0xd34e,0x0000,0x0000, +0x0000,0xd34a,0xb2c9,0x0000,0xd6de,0xb2cb,0xd6e0,0xb2ca, +0xd6df,0x0000,0x0000,0x0000,0x0000,0x0000,0xdae8,0xb5af, +0x0000,0xdaea,0xdae7,0xd6e1,0x0000,0xb5b0,0x0000,0xf9db, +0xdae9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xdf56, +0x0000,0xb864,0xdf54,0xb865,0xdf55,0xb866,0x0000,0x0000, +0x0000,0xbae9,0xe361,0xe35e,0xe360,0xbaea,0xbaeb,0xe35f, +0x0000,0x0000,0x0000,0x0000,0x0000,0xe6df,0x0000,0x0000, +0xe6e0,0x0000,0xbd6b,0xe6e2,0xe6e1,0x0000,0xa261,0x0000, +0xeaca,0xeacb,0xeac7,0x0000,0xeac8,0xbf7c,0xbf7d,0xeac9, +0x0000,0xc157,0x0000,0x0000,0xc153,0xc158,0xc154,0xc156, +0xc152,0x0000,0xc155,0x0000,0x0000,0x0000,0x0000,0xc2b3, +0xedcf,0x0000,0xf2ae,0x0000,0xf2ad,0x0000,0xf4ab,0xc47a, +0xc47b,0xf741,0xf5e6,0x0000,0xf740,0x0000,0xf8fd,0xf9a4, +0xa6cd,0x0000,0x0000,0xa874,0x0000,0xcda9,0xaac8,0x0000, +0xacf6,0xd04c,0xacf4,0xd04a,0xacf9,0xacf5,0xacfa,0xacf8, +0xd04b,0xacf7,0xafbf,0xafbe,0xd35a,0xafc7,0xd353,0xd359, +0xafc3,0xd352,0xd358,0xd356,0xafc2,0xafc4,0xd355,0xafbd, +0xd354,0xafc8,0xafc5,0xafc9,0xafc6,0xd351,0xd350,0xd357, +0xafc0,0xafbc,0xafc1,0x0000,0x0000,0x0000,0x0000,0x0000, +0xd6f0,0xd6e9,0x0000,0xb5b5,0xd6e8,0x0000,0xb2cf,0xb2d6, +0xb2d3,0xb2d9,0xb2d8,0xb2d4,0x0000,0xd6e2,0xd6e5,0x0000, +0xd6e4,0xb2d0,0xd6e6,0xd6ef,0xb2d1,0xd6e3,0xd6ec,0xd6ed, +0xb2d2,0xd6ea,0xb2d7,0xb2cd,0xb2d5,0xd6e7,0xb2cc,0xd6eb, +0x0000,0x0000,0xd6ee,0x0000,0x0000,0x0000,0xdafb,0xdaf2, +0xb5b2,0xdaf9,0xdaf6,0xdaee,0xdaf7,0xb5b4,0xdaef,0x0000, +0xdaeb,0x0000,0x0000,0xb86c,0xdaf4,0x0000,0xb5b1,0xdafa, +0x0000,0xb5b8,0xb5ba,0xdaed,0x0000,0x0000,0xb5b9,0xdaf0, +0xb5b3,0xdaf8,0xdaf1,0xdaf5,0x0000,0xdaf3,0xb5b6,0xdaec, +0xb5bb,0xb2ce,0xb5b7,0xb5bc,0x0000,0x0000,0x0000,0x0000, +0x0000,0xb868,0xdf5d,0xdf5f,0xdf61,0xdf65,0x0000,0xdf5b, +0xdf59,0xb86a,0x0000,0xdf60,0xdf64,0xdf5c,0xdf58,0x0000, +0xdf57,0x0000,0x0000,0x0000,0xdf62,0xdf5a,0xdf5e,0xb86b, +0x0000,0xb869,0xdf66,0xb867,0xdf63,0x0000,0xe372,0x0000, +0x0000,0x0000,0x0000,0x0000,0xbaee,0xe36a,0xbd78,0xe374, +0xbaf1,0xe378,0xbaf7,0xe365,0x0000,0x0000,0xe375,0xe362, +0x0000,0xe377,0xe366,0x0000,0xbafe,0xbafb,0xe376,0xe370, +0xbaed,0xbaf5,0xbaf4,0x0000,0xbaf3,0xbaf9,0x0000,0xe363, +0xbafa,0xe371,0xbaf6,0xbaec,0xe373,0xbaef,0xbaf0,0xbaf8, +0xe368,0xe367,0xe364,0x0000,0xe36c,0xe369,0xe36d,0xbafd, +0x0000,0xe379,0xbaf2,0xe36e,0xe36f,0x0000,0xe36b,0x0000, +0x0000,0x0000,0xbafc,0x0000,0x0000,0x0000,0x0000,0xe6e7, +0xbd70,0xbd79,0xbd75,0xe6e4,0x0000,0xbd72,0xbd76,0xe6f0, +0xbd6c,0xe6e8,0x0000,0xbd74,0x0000,0x0000,0xe6eb,0xe6e6, +0xbd73,0xbd77,0xe6e5,0x0000,0xbd71,0x0000,0xe6ef,0xbd6e, +0xe6ee,0xe6ed,0xbd7a,0xe572,0xbd6d,0x0000,0xe6ec,0xe6e3, +0x0000,0xbd7b,0xe6ea,0xbd6f,0x0000,0x0000,0x0000,0x0000, +/* 0x7e00 */ +0x0000,0x0000,0x0000,0xe6e9,0x0000,0x0000,0x0000,0x0000, +0xbfa2,0xbfa7,0xbf7e,0xead8,0xeacf,0xeadb,0xead3,0xead9, +0xbfa8,0xbfa1,0xeacc,0xead2,0xeadc,0xead5,0xeada,0xeace, +0x0000,0x0000,0xead6,0xbfa3,0xead4,0xbfa6,0xbfa5,0xead0, +0xead1,0xeacd,0xead7,0xbfa4,0xeade,0xeadd,0x0000,0x0000, +0x0000,0xedda,0xedd6,0xc15f,0x0000,0xedd0,0xc159,0xc169, +0xeddc,0xc161,0xc15d,0xedd3,0xc164,0xc167,0xedde,0xc15c, +0xedd5,0xc165,0xede0,0xeddd,0xedd1,0xc160,0xc15a,0xc168, +0xedd8,0xc163,0xedd2,0xc15e,0xeddf,0xc162,0xc15b,0xedd9, +0xc166,0xedd7,0x0000,0x0000,0xeddb,0x0000,0x0000,0x0000, +0xf06e,0xf074,0xc2b9,0xf077,0xc2b4,0xc2b5,0xf06f,0xf076, +0xf071,0xc2ba,0xc2b7,0x0000,0xf06d,0x0000,0xc2b6,0xf073, +0xf075,0xc2b8,0xf072,0xf070,0x0000,0x0000,0x0000,0x0000, +0xf2b8,0xc3b7,0xc3b8,0xc3b4,0x0000,0xc3b5,0x0000,0xf2b4, +0xf2b2,0x0000,0xf2b6,0xc3ba,0xf2b7,0xf2b0,0xf2af,0xf2b3, +0xf2b1,0xc3b6,0xf2b5,0xf4ac,0xc47e,0xc47d,0xf4ad,0x0000, +0xf4af,0xf4ae,0xc4a1,0x0000,0x0000,0x0000,0xf5eb,0xf5e8, +0xf5e9,0x0000,0xf5e7,0xf5ea,0xc4f2,0xf5ec,0x0000,0xc4f1, +0x0000,0xf742,0x0000,0xc5d5,0xc5d7,0xf7ee,0xc5d6,0xf8b9, +0xf940,0xf942,0xf8fe,0xf941,0xc66c,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x7f00 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xa6ce,0x0000, +0xacfb,0xd26f,0xafca,0x0000,0x0000,0xb2da,0xdafc,0xdafd, +0x0000,0x0000,0x0000,0xeadf,0xc16a,0xede1,0x0000,0x0000, +0xc2bb,0x0000,0xf2ba,0xf2b9,0xc4a2,0xf5ed,0x0000,0xf743, +0xc5f8,0xca49,0x0000,0x0000,0xaac9,0xa875,0x0000,0x0000, +0xd04d,0x0000,0x0000,0xd360,0xd35b,0xd35f,0xd35d,0xafcb, +0xd35e,0xd35c,0x0000,0xd6f1,0x0000,0xdafe,0xdb40,0xdf69, +0xdf6a,0xb86e,0xb86f,0xdf68,0xdf6b,0xdf67,0xb86d,0x0000, +0xbb40,0x0000,0xb870,0xe37a,0x0000,0xbd7c,0xe6f1,0xbd7d, +0x0000,0xbfa9,0xeae2,0xeae0,0xeae1,0xede4,0xede3,0xede2, +0x0000,0x0000,0x0000,0xf2bb,0x0000,0xc3b9,0xf2bc,0xf744, +0xc5f9,0xf8ba,0xa6cf,0xaacb,0xaaca,0xd04f,0xacfc,0x0000, +0x0000,0xd04e,0xd362,0x0000,0xafcc,0xd6f2,0xd361,0x0000, +0x0000,0x0000,0xb2dc,0xd6f5,0xd6f3,0xd6f4,0xb2db,0x0000, +0xdb42,0xdb43,0xdb41,0x0000,0xb873,0xdf6d,0xdf6c,0xdf6e, +0xb872,0xb871,0x0000,0x0000,0xe6f2,0xe6f4,0x0000,0xbd7e, +0xe6f3,0xeae3,0xbfaa,0xf079,0x0000,0xf078,0xc3bb,0xf2bd, +0xc3bd,0xc3bc,0xf4b0,0xf5ee,0xc4f3,0xa6d0,0xd050,0xacfd, +0xd365,0xafce,0xd364,0xd363,0x0000,0xafcd,0x0000,0xd6fb, +0x0000,0xd6fd,0xd6f6,0xd6f7,0xb2dd,0xd6f8,0xb2de,0xd6fc, +0xd6f9,0xd6fa,0xb2df,0x0000,0xb5be,0xb5bf,0x0000,0xdb44, +0x0000,0x0000,0x0000,0xdf6f,0xdf70,0x0000,0xe37e,0xbb43, +0xbb41,0xbb42,0xe37b,0xe37c,0x0000,0xe37d,0xe6f9,0x0000, +0xe6fa,0xbda1,0xe6f7,0xe6f6,0xe6f8,0xe6f5,0xbfad,0xeae4, +0xbfab,0xbfac,0xede6,0xc16b,0xede5,0xefa8,0x0000,0xf07a, +0xf07b,0xc2bc,0x0000,0xc2bd,0xc16c,0xf2be,0xf2bf,0xf4b1, +0xc4a3,0xa6d1,0x0000,0xa6d2,0xacfe,0xaacc,0xafcf,0xd051, +0x0000,0x0000,0x0000,0xb5c0,0xa6d3,0xad41,0xd052,0xd053, +0xad40,0xad42,0xa6d4,0x0000,0xd054,0xafd1,0xd366,0xafd3, +0xafd0,0xafd2,0x0000,0xd741,0xb2e0,0x0000,0xd740,0xd6fe, +0x0000,0xdf71,0x0000,0x0000,0xe3a1,0x0000,0xbda2,0x0000, +0xbfae,0xeae6,0xeae5,0x0000,0xede7,0x0000,0x0000,0x0000, +0xf5ef,0x0000,0x0000,0xa6d5,0xcb73,0xcdaa,0xad43,0xd055, +0x0000,0xd368,0x0000,0x0000,0x0000,0xafd4,0xd367,0xafd5, +0x0000,0x0000,0x0000,0xd743,0x0000,0x0000,0xb2e2,0xd742, +0xd744,0x0000,0xb2e1,0x0000,0x0000,0x0000,0x0000,0xdb46, +0xdb47,0xdb45,0xb5c1,0x0000,0x0000,0x0000,0xb874,0x0000, +0xb875,0x0000,0xbb45,0x0000,0xe3a3,0xe3a2,0xbb44,0x0000, +0x0000,0x0000,0x0000,0x0000,0xe6fb,0x0000,0x0000,0xe6fc, +0x0000,0x0000,0x0000,0x0000,0xeae7,0x0000,0x0000,0xc170, +0xc16f,0xc16d,0xc16e,0xc171,0x0000,0xf07c,0xc2bf,0xc2be, +0xf2c0,0xf4b2,0x0000,0x0000,0x0000,0xc5a5,0xc5a4,0xa6d6, +0x0000,0x0000,0xd1fb,0x0000,0xb877,0xb5c2,0xb876,0xbb46, +0x0000,0xa6d7,0xc9a9,0xa6d8,0xa6d9,0x0000,0x0000,0xcdab, +0xcb76,0x0000,0xcb77,0xa877,0x0000,0xcb74,0xa876,0x0000, +0xa879,0xcb75,0xa87b,0xa87a,0xcb78,0xa878,0x0000,0x0000, +0x0000,0xaad1,0xaacf,0xcdad,0x0000,0xaace,0x0000,0x0000, +0x0000,0xaad3,0xaad5,0xaad2,0x0000,0xcdb0,0xcdac,0xaad6, +0x0000,0xaad0,0xa87c,0x0000,0xaad4,0xcdaf,0x0000,0x0000, +0xcdae,0x0000,0xaacd,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xd05b,0xad47,0xad48,0xd05d,0x0000,0xd057, +0xd05a,0xd063,0xd061,0x0000,0xad49,0xd067,0xad4c,0xd064, +0xd05c,0xd059,0x0000,0x0000,0xdb49,0xd062,0xad44,0xd065, +0xd056,0xd05f,0xad46,0xad4b,0xd060,0xad4f,0xad4d,0x0000, +0xd058,0xad4a,0x0000,0xd05e,0xad4e,0xad45,0xd066,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xafda,0x0000,0xafe3, +0xafd8,0xafd6,0xd36a,0xafde,0xafdb,0xd36c,0x0000,0x0000, +0xafdd,0xd36b,0xd369,0xd36e,0xafe2,0xafe0,0xdb48,0x0000, +0xd36f,0xd36d,0xafd7,0x0000,0x0000,0xafd9,0xafdc,0x0000, +0xafdf,0x0000,0xafe1,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xd74e,0xb2e4,0x0000, +0xd745,0xd747,0x0000,0xd748,0x0000,0xd750,0xd74c,0xd74a, +0x0000,0xd74d,0xd751,0xb2e5,0xb2e9,0xd746,0x0000,0xd74f, +0x0000,0xb2e7,0x0000,0xb2e6,0xd74b,0xd749,0x0000,0xb2e3, +0xb2e8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xb5c8,0xdb51,0x0000,0x0000,0xdb4f,0xb5ca,0x0000, +0x0000,0x0000,0x0000,0xdb4a,0xdfa1,0x0000,0xb5c9,0xdb4e, +0x0000,0x0000,0xdb4b,0xb5c5,0xb5cb,0xdb50,0xb5c7,0xdb4d, +0xbb47,0xb5c6,0xdb4c,0xb5cc,0xb5c4,0xb5c3,0x0000,0x0000, +0x0000,0x0000,0x0000,0xdf77,0xdf75,0x0000,0xdf7b,0x0000, +0xdf73,0xdfa2,0xdf78,0x0000,0xdf72,0xb87b,0xb8a3,0xdf7d, +0x0000,0xdf76,0x0000,0xb87e,0x0000,0x0000,0xb87c,0xdf7e, +0xb879,0xb878,0xdf79,0xb87d,0xb5cd,0x0000,0xdf7c,0xdf74, +0xb87a,0xb8a1,0xb8a2,0x0000,0x0000,0x0000,0x0000,0xbb4c, +0xbb48,0x0000,0xbb4d,0xe3a6,0x0000,0x0000,0xe3a5,0xe3a7, +0xbb4a,0xe3a4,0xbb4b,0xe3aa,0xe3a9,0xe3a8,0x0000,0xbb49, +0x0000,0x0000,0x0000,0x0000,0x0000,0xe741,0x0000,0xe744, +0xbda8,0xe743,0xbda7,0xbda3,0xbda4,0xbda5,0xe740,0xe6fe, +0xbda6,0x0000,0xe742,0xe6fd,0x0000,0x0000,0xeae9,0xeaf3, +0xbfb1,0xbfb0,0x0000,0xeaed,0xeaef,0x0000,0xeaea,0x0000, +0xeaee,0xeae8,0xeaf1,0xbfaf,0xeaf0,0xeaec,0x0000,0xeaf2, +0x0000,0xeaeb,0xc174,0xede8,0xedee,0xc178,0xc17a,0xc177, +0xc176,0x0000,0xc175,0xc173,0xede9,0xedec,0xc172,0xeded, +0x0000,0xc179,0xedeb,0x0000,0xedea,0xc2c0,0x0000,0xc2c1, +0xf0a1,0xf07d,0xf07e,0x0000,0x0000,0xf2c2,0x0000,0xf2c1, +0xc3be,0xf4b4,0xc4a4,0xf4b3,0x0000,0xf5f0,0xf745,0xc5a6, +0xf943,0xf944,0xc5d8,0xa6da,0x0000,0xaad7,0xdb52,0xbb4e, +0xc17b,0xedef,0xa6db,0x0000,0xafe5,0xafe4,0xdb53,0x0000, +0x0000,0x0000,0xeaf4,0xa6dc,0xad50,0x0000,0x0000,0xdb54, +0xdb55,0xdb56,0xbb4f,0xbfb2,0xa6dd,0x0000,0xaad8,0xd068, +0xafe6,0xd370,0xb2ea,0x0000,0xdb57,0xb8a4,0x0000,0xbb50, +0xbfb3,0xc17c,0xc2c2,0xf4b5,0xa6de,0xaad9,0x0000,0x0000, +0xafe7,0xd752,0xb5ce,0x0000,0xbb51,0xe3ab,0xe745,0x0000, +0x0000,0x0000,0x0000,0xa6df,0xb5cf,0xdfa3,0xbb52,0xa6e0, +0xcdb1,0xd069,0xad51,0x0000,0x0000,0xd372,0x0000,0x0000, +0xafea,0x0000,0xafe8,0xafe9,0xafeb,0x0000,0x0000,0xd371, +0x0000,0x0000,0xd757,0xd754,0xd756,0xb2eb,0xb2ed,0xb2ec, +0xd753,0xb2ee,0xd755,0x0000,0xdb58,0xdb59,0x0000,0xdb5a, +0xdfa6,0x0000,0xdfa7,0x0000,0xdfa5,0xdfa8,0x0000,0xb8a5, +0x0000,0xdfa4,0x0000,0xbb53,0x0000,0x0000,0xe74a,0xe746, +0xe749,0xe74b,0xe748,0xe747,0x0000,0xeaf5,0xeaf6,0xeaf7, +0xbfb4,0xbfb5,0xedf1,0xedf0,0xedf2,0x0000,0xf0a3,0xf0a2, +0x0000,0xf2c4,0x0000,0xf2c5,0xf2c3,0x0000,0xc4a5,0x0000, +0xf4b6,0xf4b7,0x0000,0xf746,0xf7ef,0xf8bb,0xa6e1,0xa87d, +0x0000,0xc17d,0xa6e2,0x0000,0xd758,0xdb5b,0x0000,0xc641, +0xca4a,0x0000,0x0000,0x0000,0xca4b,0xca4d,0xa6e3,0xca4e, +0xca4c,0x0000,0x0000,0xcba2,0xcba3,0xcb7b,0x0000,0x0000, +0x0000,0x0000,0xcba1,0xa8a1,0x0000,0xa8a2,0xcb7c,0xcb7a, +0xcb79,0xcb7d,0xa87e,0xcb7e,0xd06a,0x0000,0x0000,0x0000, +0xcdb6,0xaadc,0xcdb5,0xcdb7,0x0000,0xaadb,0xcdbc,0xaadf, +0xcdb2,0xcdc0,0xcdc6,0xaae6,0xcdc3,0xaae3,0x0000,0xcdb9, +0xcdbf,0xcdc1,0x0000,0xcdb4,0xaae2,0xaadd,0xcdba,0xaae4, +0xaae7,0xaae1,0x0000,0xaada,0xcdbe,0xcdb8,0xcdc5,0xaae9, +0xaae5,0xaae0,0xcdbd,0xafec,0xcdbb,0xaade,0xaae8,0x0000, +0xcdb3,0x0000,0xcdc2,0xcdc4,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xad62,0xad5c,0xad64,0xad61,0xd071,0xd074,0xad5d, +0x0000,0xd06b,0x0000,0xad56,0xad60,0x0000,0xad63,0xad65, +0xd0a2,0xd077,0x0000,0xad55,0xd0a1,0xad59,0xad57,0xad52, +0xd06f,0x0000,0xd07e,0xd073,0xd076,0xd0a5,0x0000,0xad66, +0xd07d,0xad5e,0xd078,0xd0a4,0xd075,0xd079,0xd07c,0x0000, +0x0000,0xd06d,0xd0a3,0xd07b,0x0000,0x0000,0xd06c,0x0000, +0xd070,0xad5f,0xad5a,0xad53,0xad58,0xad54,0xad67,0xd06e, +0xd3a5,0xad5b,0x0000,0x0000,0xd07a,0xce41,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd3a8,0xaffa, +0x0000,0xd376,0x0000,0xd3a3,0xd37d,0x0000,0xd3b2,0x0000, +0xd3aa,0x0000,0xd37e,0x0000,0xd3a9,0xd378,0xd37c,0xd3b5, +0xaffd,0xd3ad,0xd3a4,0xafed,0xd3b3,0xd374,0x0000,0xd3ac, +0x0000,0xaffc,0xaff7,0xd373,0xaff5,0xaff4,0xaff9,0xd3ab, +0xaff1,0xaff8,0xd072,0xdb5c,0xd3a6,0x0000,0x0000,0xd37a, +0xaffb,0xd37b,0xd3a1,0xaffe,0xd375,0xd3af,0x0000,0xd3ae, +0xd3b6,0xaff3,0xaff0,0xd3b4,0xd3b0,0xd3a7,0xd3a2,0xaff6, +0xaff2,0xd377,0xafee,0xd3b1,0xafef,0x0000,0xd379,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xd75e,0xd760,0xd765,0xd779,0xb2fc, +0xb2f2,0x0000,0xd75d,0xb2fd,0xb2fe,0xd768,0xd76f,0xd775, +0x0000,0xd762,0x0000,0xd769,0x0000,0x0000,0xb340,0xd777, +0xd772,0xb2fa,0xb2f8,0xd76e,0xd76a,0xd75c,0xb2ef,0xd761, +0xd759,0x0000,0xb2f7,0xb2f9,0xd766,0xd763,0xb2f4,0xd773, +0xb2f1,0xd764,0xd77a,0xd76c,0x0000,0xd76b,0xb2f0,0x0000, +0xb2fb,0x0000,0xb2f3,0xd75a,0xd75f,0xd770,0xd776,0xb341, +0xd75b,0xd767,0xd76d,0xb2f6,0x0000,0x0000,0xd778,0xd771, +0xd774,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xb2f5,0x0000,0xdb6c, +0xdb60,0xb5d7,0xdb7d,0xdba7,0xdbaa,0xb5d5,0xdb68,0xdba3, +0xdb69,0xdb77,0xb5e2,0xdb73,0xb5df,0x0000,0xdb74,0xdb5d, +0x0000,0xdba4,0x0000,0x0000,0xb5e8,0xdba1,0xdb75,0xdbac, +0xdb70,0xdfc8,0x0000,0xdbaf,0xb5e6,0xdb6e,0xdb7a,0xb5e9, +0xb5d4,0xdb72,0xdbad,0xdb6b,0xdb64,0xdb6f,0x0000,0xdb63, +0xdb61,0xb5d0,0xdba5,0xdb6a,0xdba8,0x0000,0xdba9,0xb5d8, +0xb5dd,0xb5d9,0xb5e1,0xdb7e,0xb5da,0xdb76,0xdb66,0x0000, +0xb5d2,0xdb5e,0xdba2,0xdbab,0xdb65,0xb5e0,0xdbb0,0xdb71, +/* 0x8400 */ +0x0000,0xdb6d,0x0000,0xb5d1,0xb5e5,0x0000,0xdb7c,0xb5e7, +0x0000,0xdb78,0xb5dc,0xb5d6,0xb5de,0xb5d3,0xb5e4,0xdb79, +0xdb67,0xdb7b,0xdb62,0xdba6,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xdbae,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xdb5f,0x0000,0x0000,0x0000,0x0000, +0x0000,0xdfc7,0x0000,0xdfdd,0xb855,0xdfcc,0x0000,0xdfca, +0xdfb5,0xb8a9,0xdfc5,0xdfd9,0xdfc1,0xb8b1,0xdfd8,0xdfbf, +0xb5e3,0xdfcf,0xdfc0,0xdfd6,0xb8b0,0xb8a8,0x0000,0xdfaa, +0xdfb2,0x0000,0xdfcb,0xdfc3,0xdfdc,0xdfc6,0xb8b6,0xdfd7, +0x0000,0xb8ad,0x0000,0xdfc9,0xdfd1,0xdfb6,0xdfd0,0x0000, +0xdfe1,0xdfb1,0xdfd2,0x0000,0xdfdf,0x0000,0xdfab,0xb5db, +0x0000,0xdfb9,0xdfb8,0xb8af,0x0000,0xdfbc,0xdfbe,0xdfcd, +0xdfde,0xb8b2,0x0000,0xb8b3,0x0000,0xdfb0,0xb8ab,0xdfb4, +0xdfda,0xb8b4,0x0000,0xb8ac,0xb8ae,0xb8b5,0xdfe0,0xdfd3, +0xdfce,0x0000,0x0000,0xdfbb,0xdfba,0xb8aa,0xdfac,0xb8a7, +0xdfc4,0xdfad,0xdfc2,0x0000,0x0000,0xdfb7,0xdfdb,0x0000, +0x0000,0x0000,0xb8a6,0x0000,0x0000,0x0000,0xdfb3,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xdfaf,0xdfd5,0xdfae, +0xbb60,0xe3d3,0x0000,0x0000,0xe3c2,0x0000,0x0000,0xe3ac, +0xe3ca,0xbb58,0xe3bb,0xe3c5,0xbb5b,0xe3be,0xbb59,0xe3af, +0xe3cd,0xe3ae,0xe3c1,0x0000,0xe3ad,0x0000,0x0000,0xe3bf, +0xe3c8,0xe3c6,0xe3ba,0xe3b5,0xe3b3,0x0000,0xe3b4,0xe3c7, +0xe3d2,0xe3bc,0xbb5a,0x0000,0xe3b7,0x0000,0xe3cb,0x0000, +0xbb5d,0xe3b6,0xe3b0,0xe3c0,0xbb61,0x0000,0x0000,0xbb55, +0xbb5e,0xe3b8,0xe3b2,0x0000,0xbb57,0xdfd4,0xbb56,0xe3c3, +0x0000,0xbb54,0xbb63,0xbb5c,0xe3c4,0xe3b9,0xe3b1,0xe3cc, +0xe3bd,0xbb62,0xe3d0,0xbb5f,0xe3cf,0x0000,0xe3c9,0xe3ce, +0x0000,0x0000,0x0000,0xe3d1,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xe773, +0xe774,0xe767,0xe766,0xe762,0xbdb4,0x0000,0xbdac,0xe776, +0xe775,0xdfa9,0xe75f,0xe763,0xe75d,0x0000,0xe770,0xe761, +0x0000,0xe777,0xe75a,0xe758,0xe764,0xe76e,0xe769,0xbdb6, +0xe74f,0x0000,0xe76d,0x0000,0x0000,0x0000,0xbdb7,0xdfbd, +0xe75b,0xe752,0xe755,0xe77b,0xe75c,0xe753,0xe751,0xe74e, +0x0000,0xbdb0,0xe765,0xbdaf,0xbdb3,0xe760,0xe768,0xbda9, +0xe778,0xe77c,0xbdab,0x0000,0xe757,0xe76b,0xe76f,0xe754, +0xe779,0xbdb2,0x0000,0xbdb1,0xe74c,0xbdb5,0xe772,0xe756, +0xe76a,0xe750,0xe75e,0xe759,0xbdad,0xbdae,0xe76c,0xe77d, +0xe77a,0xe771,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xe74d,0x0000,0xbdaa,0xeb49,0x0000, +0xeb40,0xeb43,0x0000,0xbfbb,0xeb45,0xeaf9,0xeb41,0xeb47, +0xbfb8,0xbfbc,0xbfb6,0x0000,0x0000,0xeafb,0xeb4c,0x0000, +0x0000,0xeb46,0x0000,0xeafc,0xeb55,0xeb4f,0xeaf8,0xee46, +0xeafe,0xbfb7,0x0000,0xeb4a,0x0000,0xeb54,0xbfbf,0x0000, +0xeb51,0xeafd,0xeb44,0xeb48,0xeb42,0xeb56,0xeb53,0xeb50, +0xbfb9,0xbfba,0xbfbe,0xeafa,0xeb57,0xbfbd,0xeb4d,0x0000, +0x0000,0xeb4b,0x0000,0x0000,0x0000,0xeb4e,0xee53,0xee40, +0xee45,0xee52,0xee44,0xedfb,0xee41,0x0000,0xc1a2,0x0000, +0xedf4,0xee4d,0xee4f,0xedf3,0xc1a1,0xee51,0xee49,0xc1a8, +0xee50,0xee42,0xc1aa,0xedf9,0xeb52,0xee4a,0xee47,0xedf5, +0xee55,0xc1a4,0x0000,0x0000,0xc1a5,0xedf7,0xee48,0x0000, +0xee54,0xee4b,0xedfd,0xc1a7,0xc1a3,0xee4c,0xedfe,0xee56, +0xedf8,0xee43,0xee4e,0xedfa,0xedfc,0x0000,0xc2cb,0xedf6, +0xc1a9,0xc2c4,0xc17e,0x0000,0x0000,0x0000,0x0000,0xc1a6, +0xc2c8,0xf0b3,0x0000,0xf0a9,0xf0a4,0xf0aa,0xf0b4,0xf0b8, +0xf0b7,0xc2ca,0xc2c9,0x0000,0x0000,0xf0ab,0xf0b9,0xf0ae, +0xf0a6,0x0000,0xf0a8,0xf0a7,0xf0ad,0xf0b2,0xf0a5,0xf0ac, +0xf0b1,0xc2c7,0x0000,0xf0af,0x0000,0xc2c5,0xf0b0,0xc2c3, +0xc2c6,0xf2d5,0xf0b5,0x0000,0x0000,0xc3c2,0x0000,0xf2cd, +0xf2d1,0xf2c9,0xf2cc,0x0000,0xf2d4,0xc3c0,0xf2d9,0xf2d2, +0x0000,0xf2ca,0xf2da,0xf2d3,0xc3c3,0xc3c4,0xf2d7,0x0000, +0xf2cb,0xc3bf,0xc3c1,0xf2c6,0xf2ce,0xf2c8,0x0000,0xf2d8, +0xf2d6,0xf2c7,0xf2cf,0x0000,0x0000,0x0000,0xf4be,0xc3c5, +0xf2d0,0xc4a7,0xc4a9,0xc4a6,0x0000,0xf4c3,0xf4bb,0xf4b9, +0xf4bd,0xf4ba,0x0000,0x0000,0xf4bf,0xf4c1,0xc4aa,0xc4ac, +0x0000,0xf4c0,0xc4ad,0xc4ab,0xf4c2,0x0000,0x0000,0x0000, +0x0000,0xc4a8,0x0000,0x0000,0x0000,0x0000,0x0000,0xc4f4, +0xf5f1,0xf5f7,0xc4f6,0xf4bc,0xf5f6,0x0000,0xf5fd,0xf5f4, +0xf5fb,0xf5fa,0xf4b8,0xf5f5,0xf0b6,0xf5fe,0xf5f3,0xf5f8, +0x0000,0xf5fc,0xf5f2,0x0000,0xf74a,0xc4f5,0xf5f9,0x0000, +0x0000,0xf7f4,0xf74b,0xf749,0xf747,0xf748,0xf74c,0x0000, +0xc5d9,0xf7f2,0xf7f0,0xf7f5,0xf7f3,0x0000,0xf7f6,0xc5da, +0xf7f1,0x0000,0x0000,0xf8bc,0x0000,0x0000,0xf945,0xf946, +0xf947,0x0000,0x0000,0xf9c7,0xf9bd,0xca4f,0xaaea,0x0000, +0xad68,0x0000,0xd3b8,0xd3b7,0xb040,0xb342,0xd77c,0x0000, +0x0000,0xd77b,0x0000,0xb5ea,0xb8b8,0x0000,0xb8b7,0xb8b9, +0x0000,0xe3d4,0xe77e,0xeb58,0xeb5a,0xeb59,0x0000,0xc1ab, +0xee57,0xf0ba,0xf9a5,0xa6e4,0x0000,0xcdc9,0xcdca,0xcdc8, +0xcdc7,0xaaeb,0x0000,0xd0a9,0xd0a7,0x0000,0x0000,0xd0a6, +0x0000,0xad69,0xad6b,0xad6a,0xd0a8,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xd3c4,0xd3c1,0xd3bf, +0x0000,0x0000,0xb041,0xd3c2,0xb046,0xd3bc,0xd3cb,0x0000, +0xd3cd,0xd3bd,0x0000,0xb043,0xd3ce,0xd3c9,0xd3bb,0xd3c0, +0xd3ca,0xd3c6,0xd3c3,0x0000,0xb048,0xd3cc,0xd3be,0x0000, +0x0000,0xd3c7,0xd3b9,0xb047,0xb044,0xd3c5,0x0000,0xd3c8, +0xd3ba,0xb045,0xb042,0x0000,0x0000,0x0000,0x0000,0xb34c, +0xd7a5,0xb34b,0x0000,0xd7a8,0xd7ab,0xb348,0xb346,0xd77e, +0xd7a9,0xd7a7,0xd7a4,0xd7ac,0xd7ad,0xd7af,0xd7b0,0xd77d, +0xb345,0xd7a2,0xd7a1,0xd7ae,0xb347,0xd7a3,0xb349,0xb344, +0xd7a6,0xb34d,0x0000,0xb34a,0xd7aa,0x0000,0x0000,0x0000, +0xb5f1,0xdbbf,0x0000,0xdbb4,0xb5ee,0x0000,0xdfe7,0xdbbd, +0xdbb1,0xb5ec,0xdbb6,0xb5ef,0xdbba,0xdbb8,0xb5f2,0xb5eb, +0x0000,0x0000,0xdbb2,0xdbb5,0xb5f0,0x0000,0xdbb3,0x0000, +0xdbbe,0xdbbc,0xdbb7,0xdbb9,0xdbbb,0xb5ed,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xdfe8,0xdfee,0xdfe4, +0xdfea,0xb8ba,0xdfe6,0xb8c0,0x0000,0x0000,0xb8bf,0x0000, +0xb8be,0xdfed,0xb8c1,0xb8c2,0xdfe3,0xdff0,0xb8c3,0xb8bd, +0xb8bc,0xdfec,0xb8c4,0xdfe2,0xdfe5,0xdfef,0xdfeb,0x0000, +0x0000,0xe3f4,0xe3e9,0xb8bb,0x0000,0x0000,0x0000,0x0000, +0xbb6a,0xe3dd,0xe3f2,0xe3de,0xbb65,0x0000,0xe3db,0x0000, +0xe3e4,0xe3dc,0xbb67,0xe3d6,0xe3f1,0xbb68,0xe3ee,0xe3ef, +0xe3d7,0xbb6d,0xe3e6,0x0000,0xe3e0,0xe3e7,0xe3da,0x0000, +0xe3f3,0xe3eb,0xe3e5,0xe3d5,0xbb69,0xe3ec,0x0000,0xbb6c, +0xe3f0,0x0000,0xe3ea,0xbb66,0xe3e8,0x0000,0xe3e2,0xbb64, +0xe3d9,0xe3e1,0xe3ed,0xe3df,0x0000,0x0000,0xe3e3,0x0000, +0x0000,0x0000,0x0000,0x0000,0xbdc1,0xdfe9,0xe7b2,0xe7bb, +0xe7b1,0xe7ad,0xe7aa,0xbdc2,0xe7a8,0xbb6b,0xe7a1,0xbdc0, +0xe7a7,0xbdbf,0xe7ac,0xe7a9,0xe7b9,0xe7b4,0xe7ae,0xe7b3, +0xbdbb,0xe7ab,0xe7be,0xe7a2,0xe7a3,0xe7ba,0xbdbc,0xe7bf, +0xbdbe,0xe7c0,0xe7b0,0xe3d8,0xe7b6,0xe7af,0xe7b8,0xe7b5, +0x0000,0x0000,0x0000,0xe7a6,0xbdb9,0xe7bd,0xbdba,0xe7a4, +0xbdbd,0xeb64,0xe7b7,0xe7bc,0x0000,0x0000,0x0000,0x0000, +0x0000,0xeb61,0xbdb8,0xbfc0,0xeb6b,0xeb67,0x0000,0xeb65, +0xeb60,0xeb6f,0x0000,0x0000,0x0000,0xbfc4,0x0000,0xeb5c, +0xeb68,0xeb69,0xeb5f,0xeb5e,0xeb6c,0x0000,0xeb62,0xeb5d, +0xeb63,0x0000,0xeb6e,0xeb5b,0xeb6d,0xeb6a,0xbfc2,0xbfc1, +0x0000,0x0000,0xbfc3,0xeb66,0xf0cb,0x0000,0x0000,0x0000, +0x0000,0x0000,0xee59,0xc1b1,0xee5d,0xee5a,0xee61,0xee67, +0xee5c,0x0000,0xee70,0xc1ae,0xee6a,0xee5f,0xee6b,0xee66, +0xee6d,0xee5e,0xc1b3,0xc1b2,0xee60,0xee6e,0xee58,0xee6c, +0xc1ac,0x0000,0xee64,0xee63,0xee68,0xee5b,0xc1b0,0x0000, +0xc1b4,0xee62,0xee69,0xc1b5,0xee65,0x0000,0x0000,0x0000, +0x0000,0xc1ad,0xc1af,0xf0c7,0xf0c5,0x0000,0x0000,0xf0cc, +0xf0c9,0xf0cd,0x0000,0xf0be,0xf0c6,0xf0d1,0xee6f,0xf0c2, +0xc2cf,0xe7a5,0xf0bd,0xf0ca,0xf0c4,0xf0c1,0xf0bc,0xf0bb, +0xf0d0,0x0000,0xf0c0,0xf0bf,0xc2cd,0xf0c8,0x0000,0xc2cc, +0x0000,0x0000,0xc2ce,0xf0c3,0xf0cf,0x0000,0xf2de,0xf2df, +0x0000,0xc3c9,0xf2dc,0xc3c6,0xf2e4,0x0000,0xc3ca,0xf2e6, +0xf2db,0xf0ce,0xf2e8,0xf2dd,0x0000,0xc3c7,0xf2e3,0x0000, +0xf2e5,0xf2e0,0xf2e7,0xf2e2,0xf2e1,0xc3c8,0x0000,0x0000, +0xf4c5,0xf4c6,0x0000,0xf4c8,0xc4ae,0xc4af,0xf4c9,0xf4c7, +0x0000,0xf4c4,0x0000,0xf642,0xf645,0xf641,0x0000,0xc4fa, +0xf643,0xc4f9,0xc4f8,0xc4f7,0xf644,0xf751,0xf74f,0x0000, +0xf74e,0xf640,0xf750,0xf646,0xf74d,0x0000,0xf7f9,0xf7d7, +0xf7f7,0xc5db,0xf7f8,0xf7fa,0x0000,0xf8bf,0xc5fa,0xf8be, +0xf8bd,0xc5fb,0x0000,0xc65a,0xf96e,0xf9a7,0xf9a6,0xf9a8, +0xa6e5,0xd0aa,0x0000,0xd3cf,0xd3d0,0x0000,0x0000,0x0000, +0xdbc0,0x0000,0xf647,0xf8c0,0xa6e6,0xad6c,0xd0ab,0x0000, +0x0000,0x0000,0xd7b1,0xb34e,0x0000,0xdbc2,0xdbc1,0xb5f3, +0x0000,0xb8c5,0xe7c1,0xbdc3,0x0000,0xbdc4,0x0000,0x0000, +0x0000,0xbfc5,0xc5fc,0xa6e7,0x0000,0x0000,0x0000,0xd0ac, +0xaaed,0xd0ae,0xd0ad,0xad6d,0x0000,0xd3d1,0x0000,0xd3d8, +0xb049,0xd3d6,0xd3d4,0x0000,0xd3db,0xd3d2,0xd3d3,0xb04a, +0x0000,0xb04e,0x0000,0x0000,0xd3dc,0xb04d,0xd3da,0xd3d7, +0xd3d5,0xb04b,0xb04c,0xd3d9,0x0000,0x0000,0x0000,0x0000, +0xb350,0xd7b2,0x0000,0xb355,0xd7c2,0xb354,0xd7c4,0x0000, +0x0000,0xd7b8,0xb352,0xd7c3,0x0000,0xd7b3,0xb353,0xd7bf, +0xd7bb,0xd7bd,0xd7b7,0xd7be,0x0000,0x0000,0xb34f,0xd7ba, +0x0000,0xd7b9,0xd7b5,0x0000,0xd7c0,0x0000,0x0000,0xd7bc, +0xd7b4,0x0000,0xd7b6,0xb351,0xd7c1,0x0000,0x0000,0x0000, +0x0000,0xb5f6,0xdbcd,0x0000,0x0000,0x0000,0xdbc9,0xdbcb, +0xdbc6,0xdbc5,0xdbc3,0x0000,0xdbca,0xdbcc,0xdbc8,0x0000, +0xdbc7,0xb5f4,0xb5f5,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xdbcf,0xb8cd,0xdff2,0xdff8,0xdff3,0xdff4,0xf9d8, +0xdff9,0x0000,0xb8cf,0x0000,0xb8c7,0xb8ce,0xdff1,0xdbc4, +0xb8ca,0xb8c8,0xdff7,0xdff6,0xb8c9,0xb8cb,0xdff5,0xb8c6, +0x0000,0xb8cc,0x0000,0x0000,0x0000,0x0000,0x0000,0xe3f6, +0xbb74,0x0000,0x0000,0xe442,0xe441,0x0000,0xe3fb,0xbb76, +0xe440,0xe3f7,0xe3f8,0xbb6e,0xbb70,0x0000,0xe3fd,0xe3f5, +0xbb72,0xbb71,0xe3f9,0xe3fe,0xe3fc,0xbb73,0xe3fa,0x0000, +/* 0x8900 */ +0x0000,0xdbce,0xbb6f,0x0000,0x0000,0xe7c2,0xe7c9,0xbdc6, +0x0000,0xe7cd,0xbdca,0xe7c5,0xe7c3,0x0000,0xe7cc,0x0000, +0xbdc5,0xe7cb,0xbdc7,0xbdc8,0xe7c4,0xbdc9,0xe7ca,0xe7c6, +0xe7c7,0xe7c8,0xbb75,0x0000,0x0000,0x0000,0xeb70,0xeb7c, +0x0000,0xbfca,0xeb77,0xeb79,0x0000,0xbfc8,0xeb71,0xeb75, +0x0000,0xeb78,0xbfc6,0xbfc9,0xeb7b,0xeb73,0xeb74,0xeb7a, +0xeb72,0xeb76,0xbfc7,0xee72,0x0000,0xee71,0xc1b7,0xee77, +0xc1b9,0x0000,0x0000,0xc1b6,0xee73,0xc1ba,0xee74,0x0000, +0x0000,0xee75,0xee78,0x0000,0xc1b8,0x0000,0xf0d6,0x0000, +0x0000,0xf0d9,0x0000,0xf0d3,0xf0d5,0x0000,0x0000,0xf0d4, +0xf0d7,0xf0d8,0xee76,0xf0d2,0x0000,0x0000,0xc3cd,0xf2ec, +0xf2ef,0xf2f1,0xf2ea,0xf2eb,0xf2ee,0xf2f0,0xc3ce,0xc3cc, +0xc3cb,0xf2ed,0xf2e9,0xf4ca,0xc4b0,0x0000,0xf4cb,0x0000, +0x0000,0xf649,0xc4fb,0xf64b,0xc4fc,0xf648,0xf64a,0xc5a8, +0x0000,0xf752,0xc5a7,0xf7fd,0xf7fc,0x0000,0xf7fb,0x0000, +0x0000,0xf948,0xf949,0xf94b,0xf94a,0x0000,0xca50,0xa6e8, +0x0000,0xad6e,0xd7c5,0xb5f7,0x0000,0xdffa,0xc2d0,0x0000, +0xf2f2,0x0000,0x0000,0xa8a3,0x0000,0x0000,0x0000,0xb357, +0x0000,0x0000,0x0000,0xb356,0x0000,0xdbd0,0xb5f8,0xdbd2, +0xdbd1,0x0000,0x0000,0xdffb,0xb8d0,0xe443,0xe446,0xe445, +0x0000,0xe444,0xe7ce,0xe7d0,0xe7cf,0x0000,0xbfcc,0x0000, +0x0000,0x0000,0xbfcb,0x0000,0xc1bb,0xee79,0xee7b,0xee7a, +0x0000,0x0000,0xc2d1,0x0000,0x0000,0x0000,0xf2f4,0xf2f3, +0x0000,0xf4cc,0xc4b1,0x0000,0x0000,0xc4fd,0xf754,0xf753, +0xc65b,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xa8a4,0xd0af,0xad6f,0xd7c8,0xd7c6,0x0000, +0x0000,0xd7c7,0xdbd4,0xdbd5,0xe043,0xdbd3,0x0000,0xdffc, +0xe041,0xe040,0xe042,0xb8d1,0xdffe,0xdffd,0xe044,0x0000, +0xe449,0xe447,0x0000,0xe448,0xe7d3,0xe7d1,0x0000,0x0000, +0xe7d2,0xeb7d,0xee7c,0xee7d,0xc2d2,0x0000,0xf2f5,0xf4cd, +0xc4b2,0x0000,0xf64c,0xf755,0xc5a9,0x0000,0xf7fe,0xf94c, +0xa8a5,0x0000,0xad71,0xad72,0xd0b0,0x0000,0x0000,0xd0b1, +0xad70,0x0000,0xb054,0x0000,0xb052,0x0000,0xb051,0xb058, +0xb050,0xb059,0xd3dd,0xb056,0x0000,0xb053,0xb057,0xb055, +0xb04f,0x0000,0x0000,0xb35f,0x0000,0xb359,0xd7cc,0xb35e, +0x0000,0x0000,0xb360,0xb35a,0x0000,0xb35b,0x0000,0xd7ca, +0x0000,0x0000,0xb358,0x0000,0xd7cb,0xb35d,0x0000,0x0000, +0xd7c9,0xb35c,0x0000,0x0000,0xb644,0x0000,0xb646,0x0000, +0x0000,0xdbd8,0xb645,0xb5f9,0xb5fd,0x0000,0xb8e4,0xe049, +0xdbda,0xb5fe,0x0000,0x0000,0xdbdd,0xdbde,0xb643,0x0000, +0xdbe0,0x0000,0xdbe2,0x0000,0xdbe3,0xdbd7,0xdbd6,0xdbe4, +0xb642,0xdbe1,0xdbdf,0x0000,0xb640,0xb5fb,0xb647,0xdbdb, +0xdbdc,0xdbd9,0x0000,0xb641,0x0000,0x0000,0xb5fc,0x0000, +0xb5fa,0xe048,0xb8df,0xb8da,0x0000,0x0000,0xb8d5,0x0000, +0xb8e5,0xb8d6,0x0000,0xb8d2,0xb8e1,0xb8de,0xb8e0,0x0000, +0xb8d7,0xb8dc,0xb8d3,0xb8d4,0xe050,0xe04d,0xe045,0xe04a, +0x0000,0xb8e2,0xe051,0xb8e3,0xb8d9,0x0000,0x0000,0xe047, +0x0000,0xe04f,0xe04b,0xe04e,0xe04c,0xb8dd,0xe046,0xb8d8, +0x0000,0x0000,0x0000,0xe44c,0xbb78,0xbb7b,0x0000,0xe44e, +0x0000,0xbba5,0xe44d,0xbb7d,0x0000,0xbdcf,0xe44f,0x0000, +0xbba4,0xe44b,0xbba6,0x0000,0x0000,0x0000,0xbb79,0x0000, +0xb8db,0xbb7c,0x0000,0xbb7a,0xbb7e,0xbba2,0xbb77,0xbba7, +0xbba3,0x0000,0xbba1,0xe44a,0x0000,0x0000,0x0000,0x0000, +0xbdd6,0x0000,0xbdd2,0x0000,0x0000,0x0000,0xbdd9,0x0000, +0xe7d6,0xbdda,0xe7e2,0xe7db,0xbdcb,0xe7e3,0xe7dd,0xbdd5, +0xe7de,0x0000,0xbdd4,0xe7e1,0xbdce,0xe7df,0xe7d5,0xbdcd, +0xebaa,0xbdd3,0x0000,0xbdd0,0x0000,0xbdd8,0x0000,0xe7d4, +0x0000,0xe7d8,0xbdcc,0xe7d7,0xe7d9,0xe7da,0xbdd7,0xe7dc, +0xe7e0,0xe7e4,0x0000,0xbddb,0xbfd2,0xeba5,0xebab,0xeba8, +0xeb7e,0xebac,0xeba1,0x0000,0xeba7,0x0000,0xbfcd,0xbfd3, +0xebad,0x0000,0x0000,0xbfcf,0x0000,0xbfd9,0xbfd4,0xebaf, +0xeba9,0xbfd0,0xeba2,0xbfda,0xeba3,0xeba4,0xbfdb,0xbfd8, +0xbdd1,0x0000,0xbfce,0xebb0,0xbfdc,0x0000,0xbfd5,0xebae, +0xbfd1,0xbfd6,0xbfd7,0x0000,0xc1c3,0xeea4,0xeead,0xeeaa, +0xeeac,0x0000,0xc1c0,0xeea5,0x0000,0xeeab,0xc1bc,0xeea7, +0xc1c4,0xeea3,0xeea8,0xeeaf,0xeba6,0xeea9,0xeea2,0xc1bd, +0xeea1,0xc1be,0xeeb0,0xc1bf,0xeeae,0xc1c2,0xee7e,0x0000, +0xc1c1,0x0000,0xeea6,0xf0dc,0xf0ea,0xf0e5,0xf0e7,0xf0db, +0xc2d3,0x0000,0xf0da,0xc2d6,0xc2d5,0x0000,0xf0e9,0xf0e1, +0xf0de,0xf0e4,0x0000,0xf0dd,0x0000,0xf0df,0xf0e8,0xf0e6, +0x0000,0xc2d4,0xf0ed,0xf0eb,0xf0e2,0xf0ec,0xf0e3,0x0000, +0xf2f9,0xc3cf,0xf341,0x0000,0x0000,0xf64f,0xc3d6,0xf0e0, +0xf2f7,0xc3d2,0xf2f8,0xf2fd,0x0000,0x0000,0xc3d4,0xc3d5, +0xf2f6,0xf340,0xf342,0xf2fa,0xf2fc,0xf2fe,0xf2fb,0xf343, +0xc3d1,0xc3d7,0xc3d3,0x0000,0xc3d0,0xf4d0,0x0000,0xc4b7, +0xf4ce,0x0000,0x0000,0xf4d2,0x0000,0xf4d3,0xc4b5,0xf4d4, +0xf4d1,0x0000,0xf4cf,0xc4b8,0xc4b4,0xf4d5,0x0000,0xc4b6, +0xc4b3,0x0000,0x0000,0x0000,0xc4fe,0x0000,0x0000,0xc540, +0xf64e,0xf64d,0xf650,0xf651,0x0000,0xc541,0xf756,0xf75b, +0xc5aa,0x0000,0xf758,0x0000,0xf757,0xf75a,0xf759,0x0000, +0xf843,0x0000,0xc5dc,0xf842,0xf840,0x0000,0xf841,0x0000, +0x0000,0x0000,0xc5fe,0xc5fd,0xf8c1,0xf8c2,0xc640,0x0000, +0xf94d,0xf94e,0xc667,0x0000,0xc66d,0x0000,0xf9a9,0xf9c8, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x8c00 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xa8a6, +0x0000,0xd7cd,0x0000,0xd7ce,0xe052,0xe450,0xe7e5,0xc1c6, +0x0000,0xc1c5,0xf0ee,0xf344,0x0000,0xf844,0xa8a7,0xd3de, +0xb05a,0xb361,0xe054,0xe053,0xbddc,0xe7e6,0xbddd,0xeeb1, +0xc2d7,0x0000,0x0000,0x0000,0xc676,0xa8a8,0xcdcb,0xd3df, +0x0000,0x0000,0xb362,0x0000,0xd7cf,0xd7d0,0x0000,0xdbe5, +0x0000,0xb648,0xb8e6,0x0000,0xe056,0xe055,0xe057,0x0000, +0xe451,0xe452,0xbba8,0xbfdd,0xbdde,0xbfde,0x0000,0xeeb5, +0xeeb2,0xeeb4,0xeeb3,0xc1c7,0x0000,0xf0ef,0xf346,0xf345, +0xcba4,0xb05c,0xb05b,0xd3e0,0x0000,0xd7d1,0x0000,0x0000, +0xdbe7,0xdbe6,0xb649,0x0000,0xe059,0xe05a,0xe058,0x0000, +0x0000,0xb8e8,0xb8e7,0x0000,0xbbaa,0xbba9,0x0000,0xe7e7, +0xebb3,0xebb1,0xebb2,0xbfdf,0xeeb7,0xeeb6,0x0000,0xf0f2, +0xf0f1,0xf0f0,0xf347,0x0000,0xf9aa,0xa8a9,0xad73,0x0000, +0xad74,0xb05d,0xb05e,0xd3e2,0xd3e1,0xd7d2,0x0000,0xb368, +0xb366,0xb363,0xb367,0xb365,0xb364,0x0000,0x0000,0xb64a, +0xdbea,0x0000,0xb8ed,0xb64c,0xb651,0xdbec,0xb653,0xb652, +0xb655,0xdbeb,0xdbe8,0xb64f,0xb64b,0xb64d,0xdbe9,0xb654, +0xb650,0xb64e,0xb8ef,0xb8ee,0xb8ec,0xb8f0,0x0000,0xb8ea, +0xb8eb,0x0000,0xb8e9,0x0000,0xe05b,0x0000,0x0000,0xe454, +0x0000,0xbbac,0xbbad,0xbbab,0x0000,0xe453,0x0000,0xe455, +0x0000,0xe7ea,0xe7ec,0x0000,0xbde7,0xe7ed,0xbde0,0xe7e9, +0xbddf,0xbde9,0xbde5,0xbde6,0xbde2,0xe7e8,0xbde1,0xe7ee, +0xe7eb,0x0000,0xbde8,0x0000,0xbde3,0xbde4,0xebb5,0x0000, +0xebb7,0xebb6,0x0000,0xebb8,0xbfe0,0xebb4,0x0000,0x0000, +0xc1cb,0xeeb8,0xc1c8,0xc1cc,0xc1ca,0xc1c9,0xf0f3,0x0000, +0xf0f6,0x0000,0xf0f5,0x0000,0xf0f4,0xc2d8,0xf348,0xf349, +0xc3d8,0xf34a,0xc3d9,0x0000,0x0000,0xc4ba,0x0000,0xc4b9, +0xf652,0x0000,0x0000,0xc542,0xf653,0xf75c,0xc5ab,0xc5ac, +0x0000,0xf845,0x0000,0xc642,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xa8aa,0x0000,0xb36a,0xb369, +0xe05c,0xe05d,0x0000,0xbbae,0xebb9,0xbdea,0xebba,0xeeb9, +0xa8ab,0x0000,0xd0b2,0xad76,0xad75,0x0000,0xd3e3,0xb05f, +0xd3e4,0xd7d5,0x0000,0xd7d4,0x0000,0xd7d3,0x0000,0x0000, +0xdbee,0xb658,0x0000,0x0000,0xdbed,0xb657,0x0000,0x0000, +0x0000,0xdbef,0xb656,0x0000,0xe05f,0xe062,0xe060,0xe061, +0xe065,0xe05e,0xe066,0xe063,0xe064,0xbbb0,0xe456,0x0000, +0x0000,0xbbaf,0x0000,0xe7f2,0xe7f0,0x0000,0x0000,0xbdeb, +0xe7ef,0xe7f1,0x0000,0xbdec,0x0000,0xebbb,0x0000,0xebbc, +0xc1cd,0x0000,0xf34c,0xf34e,0xf34b,0xf34d,0xf4d6,0xf654, +0x0000,0x0000,0xf96f,0xa8ac,0xad77,0xd3e5,0xd3e7,0xd3e6, +0x0000,0xd7d8,0xb36c,0x0000,0xd7d6,0x0000,0xb36b,0xd7d9, +0x0000,0xd7da,0xd7d7,0x0000,0x0000,0xdbfb,0xb660,0xdbf3, +0xdbf9,0x0000,0x0000,0xb65b,0xb65e,0xdbf2,0xb659,0xdbf6, +0xe06c,0xb65d,0x0000,0xdbf1,0x0000,0xdbf7,0xdbf4,0xdbfa, +0xdbf0,0xdbf8,0xb65c,0xb65f,0xdbf5,0xb65a,0x0000,0xb8f2, +0xe068,0xb8f1,0xe06f,0xe06e,0xb8f8,0x0000,0xb8f9,0xe070, +0xb8f3,0xe06d,0xb8f7,0xe072,0xe069,0x0000,0xe06b,0xb8f4, +0xe067,0xe06a,0xe071,0xb8f5,0xe073,0x0000,0x0000,0x0000, +0x0000,0x0000,0xb8f6,0x0000,0xbbb1,0xe45b,0xe461,0xe459, +0xe462,0x0000,0xe458,0xe45d,0xe463,0xe460,0xe45f,0xe45e, +0x0000,0xe457,0xe45c,0x0000,0x0000,0xe45a,0x0000,0xbdf1, +0xbdee,0xe7fb,0xe841,0xe843,0xe840,0xe7f8,0xe7fa,0xe845, +0xe842,0xe7fc,0xe846,0xe7f9,0xe844,0xbdef,0xbdf5,0xbdf3, +0xe7f3,0xbdf4,0xbdf0,0xe7f4,0xe7f6,0xe7f5,0xe7fd,0xe7fe, +0x0000,0xbdf2,0x0000,0xbded,0x0000,0x0000,0xe7f7,0x0000, +0xebc6,0xbfe2,0x0000,0xebbd,0xbfe3,0xbfe6,0xebc2,0x0000, +0xebbf,0xbfe5,0x0000,0x0000,0xebc3,0xebc4,0xebbe,0xebc7, +0xebc0,0xebc5,0xbfe4,0x0000,0xbfe1,0xebc1,0x0000,0xeebf, +0xc1d0,0xc1ce,0xc1d1,0xc1cf,0xeebe,0xeebb,0xeeba,0x0000, +0xeebd,0x0000,0x0000,0xeebc,0xf145,0xc2de,0xf0fb,0xf0fa, +0x0000,0xc2d9,0xf141,0xf140,0xf0f7,0xf143,0xf0fc,0xc2dd, +0xf0f9,0xf142,0xf0f8,0xc2da,0xc2dc,0xf0fd,0xc2db,0xf0fe, +0x0000,0xf144,0xf352,0x0000,0xc3de,0xf34f,0x0000,0xf353, +0x0000,0x0000,0xc3db,0xf351,0xc3e0,0x0000,0xc3dd,0x0000, +0xf350,0x0000,0xc3df,0xf354,0xc3da,0x0000,0x0000,0x0000, +0x0000,0xc4bc,0xc4be,0x0000,0xf4d9,0xc4bd,0xf4d7,0xc3dc, +0xf4d8,0xc4bb,0xc543,0xc545,0xf656,0xc544,0xf655,0x0000, +0xf761,0xc5ad,0xf760,0xc5ae,0xf75e,0xf75d,0xf762,0xf763, +0xf846,0x0000,0xf75f,0x0000,0x0000,0xf8c6,0xf8c3,0xf8c4, +0xf8c5,0xc65c,0x0000,0xf951,0xf950,0xf94f,0xf970,0x0000, +0xf9be,0xf9ab,0xc66e,0xa8ad,0xb060,0x0000,0x0000,0x0000, +0x0000,0x0000,0xb8fa,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xbdf6,0x0000,0x0000,0xebc8,0x0000,0x0000, +0xc2df,0x0000,0xf355,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xf9ac,0xa8ae,0xaaee,0xad79,0xad78,0x0000,0xb063, +0x0000,0xd3e8,0xb061,0xd3e9,0xb062,0x0000,0x0000,0xd7df, +0xd7db,0x0000,0x0000,0xb36d,0xd7de,0xd7dd,0xd7dc,0xb36e, +0xd7e0,0xd7e1,0x0000,0x0000,0x0000,0xdc43,0xdc41,0xdc45, +0xdc46,0xdc4c,0x0000,0xdc48,0xdc4a,0x0000,0xdc42,0xdbfc, +0x0000,0xdc49,0x0000,0x0000,0xdc4b,0xdc44,0xdc47,0xdbfd, +0xb662,0xdc40,0xdbfe,0xb661,0xb663,0x0000,0xb8fd,0xe075, +0xe077,0xe076,0xe07b,0xb8fb,0x0000,0xe078,0xe074,0xe079, +0xe07a,0xb8fc,0xb8fe,0xe07c,0x0000,0xe467,0xe466,0x0000, +0xe464,0xe465,0xbbb3,0xbbb5,0xbbb2,0xbbb4,0xe84d,0xe84e, +0xe849,0x0000,0xe84a,0xbdf8,0xbdfd,0xbdf7,0xbdfe,0xbdf9, +0xe84b,0x0000,0x0000,0xe84c,0xe848,0xbe40,0xbdfb,0x0000, +0x0000,0xbdfa,0xbdfc,0x0000,0xe847,0x0000,0xebca,0xbfe8, +0x0000,0x0000,0xebcc,0xbfea,0xebcf,0xebcb,0xebc9,0xebce, +0xbfe9,0xebcd,0x0000,0xbfe7,0x0000,0x0000,0xc1d3,0xc1d6, +0xeec1,0x0000,0xc1d4,0xeec0,0xc1d2,0xc1d5,0xf146,0xf147, +0xf148,0xc2e0,0x0000,0xf149,0x0000,0xc2e1,0xc3e2,0xf358, +0xf359,0xf357,0xf356,0xf35a,0xc3e1,0xf4dd,0xf4db,0xf4dc, +0xf4de,0xf4da,0xf4df,0xf658,0x0000,0xf659,0xf657,0xc546, +0xf764,0xc5af,0xf765,0xf848,0xf847,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xa8af,0xb664,0x0000,0x0000,0xb940, +0x0000,0x0000,0x0000,0xbbb6,0x0000,0x0000,0xbfec,0x0000, +0xbfeb,0x0000,0x0000,0x0000,0x0000,0xc3e3,0xc47c,0xc547, +0xa8b0,0xb064,0xb941,0x0000,0xf35b,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xcba6, +0x0000,0x0000,0xa8b1,0x0000,0xa8b4,0xa8b3,0xa8b2,0x0000, +0x0000,0xcba5,0x0000,0xcdcd,0x0000,0xcdcf,0xaaef,0x0000, +0x0000,0xaaf1,0xcdcc,0xcdce,0xaaf0,0xcdd1,0xcdd0,0xcdd2, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xd0b6,0xd0b4,0xad7c,0xd0b3,0xada3,0xad7e,0xad7b,0x0000, +0xada4,0x0000,0xad7d,0xada2,0x0000,0xada1,0xd0b5,0x0000, +0xad7a,0x0000,0x0000,0x0000,0xb06a,0xd3eb,0xd3f1,0xb067, +0xb06e,0x0000,0xb069,0xd3ee,0xd3f0,0xb06c,0xd3ea,0xd3ed, +0xb068,0xb065,0xd3ec,0xb06b,0xd3ef,0xb06d,0xb066,0x0000, +0x0000,0x0000,0x0000,0xd7e3,0xd7e6,0xb370,0x0000,0xb37a, +0xb376,0xd7e4,0x0000,0x0000,0xb37e,0xb377,0xb37c,0xb372, +0x0000,0xb36f,0xb371,0xb37d,0xd7e5,0xb375,0xb378,0xb374, +0xb379,0xd7e7,0xb37b,0xb373,0xd7e2,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xdc4d,0xb665,0xdc4f, +0x0000,0xb667,0xb669,0x0000,0xdc4e,0xb666,0xb66a,0x0000, +0xb668,0x0000,0x0000,0x0000,0xb947,0xe0a3,0xb94f,0xe07e, +0x0000,0xb950,0xb945,0x0000,0xe0a1,0x0000,0x0000,0xb94a, +0x0000,0xe0a2,0xb943,0xb942,0x0000,0xb94d,0xb94c,0xb94b, +0xb949,0xb94e,0xe07d,0xb944,0xb946,0xb948,0x0000,0x0000, +0xbbb8,0xbbbb,0x0000,0xbbbf,0xbbb9,0xbbbe,0xbbbc,0x0000, +0xbbb7,0x0000,0xbbbd,0xbbba,0x0000,0x0000,0x0000,0xe852, +0xbe43,0xbe41,0x0000,0xe853,0x0000,0xbe44,0xbe42,0xe851, +0xe850,0x0000,0xbff0,0xe84f,0xbfee,0xbfed,0xebd0,0xbe45, +0xbfef,0xebd1,0xbff2,0xebd2,0xbff1,0xc1d8,0xeec3,0xc1d7, +0xc1dc,0xc1da,0xc1db,0xc2e3,0xc1d9,0xeec2,0xebd3,0xc2e2, +0xc2e4,0x0000,0xc3e4,0xc3e5,0x0000,0xf4e0,0x0000,0xc5de, +0xc5dd,0xa8b6,0x0000,0x0000,0xca55,0xb06f,0x0000,0xca52, +0xca53,0xca51,0x0000,0xca54,0x0000,0x0000,0xcbaa,0xcba7, +0xcbac,0xcba8,0xa8b7,0xa8ba,0x0000,0xcba9,0xa8b9,0xcbab, +0x0000,0x0000,0xa8b8,0x0000,0x0000,0x0000,0x0000,0xcdd5, +0xcdd7,0xaaf4,0xcdd3,0xcdd6,0xcdd4,0xaaf2,0xaaf5,0x0000, +0xaaf3,0x0000,0x0000,0x0000,0x0000,0xd0b8,0xd0bc,0xd0b9, +0x0000,0xada7,0x0000,0xada8,0x0000,0xd0bb,0x0000,0xd0bd, +0xd0bf,0x0000,0xada5,0xd0be,0x0000,0x0000,0xada6,0x0000, +0x0000,0x0000,0x0000,0x0000,0xd7ee,0xd0ba,0xd3f2,0xd3fb, +0xd3f9,0xd3f4,0xd3f5,0xd3fa,0xd3fc,0xb071,0x0000,0xd3f7, +0xd3f3,0xb070,0xb072,0xd3f6,0xd3fd,0xd3f8,0x0000,0x0000, +0xb3a1,0xd7f1,0xd7e9,0xd7ef,0xd7f0,0xb3a2,0x0000,0xd7e8, +0xd7ea,0xd0b7,0xd7ec,0xd7ed,0xd7eb,0xb66c,0x0000,0x0000, +0x0000,0xdc56,0xebd4,0xdc57,0xdc54,0xb3a3,0xb66e,0xdc53, +0xdc59,0xdc58,0xb66b,0xdc5c,0xdc52,0xdc5b,0xdc50,0xdc5a, +0xdc55,0xb66d,0x0000,0xe0aa,0x0000,0xe0a5,0xe0ab,0xe0a6, +0xe0a4,0xe0a7,0xb951,0x0000,0xe0a9,0x0000,0xe0a8,0xb952, +0xbbc1,0xbbc0,0xe46e,0xe471,0xe469,0xe46d,0xbbc2,0xe46c, +0xe46a,0xe470,0xe46b,0xe468,0xe46f,0x0000,0xe859,0xbe48, +0xf14a,0xe856,0xe857,0xe855,0xdc51,0xbe47,0xe85a,0xe854, +0xbe46,0xbe49,0xe858,0xebd5,0xbff3,0xebd6,0xebd7,0x0000, +0xeec4,0xc1dd,0xf14b,0xf14c,0x0000,0x0000,0xf14d,0xf35d, +0xf35c,0xf4e2,0x0000,0xf4e1,0xf65b,0xf65c,0xf65a,0xf766, +0xc5b0,0xa8bb,0xadaa,0xada9,0xb075,0xb074,0xd440,0xd441, +0xd3fe,0x0000,0xb073,0xd7f5,0x0000,0xd7f6,0xd7f2,0xb3a4, +0xd7f3,0x0000,0xd7f4,0x0000,0x0000,0x0000,0x0000,0xdc5f, +0xdc61,0xdc5d,0xdc60,0xb66f,0xdc5e,0xb670,0x0000,0x0000, +0xdd73,0xb955,0xb954,0x0000,0xb953,0x0000,0xe0ac,0xe0ad, +0x0000,0x0000,0xe473,0xe475,0xbbc6,0xbbc3,0x0000,0xbbc5, +0xbbc4,0xe474,0xe472,0x0000,0x0000,0x0000,0x0000,0x0000, +0xe861,0xe85e,0xe85f,0xbe4d,0xe860,0xe85b,0xe85c,0xbe4a, +0x0000,0xbe4b,0xe85d,0xbe4c,0x0000,0xebdb,0x0000,0xebdc, +0xebd9,0xebda,0xbff4,0xebd8,0x0000,0x0000,0x0000,0x0000, +0x0000,0xeec8,0xeec5,0xeec7,0xc1e0,0xeecb,0xc1df,0xeec9, +0xeecc,0xeeca,0xeec6,0xc1de,0x0000,0xf14f,0x0000,0xf150, +0xf14e,0x0000,0xf152,0xc2e5,0xc2e6,0xf35f,0xc3e7,0xf151, +0xf35e,0xc3e6,0xf4e5,0xf4e6,0xc4bf,0xf4e4,0x0000,0xf4e3, +0x0000,0xf65d,0xc548,0x0000,0xf849,0xf8c8,0xf8c7,0x0000, +0xc643,0xc65d,0xf8c9,0xf971,0x0000,0xc66f,0xa8bc,0xaaf6, +0x0000,0xb956,0x0000,0xc4c0,0xa8bd,0xadab,0xb3a5,0xb671, +0xc2e7,0xaaf7,0x0000,0xd0c1,0xd0c0,0xd442,0x0000,0xb078, +0xb076,0xb07a,0xd444,0x0000,0xb079,0xb077,0x0000,0x0000, +0x0000,0x0000,0xd443,0xb3a8,0xd7fc,0x0000,0xb3a7,0xb3a9, +0xd842,0xb3ab,0xd7fe,0xd840,0xd7f7,0xb3aa,0xd843,0x0000, +0x0000,0xd7f9,0x0000,0xd7fa,0xd7f8,0xb3a6,0x0000,0xd841, +0xd7fb,0xd7fd,0x0000,0x0000,0x0000,0xdc6d,0x0000,0xdc6c, +0xdc6a,0xdc62,0xdc71,0xdc65,0xdc6f,0xdc76,0xdc6e,0xb679, +0x0000,0xb675,0xdc63,0x0000,0xdc69,0xb677,0x0000,0xdc68, +0xb678,0xb67a,0xdc6b,0x0000,0xb672,0xb673,0xdc77,0xdc75, +0x0000,0xdc74,0xdc66,0x0000,0xdc72,0x0000,0xb676,0x0000, +0x0000,0x0000,0x0000,0xb674,0xdc73,0xdc64,0xdc67,0xdc70, +0x0000,0x0000,0x0000,0x0000,0x0000,0xe4ba,0xe0b7,0x0000, +0xe0b0,0xe0c3,0xe0cc,0xe0b3,0xb961,0x0000,0xe0c0,0xb957, +0xb959,0xb965,0xe0b1,0x0000,0x0000,0xb95a,0xb95c,0xb966, +0xb95b,0x0000,0x0000,0x0000,0x0000,0xb964,0xe0b9,0x0000, +0xe0ae,0xb962,0xe0b8,0xb95e,0xe0ca,0xb963,0xe0c8,0xe0bc, +0xe0c6,0xb960,0xe0af,0xe0c9,0xe0c4,0x0000,0xe0cb,0xb958, +0x0000,0x0000,0xb967,0xb95d,0x0000,0x0000,0xe0b5,0x0000, +0xe0bd,0xe0c1,0x0000,0xe0c5,0xb95f,0xe0b4,0xe0b2,0xe0be, +0x0000,0x0000,0x0000,0x0000,0xe0bb,0xe0ba,0x0000,0xe0bf, +0xe0c2,0x0000,0xe0c7,0x0000,0x0000,0x0000,0xe478,0x0000, +0xbbc7,0xe4a4,0xe47a,0xbbcc,0xbbd0,0xe4ad,0xe4b5,0xe4a6, +0xbbc8,0x0000,0xe4aa,0xe0b6,0x0000,0xbbc9,0xe4b1,0xe4b6, +0xe4ae,0x0000,0xe4b0,0xe4b9,0xe4b2,0xe47e,0xe4a9,0x0000, +0x0000,0xbbd1,0x0000,0xbbcd,0xe47c,0xe4ab,0xbbcb,0xe4a5, +0xbbca,0xe4b3,0xe4a2,0xe479,0xbbce,0xe4b8,0x0000,0x0000, +0xe47b,0xe4af,0xe4ac,0xe4a7,0xe477,0xe476,0xe4a1,0xe4b4, +0xbbcf,0xe4b7,0xe47d,0xe4a3,0xbe52,0x0000,0x0000,0x0000, +0x0000,0x0000,0xbe5a,0xbe55,0xe8a4,0xe8a1,0xe867,0xbe50, +0x0000,0xf9d7,0x0000,0xbe4f,0xbe56,0x0000,0x0000,0x0000, +0xe865,0xbe54,0xe871,0xe863,0xe864,0xbe4e,0xe8a3,0xbe58, +0xe874,0xe879,0xe873,0xebee,0xe86f,0xe877,0xe875,0xe868, +0xe862,0xe87d,0xbe57,0xe87e,0x0000,0xe878,0x0000,0xe86d, +0xe86b,0xe866,0x0000,0x0000,0x0000,0xe86e,0xe87b,0xe86a, +0xe87a,0xe8a2,0x0000,0x0000,0xbe53,0x0000,0xe876,0xe87c, +0xe872,0xe86c,0xbe51,0x0000,0x0000,0x0000,0xe4a8,0xe870, +0xbe59,0xe869,0x0000,0x0000,0x0000,0x0000,0x0000,0xebf4, +0xbff7,0xebf3,0xebf0,0xec44,0xbffb,0x0000,0xec41,0xebf8, +0xec43,0xebe9,0xebf6,0x0000,0xbffd,0x0000,0xebe1,0x0000, +0xebdf,0xec42,0x0000,0xec40,0xebfe,0xebed,0xebec,0xebe2, +0xc040,0x0000,0xebe8,0xebf2,0xebfd,0xc043,0xec45,0x0000, +0xc1e8,0xc045,0xbffe,0xebe6,0x0000,0xebef,0xebde,0xebe0, +0xbff5,0xc042,0xbffa,0xebe7,0xebf7,0xebf1,0xc041,0xebdd, +0xc1e3,0xebf9,0xebfc,0xbffc,0x0000,0xebeb,0xc044,0xbff9, +0x0000,0x0000,0x0000,0xbff8,0xebf5,0xebfb,0xbff6,0x0000, +0xebe4,0xebfa,0x0000,0x0000,0xebe5,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xebea,0xeed2, +0x0000,0xeed7,0xc1e5,0xc1e7,0xeedd,0xc1e1,0xeeec,0xeee3, +0xeed8,0xeed9,0xeee2,0x0000,0xc1ee,0xeee1,0xeed1,0xeee0, +0xeed4,0xeeed,0xc1ed,0xc1eb,0xeed5,0x0000,0xeee8,0x0000, +0xeeda,0xeee7,0x0000,0xeee9,0xeed0,0xc1e6,0x0000,0xeeea, +0x0000,0x0000,0xeede,0x0000,0xc1ea,0xeedb,0x0000,0x0000, +0xc1ec,0xeee4,0x0000,0x0000,0x0000,0xc1e4,0xeed6,0xeee5, +0x0000,0xeedf,0xebe3,0xeee6,0xeed3,0x0000,0xc1e9,0x0000, +0xeeeb,0x0000,0xc1e2,0xeece,0x0000,0x0000,0x0000,0x0000, +0xf160,0xf159,0xc2e9,0x0000,0xf154,0xf163,0xf15b,0xeedc, +0x0000,0xf165,0xf155,0x0000,0xc2e8,0xf15f,0xc2ea,0xc2f2, +0xc2f0,0xf161,0xc2f1,0xf157,0x0000,0xf158,0xf15d,0xf162, +0x0000,0xeecd,0xc2eb,0xf16a,0xf167,0xf16b,0xf15e,0xf15a, +0xf168,0xf36a,0xf15c,0x0000,0xc2ee,0x0000,0xc2ed,0xeecf, +0xc2ef,0xf164,0xf166,0xc2ec,0xf169,0xf153,0x0000,0xf156, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xf373,0x0000,0xf363,0xc3eb,0xf371,0x0000,0x0000,0xf361, +0xc3ec,0x0000,0xf36c,0x0000,0xf368,0xc3f1,0xf372,0xf362, +0xf365,0xc3e9,0xf374,0x0000,0xf36d,0xf370,0xc3ef,0xc3f4, +0xc3f2,0xf369,0xf364,0x0000,0xc3ed,0xc3ee,0xf360,0xc3ea, +0x0000,0xc3e8,0xc3f0,0xf36f,0xc3f3,0x0000,0xf36b,0xf375, +0xc3f5,0x0000,0x0000,0x0000,0xf367,0x0000,0xf36e,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xf4f3,0xf542,0xf4f5, +0xf4fc,0xf366,0xf4fa,0xf4e9,0xf540,0xc4c3,0xf4ed,0xf4fe, +0xf4f4,0x0000,0x0000,0xc4c2,0x0000,0x0000,0xf544,0xf4f6, +0x0000,0xf4fb,0xf4fd,0xf4e7,0xf541,0xf4f2,0xf4f7,0xf4eb, +0xf4ef,0xf543,0xf4f9,0xf4e8,0xf4ec,0xf4ee,0xf4f8,0x0000, +0xc4c1,0xf4f1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xf4ea,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xf4f0,0xf661,0xf666,0xc54f,0xf668,0x0000,0xc549,0x0000, +0xf664,0xf66a,0xc54e,0xc54a,0x0000,0xc54b,0xf660,0xf667, +0xc54d,0xf665,0xc54c,0xf65f,0xf663,0xf662,0x0000,0xf65e, +0xf669,0x0000,0x0000,0x0000,0xc5b1,0xf76d,0xf770,0xf76c, +0xf76e,0xf76f,0xf769,0xf76a,0xf767,0x0000,0x0000,0xf76b, +0xf768,0xc5b2,0xc5b3,0x0000,0x0000,0xf84b,0x0000,0xf84d, +0x0000,0x0000,0x0000,0x0000,0x0000,0xf84c,0xf84e,0x0000, +0xc5e0,0x0000,0xf84a,0xc5df,0xc5e1,0x0000,0x0000,0x0000, +0xf8cb,0xf8cc,0xc644,0xf8ca,0x0000,0xf953,0xf952,0xf954, +0xc65f,0xf955,0xc65e,0xf956,0xf972,0xf975,0xf974,0xc668, +0xf973,0x0000,0x0000,0x0000,0xc672,0xc670,0xc671,0xc677, +0xf9c0,0xf9c1,0xf9bf,0xf9c9,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x9500 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xaaf8, +0x0000,0x0000,0xd844,0xdc78,0xe8a5,0xf376,0x0000,0x0000, +0xaaf9,0x0000,0xadac,0xb07b,0x0000,0x0000,0xd845,0x0000, +0xd846,0xb3ac,0x0000,0xb67d,0xdc7a,0xdc79,0xb6a3,0xb67c, +0xdc7b,0xb67e,0xb6a2,0xb6a1,0xb67b,0x0000,0x0000,0x0000, +0xb968,0x0000,0x0000,0xe0d0,0xe0ce,0x0000,0xe0cf,0xe0cd, +0x0000,0xbbd2,0x0000,0xbbd5,0xbbd7,0xbbd6,0x0000,0x0000, +0xbbd3,0xbbd4,0x0000,0xe8a7,0xe8a6,0xbe5b,0xe8a8,0x0000, +0xe8a9,0xbe5c,0x0000,0x0000,0x0000,0xec4d,0xec4b,0xeef3, +0x0000,0xec49,0xec4a,0xc046,0xec46,0xec4e,0xec48,0xec4c, +0xeeef,0x0000,0x0000,0xeef1,0x0000,0xeef2,0xc1f3,0xeeee, +0xc1f2,0xeef0,0xc1ef,0xc1f0,0xc1f1,0xec47,0x0000,0x0000, +0xc2f5,0xf16e,0xf16c,0xf16d,0xc2f3,0xc2f6,0xc2f4,0x0000, +0x0000,0x0000,0xf377,0xf378,0xc3f6,0x0000,0xf545,0xf547, +0xf546,0xc4c4,0xc550,0xf66d,0xf66c,0xf66b,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x9600 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xaafa,0x0000,0xc9aa,0x0000, +0xca58,0xa6e9,0xca56,0xca59,0xca57,0x0000,0x0000,0x0000, +0xcbae,0x0000,0xa8c1,0x0000,0xa8c2,0xcbb0,0xa8bf,0xcbaf, +0xcbad,0xa8c0,0xa8be,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xcdd8,0xcddb,0xaafd,0xcdda,0xcdd9,0x0000,0xaafc, +0xaafb,0x0000,0xab40,0xcddc,0xaafe,0x0000,0x0000,0x0000, +0x0000,0x0000,0xd0c6,0xadae,0xadaf,0xadb0,0xd0c7,0xd0c3, +0xadad,0xd0c4,0x0000,0xd0c5,0xd0c2,0x0000,0x0000,0x0000, +0xb0a4,0x0000,0x0000,0xb0a1,0xd445,0xb0a2,0xb0a5,0xd446, +0x0000,0xb07e,0xb07c,0xb07d,0xb0a3,0x0000,0x0000,0x0000, +0x0000,0x0000,0xb3ad,0xd849,0xb3b5,0xd848,0x0000,0xd84b, +0xb3b1,0xd84a,0xb6ab,0xb3af,0xb3b2,0xb3ae,0xb3b3,0xb3b4, +0xb3b0,0x0000,0x0000,0x0000,0xd847,0xb6a7,0xdc7d,0x0000, +0xdca3,0x0000,0x0000,0xdca2,0xb6ac,0xb6a8,0xb6a9,0xdc7c, +0xdc7e,0xdca1,0xb6a4,0xb6a6,0x0000,0xb6aa,0xb6a5,0x0000, +0x0000,0xe0d3,0xe0d1,0xe0d2,0xb96a,0xb96b,0x0000,0xe0d4, +0xb969,0xbbd8,0x0000,0xbbda,0xbbd9,0x0000,0xe4bb,0x0000, +0x0000,0xe4bc,0xe8ab,0x0000,0xe8aa,0x0000,0x0000,0xc047, +0xc048,0xec4f,0xc049,0x0000,0xeef6,0x0000,0xeef4,0x0000, +0xeef5,0xc1f4,0x0000,0xf16f,0xc3f7,0x0000,0x0000,0x0000, +0xc1f5,0xab41,0x0000,0xb0a6,0xd447,0x0000,0x0000,0xd84c, +0xb3b6,0xb6ad,0xdca4,0xdca6,0xb6af,0xb6ae,0xb6b0,0xb6b1, +0xdca5,0xb96e,0xb96f,0xb96d,0xbbdb,0xb96c,0xe0d5,0x0000, +0x0000,0x0000,0xbbdc,0xe8ac,0xec50,0xc04a,0xc1f6,0xf170, +0xf174,0xc2f9,0xf171,0xc2fa,0xc2f8,0xf175,0xc2fb,0xf173, +0x0000,0xf379,0xc2f7,0xc3f8,0x0000,0xf8cd,0x0000,0x0000, +0xab42,0xb3b8,0xb3b7,0x0000,0x0000,0x0000,0x0000,0xb6b2, +0xdca8,0xdca7,0xb6b3,0x0000,0x0000,0xe0d9,0xb973,0xb970, +0xe0d8,0xb972,0xe0d6,0xb971,0x0000,0xe0d7,0x0000,0xe4bd, +0xbbdd,0x0000,0xe8af,0x0000,0xbe5d,0xe8ad,0xbe5e,0xbe5f, +0xe8ae,0xbe60,0x0000,0xec51,0x0000,0xc04e,0xc04b,0xc050, +0xec53,0xc04c,0xec52,0xc04f,0x0000,0x0000,0xc04d,0x0000, +0xeef9,0xeefb,0x0000,0x0000,0xc1f7,0xeefa,0xc1f8,0xeef8, +0xeef7,0x0000,0xf177,0xf176,0xc2fc,0xf178,0xf37e,0xc3fa, +0xf37d,0xf37a,0xc3f9,0xf37b,0xf37c,0x0000,0xf548,0xf549, +0xc4c5,0x0000,0xc553,0x0000,0x0000,0xf66e,0x0000,0x0000, +0xc551,0xc552,0xf66f,0x0000,0x0000,0xc5b4,0xc5b5,0xf771, +0x0000,0x0000,0xc645,0xf8cf,0xc647,0x0000,0xf8ce,0xf8d0, +0xc646,0xf957,0x0000,0xf9ad,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xab43,0x0000,0x0000,0x0000,0xb974,0x0000, +0xe4be,0x0000,0xe8b0,0xc051,0xc052,0x0000,0xab44,0x0000, +0xbe61,0xc3fb,0xadb1,0x0000,0x0000,0x0000,0xc053,0x0000, +0xc5e2,0xadb2,0xd84d,0x0000,0xdca9,0x0000,0xdcab,0x0000, +0xdcaa,0x0000,0xe0dd,0xe0da,0xb975,0x0000,0xb976,0xe0db, +0xe0dc,0x0000,0xe4c0,0xe4c5,0xbbde,0xe4bf,0xe4c1,0xe4c8, +0xe4c3,0xe4c7,0xe4c4,0xe4c2,0xe4c6,0xbbdf,0x0000,0x0000, +0xe8b3,0x0000,0xe8b1,0xbe63,0x0000,0xbe62,0xe8b2,0xbe64, +0x0000,0x0000,0x0000,0x0000,0xec56,0x0000,0x0000,0xec55, +0xc054,0xec54,0xeefc,0x0000,0xeefe,0xef41,0xef40,0x0000, +0xc1f9,0xeefd,0xf1a1,0xc2fd,0xf17d,0xf1a2,0xc2fe,0x0000, +0xf17b,0x0000,0xf17e,0xf17c,0xf179,0xc340,0xf17a,0x0000, +0x0000,0x0000,0x0000,0xf3a1,0x0000,0x0000,0xf3a3,0xf3a2, +0x0000,0xf54a,0x0000,0xf54b,0x0000,0x0000,0x0000,0xf670, +0x0000,0xc5b7,0x0000,0xc5b6,0xf84f,0xf850,0xc648,0xf8d1, +0x0000,0xc669,0x0000,0xadb3,0xb6b4,0xe4ca,0xe4c9,0xe8b5, +0xe8b4,0x0000,0x0000,0xc1fa,0xef43,0xef42,0xf1a5,0xf1a3, +0xf1a6,0xf1a4,0x0000,0x0000,0xc3fc,0xf3a4,0xf3a5,0xf3a6, +0x0000,0xf671,0x0000,0xf772,0x0000,0xf8d2,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xadb4,0x0000,0x0000, +0xec57,0xef44,0x0000,0xadb5,0x0000,0x0000,0xbbe0,0x0000, +0xec58,0xc341,0xf1a7,0xc3fd,0x0000,0xf54c,0xf54d,0xc554, +0xf851,0xadb6,0xb3bb,0xb3bc,0xd84e,0xb6b5,0xb6b6,0xdcac, +0xb6b7,0x0000,0xb97a,0x0000,0xb97c,0xe0df,0xe0e0,0xe0de, +0xb977,0xb978,0xb97b,0xb979,0x0000,0x0000,0xe4cb,0xbbe1, +0xbbe2,0x0000,0x0000,0xe8bc,0xbe67,0xe8b7,0xe8b6,0x0000, +0xe8bb,0xbe65,0x0000,0x0000,0xc05b,0x0000,0xe8b8,0xe8bd, +0xe8ba,0xe8b9,0x0000,0xbe66,0x0000,0xc059,0x0000,0xec5a, +0xc055,0x0000,0xec5b,0x0000,0x0000,0xec59,0x0000,0xc058, +0xc056,0xc05a,0x0000,0xc057,0x0000,0x0000,0x0000,0x0000, +0x0000,0xef45,0x0000,0xef4a,0xef46,0xef49,0xc1fb,0x0000, +0xedd4,0xef48,0xef47,0x0000,0xc344,0xc342,0xc345,0xc343, +0xf1a8,0xf1a9,0xf1aa,0xc346,0x0000,0x0000,0x0000,0xf3aa, +0xc440,0xf3a8,0x0000,0xc441,0xf3a7,0xf3a9,0xc3fe,0xf551, +0xf54e,0x0000,0xf54f,0xf550,0xf672,0xc556,0x0000,0xc555, +0x0000,0xf774,0xf773,0xc5b8,0x0000,0x0000,0x0000,0xc5e3, +0xc649,0xc660,0xf958,0xf9ae,0xf9af,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xadb7,0xdcad,0x0000,0x0000,0xe0e1,0xe4cc,0xe4cd,0xbbe3, +0x0000,0xbbe4,0xe8be,0xbe68,0x0000,0x0000,0xc1fc,0x0000, +0xf1ab,0x0000,0xc347,0xf3ad,0xc442,0xf3ac,0xf3ae,0xf3ab, +0xf675,0xf552,0xf553,0x0000,0xc4c6,0x0000,0xf674,0x0000, +0x0000,0xf673,0x0000,0xf775,0xf9b0,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xadb8,0x0000,0x0000,0x0000,0xadb9, +0x0000,0x0000,0xb0a7,0xd448,0x0000,0xd84f,0x0000,0xb6b8, +0x0000,0xb6bb,0xb6b9,0xdcae,0x0000,0xb6bd,0x0000,0xb6ba, +0x0000,0x0000,0xb6bc,0x0000,0xb97e,0x0000,0xe0e2,0x0000, +0x0000,0xe0e3,0xe8c0,0x0000,0xb97d,0xb9a1,0xb9a2,0x0000, +0xe4cf,0x0000,0xe4ce,0xbbe5,0x0000,0xbbe6,0x0000,0xe4d0, +0xe8bf,0xbbe8,0xbe69,0x0000,0xbbe7,0x0000,0x0000,0x0000, +0xc05c,0xe8c1,0xbe6b,0xbe6a,0xe8c2,0xe8c5,0xe8c3,0xe8c4, +0xbe6c,0x0000,0xc061,0xc05f,0x0000,0x0000,0xc05e,0xec5d, +0x0000,0xc060,0x0000,0x0000,0xec5c,0xef4b,0x0000,0xec5e, +0xc05d,0xec5f,0xef4e,0xef4c,0xef4d,0xef52,0xc34b,0xef51, +0xef54,0xef53,0xef50,0xef4f,0x0000,0xc1fd,0x0000,0x0000, +0x0000,0x0000,0xf1ae,0x0000,0xf1ad,0xc34a,0xc348,0xc349, +0x0000,0xf1ac,0x0000,0xf3b1,0x0000,0xc443,0x0000,0xf3b0, +0xf3af,0xc444,0x0000,0xf558,0xf557,0x0000,0xf555,0x0000, +0xf554,0xc4c8,0xc4c7,0xf559,0xf776,0xc5b9,0xf677,0xc557, +0xf676,0xf556,0x0000,0xf777,0xc5e4,0x0000,0xc661,0xf959, +0x0000,0xf9b1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xadba,0xd850, +0xef55,0xadbb,0x0000,0x0000,0xe4d2,0xe4d1,0xec60,0x0000, +0x0000,0xef57,0x0000,0xef56,0x0000,0xc34c,0xf3b2,0xf3b3, +0xc4c9,0x0000,0x0000,0xf9b2,0xb0a8,0xb6bf,0xb6be,0xe0e4, +0xe0e6,0xb9a4,0xe0e5,0xb9a3,0xb9a5,0xe0e7,0x0000,0x0000, +0x0000,0xe4d4,0xe4d6,0xe4d5,0x0000,0xe4d8,0x0000,0x0000, +0x0000,0xbbe9,0xe4d7,0xe4d3,0x0000,0x0000,0x0000,0xe4d9, +0x0000,0xe8cc,0x0000,0xe8cf,0xe8d1,0xe8c7,0xe8cb,0xe8c8, +0xbe6e,0xbe71,0xbe73,0xe8c9,0xe8ca,0xbe72,0xe8cd,0xe8d0, +0xe8ce,0xbe74,0x0000,0xbe70,0xe8c6,0xbe6d,0x0000,0xbe6f, +0x0000,0x0000,0xc063,0xec66,0xec64,0xec63,0x0000,0xec69, +0x0000,0xec68,0xec67,0x0000,0xec62,0xc062,0xec61,0x0000, +0xec65,0xc064,0x0000,0x0000,0xef5a,0x0000,0xef5e,0xef5b, +0xef5d,0xef5c,0xef59,0xef5f,0xef62,0xef60,0xef61,0xc240, +/* 0x9a00 */ +0x0000,0xc1fe,0xef58,0xef63,0xf1b3,0xf1b6,0xf1b8,0xf1b7, +0x0000,0xf1b1,0xf1b5,0xf1b0,0x0000,0xf1b2,0xc34d,0xf1af, +0x0000,0xf1b4,0x0000,0x0000,0xf3c0,0xf3b5,0xc445,0x0000, +0x0000,0xc446,0xf3b4,0xf3b9,0xf3bf,0xf3b7,0xf3be,0x0000, +0xf3bb,0x0000,0xf3ba,0xf3bd,0xf3b8,0xf3b6,0x0000,0xf3bc, +0x0000,0xf560,0xf55e,0xc4ca,0xf55d,0xf563,0xf561,0x0000, +0xc4cb,0xf55c,0xf55a,0x0000,0xf55b,0xc4cd,0xf55f,0xc4cc, +0xf562,0xf678,0xf67e,0x0000,0x0000,0xf679,0xc55b,0xf6a1, +0xc55a,0xf67d,0xf67c,0xc559,0xf67b,0xc558,0xf67a,0x0000, +0xf77d,0xf7a1,0xf77e,0x0000,0xf77b,0xc5bb,0xf778,0xf77c, +0xf7a3,0x0000,0xf7a2,0xf779,0xf77a,0xc5ba,0xf852,0xc5e7, +0x0000,0xf853,0xc5e5,0xc5e6,0x0000,0x0000,0xf8d3,0xc64a, +0xf976,0x0000,0xc66a,0x0000,0xf9b3,0xc66b,0xf9b4,0xf9b5, +0xf9c3,0xf9c2,0xc67a,0xf9cd,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xb0a9,0x0000,0x0000,0xe0e9,0x0000,0xe0e8,0x0000,0xbbea, +0xbbeb,0xe4da,0x0000,0xe8d2,0xec6c,0x0000,0x0000,0xbe75, +0xc065,0xec6a,0x0000,0xec6d,0xc066,0x0000,0xef64,0xec6b, +0xf1b9,0xc34e,0xf3c1,0x0000,0x0000,0x0000,0xf566,0xf564, +0x0000,0x0000,0xf565,0x0000,0x0000,0xf6a2,0x0000,0xc55c, +0xf7a4,0xc5ea,0xc5bc,0xc5e8,0xc5e9,0xf8d4,0xc662,0x0000, +0xb0aa,0x0000,0x0000,0x0000,0xf1ba,0x0000,0x0000,0xd449, +0x0000,0xb9a6,0x0000,0xe4db,0x0000,0x0000,0xbbec,0xe4dc, +0x0000,0x0000,0x0000,0xe8d4,0xe8d3,0xc068,0xbe76,0xbe77, +0x0000,0xe8d7,0xe8d6,0xe8d5,0x0000,0x0000,0xec6e,0xec71, +0x0000,0xec70,0xec6f,0xc067,0xef68,0xef66,0xef65,0x0000, +/* 0x9b00 */ +0x0000,0xef67,0x0000,0xc34f,0xf1bc,0xf1bd,0xc350,0x0000, +0xf1bb,0x0000,0xf3c3,0xf3c2,0xf3c5,0xc447,0xf3c4,0x0000, +0xf567,0xf569,0xf568,0x0000,0x0000,0xf6a3,0xf6a6,0xf6a4, +0xf6a5,0xf7a5,0xc5bd,0x0000,0x0000,0x0000,0xf854,0xf855, +0xf856,0x0000,0xc64b,0xc663,0xf9b6,0xb0ab,0x0000,0xbe78, +0xc069,0xf1be,0x0000,0xf7a6,0x0000,0x0000,0xf9c4,0xd44a, +0x0000,0xc67b,0xb0ac,0xec72,0x0000,0xf1bf,0x0000,0xf3c6, +0x0000,0x0000,0xf6a7,0xf7a7,0xb0ad,0x0000,0xe4dd,0xe4de, +0x0000,0xbbed,0xbbee,0xe8d9,0xbe7a,0xbe79,0xe8d8,0x0000, +0xef69,0x0000,0xf1c0,0xf1c2,0xf1c1,0xc353,0xc352,0xc351, +0x0000,0xc55e,0xf6a8,0x0000,0xc55d,0xf7a9,0xf7a8,0x0000, +0xc64c,0xf8d5,0xb3bd,0xe0ea,0x0000,0x0000,0x0000,0xe4e1, +0xe4df,0xe4e0,0x0000,0x0000,0xe8e2,0x0000,0xe8dd,0xe8da, +0xe8e1,0x0000,0x0000,0x0000,0xe8e3,0x0000,0x0000,0xbe7c, +0xe8e0,0xe8dc,0x0000,0x0000,0xe8db,0xe8df,0xe8de,0xbe7b, +0x0000,0x0000,0xec7d,0xec78,0xec76,0xeca1,0xec77,0x0000, +0xec73,0x0000,0xec79,0x0000,0x0000,0xec74,0xef72,0xec75, +0xeca2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xec7c,0xc06a,0xec7b,0xec7a,0x0000,0xec7e,0x0000,0x0000, +0x0000,0x0000,0xef6a,0xef6d,0x0000,0x0000,0xef6c,0x0000, +0xef74,0xef6f,0xef73,0x0000,0xef71,0xef70,0xef6e,0x0000, +0xef6b,0x0000,0xc243,0xc242,0x0000,0xc244,0xc241,0xef75, +0x0000,0x0000,0x0000,0x0000,0x0000,0xf1c8,0xf1cb,0x0000, +0xf1c9,0xf1cd,0x0000,0x0000,0x0000,0xf1ce,0x0000,0xf1c6, +0xc358,0xf1c7,0x0000,0xf1c5,0xf1cc,0x0000,0xf1c4,0xf1c3, +0xc357,0xc355,0xc354,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xf1ca,0xf3cf,0xf3d5,0xc44a,0xf3d0, +0x0000,0xf3d3,0xf3d7,0xc44b,0xf3d2,0x0000,0xf3ca,0x0000, +0xf3c9,0xf3d6,0xf3cd,0x0000,0xf3cb,0xf3d4,0xf3cc,0xc449, +0xc448,0x0000,0xf3c7,0xf3c8,0xf3d1,0x0000,0x0000,0x0000, +0xf3ce,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xf56c, +0xf56f,0x0000,0x0000,0x0000,0x0000,0xc356,0x0000,0x0000, +/* 0x9c00 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0xf56d,0xf573,0xf571, +0xf56b,0xf576,0x0000,0xf56a,0x0000,0xc4cf,0xf572,0x0000, +0x0000,0x0000,0xf56e,0xc4ce,0xf575,0x0000,0x0000,0xf574, +0x0000,0x0000,0x0000,0x0000,0xf6ab,0xf6aa,0x0000,0x0000, +0x0000,0xf6b1,0x0000,0xf6ad,0xf6b0,0xc560,0x0000,0x0000, +0xf6ae,0xf6af,0x0000,0xf6a9,0xf6ac,0xc55f,0x0000,0x0000, +0x0000,0xc5bf,0xf7b4,0xf7af,0xf7b3,0x0000,0xf7b6,0xf7b2, +0x0000,0xf7ae,0x0000,0xc5c1,0xf7b1,0xf7b5,0xc5c0,0xf7ac, +0xf570,0xf7b0,0x0000,0x0000,0xf7ad,0x0000,0xf7aa,0x0000, +0xf7ab,0xc5be,0xf85a,0xf85c,0xf85f,0xf85b,0xf860,0x0000, +0xf859,0x0000,0xf857,0x0000,0xc5eb,0xf85d,0xc5ed,0xc5ec, +0xf858,0xf85e,0x0000,0x0000,0x0000,0x0000,0xf8da,0xc64d, +0xf8db,0x0000,0xf8d9,0xf8d6,0x0000,0x0000,0xf8d8,0xf8d7, +0xf95a,0x0000,0x0000,0x0000,0x0000,0xf95c,0xf95b,0x0000, +0x0000,0xf979,0x0000,0xf978,0xf977,0xf97a,0x0000,0xc673, +0xc674,0xf9ca,0xf9ce,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xb3be,0xdcaf,0xe0ed, +0x0000,0xb9a7,0xe0eb,0x0000,0x0000,0xe0ec,0x0000,0x0000, +0x0000,0xe4e2,0xe4e3,0xbbf1,0xbbef,0xe4e4,0xbbf0,0xe8e8, +0x0000,0xe8eb,0xe8e5,0xe8ec,0xe8e4,0xe8e6,0x0000,0xe8e7, +0xe8ea,0x0000,0x0000,0xbea1,0xe8ef,0xe8ee,0xbe7d,0xe8e9, +0xe8ed,0xbe7e,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xecac,0x0000,0xc06f,0x0000,0xeca7,0xc06b,0x0000,0xeca4, +0xecaa,0xecad,0x0000,0xc070,0x0000,0xeca9,0xeca6,0xecae, +0xeca5,0x0000,0xecab,0xc06c,0x0000,0xeca3,0xc06d,0x0000, +0xc06e,0xeca8,0x0000,0x0000,0x0000,0xefa9,0xef7a,0xef7b, +0xef7e,0xef7c,0x0000,0xef76,0x0000,0x0000,0xef79,0xefa5, +0xef7d,0x0000,0x0000,0xc245,0x0000,0xefa7,0xefa4,0xc246, +0xefa6,0xef77,0xefa2,0xefa3,0x0000,0xefa1,0x0000,0x0000, +0x0000,0x0000,0xf1d2,0xf1d4,0xf1d7,0x0000,0x0000,0xf1d1, +0x0000,0xc359,0xf1d9,0xf1d0,0xf1da,0x0000,0xf1d6,0xf1d8, +0xf1dc,0xf1d5,0xf1dd,0xf1d3,0xf1cf,0xc35a,0x0000,0xf1db, +0xc35b,0xc44d,0x0000,0x0000,0x0000,0x0000,0x0000,0xef78, +0xf3f1,0xf3e8,0xc44f,0xf3e4,0xc450,0x0000,0x0000,0xf3ed, +0xf3e7,0xf3dd,0xc44e,0xf3ea,0xf3e5,0xf3e6,0x0000,0xf3d8, +0xf3df,0xf3ee,0x0000,0xf3eb,0x0000,0xf3e3,0x0000,0xf3ef, +0xf3de,0xf3d9,0xf3ec,0x0000,0xf3db,0xf3e9,0xf3e0,0xf3f0, +0xf3dc,0xc44c,0xf3da,0xf3e1,0xf3e2,0x0000,0x0000,0x0000, +0xf57d,0x0000,0xf57b,0x0000,0xf5a2,0x0000,0xf5ae,0xf5a5, +0xf57c,0xf578,0xf5a7,0xf57e,0xf5a3,0xf57a,0xf5aa,0xf577, +0xf5a1,0xf5a6,0xf5a8,0xf5ab,0xf579,0x0000,0xf5af,0xf5b0, +0xf5a9,0xf5ad,0xf5a4,0x0000,0xf6c1,0xf6c4,0x0000,0xc561, +0x0000,0xf6c3,0xf6c8,0xf6c6,0xc562,0xf6bd,0xf6b3,0xf6b2, +0xc564,0xf6bf,0xf6c0,0xf6bc,0xf6b4,0x0000,0xf6b9,0xf5ac, +0x0000,0xf6b5,0xc563,0xf6bb,0x0000,0xf6ba,0x0000,0xf6b6, +0xf6c2,0x0000,0xf6b7,0xf7bb,0xf6c5,0xf6c7,0xf6be,0xf6b8, +0xf7bc,0xf7be,0xf7b8,0xc5c2,0x0000,0xf7c5,0xf7c3,0xc5c3, +0xf7c2,0xf7c1,0xf7ba,0xf7b7,0xf7bd,0xf7c6,0xf7b9,0xf7bf, +0x0000,0xf869,0xf86e,0xf864,0xf867,0xc5ee,0xf86b,0x0000, +0xf872,0xf7c0,0x0000,0xf865,0xf86f,0xf873,0xf86a,0xf863, +0xf86d,0x0000,0xf86c,0xf871,0xf870,0xf7c4,0xf868,0xf862, +0xf866,0xc64e,0xc64f,0xf861,0x0000,0xf8e6,0xf8dd,0xf8e5, +0xf8e2,0xf8e3,0xf8dc,0xf8df,0xf8e7,0xf8e1,0xf8e0,0xf8de, +0x0000,0xf8e4,0x0000,0xf95d,0x0000,0xf95e,0x0000,0xf960, +0xf95f,0xf962,0xf961,0xf97c,0xf97b,0xf9b7,0x0000,0xf9b8, +0x0000,0xf9c5,0xc678,0xc67c,0x0000,0xf9cf,0xc67d,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xb3bf,0x0000,0x0000, +0x0000,0xc4d0,0xf6c9,0x0000,0xc650,0xc651,0x0000,0xb3c0, +0xe0ee,0x0000,0xb9a8,0xe8f0,0x0000,0x0000,0xecb0,0xecb1, +0xecaf,0xefab,0xefaa,0xc247,0xf1df,0xefac,0xf1de,0x0000, +0x0000,0xf3f3,0xc451,0xc453,0xf3f2,0x0000,0x0000,0xc452, +0x0000,0xf5b1,0xf5b3,0xf5b2,0xf6ca,0xc565,0x0000,0xc5ef, +0xf8e8,0xf963,0x0000,0x0000,0xf9d2,0xb3c1,0x0000,0xe4e5, +0x0000,0xbea2,0x0000,0x0000,0x0000,0xecb3,0xecb2,0x0000, +0xefad,0x0000,0x0000,0x0000,0xc454,0xc4d1,0xf7c7,0xf9cb, +0x0000,0x0000,0x0000,0xb3c2,0xbbf2,0x0000,0xbea3,0x0000, +0xf3f4,0x0000,0xf874,0xb6c0,0x0000,0x0000,0x0000,0x0000, +0xefae,0x0000,0x0000,0x0000,0xc664,0xb6c1,0xbea4,0xc248, +0xf875,0xb6c2,0x0000,0xe8f1,0xc072,0xecb4,0xecb5,0x0000, +0xc071,0x0000,0xefaf,0xc24c,0xc24a,0xc24b,0xc249,0xf1e0, +0xc35c,0x0000,0x0000,0x0000,0xf5b5,0xf5b4,0xf5b7,0xf5b6, +0xc4d2,0x0000,0x0000,0xf6cb,0x0000,0xf6cd,0xf6cc,0xc566, +0xf7c8,0x0000,0xf876,0xf877,0xc5f0,0xf964,0xf97d,0xc675, +0x0000,0xdcb0,0xecb6,0xefb0,0xf3f5,0xe0ef,0x0000,0xefb1, +0xf1e2,0xf1e1,0x0000,0x0000,0x0000,0x0000,0xf878,0xc652, +0x0000,0xf965,0xf97e,0x0000,0x0000,0x0000,0xb9a9,0xe8f2, +0xe8f3,0x0000,0xecb7,0xb9aa,0x0000,0xc35d,0xf1e3,0x0000, +0xf6cf,0xc567,0xf6d0,0xf6ce,0xf879,0x0000,0xf8e9,0x0000, +0xb9ab,0x0000,0xefb4,0xefb3,0xefb2,0xf1e4,0x0000,0x0000, +0xf1e8,0xf1e7,0xf1e6,0xf1e5,0xc35e,0xf3f6,0xf5b9,0xc4d3, +0xf5b8,0xf6d1,0xf7cb,0xf7ca,0xc5c4,0xf7c9,0xf87c,0xf87b, +0xf87a,0x0000,0x0000,0xbbf3,0x0000,0xecb8,0xc24d,0x0000, +0xf3f7,0xf3f8,0xf7cc,0xf87d,0x0000,0x0000,0xf8ea,0xf966, +0xf9b9,0xf9d4,0xbbf4,0xc24e,0xf1e9,0xf3f9,0xf6d2,0xf87e, +0x0000,0x0000,0xbea6,0x0000,0xefb5,0xf1ea,0xf3fa,0xf3fb, +0xf3fc,0xf5be,0x0000,0xf5ba,0xc568,0xf5bd,0xf5bc,0xc4d4, +0xf5bb,0xc4d6,0x0000,0xc4d5,0xf6d4,0xf6d3,0xc569,0xc56a, +0x0000,0x0000,0xc5c6,0xf7cd,0xc5c5,0x0000,0xf8a3,0xf8a4, +0xf8a2,0xf8a1,0xc654,0x0000,0xf8eb,0xf8ec,0xf8ed,0xc653, +0xf967,0xf96a,0xf969,0xf968,0x0000,0x0000,0xf9d3,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xc073,0x0000,0x0000, +0xc365,0xf5bf,0xf6d5,0x0000,0xc5c7,0xf7ce,0x0000,0x0000, +0xf9d5,0x0000,0x0000,0x0000,0xc074,0x0000,0x0000,0x0000, +0xefb6,0x0000,0xf7cf,0x0000,0xf9a1}; + +static const int ucs_i_big5_table_min = 0x4d00; +static const int ucs_i_big5_table_max = 0x4d00 + (sizeof (ucs_i_big5_table) / sizeof (unsigned short)); + +static const unsigned short ucs_pua_big5_table[] = { +/* 0xf600 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xc6a1,0xc6a2,0xc6a3,0xc6a4,0xc6a5,0xc6a6,0xc6a7, +0xc6a8,0xc6a9,0xc6aa,0xc6ab,0xc6ac,0xc6ad,0xc6ae,0xc6af, +0xc6b0,0xc6b1,0xc6b2,0xc6b3,0xc6b4,0xc6b5,0xc6b6,0xc6b7, +0xc6b8,0xc6b9,0xc6ba,0xc6bb,0xc6bc,0xc6bd,0xc6be,0xc6bf, +0xc6c0,0xc6c1,0xc6c2,0xc6c3,0xc6c4,0xc6c5,0xc6c6,0xc6c7, +0xc6c8,0xc6c9,0xc6ca,0xc6cb,0xc6cc,0xc6cd,0xc6ce,0xc6cf, +0xc6d0,0xc6d1,0xc6d2,0xc6d3,0xc6d4,0xc6d5,0xc6d6,0xc6d7, +0xc6d8,0xc6d9,0xc6da,0xc6db,0xc6dc,0xc6dd,0xc6de,0xc6df, +0xc6e0,0xc6e1,0xc6e2,0xc6e3,0xc6e4,0xc6e5,0xc6e6,0xc6e7, +0xc6e8,0xc6e9,0xc6ea,0xc6eb,0xc6ec,0xc6ed,0xc6ee,0xc6ef, +0xc6f0,0xc6f1,0xc6f2,0xc6f3,0xc6f4,0xc6f5,0xc6f6,0xc6f7, +0xc6f8,0xc6f9,0xc6fa,0xc6fb,0xc6fc,0xc6fd,0xc6fe,0xc740, +0xc741,0xc742,0xc743,0xc744,0xc745,0xc746,0xc747,0xc748, +0xc749,0xc74a,0xc74b,0xc74c,0xc74d,0xc74e,0xc74f,0xc750, +0xc751,0xc752,0xc753,0xc754,0xc755,0xc756,0xc757,0xc758, +0xc759,0xc75a,0xc75b,0xc75c,0xc75d,0xc75e,0xc75f,0xc760, +0xc761,0xc762,0xc763,0xc764,0xc765,0xc766,0xc767,0xc768, +0xc769,0xc76a,0xc76b,0xc76c,0xc76d,0xc76e,0xc76f,0xc770, +0xc771,0xc772,0xc773,0xc774,0xc775,0xc776,0xc777,0xc778, +0xc779,0xc77a,0xc77b,0xc77c,0xc77d,0xc77e,0xc7a1,0xc7a2, +0xc7a3,0xc7a4,0xc7a5,0xc7a6,0xc7a7,0xc7a8,0xc7a9,0xc7aa, +0xc7ab,0xc7ac,0xc7ad,0xc7ae,0xc7af,0xc7b0,0xc7b1,0xc7b2, +0xc7b3,0xc7b4,0xc7b5,0xc7b6,0xc7b7,0xc7b8,0xc7b9,0xc7ba, +0xc7bb,0xc7bc,0xc7bd,0xc7be,0xc7bf,0xc7c0,0xc7c1,0xc7c2, +0xc7c3,0xc7c4,0xc7c5,0xc7c6,0xc7c7,0xc7c8,0xc7c9,0xc7ca, +0xc7cb,0xc7cc,0xc7cd,0xc7ce,0xc7cf,0xc7d0,0xc7d1,0xc7d2, +0xc7d3,0xc7d4,0xc7d5,0xc7d6,0xc7d7,0xc7d8,0xc7d9,0xc7da, +0xc7db,0xc7dc,0xc7dd,0xc7de,0xc7df,0xc7e0,0xc7e1,0xc7e2, +0xc7e3,0xc7e4,0xc7e5,0xc7e6,0xc7e7,0xc7e8,0xc7e9,0xc7ea, +0xc7eb,0xc7ec,0xc7ed,0xc7ee,0xc7ef,0xc7f0,0xc7f1,0xc7f2, +0xc7f3,0xc7f4,0xc7f5,0xc7f6,0xc7f7,0xc7f8,0xc7f9,0xc7fa, +0xc7fb,0xc7fc,0xc7fd,0xc7fe,0xc840,0xc841,0xc842,0xc843, +0xc844,0xc845,0xc846,0xc847,0xc848,0xc849,0xc84a,0xc84b, +0xc84c,0xc84d,0xc84e,0xc84f,0xc850,0xc851,0xc852,0xc853, +0xc854,0xc855,0xc856,0xc857,0xc858,0xc859,0xc85a,0xc85b, +0xc85c,0xc85d,0xc85e,0xc85f,0xc860,0xc861,0xc862,0xc863, +0xc864,0xc865,0xc866,0xc867,0xc868,0xc869,0xc86a,0xc86b, +0xc86c,0xc86d,0xc86e,0xc86f,0xc870,0xc871,0xc872,0xc873, +0xc874,0xc875,0xc876,0xc877,0xc878,0xc879,0xc87a,0xc87b, +0xc87c,0xc87d,0xc87e,0xc8a1,0xc8a2,0xc8a3,0xc8a4,0xc8a5, +0xc8a6,0xc8a7,0xc8a8,0xc8a9,0xc8aa,0xc8ab,0xc8ac,0xc8ad, +0xc8ae,0xc8af,0xc8b0,0xc8b1,0xc8b2,0xc8b3,0xc8b4,0xc8b5, +0xc8b6,0xc8b7,0xc8b8,0xc8b9,0xc8ba,0xc8bb,0xc8bc,0xc8bd, +0xc8be,0xc8bf,0xc8c0,0xc8c1,0xc8c2,0xc8c3,0xc8c4,0xc8c5, +0xc8c6,0xc8c7,0xc8c8,0xc8c9,0xc8ca,0xc8cb,0xc8cc,0xc8cd, +0xc8ce,0xc8cf,0xc8d0,0xc8d1,0xc8d2,0xc8d3,0xc8d4,0xc8d5, +0xc8d6,0xc8d7,0xc8d8,0xc8d9,0xc8da,0xc8db,0xc8dc,0xc8dd, +0xc8de,0xc8df,0xc8e0,0xc8e1,0xc8e2,0xc8e3,0xc8e4,0xc8e5, +0xc8e6,0xc8e7,0xc8e8,0xc8e9,0xc8ea,0xc8eb,0xc8ec,0xc8ed, +0xc8ee,0xc8ef,0xc8f0,0xc8f1,0xc8f2,0xc8f3,0xc8f4,0xc8f5, +0xc8f6,0xc8f7,0xc8f8,0xc8f9,0xc8fa,0xc8fb,0xc8fc,0xc8fd, +0xc8fe}; + +static const int ucs_pua_big5_table_min = 0xf600; +static const int ucs_pua_big5_table_max = 0xf600 + (sizeof (ucs_pua_big5_table) / sizeof (unsigned short)); + +static const unsigned short ucs_r1_big5_table[] = { +/* 0xfa00 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xc94a,0xddfc}; + +static const int ucs_r1_big5_table_min = 0xfa00; +static const int ucs_r1_big5_table_max = 0xfa00 + (sizeof (ucs_r1_big5_table) / sizeof (unsigned short)); + +static const unsigned short ucs_r2_big5_table[] = { +/* 0xfe00 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa14a,0xa157,0x0000,0xa159,0xa15b,0xa15f,0xa160,0xa163, +0xa164,0xa167,0xa168,0xa16b,0xa16c,0xa16f,0xa170,0xa173, +0xa174,0xa177,0xa178,0xa17b,0xa17c,0x0000,0x0000,0x0000, +0x0000,0xa1c6,0xa1c7,0xa1ca,0xa1cb,0xa1c8,0xa1c9,0xa15c, +0xa14d,0xa14e,0xa14f,0x0000,0xa151,0xa152,0xa153,0xa154, +0x0000,0xa17d,0xa17e,0xa1a1,0xa1a2,0xa1a3,0xa1a4,0xa1cc, +0xa1cd,0xa1ce,0xa1de,0xa1df,0xa1e0,0xa1e1,0xa1e2,0x0000, +0xa242,0xa24c,0xa24d,0xa24e,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0xff00 */ +0x0000,0xa149,0x0000,0xa1ad,0xa243,0xa248,0xa1ae,0x0000, +0xa15d,0xa15e,0xa1af,0xa1cf,0xa141,0xa1d0,0xa144,0xa1fe, +0xa2af,0xa2b0,0xa2b1,0xa2b2,0xa2b3,0xa2b4,0xa2b5,0xa2b6, +0xa2b7,0xa2b8,0xa147,0xa146,0xa1d5,0xa1d7,0xa1d6,0xa148, +0xa249,0xa2cf,0xa2d0,0xa2d1,0xa2d2,0xa2d3,0xa2d4,0xa2d5, +0xa2d6,0xa2d7,0xa2d8,0xa2d9,0xa2da,0xa2db,0xa2dc,0xa2dd, +0xa2de,0xa2df,0xa2e0,0xa2e1,0xa2e2,0xa2e3,0xa2e4,0xa2e5, +0xa2e6,0xa2e7,0xa2e8,0x0000,0xa240,0x0000,0x0000,0xa1c4, +0x0000,0xa2e9,0xa2ea,0xa2eb,0xa2ec,0xa2ed,0xa2ee,0xa2ef, +0xa2f0,0xa2f1,0xa2f2,0xa2f3,0xa2f4,0xa2f5,0xa2f6,0xa2f7, +0xa2f8,0xa2f9,0xa2fa,0xa2fb,0xa2fc,0xa2fd,0xa2fe,0xa340, +0xa341,0xa342,0xa343,0xa161,0xa155,0xa162,0xa1e3,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa246,0xa247,0x0000,0xa1c3,0x0000,0xa244}; + +static const int ucs_r2_big5_table_min = 0xfe00; +static const int ucs_r2_big5_table_max = 0xfe00 + (sizeof (ucs_r2_big5_table) / sizeof (unsigned short)); + +#endif /* UNICODE_TABLE_BIG5_H */ diff --git a/ext/mbstring/libmbfl/filters/unicode_table_cns11643.h b/ext/mbstring/libmbfl/filters/unicode_table_cns11643.h new file mode 100644 index 0000000..0c17e1e --- /dev/null +++ b/ext/mbstring/libmbfl/filters/unicode_table_cns11643.h @@ -0,0 +1,6149 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: Rui Hirokawa <hirokawa@php.net> + * + */ + +#ifndef UNICODE_TABLE_CNS11643_H +#define UNICODE_TABLE_CNS11643_H + +/* + * Unicode table + */ + +/* CNS11643 -> UCS */ +static const unsigned short cns11643_1_ucs_table[] = { +0x3000,0xff0c,0x3001,0x3002,0xff0e,0x30fb,0xff1b,0xff1a, +0xff1f,0xff01,0xfe30,0x2026,0x2025,0xfe50,0xfe51,0xfe52, +0x00b7,0xfe54,0xfe55,0xfe56,0xfe57,0xfe31,0x2014,0xfe32, +0x2013,0x0000,0x0000,0x0000,0x0000,0xff08,0xff09,0xfe35, +0xfe36,0xff5b,0xff5d,0xfe37,0xfe38,0x3014,0x3015,0xfe39, +0xfe3a,0x3010,0x3011,0xfe3b,0xfe3c,0x300a,0x300b,0xfe3d, +0xfe3e,0x3008,0x3009,0xfe3f,0xfe40,0x300c,0x300d,0xfe41, +0xfe42,0x300e,0x300f,0xfe43,0xfe44,0xfe59,0xfe5a,0xfe5b, +0xfe5c,0xfe5d,0xfe5e,0x2018,0x2019,0x201c,0x201d,0x301d, +0x301e,0x2032,0x2035,0xff03,0xff06,0xff0a,0x203b,0x00a7, +0x3003,0x25cb,0x25cf,0x25b3,0x25b2,0x25ce,0x2606,0x2605, +0x25c7,0x25c6,0x25a1,0x25a0,0x25bd,0x25bc,0x32a3,0x2105, +0x203e,0x0000,0xff3f,0x0000,0xfe49,0xfe4a,0xfe4d,0xfe4e, +0xfe4b,0xfe4c,0xfe5f,0xfe60,0xfe61,0xff0b,0xff0d,0x00d7, +0x00f7,0x00b1,0x221a,0xff1c,0xff1e,0xff1d,0x2266,0x2267, +0x2260,0x221e,0x2252,0x2261,0xfe62,0xfe63,0xfe64,0xfe66, +0xfe65,0x223c,0x2229,0x222a,0x22a5,0x2220,0x221f,0x22bf, +0x33d2,0x33d1,0x222b,0x222e,0x2235,0x2234,0x2640,0x2642, +0x2641,0x2609,0x2191,0x2193,0x2192,0x2190,0x2196,0x2197, +0x2199,0x2198,0x2016,0xff5c,0xff0f,0xff3c,0x2215,0xfe68, +0xff04,0xffe5,0x3012,0xffe0,0xffe1,0xff05,0xff20,0x2103, +0x2109,0xfe69,0xfe6a,0xfe6b,0x33d5,0x339c,0x339d,0x339e, +0x33ce,0x33a1,0x338e,0x338f,0x33c4,0x00b0,0x5159,0x515b, +0x515e,0x515d,0x5161,0x5163,0x55e7,0x74e9,0x7cce,0x2581, +0x2582,0x2583,0x2584,0x2585,0x2586,0x2587,0x2588,0x258f, +0x258e,0x258d,0x258c,0x258b,0x258a,0x2589,0x253c,0x2534, +0x252c,0x2524,0x251c,0x2594,0x2500,0x2502,0x2595,0x250c, +0x2510,0x2514,0x2518,0x256d,0x256e,0x2570,0x256f,0x2550, +0x255e,0x256a,0x2561,0x25e2,0x25e3,0x25e5,0x25e4,0x2571, +0x2572,0x2573,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xff10,0xff11,0xff12,0xff13,0xff14,0xff15, +0xff16,0xff17,0xff18,0xff19,0x2160,0x2161,0x2162,0x2163, +0x2164,0x2165,0x2166,0x2167,0x2168,0x2169,0x3021,0x3022, +0x3023,0x3024,0x3025,0x3026,0x3027,0x3028,0x3029,0x0000, +0x5344,0x0000,0xff21,0xff22,0xff23,0xff24,0xff25,0xff26, +0xff27,0xff28,0xff29,0xff2a,0xff2b,0xff2c,0xff2d,0xff2e, +0xff2f,0xff30,0xff31,0xff32,0xff33,0xff34,0xff35,0xff36, +0xff37,0xff38,0xff39,0xff3a,0xff41,0xff42,0xff43,0xff44, +0xff45,0xff46,0xff47,0xff48,0xff49,0xff4a,0xff4b,0xff4c, +0xff4d,0xff4e,0xff4f,0xff50,0xff51,0xff52,0xff53,0xff54, +0xff55,0xff56,0xff57,0xff58,0xff59,0xff5a,0x0391,0x0392, +0x0393,0x0394,0x0395,0x0396,0x0397,0x0398,0x0399,0x039a, +0x039b,0x039c,0x039d,0x039e,0x039f,0x03a0,0x03a1,0x03a3, +0x03a4,0x03a5,0x03a6,0x03a7,0x03a8,0x03a9,0x03b1,0x03b2, +0x03b3,0x03b4,0x03b5,0x03b6,0x03b7,0x03b8,0x03b9,0x03ba, +0x03bb,0x03bc,0x03bd,0x03be,0x03bf,0x03c0,0x03c1,0x03c3, +0x03c4,0x03c5,0x03c6,0x03c7,0x03c8,0x03c9,0x3105,0x3106, +0x3107,0x3108,0x3109,0x310a,0x310b,0x310c,0x310d,0x310e, +0x310f,0x3110,0x3111,0x3112,0x3113,0x3114,0x3115,0x3116, +0x3117,0x3118,0x3119,0x311a,0x311b,0x311c,0x311d,0x311e, +0x311f,0x3120,0x3121,0x3122,0x3123,0x3124,0x3125,0x3126, +0x3127,0x3128,0x3129,0x02d9,0x02c9,0x02ca,0x02c7,0x02cb, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x2460,0x2461, +0x2462,0x2463,0x2464,0x2465,0x2466,0x2467,0x2468,0x2469, +0x2474,0x2475,0x2476,0x2477,0x2478,0x2479,0x247a,0x247b, +0x247c,0x247d,0x2170,0x2171,0x2172,0x2173,0x2174,0x2175, +0x2176,0x2177,0x2178,0x2179,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x2400,0x2401, +0x2402,0x2403,0x2404,0x2405,0x2406,0x2407,0x2408,0x2409, +0x240a,0x240b,0x240c,0x240d,0x240e,0x240f,0x2410,0x2411, +0x2412,0x2413,0x2414,0x2415,0x2416,0x2417,0x2418,0x2419, +0x241a,0x241b,0x241c,0x241d,0x241e,0x241f,0x2421,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x4e00,0x4e59,0x4e01,0x4e03,0x4e43,0x4e5d, +0x4e86,0x4e8c,0x4eba,0x513f,0x5165,0x516b,0x51e0,0x5200, +0x5201,0x529b,0x5315,0x5341,0x535c,0x53c8,0x4e09,0x4e0b, +0x4e08,0x4e0a,0x4e2b,0x4e38,0x51e1,0x4e45,0x4e48,0x4e5f, +0x4e5e,0x4e8e,0x4ea1,0x5140,0x5203,0x52fa,0x5343,0x53c9, +0x53e3,0x571f,0x58eb,0x5915,0x5927,0x5973,0x5b50,0x5b51, +0x5b53,0x5bf8,0x5c0f,0x5c22,0x5c38,0x5c71,0x5ddd,0x5de5, +0x5df1,0x5df2,0x5df3,0x5dfe,0x5e72,0x5efe,0x5f0b,0x5f13, +0x624d,0x4e11,0x4e10,0x4e0d,0x4e2d,0x4e30,0x4e39,0x4e4b, +0x5c39,0x4e88,0x4e91,0x4e95,0x4e92,0x4e94,0x4ea2,0x4ec1, +0x4ec0,0x4ec3,0x4ec6,0x4ec7,0x4ecd,0x4eca,0x4ecb,0x4ec4, +0x5143,0x5141,0x5167,0x516d,0x516e,0x516c,0x5197,0x51f6, +0x5206,0x5207,0x5208,0x52fb,0x52fe,0x52ff,0x5316,0x5339, +0x5348,0x5347,0x5345,0x535e,0x5384,0x53cb,0x53ca,0x53cd, +0x58ec,0x5929,0x592b,0x592a,0x592d,0x5b54,0x5c11,0x5c24, +0x5c3a,0x5c6f,0x5df4,0x5e7b,0x5eff,0x5f14,0x5f15,0x5fc3, +0x6208,0x6236,0x624b,0x624e,0x652f,0x6587,0x6597,0x65a4, +0x65b9,0x65e5,0x66f0,0x6708,0x6728,0x6b20,0x6b62,0x6b79, +0x6bcb,0x6bd4,0x6bdb,0x6c0f,0x6c34,0x706b,0x722a,0x7236, +0x723b,0x7247,0x7259,0x725b,0x72ac,0x738b,0x4e19,0x4e16, +0x4e15,0x4e14,0x4e18,0x4e3b,0x4e4d,0x4e4f,0x4e4e,0x4ee5, +0x4ed8,0x4ed4,0x4ed5,0x4ed6,0x4ed7,0x4ee3,0x4ee4,0x4ed9, +0x4ede,0x5145,0x5144,0x5189,0x518a,0x51ac,0x51f9,0x51fa, +0x51f8,0x520a,0x52a0,0x529f,0x5305,0x5306,0x5317,0x531d, +0x4edf,0x534a,0x5349,0x5361,0x5360,0x536f,0x536e,0x53bb, +0x53ef,0x53e4,0x53f3,0x53ec,0x53ee,0x53e9,0x53e8,0x53fc, +0x53f8,0x53f5,0x53eb,0x53e6,0x53ea,0x53f2,0x53f1,0x53f0, +0x53e5,0x53ed,0x53fb,0x56db,0x56da,0x5916,0x592e,0x5931, +0x5974,0x5976,0x5b55,0x5b83,0x5c3c,0x5de8,0x5de7,0x5de6, +0x5e02,0x5e03,0x5e73,0x5e7c,0x5f01,0x5f18,0x5f17,0x5fc5, +0x620a,0x6253,0x6254,0x6252,0x6251,0x65a5,0x65e6,0x672e, +0x672c,0x672a,0x672b,0x672d,0x6b63,0x6bcd,0x6c11,0x6c10, +0x6c38,0x6c41,0x6c40,0x6c3e,0x72af,0x7384,0x7389,0x74dc, +0x74e6,0x7518,0x751f,0x7528,0x7529,0x7530,0x7531,0x7532, +0x7533,0x758b,0x767d,0x76ae,0x76bf,0x76ee,0x77db,0x77e2, +0x77f3,0x793a,0x79be,0x7a74,0x7acb,0x4e1e,0x4e1f,0x4e52, +0x4e53,0x4e69,0x4e99,0x4ea4,0x4ea6,0x4ea5,0x4eff,0x4f09, +0x4f19,0x4f0a,0x4f15,0x4f0d,0x4f10,0x4f11,0x4f0f,0x4ef2, +0x4ef6,0x4efb,0x4ef0,0x4ef3,0x4efd,0x4f01,0x4f0b,0x5149, +0x5147,0x5146,0x5148,0x5168,0x5171,0x518d,0x51b0,0x5217, +0x5211,0x5212,0x520e,0x5216,0x52a3,0x5308,0x5321,0x5320, +0x5370,0x5371,0x5409,0x540f,0x540c,0x540a,0x5410,0x5401, +0x540b,0x5404,0x5411,0x540d,0x5408,0x5403,0x540e,0x5406, +0x5412,0x56e0,0x56de,0x56dd,0x5733,0x5730,0x5728,0x572d, +0x572c,0x572f,0x5729,0x5919,0x591a,0x5937,0x5938,0x5984, +0x5978,0x5983,0x597d,0x5979,0x5982,0x5981,0x5b57,0x5b58, +0x5b87,0x5b88,0x5b85,0x5b89,0x5bfa,0x5c16,0x5c79,0x5dde, +0x5e06,0x5e76,0x5e74,0x5f0f,0x5f1b,0x5fd9,0x5fd6,0x620e, +0x620c,0x620d,0x6210,0x6263,0x625b,0x6258,0x6536,0x65e9, +0x65e8,0x65ec,0x65ed,0x66f2,0x66f3,0x6709,0x673d,0x6734, +0x6731,0x6735,0x6b21,0x6b64,0x6b7b,0x6c16,0x6c5d,0x6c57, +0x6c59,0x6c5f,0x6c60,0x6c50,0x6c55,0x6c61,0x6c5b,0x6c4d, +0x6c4e,0x7070,0x725f,0x725d,0x767e,0x7af9,0x7c73,0x7cf8, +0x7f36,0x7f8a,0x7fbd,0x8001,0x8003,0x800c,0x8012,0x8033, +0x807f,0x8089,0x808b,0x808c,0x81e3,0x81ea,0x81f3,0x81fc, +0x820c,0x821b,0x821f,0x826e,0x8272,0x827e,0x866b,0x8840, +0x884c,0x8863,0x897f,0x9621,0x4e32,0x4ea8,0x4f4d,0x4f4f, +0x4f47,0x4f57,0x4f5e,0x4f34,0x4f5b,0x4f55,0x4f30,0x4f50, +0x4f51,0x4f3d,0x4f3a,0x4f38,0x4f43,0x4f54,0x4f3c,0x4f46, +0x4f63,0x4f5c,0x4f60,0x4f2f,0x4f4e,0x4f36,0x4f59,0x4f5d, +0x4f48,0x4f5a,0x514c,0x514b,0x514d,0x5175,0x51b6,0x51b7, +0x5225,0x5224,0x5229,0x522a,0x5228,0x52ab,0x52a9,0x52aa, +0x52ac,0x5323,0x5373,0x5375,0x541d,0x542d,0x541e,0x543e, +0x5426,0x544e,0x5427,0x5446,0x5443,0x5433,0x5448,0x5442, +0x541b,0x5429,0x544a,0x5439,0x543b,0x5438,0x542e,0x5435, +0x5436,0x5420,0x543c,0x5440,0x5431,0x542b,0x541f,0x542c, +0x56ea,0x56f0,0x56e4,0x56eb,0x574a,0x5751,0x5740,0x574d, +0x5747,0x574e,0x573e,0x5750,0x574f,0x573b,0x58ef,0x593e, +0x599d,0x5992,0x59a8,0x599e,0x59a3,0x5999,0x5996,0x598d, +0x59a4,0x5993,0x598a,0x59a5,0x5b5d,0x5b5c,0x5b5a,0x5b5b, +0x5b8c,0x5b8b,0x5b8f,0x5c2c,0x5c40,0x5c41,0x5c3f,0x5c3e, +0x5c90,0x5c91,0x5c94,0x5c8c,0x5deb,0x5e0c,0x5e8f,0x5e87, +0x5e8a,0x5ef7,0x5f04,0x5f1f,0x5f64,0x5f62,0x5f77,0x5f79, +0x5fd8,0x5fcc,0x5fd7,0x5fcd,0x5ff1,0x5feb,0x5ff8,0x5fea, +0x6212,0x6211,0x6284,0x6297,0x6296,0x6280,0x6276,0x6289, +0x626d,0x628a,0x627c,0x627e,0x6279,0x6273,0x6292,0x626f, +0x6298,0x626e,0x6295,0x6293,0x6291,0x6286,0x6539,0x653b, +0x6538,0x65f1,0x66f4,0x675f,0x674e,0x674f,0x6750,0x6751, +0x675c,0x6756,0x675e,0x6749,0x6746,0x6760,0x6753,0x6757, +0x6b65,0x6bcf,0x6c42,0x6c5e,0x6c99,0x6c81,0x6c88,0x6c89, +0x6c85,0x6c9b,0x6c6a,0x6c7a,0x6c90,0x6c70,0x6c8c,0x6c68, +0x6c96,0x6c92,0x6c7d,0x6c83,0x6c72,0x6c7e,0x6c74,0x6c86, +0x6c76,0x6c8d,0x6c94,0x6c98,0x6c82,0x7076,0x707c,0x707d, +0x7078,0x7262,0x7261,0x7260,0x72c4,0x72c2,0x7396,0x752c, +0x752b,0x7537,0x7538,0x7682,0x76ef,0x77e3,0x79c1,0x79c0, +0x79bf,0x7a76,0x7cfb,0x7f55,0x8096,0x8093,0x809d,0x8098, +0x809b,0x809a,0x80b2,0x826f,0x8292,0x828b,0x828d,0x898b, +0x89d2,0x8a00,0x8c37,0x8c46,0x8c55,0x8c9d,0x8d64,0x8d70, +0x8db3,0x8eab,0x8eca,0x8f9b,0x8fb0,0x8fc2,0x8fc6,0x8fc5, +0x8fc4,0x5de1,0x9091,0x90a2,0x90aa,0x90a6,0x90a3,0x9149, +0x91c6,0x91cc,0x9632,0x962e,0x9631,0x962a,0x962c,0x4e26, +0x4e56,0x4e73,0x4e8b,0x4e9b,0x4e9e,0x4eab,0x4eac,0x4f6f, +0x4f9d,0x4f8d,0x4f73,0x4f7f,0x4f6c,0x4f9b,0x4f8b,0x4f86, +0x4f83,0x4f70,0x4f75,0x4f88,0x4f69,0x4f7b,0x4f96,0x4f7e, +0x4f8f,0x4f91,0x4f7a,0x5154,0x5152,0x5155,0x5169,0x5177, +0x5176,0x5178,0x51bd,0x51fd,0x523b,0x5238,0x5237,0x523a, +0x5230,0x522e,0x5236,0x5241,0x52be,0x52bb,0x5352,0x5354, +0x5353,0x5351,0x5366,0x5377,0x5378,0x5379,0x53d6,0x53d4, +0x53d7,0x5473,0x5475,0x5496,0x5478,0x5495,0x5480,0x547b, +0x5477,0x5484,0x5492,0x5486,0x547c,0x5490,0x5471,0x5476, +0x548c,0x549a,0x5462,0x5468,0x548b,0x547d,0x548e,0x56fa, +0x5783,0x5777,0x576a,0x5769,0x5761,0x5766,0x5764,0x577c, +0x591c,0x5949,0x5947,0x5948,0x5944,0x5954,0x59be,0x59bb, +0x59d4,0x59b9,0x59ae,0x59d1,0x59c6,0x59d0,0x59cd,0x59cb, +0x59d3,0x59ca,0x59af,0x59b3,0x59d2,0x59c5,0x5b5f,0x5b64, +0x5b63,0x5b97,0x5b9a,0x5b98,0x5b9c,0x5b99,0x5b9b,0x5c1a, +0x5c48,0x5c45,0x5c46,0x5cb7,0x5ca1,0x5cb8,0x5ca9,0x5cab, +0x5cb1,0x5cb3,0x5e18,0x5e1a,0x5e16,0x5e15,0x5e1b,0x5e11, +0x5e78,0x5e9a,0x5e97,0x5e9c,0x5e95,0x5e96,0x5ef6,0x5f26, +0x5f27,0x5f29,0x5f80,0x5f81,0x5f7f,0x5f7c,0x5fdd,0x5fe0, +0x5ffd,0x5ff5,0x5fff,0x600f,0x6014,0x602f,0x6035,0x6016, +0x602a,0x6015,0x6021,0x6027,0x6029,0x602b,0x601b,0x6216, +0x6215,0x623f,0x623e,0x6240,0x627f,0x62c9,0x62cc,0x62c4, +0x62bf,0x62c2,0x62b9,0x62d2,0x62db,0x62ab,0x62d3,0x62d4, +0x62cb,0x62c8,0x62a8,0x62bd,0x62bc,0x62d0,0x62d9,0x62c7, +0x62cd,0x62b5,0x62da,0x62b1,0x62d8,0x62d6,0x62d7,0x62c6, +0x62ac,0x62ce,0x653e,0x65a7,0x65bc,0x65fa,0x6614,0x6613, +0x660c,0x6606,0x6602,0x660e,0x6600,0x660f,0x6615,0x660a, +0x6607,0x670d,0x670b,0x676d,0x678b,0x6795,0x6771,0x679c, +0x6773,0x6777,0x6787,0x679d,0x6797,0x676f,0x6770,0x677f, +0x6789,0x677e,0x6790,0x6775,0x679a,0x6793,0x677c,0x676a, +0x6772,0x6b23,0x6b66,0x6b67,0x6b7f,0x6c13,0x6c1b,0x6ce3, +0x6ce8,0x6cf3,0x6cb1,0x6ccc,0x6ce5,0x6cb3,0x6cbd,0x6cbe, +0x6cbc,0x6ce2,0x6cab,0x6cd5,0x6cd3,0x6cb8,0x6cc4,0x6cb9, +0x6cc1,0x6cae,0x6cd7,0x6cc5,0x6cf1,0x6cbf,0x6cbb,0x6ce1, +0x6cdb,0x6cca,0x6cac,0x6cef,0x6cdc,0x6cd6,0x6ce0,0x7095, +0x708e,0x7092,0x708a,0x7099,0x722c,0x722d,0x7238,0x7248, +0x7267,0x7269,0x72c0,0x72ce,0x72d9,0x72d7,0x72d0,0x73a9, +0x73a8,0x739f,0x73ab,0x73a5,0x753d,0x759d,0x7599,0x759a, +0x7684,0x76c2,0x76f2,0x76f4,0x77e5,0x77fd,0x793e,0x7940, +0x7941,0x79c9,0x79c8,0x7a7a,0x7a79,0x7afa,0x7cfe,0x7f54, +0x7f8c,0x7f8b,0x8005,0x80ba,0x80a5,0x80a2,0x80b1,0x80a1, +0x80ab,0x80a9,0x80b4,0x80aa,0x80af,0x81e5,0x81fe,0x820d, +0x82b3,0x829d,0x8299,0x82ad,0x82bd,0x829f,0x82b9,0x82b1, +0x82ac,0x82a5,0x82af,0x82b8,0x82a3,0x82b0,0x82be,0x82b7, +0x864e,0x8671,0x521d,0x8868,0x8ecb,0x8fce,0x8fd4,0x8fd1, +0x90b5,0x90b8,0x90b1,0x90b6,0x91c7,0x91d1,0x9577,0x9580, +0x961c,0x9640,0x963f,0x963b,0x9644,0x9642,0x96b9,0x96e8, +0x9752,0x975e,0x4e9f,0x4ead,0x4eae,0x4fe1,0x4fb5,0x4faf, +0x4fbf,0x4fe0,0x4fd1,0x4fcf,0x4fdd,0x4fc3,0x4fb6,0x4fd8, +0x4fdf,0x4fca,0x4fd7,0x4fae,0x4fd0,0x4fc4,0x4fc2,0x4fda, +0x4fce,0x4fde,0x4fb7,0x5157,0x5192,0x5191,0x51a0,0x524e, +0x5243,0x524a,0x524d,0x524c,0x524b,0x5247,0x52c7,0x52c9, +0x52c3,0x52c1,0x530d,0x5357,0x537b,0x539a,0x53db,0x54ac, +0x54c0,0x54a8,0x54ce,0x54c9,0x54b8,0x54a6,0x54b3,0x54c7, +0x54c2,0x54bd,0x54aa,0x54c1,0x54c4,0x54c8,0x54af,0x54ab, +0x54b1,0x54bb,0x54a9,0x54a7,0x54bf,0x56ff,0x5782,0x578b, +0x57a0,0x57a3,0x57a2,0x57ce,0x57ae,0x5793,0x5955,0x5951, +0x594f,0x594e,0x5950,0x59dc,0x59d8,0x59ff,0x59e3,0x59e8, +0x5a03,0x59e5,0x59ea,0x59da,0x59e6,0x5a01,0x59fb,0x5b69, +0x5ba3,0x5ba6,0x5ba4,0x5ba2,0x5ba5,0x5c01,0x5c4e,0x5c4f, +0x5c4d,0x5c4b,0x5cd9,0x5cd2,0x5df7,0x5e1d,0x5e25,0x5e1f, +0x5e7d,0x5ea0,0x5ea6,0x5efa,0x5f08,0x5f2d,0x5f65,0x5f88, +0x5f85,0x5f8a,0x5f8b,0x5f87,0x5f8c,0x5f89,0x6012,0x601d, +0x6020,0x6025,0x600e,0x6028,0x604d,0x6070,0x6068,0x6062, +0x6046,0x6043,0x606c,0x606b,0x606a,0x6064,0x6241,0x62dc, +0x6316,0x6309,0x62fc,0x62ed,0x6301,0x62ee,0x62fd,0x6307, +0x62f1,0x62f7,0x62ef,0x62ec,0x62fe,0x62f4,0x6311,0x6302, +0x653f,0x6545,0x65ab,0x65bd,0x65e2,0x6625,0x662d,0x6620, +0x6627,0x662f,0x661f,0x6628,0x6631,0x6624,0x66f7,0x67ff, +0x67d3,0x67f1,0x67d4,0x67d0,0x67ec,0x67b6,0x67af,0x67f5, +0x67e9,0x67ef,0x67c4,0x67d1,0x67b4,0x67da,0x67e5,0x67b8, +0x67cf,0x67de,0x67f3,0x67b0,0x67d9,0x67e2,0x67dd,0x67d2, +0x6b6a,0x6b83,0x6b86,0x6bb5,0x6bd2,0x6bd7,0x6c1f,0x6cc9, +0x6d0b,0x6d32,0x6d2a,0x6d41,0x6d25,0x6d0c,0x6d31,0x6d1e, +0x6d17,0x6d3b,0x6d3d,0x6d3e,0x6d36,0x6d1b,0x6cf5,0x6d39, +0x6d27,0x6d38,0x6d29,0x6d2e,0x6d35,0x6d0e,0x6d2b,0x70ab, +0x70ba,0x70b3,0x70ac,0x70af,0x70ad,0x70b8,0x70ae,0x70a4, +0x7230,0x7272,0x726f,0x7274,0x72e9,0x72e0,0x72e1,0x73b7, +0x73ca,0x73bb,0x73b2,0x73cd,0x73c0,0x73b3,0x751a,0x752d, +0x754f,0x754c,0x754e,0x754b,0x75ab,0x75a4,0x75a5,0x75a2, +0x75a3,0x7678,0x7686,0x7687,0x7688,0x76c8,0x76c6,0x76c3, +0x76c5,0x7701,0x76f9,0x76f8,0x7709,0x770b,0x76fe,0x76fc, +0x7707,0x77dc,0x7802,0x7814,0x780c,0x780d,0x7946,0x7949, +0x7948,0x7947,0x79b9,0x79ba,0x79d1,0x79d2,0x79cb,0x7a7f, +0x7a81,0x7aff,0x7afd,0x7c7d,0x7d02,0x7d05,0x7d00,0x7d09, +0x7d07,0x7d04,0x7d06,0x7f38,0x7f8e,0x7fbf,0x8010,0x800d, +0x8011,0x8036,0x80d6,0x80e5,0x80da,0x80c3,0x80c4,0x80cc, +0x80e1,0x80db,0x80ce,0x80de,0x80e4,0x80dd,0x81f4,0x8222, +0x82e7,0x8303,0x8305,0x82e3,0x82db,0x82e6,0x8304,0x82e5, +0x8302,0x8309,0x82d2,0x82d7,0x82f1,0x8301,0x82dc,0x82d4, +0x82d1,0x82de,0x82d3,0x82df,0x82ef,0x8306,0x8650,0x8679, +0x867b,0x867a,0x884d,0x886b,0x8981,0x89d4,0x8a08,0x8a02, +0x8a03,0x8c9e,0x8ca0,0x8d74,0x8d73,0x8db4,0x8ecd,0x8ecc, +0x8ff0,0x8fe6,0x8fe2,0x8fea,0x8fe5,0x8fed,0x8feb,0x8fe4, +0x8fe8,0x90ca,0x90ce,0x90c1,0x90c3,0x914b,0x914a,0x91cd, +0x9582,0x9650,0x964b,0x964c,0x964d,0x9762,0x9769,0x97cb, +0x97ed,0x97f3,0x9801,0x98a8,0x98db,0x98df,0x9996,0x9999, +0x4e58,0x4eb3,0x500c,0x500d,0x5023,0x4fef,0x5026,0x5025, +0x4ff8,0x5029,0x5016,0x5006,0x503c,0x501f,0x501a,0x5012, +0x5011,0x4ffa,0x5000,0x5014,0x5028,0x4ff1,0x5021,0x500b, +0x5019,0x5018,0x4ff3,0x4fee,0x502d,0x502a,0x4ffe,0x502b, +0x5009,0x517c,0x51a4,0x51a5,0x51a2,0x51cd,0x51cc,0x51c6, +0x51cb,0x5256,0x525c,0x5254,0x525b,0x525d,0x532a,0x537f, +0x539f,0x539d,0x53df,0x54e8,0x5510,0x5501,0x5537,0x54fc, +0x54e5,0x54f2,0x5506,0x54fa,0x5514,0x54e9,0x54ed,0x54e1, +0x5509,0x54ee,0x54ea,0x54e6,0x5527,0x5507,0x54fd,0x550f, +0x5703,0x5704,0x57c2,0x57d4,0x57cb,0x57c3,0x5809,0x590f, +0x5957,0x5958,0x595a,0x5a11,0x5a18,0x5a1c,0x5a1f,0x5a1b, +0x5a13,0x59ec,0x5a20,0x5a23,0x5a29,0x5a25,0x5a0c,0x5a09, +0x5b6b,0x5c58,0x5bb0,0x5bb3,0x5bb6,0x5bb4,0x5bae,0x5bb5, +0x5bb9,0x5bb8,0x5c04,0x5c51,0x5c55,0x5c50,0x5ced,0x5cfd, +0x5cfb,0x5cea,0x5ce8,0x5cf0,0x5cf6,0x5d01,0x5cf4,0x5dee, +0x5e2d,0x5e2b,0x5eab,0x5ead,0x5ea7,0x5f31,0x5f92,0x5f91, +0x5f90,0x6059,0x6063,0x6065,0x6050,0x6055,0x606d,0x6069, +0x606f,0x6084,0x609f,0x609a,0x608d,0x6094,0x608c,0x6085, +0x6096,0x6247,0x62f3,0x6308,0x62ff,0x634e,0x633e,0x632f, +0x6355,0x6342,0x6346,0x634f,0x6349,0x633a,0x6350,0x633d, +0x632a,0x632b,0x6328,0x634d,0x634c,0x6548,0x6549,0x6599, +0x65c1,0x65c5,0x6642,0x6649,0x664f,0x6643,0x6652,0x664c, +0x6645,0x6641,0x66f8,0x6714,0x6715,0x6717,0x6821,0x6838, +0x6848,0x6846,0x6853,0x6839,0x6842,0x6854,0x6829,0x68b3, +0x6817,0x684c,0x6851,0x683d,0x67f4,0x6850,0x6840,0x683c, +0x6843,0x682a,0x6845,0x6813,0x6818,0x6841,0x6b8a,0x6b89, +0x6bb7,0x6c23,0x6c27,0x6c28,0x6c26,0x6c24,0x6cf0,0x6d6a, +0x6d95,0x6d88,0x6d87,0x6d66,0x6d78,0x6d77,0x6d59,0x6d93, +0x6d6c,0x6d89,0x6d6e,0x6d5a,0x6d74,0x6d69,0x6d8c,0x6d8a, +0x6d79,0x6d85,0x6d65,0x6d94,0x70ca,0x70d8,0x70e4,0x70d9, +0x70c8,0x70cf,0x7239,0x7279,0x72fc,0x72f9,0x72fd,0x72f8, +0x72f7,0x7386,0x73ed,0x7409,0x73ee,0x73e0,0x73ea,0x73de, +0x7554,0x755d,0x755c,0x755a,0x7559,0x75be,0x75c5,0x75c7, +0x75b2,0x75b3,0x75bd,0x75bc,0x75b9,0x75c2,0x75b8,0x768b, +0x76b0,0x76ca,0x76cd,0x76ce,0x7729,0x771f,0x7720,0x7728, +0x77e9,0x7830,0x7827,0x7838,0x781d,0x7834,0x7837,0x7825, +0x782d,0x7820,0x781f,0x7832,0x7955,0x7950,0x7960,0x795f, +0x7956,0x795e,0x795d,0x7957,0x795a,0x79e4,0x79e3,0x79e7, +0x79df,0x79e6,0x79e9,0x79d8,0x7a84,0x7a88,0x7ad9,0x7b06, +0x7b11,0x7c89,0x7d21,0x7d17,0x7d0b,0x7d0a,0x7d20,0x7d22, +0x7d14,0x7d10,0x7d15,0x7d1a,0x7d1c,0x7d0d,0x7d19,0x7d1b, +0x7f3a,0x7f5f,0x7f94,0x7fc5,0x7fc1,0x8006,0x8004,0x8018, +0x8015,0x8019,0x8017,0x803d,0x803f,0x80f1,0x8102,0x80f0, +0x8105,0x80ed,0x80f4,0x8106,0x80f8,0x80f3,0x8108,0x80fd, +0x810a,0x80fc,0x80ef,0x81ed,0x81ec,0x8200,0x8210,0x822a, +0x822b,0x8228,0x822c,0x82bb,0x832b,0x8352,0x8354,0x834a, +0x8338,0x8350,0x8349,0x8335,0x8334,0x834f,0x8332,0x8339, +0x8336,0x8317,0x8340,0x8331,0x8328,0x8343,0x8654,0x868a, +0x86aa,0x8693,0x86a4,0x86a9,0x868c,0x86a3,0x869c,0x8870, +0x8877,0x8881,0x8882,0x887d,0x8879,0x8a18,0x8a10,0x8a0e, +0x8a0c,0x8a15,0x8a0a,0x8a17,0x8a13,0x8a16,0x8a0f,0x8a11, +0x8c48,0x8c7a,0x8c79,0x8ca1,0x8ca2,0x8d77,0x8eac,0x8ed2, +0x8ed4,0x8ecf,0x8fb1,0x9001,0x9006,0x8ff7,0x9000,0x8ffa, +0x8ff4,0x9003,0x8ffd,0x9005,0x8ff8,0x9095,0x90e1,0x90dd, +0x90e2,0x9152,0x914d,0x914c,0x91d8,0x91dd,0x91d7,0x91dc, +0x91d9,0x9583,0x9662,0x9663,0x9661,0x965b,0x965d,0x9664, +0x9658,0x965e,0x96bb,0x98e2,0x99ac,0x9aa8,0x9ad8,0x9b25, +0x9b32,0x9b3c,0x4e7e,0x507a,0x507d,0x505c,0x5047,0x5043, +0x504c,0x505a,0x5049,0x5065,0x5076,0x504e,0x5055,0x5075, +0x5074,0x5077,0x504f,0x500f,0x506f,0x506d,0x515c,0x5195, +0x51f0,0x526a,0x526f,0x52d2,0x52d9,0x52d8,0x52d5,0x5310, +0x530f,0x5319,0x533f,0x5340,0x533e,0x53c3,0x66fc,0x5546, +0x556a,0x5566,0x5544,0x555e,0x5561,0x5543,0x554a,0x5531, +0x5556,0x554f,0x5555,0x552f,0x5564,0x5538,0x552e,0x555c, +0x552c,0x5563,0x5533,0x5541,0x5557,0x5708,0x570b,0x5709, +0x57df,0x5805,0x580a,0x5806,0x57e0,0x57e4,0x57fa,0x5802, +0x5835,0x57f7,0x57f9,0x5920,0x5962,0x5a36,0x5a41,0x5a49, +0x5a66,0x5a6a,0x5a40,0x5a3c,0x5a62,0x5a5a,0x5a46,0x5a4a, +0x5b70,0x5bc7,0x5bc5,0x5bc4,0x5bc2,0x5bbf,0x5bc6,0x5c09, +0x5c08,0x5c07,0x5c60,0x5c5c,0x5c5d,0x5d07,0x5d06,0x5d0e, +0x5d1b,0x5d16,0x5d22,0x5d11,0x5d29,0x5d14,0x5d19,0x5d24, +0x5d27,0x5d17,0x5de2,0x5e38,0x5e36,0x5e33,0x5e37,0x5eb7, +0x5eb8,0x5eb6,0x5eb5,0x5ebe,0x5f35,0x5f37,0x5f57,0x5f6c, +0x5f69,0x5f6b,0x5f97,0x5f99,0x5f9e,0x5f98,0x5fa1,0x5fa0, +0x5f9c,0x607f,0x60a3,0x6089,0x60a0,0x60a8,0x60cb,0x60b4, +0x60e6,0x60bd,0x60c5,0x60bb,0x60b5,0x60dc,0x60bc,0x60d8, +0x60d5,0x60c6,0x60df,0x60b8,0x60da,0x60c7,0x621a,0x621b, +0x6248,0x63a0,0x63a7,0x6372,0x6396,0x63a2,0x63a5,0x6377, +0x6367,0x6398,0x63aa,0x6371,0x63a9,0x6389,0x6383,0x639b, +0x636b,0x63a8,0x6384,0x6388,0x6399,0x63a1,0x63ac,0x6392, +0x638f,0x6380,0x637b,0x6369,0x6368,0x637a,0x655d,0x6556, +0x6551,0x6559,0x6557,0x555f,0x654f,0x6558,0x6555,0x6554, +0x659c,0x659b,0x65ac,0x65cf,0x65cb,0x65cc,0x65ce,0x665d, +0x665a,0x6664,0x6668,0x6666,0x665e,0x66f9,0x52d7,0x671b, +0x6881,0x68af,0x68a2,0x6893,0x68b5,0x687f,0x6876,0x68b1, +0x68a7,0x6897,0x68b0,0x6883,0x68c4,0x68ad,0x6886,0x6885, +0x6894,0x689d,0x68a8,0x689f,0x68a1,0x6882,0x6b32,0x6bba, +0x6beb,0x6bec,0x6c2b,0x6d8e,0x6dbc,0x6df3,0x6dd9,0x6db2, +0x6de1,0x6dcc,0x6de4,0x6dfb,0x6dfa,0x6e05,0x6dc7,0x6dcb, +0x6daf,0x6dd1,0x6dae,0x6dde,0x6df9,0x6db8,0x6df7,0x6df5, +0x6dc5,0x6dd2,0x6e1a,0x6db5,0x6dda,0x6deb,0x6dd8,0x6dea, +0x6df1,0x6dee,0x6de8,0x6dc6,0x6dc4,0x6daa,0x6dec,0x6dbf, +0x6de6,0x70f9,0x7109,0x710a,0x70fd,0x70ef,0x723d,0x727d, +0x7281,0x731c,0x731b,0x7316,0x7313,0x7319,0x7387,0x7405, +0x740a,0x7403,0x7406,0x73fe,0x740d,0x74e0,0x74f6,0x74f7, +0x751c,0x7522,0x7565,0x7566,0x7562,0x7570,0x758f,0x75d4, +0x75d5,0x75b5,0x75ca,0x75cd,0x768e,0x76d4,0x76d2,0x76db, +0x7737,0x773e,0x773c,0x7736,0x7738,0x773a,0x786b,0x7843, +0x784e,0x7965,0x7968,0x796d,0x79fb,0x7a92,0x7a95,0x7b20, +0x7b28,0x7b1b,0x7b2c,0x7b26,0x7b19,0x7b1e,0x7b2e,0x7c92, +0x7c97,0x7c95,0x7d46,0x7d43,0x7d71,0x7d2e,0x7d39,0x7d3c, +0x7d40,0x7d30,0x7d33,0x7d44,0x7d2f,0x7d42,0x7d32,0x7d31, +0x7f3d,0x7f9e,0x7f9a,0x7fcc,0x7fce,0x7fd2,0x801c,0x804a, +0x8046,0x812f,0x8116,0x8123,0x812b,0x8129,0x8130,0x8124, +0x8202,0x8235,0x8237,0x8236,0x8239,0x838e,0x839e,0x8398, +0x8378,0x83a2,0x8396,0x83bd,0x83ab,0x8392,0x838a,0x8393, +0x8389,0x83a0,0x8377,0x837b,0x837c,0x8386,0x83a7,0x8655, +0x5f6a,0x86c7,0x86c0,0x86b6,0x86c4,0x86b5,0x86c6,0x86cb, +0x86b1,0x86af,0x86c9,0x8853,0x889e,0x8888,0x88ab,0x8892, +0x8896,0x888d,0x888b,0x8993,0x898f,0x8a2a,0x8a1d,0x8a23, +0x8a25,0x8a31,0x8a2d,0x8a1f,0x8a1b,0x8a22,0x8c49,0x8c5a, +0x8ca9,0x8cac,0x8cab,0x8ca8,0x8caa,0x8ca7,0x8d67,0x8d66, +0x8dbe,0x8dba,0x8edb,0x8edf,0x9019,0x900d,0x901a,0x9017, +0x9023,0x901f,0x901d,0x9010,0x9015,0x901e,0x9020,0x900f, +0x9022,0x9016,0x901b,0x9014,0x90e8,0x90ed,0x90fd,0x9157, +0x91ce,0x91f5,0x91e6,0x91e3,0x91e7,0x91ed,0x91e9,0x9589, +0x966a,0x9675,0x9673,0x9678,0x9670,0x9674,0x9676,0x9677, +0x966c,0x96c0,0x96ea,0x96e9,0x7ae0,0x7adf,0x9802,0x9803, +0x9b5a,0x9ce5,0x9e75,0x9e7f,0x9ea5,0x9ebb,0x50a2,0x508d, +0x5085,0x5099,0x5091,0x5080,0x5096,0x5098,0x509a,0x6700, +0x51f1,0x5272,0x5274,0x5275,0x5269,0x52de,0x52dd,0x52db, +0x535a,0x53a5,0x557b,0x5580,0x55a7,0x557c,0x558a,0x559d, +0x5598,0x5582,0x559c,0x55aa,0x5594,0x5587,0x558b,0x5583, +0x55b3,0x55ae,0x559f,0x553e,0x55b2,0x559a,0x55bb,0x55ac, +0x55b1,0x557e,0x5589,0x55ab,0x5599,0x570d,0x582f,0x582a, +0x5834,0x5824,0x5830,0x5831,0x5821,0x581d,0x5820,0x58f9, +0x58fa,0x5960,0x5a77,0x5a9a,0x5a7f,0x5a92,0x5a9b,0x5aa7, +0x5b73,0x5b71,0x5bd2,0x5bcc,0x5bd3,0x5bd0,0x5c0a,0x5c0b, +0x5c31,0x5d4c,0x5d50,0x5d34,0x5d47,0x5dfd,0x5e45,0x5e3d, +0x5e40,0x5e43,0x5e7e,0x5eca,0x5ec1,0x5ec2,0x5ec4,0x5f3c, +0x5f6d,0x5fa9,0x5faa,0x5fa8,0x60d1,0x60e1,0x60b2,0x60b6, +0x60e0,0x611c,0x6123,0x60fa,0x6115,0x60f0,0x60fb,0x60f4, +0x6168,0x60f1,0x610e,0x60f6,0x6109,0x6100,0x6112,0x621f, +0x6249,0x63a3,0x638c,0x63cf,0x63c0,0x63e9,0x63c9,0x63c6, +0x63cd,0x63d2,0x63e3,0x63d0,0x63e1,0x63d6,0x63ed,0x63ee, +0x6376,0x63f4,0x63ea,0x63db,0x6452,0x63da,0x63f9,0x655e, +0x6566,0x6562,0x6563,0x6591,0x6590,0x65af,0x666e,0x6670, +0x6674,0x6676,0x666f,0x6691,0x667a,0x667e,0x6677,0x66fe, +0x66ff,0x671f,0x671d,0x68fa,0x68d5,0x68e0,0x68d8,0x68d7, +0x6905,0x68df,0x68f5,0x68ee,0x68e7,0x68f9,0x68d2,0x68f2, +0x68e3,0x68cb,0x68cd,0x690d,0x6912,0x690e,0x68c9,0x68da, +0x696e,0x68fb,0x6b3e,0x6b3a,0x6b3d,0x6b98,0x6b96,0x6bbc, +0x6bef,0x6c2e,0x6c2f,0x6c2c,0x6e2f,0x6e38,0x6e54,0x6e21, +0x6e32,0x6e67,0x6e4a,0x6e20,0x6e25,0x6e23,0x6e1b,0x6e5b, +0x6e58,0x6e24,0x6e56,0x6e6e,0x6e2d,0x6e26,0x6e6f,0x6e34, +0x6e4d,0x6e3a,0x6e2c,0x6e43,0x6e1d,0x6e3e,0x6ecb,0x6e89, +0x6e19,0x6e4e,0x6e63,0x6e44,0x6e72,0x6e69,0x6e5f,0x7119, +0x711a,0x7126,0x7130,0x7121,0x7136,0x716e,0x711c,0x724c, +0x7284,0x7280,0x7336,0x7325,0x7334,0x7329,0x743a,0x742a, +0x7433,0x7422,0x7425,0x7435,0x7436,0x7434,0x742f,0x741b, +0x7426,0x7428,0x7525,0x7526,0x756b,0x756a,0x75e2,0x75db, +0x75e3,0x75d9,0x75d8,0x75de,0x75e0,0x767b,0x767c,0x7696, +0x7693,0x76b4,0x76dc,0x774f,0x77ed,0x785d,0x786c,0x786f, +0x7a0d,0x7a08,0x7a0b,0x7a05,0x7a00,0x7a98,0x7a97,0x7a96, +0x7ae5,0x7ae3,0x7b49,0x7b56,0x7b46,0x7b50,0x7b52,0x7b54, +0x7b4d,0x7b4b,0x7b4f,0x7b51,0x7c9f,0x7ca5,0x7d5e,0x7d50, +0x7d68,0x7d55,0x7d2b,0x7d6e,0x7d72,0x7d61,0x7d66,0x7d62, +0x7d70,0x7d73,0x5584,0x7fd4,0x7fd5,0x800b,0x8052,0x8085, +0x8155,0x8154,0x814b,0x8151,0x814e,0x8139,0x8146,0x813e, +0x814c,0x8153,0x8174,0x8212,0x821c,0x83e9,0x8403,0x83f8, +0x840d,0x83e0,0x83c5,0x840b,0x83c1,0x83ef,0x83f1,0x83f4, +0x8457,0x840a,0x83f0,0x840c,0x83cc,0x83fd,0x83f2,0x83ca, +0x8438,0x840e,0x8404,0x83dc,0x8407,0x83d4,0x83df,0x865b, +0x86df,0x86d9,0x86ed,0x86d4,0x86db,0x86e4,0x86d0,0x86de, +0x8857,0x88c1,0x88c2,0x88b1,0x8983,0x8996,0x8a3b,0x8a60, +0x8a55,0x8a5e,0x8a3c,0x8a41,0x8a54,0x8a5b,0x8a50,0x8a46, +0x8a34,0x8a3a,0x8a36,0x8a56,0x8c61,0x8c82,0x8caf,0x8cbc, +0x8cb3,0x8cbd,0x8cc1,0x8cbb,0x8cc0,0x8cb4,0x8cb7,0x8cb6, +0x8cbf,0x8cb8,0x8d8a,0x8d85,0x8d81,0x8dce,0x8ddd,0x8dcb, +0x8dda,0x8dd1,0x8dcc,0x8ddb,0x8dc6,0x8efb,0x8ef8,0x8efc, +0x8f9c,0x902e,0x9035,0x9031,0x9038,0x9032,0x9036,0x9102, +0x90f5,0x9109,0x90fe,0x9163,0x9165,0x91cf,0x9214,0x9215, +0x9223,0x9209,0x921e,0x920d,0x9210,0x9207,0x9211,0x9594, +0x958f,0x958b,0x9591,0x9593,0x9592,0x958e,0x968a,0x968e, +0x968b,0x967d,0x9685,0x9686,0x968d,0x9672,0x9684,0x96c1, +0x96c5,0x96c4,0x96c6,0x96c7,0x96ef,0x96f2,0x97cc,0x9805, +0x9806,0x9808,0x98e7,0x98ea,0x98ef,0x98e9,0x98f2,0x98ed, +0x99ae,0x99ad,0x9ec3,0x9ecd,0x9ed1,0x4e82,0x50ad,0x50b5, +0x50b2,0x50b3,0x50c5,0x50be,0x50ac,0x50b7,0x50bb,0x50af, +0x50c7,0x527f,0x5277,0x527d,0x52df,0x52e6,0x52e4,0x52e2, +0x52e3,0x532f,0x55df,0x55e8,0x55d3,0x55e6,0x55ce,0x55dc, +0x55c7,0x55d1,0x55e3,0x55e4,0x55ef,0x55da,0x55e1,0x55c5, +0x55c6,0x55e5,0x55c9,0x5712,0x5713,0x585e,0x5851,0x5858, +0x5857,0x585a,0x5854,0x586b,0x584c,0x586d,0x584a,0x5862, +0x5852,0x584b,0x5967,0x5ac1,0x5ac9,0x5acc,0x5abe,0x5abd, +0x5abc,0x5ab3,0x5ac2,0x5ab2,0x5d69,0x5d6f,0x5e4c,0x5e79, +0x5ec9,0x5ec8,0x5f12,0x5f59,0x5fac,0x5fae,0x611a,0x610f, +0x6148,0x611f,0x60f3,0x611b,0x60f9,0x6101,0x6108,0x614e, +0x614c,0x6144,0x614d,0x613e,0x6134,0x6127,0x610d,0x6106, +0x6137,0x6221,0x6222,0x6413,0x643e,0x641e,0x642a,0x642d, +0x643d,0x642c,0x640f,0x641c,0x6414,0x640d,0x6436,0x6416, +0x6417,0x6406,0x656c,0x659f,0x65b0,0x6697,0x6689,0x6687, +0x6688,0x6696,0x6684,0x6698,0x668d,0x6703,0x6994,0x696d, +0x695a,0x6977,0x6960,0x6954,0x6975,0x6930,0x6982,0x694a, +0x6968,0x696b,0x695e,0x6953,0x6979,0x6986,0x695d,0x6963, +0x695b,0x6b47,0x6b72,0x6bc0,0x6bbf,0x6bd3,0x6bfd,0x6ea2, +0x6eaf,0x6ed3,0x6eb6,0x6ec2,0x6e90,0x6e9d,0x6ec7,0x6ec5, +0x6ea5,0x6e98,0x6ebc,0x6eba,0x6eab,0x6ed1,0x6e96,0x6e9c, +0x6ec4,0x6ed4,0x6eaa,0x6ea7,0x6eb4,0x714e,0x7159,0x7169, +0x7164,0x7149,0x7167,0x715c,0x716c,0x7166,0x714c,0x7165, +0x715e,0x7146,0x7168,0x7156,0x723a,0x7252,0x7337,0x7345, +0x733f,0x733e,0x746f,0x745a,0x7455,0x745f,0x745e,0x7441, +0x743f,0x7459,0x745b,0x745c,0x7576,0x7578,0x7600,0x75f0, +0x7601,0x75f2,0x75f1,0x75fa,0x75ff,0x75f4,0x75f3,0x76de, +0x76df,0x775b,0x776b,0x7766,0x775e,0x7763,0x7779,0x776a, +0x776c,0x775c,0x7765,0x7768,0x7762,0x77ee,0x788e,0x78b0, +0x7897,0x7898,0x788c,0x7889,0x787c,0x7891,0x7893,0x787f, +0x797a,0x797f,0x7981,0x842c,0x79bd,0x7a1c,0x7a1a,0x7a20, +0x7a14,0x7a1f,0x7a1e,0x7a9f,0x7aa0,0x7b77,0x7bc0,0x7b60, +0x7b6e,0x7b67,0x7cb1,0x7cb3,0x7cb5,0x7d93,0x7d79,0x7d91, +0x7d81,0x7d8f,0x7d5b,0x7f6e,0x7f69,0x7f6a,0x7f72,0x7fa9, +0x7fa8,0x7fa4,0x8056,0x8058,0x8086,0x8084,0x8171,0x8170, +0x8178,0x8165,0x816e,0x8173,0x816b,0x8179,0x817a,0x8166, +0x8205,0x8247,0x8482,0x8477,0x843d,0x8431,0x8475,0x8466, +0x846b,0x8449,0x846c,0x845b,0x843c,0x8435,0x8461,0x8463, +0x8469,0x846d,0x8446,0x865e,0x865c,0x865f,0x86f9,0x8713, +0x8708,0x8707,0x8700,0x86fe,0x86fb,0x8702,0x8703,0x8706, +0x870a,0x8859,0x88df,0x88d4,0x88d9,0x88dc,0x88d8,0x88dd, +0x88e1,0x88ca,0x88d5,0x88d2,0x899c,0x89e3,0x8a6b,0x8a72, +0x8a73,0x8a66,0x8a69,0x8a70,0x8a87,0x8a7c,0x8a63,0x8aa0, +0x8a71,0x8a85,0x8a6d,0x8a62,0x8a6e,0x8a6c,0x8a79,0x8a7b, +0x8a3e,0x8a68,0x8c62,0x8c8a,0x8c89,0x8cca,0x8cc7,0x8cc8, +0x8cc4,0x8cb2,0x8cc3,0x8cc2,0x8cc5,0x8de1,0x8ddf,0x8de8, +0x8def,0x8df3,0x8dfa,0x8dea,0x8de4,0x8de6,0x8eb2,0x8f03, +0x8f09,0x8efe,0x8f0a,0x8f9f,0x8fb2,0x904b,0x904a,0x9053, +0x9042,0x9054,0x903c,0x9055,0x9050,0x9047,0x904f,0x904e, +0x904d,0x9051,0x903e,0x9041,0x9112,0x9117,0x916c,0x916a, +0x9169,0x91c9,0x9237,0x9257,0x9238,0x923d,0x9240,0x923e, +0x925b,0x924b,0x9264,0x9251,0x9234,0x9249,0x924d,0x9245, +0x9239,0x923f,0x925a,0x9598,0x9698,0x9694,0x9695,0x96cd, +0x96cb,0x96c9,0x96ca,0x96f7,0x96fb,0x96f9,0x96f6,0x9756, +0x9774,0x9776,0x9810,0x9811,0x9813,0x980a,0x9812,0x980c, +0x98fc,0x98f4,0x98fd,0x98fe,0x99b3,0x99b1,0x99b4,0x9ae1, +0x9ce9,0x9e82,0x9f0e,0x9f13,0x9f20,0x50e7,0x50ee,0x50e5, +0x50d6,0x50ed,0x50da,0x50d5,0x50cf,0x50d1,0x50f1,0x50ce, +0x50e9,0x5162,0x51f3,0x5283,0x5282,0x5331,0x53ad,0x55fe, +0x5600,0x561b,0x5617,0x55fd,0x5614,0x5606,0x5609,0x560d, +0x560e,0x55f7,0x5616,0x561f,0x5608,0x5610,0x55f6,0x5718, +0x5716,0x5875,0x587e,0x5883,0x5893,0x588a,0x5879,0x5885, +0x587d,0x58fd,0x5925,0x5922,0x5924,0x596a,0x5969,0x5ae1, +0x5ae6,0x5ae9,0x5ad7,0x5ad6,0x5ad8,0x5ae3,0x5b75,0x5bde, +0x5be7,0x5be1,0x5be5,0x5be6,0x5be8,0x5be2,0x5be4,0x5bdf, +0x5c0d,0x5c62,0x5d84,0x5d87,0x5e5b,0x5e63,0x5e55,0x5e57, +0x5e54,0x5ed3,0x5ed6,0x5f0a,0x5f46,0x5f70,0x5fb9,0x6147, +0x613f,0x614b,0x6177,0x6162,0x6163,0x615f,0x615a,0x6158, +0x6175,0x622a,0x6487,0x6458,0x6454,0x64a4,0x6478,0x645f, +0x647a,0x6451,0x6467,0x6434,0x646d,0x647b,0x6572,0x65a1, +0x65d7,0x65d6,0x66a2,0x66a8,0x669d,0x699c,0x69a8,0x6995, +0x69c1,0x69ae,0x69d3,0x69cb,0x699b,0x69b7,0x69bb,0x69ab, +0x69b4,0x69d0,0x69cd,0x69ad,0x69cc,0x69a6,0x69c3,0x69a3, +0x6b49,0x6b4c,0x6c33,0x6f33,0x6f14,0x6efe,0x6f13,0x6ef4, +0x6f29,0x6f3e,0x6f20,0x6f2c,0x6f0f,0x6f02,0x6f22,0x6eff, +0x6eef,0x6f06,0x6f31,0x6f38,0x6f32,0x6f23,0x6f15,0x6f2b, +0x6f2f,0x6f88,0x6f2a,0x6eec,0x6f01,0x6ef2,0x6ecc,0x6ef7, +0x7194,0x7199,0x717d,0x718a,0x7184,0x7192,0x723e,0x7292, +0x7296,0x7344,0x7350,0x7464,0x7463,0x746a,0x7470,0x746d, +0x7504,0x7591,0x7627,0x760d,0x760b,0x7609,0x7613,0x76e1, +0x76e3,0x7784,0x777d,0x777f,0x7761,0x78c1,0x789f,0x78a7, +0x78b3,0x78a9,0x78a3,0x798e,0x798f,0x798d,0x7a2e,0x7a31, +0x7aaa,0x7aa9,0x7aed,0x7aef,0x7ba1,0x7b95,0x7b8b,0x7b75, +0x7b97,0x7b9d,0x7b94,0x7b8f,0x7bb8,0x7b87,0x7b84,0x7cb9, +0x7cbd,0x7cbe,0x7dbb,0x7db0,0x7d9c,0x7dbd,0x7dbe,0x7da0, +0x7dca,0x7db4,0x7db2,0x7db1,0x7dba,0x7da2,0x7dbf,0x7db5, +0x7db8,0x7dad,0x7dd2,0x7dc7,0x7dac,0x7f70,0x7fe0,0x7fe1, +0x7fdf,0x805e,0x805a,0x8087,0x8150,0x8180,0x818f,0x8188, +0x818a,0x817f,0x8182,0x81e7,0x81fa,0x8207,0x8214,0x821e, +0x824b,0x84c9,0x84bf,0x84c6,0x84c4,0x8499,0x849e,0x84b2, +0x849c,0x84cb,0x84b8,0x84c0,0x84d3,0x8490,0x84bc,0x84d1, +0x84ca,0x873f,0x871c,0x873b,0x8722,0x8725,0x8734,0x8718, +0x8755,0x8737,0x8729,0x88f3,0x8902,0x88f4,0x88f9,0x88f8, +0x88fd,0x88e8,0x891a,0x88ef,0x8aa6,0x8a8c,0x8a9e,0x8aa3, +0x8a8d,0x8aa1,0x8a93,0x8aa4,0x8aaa,0x8aa5,0x8aa8,0x8a98, +0x8a91,0x8a9a,0x8aa7,0x8c6a,0x8c8d,0x8c8c,0x8cd3,0x8cd1, +0x8cd2,0x8d6b,0x8d99,0x8d95,0x8dfc,0x8f14,0x8f12,0x8f15, +0x8f13,0x8fa3,0x9060,0x9058,0x905c,0x9063,0x9059,0x905e, +0x9062,0x905d,0x905b,0x9119,0x9118,0x911e,0x9175,0x9178, +0x9177,0x9174,0x9278,0x92ac,0x9280,0x9285,0x9298,0x9296, +0x927b,0x9293,0x929c,0x92a8,0x927c,0x9291,0x95a1,0x95a8, +0x95a9,0x95a3,0x95a5,0x95a4,0x9699,0x969c,0x969b,0x96cc, +0x96d2,0x9700,0x977c,0x9785,0x97f6,0x9817,0x9818,0x98af, +0x98b1,0x9903,0x9905,0x990c,0x9909,0x99c1,0x9aaf,0x9ab0, +0x9ae6,0x9b41,0x9b42,0x9cf4,0x9cf6,0x9cf3,0x9ebc,0x9f3b, +0x9f4a,0x5104,0x5100,0x50fb,0x50f5,0x50f9,0x5102,0x5108, +0x5109,0x5105,0x51dc,0x5287,0x5288,0x5289,0x528d,0x528a, +0x52f0,0x53b2,0x562e,0x563b,0x5639,0x5632,0x563f,0x5634, +0x5629,0x5653,0x564e,0x5657,0x5674,0x5636,0x562f,0x5630, +0x5880,0x589f,0x589e,0x58b3,0x589c,0x58ae,0x58a9,0x58a6, +0x596d,0x5b09,0x5afb,0x5b0b,0x5af5,0x5b0c,0x5b08,0x5bee, +0x5bec,0x5be9,0x5beb,0x5c64,0x5c65,0x5d9d,0x5d94,0x5e62, +0x5e5f,0x5e61,0x5ee2,0x5eda,0x5edf,0x5edd,0x5ee3,0x5ee0, +0x5f48,0x5f71,0x5fb7,0x5fb5,0x6176,0x6167,0x616e,0x615d, +0x6155,0x6182,0x617c,0x6170,0x616b,0x617e,0x61a7,0x6190, +0x61ab,0x618e,0x61ac,0x619a,0x61a4,0x6194,0x61ae,0x622e, +0x6469,0x646f,0x6479,0x649e,0x64b2,0x6488,0x6490,0x64b0, +0x64a5,0x6493,0x6495,0x64a9,0x6492,0x64ae,0x64ad,0x64ab, +0x649a,0x64ac,0x6499,0x64a2,0x64b3,0x6575,0x6577,0x6578, +0x66ae,0x66ab,0x66b4,0x66b1,0x6a23,0x6a1f,0x69e8,0x6a01, +0x6a1e,0x6a19,0x69fd,0x6a21,0x6a13,0x6a0a,0x69f3,0x6a02, +0x6a05,0x69ed,0x6a11,0x6b50,0x6b4e,0x6ba4,0x6bc5,0x6bc6, +0x6f3f,0x6f7c,0x6f84,0x6f51,0x6f66,0x6f54,0x6f86,0x6f6d, +0x6f5b,0x6f78,0x6f6e,0x6f8e,0x6f7a,0x6f70,0x6f64,0x6f97, +0x6f58,0x6ed5,0x6f6f,0x6f60,0x6f5f,0x719f,0x71ac,0x71b1, +0x71a8,0x7256,0x729b,0x734e,0x7357,0x7469,0x748b,0x7483, +0x747e,0x7480,0x757f,0x7620,0x7629,0x761f,0x7624,0x7626, +0x7621,0x7622,0x769a,0x76ba,0x76e4,0x778e,0x7787,0x778c, +0x7791,0x778b,0x78cb,0x78c5,0x78ba,0x78ca,0x78be,0x78d5, +0x78bc,0x78d0,0x7a3f,0x7a3c,0x7a40,0x7a3d,0x7a37,0x7a3b, +0x7aaf,0x7aae,0x7bad,0x7bb1,0x7bc4,0x7bb4,0x7bc6,0x7bc7, +0x7bc1,0x7ba0,0x7bcc,0x7cca,0x7de0,0x7df4,0x7def,0x7dfb, +0x7dd8,0x7dec,0x7ddd,0x7de8,0x7de3,0x7dda,0x7dde,0x7de9, +0x7d9e,0x7dd9,0x7df2,0x7df9,0x7f75,0x7f77,0x7faf,0x7fe9, +0x8026,0x819b,0x819c,0x819d,0x81a0,0x819a,0x8198,0x8517, +0x853d,0x851a,0x84ee,0x852c,0x852d,0x8513,0x8511,0x8523, +0x8521,0x8514,0x84ec,0x8525,0x84ff,0x8506,0x8782,0x8774, +0x8776,0x8760,0x8766,0x8778,0x8768,0x8759,0x8757,0x874c, +0x8753,0x885b,0x885d,0x8910,0x8907,0x8912,0x8913,0x8915, +0x890a,0x8abc,0x8ad2,0x8ac7,0x8ac4,0x8a95,0x8acb,0x8af8, +0x8ab2,0x8ac9,0x8ac2,0x8abf,0x8ab0,0x8ad6,0x8acd,0x8ab6, +0x8ab9,0x8adb,0x8c4c,0x8c4e,0x8c6c,0x8ce0,0x8cde,0x8ce6, +0x8ce4,0x8cec,0x8ced,0x8ce2,0x8ce3,0x8cdc,0x8cea,0x8ce1, +0x8d6d,0x8d9f,0x8da3,0x8e2b,0x8e10,0x8e1d,0x8e22,0x8e0f, +0x8e29,0x8e1f,0x8e21,0x8e1e,0x8eba,0x8f1d,0x8f1b,0x8f1f, +0x8f29,0x8f26,0x8f2a,0x8f1c,0x8f1e,0x8f25,0x9069,0x906e, +0x9068,0x906d,0x9077,0x9130,0x912d,0x9127,0x9131,0x9187, +0x9189,0x918b,0x9183,0x92c5,0x92bb,0x92b7,0x92ea,0x92e4, +0x92c1,0x92b3,0x92bc,0x92d2,0x92c7,0x92f0,0x92b2,0x95ad, +0x95b1,0x9704,0x9706,0x9707,0x9709,0x9760,0x978d,0x978b, +0x978f,0x9821,0x982b,0x981c,0x98b3,0x990a,0x9913,0x9912, +0x9918,0x99dd,0x99d0,0x99df,0x99db,0x99d1,0x99d5,0x99d2, +0x99d9,0x9ab7,0x9aee,0x9aef,0x9b27,0x9b45,0x9b44,0x9b77, +0x9b6f,0x9d06,0x9d09,0x9d03,0x9ea9,0x9ebe,0x9ece,0x58a8, +0x9f52,0x5112,0x5118,0x5114,0x5110,0x5115,0x5180,0x51aa, +0x51dd,0x5291,0x5293,0x52f3,0x5659,0x566b,0x5679,0x5669, +0x5664,0x5678,0x566a,0x5668,0x5665,0x5671,0x566f,0x566c, +0x5662,0x5676,0x58c1,0x58be,0x58c7,0x58c5,0x596e,0x5b1d, +0x5b34,0x5b78,0x5bf0,0x5c0e,0x5f4a,0x61b2,0x6191,0x61a9, +0x618a,0x61cd,0x61b6,0x61be,0x61ca,0x61c8,0x6230,0x64c5, +0x64c1,0x64cb,0x64bb,0x64bc,0x64da,0x64c4,0x64c7,0x64c2, +0x64cd,0x64bf,0x64d2,0x64d4,0x64be,0x6574,0x66c6,0x66c9, +0x66b9,0x66c4,0x66c7,0x66b8,0x6a3d,0x6a38,0x6a3a,0x6a59, +0x6a6b,0x6a58,0x6a39,0x6a44,0x6a62,0x6a61,0x6a4b,0x6a47, +0x6a35,0x6a5f,0x6a48,0x6b59,0x6b77,0x6c05,0x6fc2,0x6fb1, +0x6fa1,0x6fc3,0x6fa4,0x6fc1,0x6fa7,0x6fb3,0x6fc0,0x6fb9, +0x6fb6,0x6fa6,0x6fa0,0x6fb4,0x71be,0x71c9,0x71d0,0x71d2, +0x71c8,0x71d5,0x71b9,0x71ce,0x71d9,0x71dc,0x71c3,0x71c4, +0x7368,0x749c,0x74a3,0x7498,0x749f,0x749e,0x74e2,0x750c, +0x750d,0x7634,0x7638,0x763a,0x76e7,0x76e5,0x77a0,0x779e, +0x779f,0x77a5,0x78e8,0x78da,0x78ec,0x78e7,0x79a6,0x7a4d, +0x7a4e,0x7a46,0x7a4c,0x7a4b,0x7aba,0x7bd9,0x7c11,0x7bc9, +0x7be4,0x7bdb,0x7be1,0x7be9,0x7be6,0x7cd5,0x7cd6,0x7e0a, +0x7e11,0x7e08,0x7e1b,0x7e23,0x7e1e,0x7e1d,0x7e09,0x7e10, +0x7f79,0x7fb2,0x7ff0,0x7ff1,0x7fee,0x8028,0x81b3,0x81a9, +0x81a8,0x81fb,0x8208,0x8258,0x8259,0x854a,0x8559,0x8548, +0x8568,0x8569,0x8543,0x8549,0x856d,0x856a,0x855e,0x8783, +0x879f,0x879e,0x87a2,0x878d,0x8861,0x892a,0x8932,0x8925, +0x892b,0x8921,0x89aa,0x89a6,0x8ae6,0x8afa,0x8aeb,0x8af1, +0x8b00,0x8adc,0x8ae7,0x8aee,0x8afe,0x8b01,0x8b02,0x8af7, +0x8aed,0x8af3,0x8af6,0x8afc,0x8c6b,0x8c6d,0x8c93,0x8cf4, +0x8e44,0x8e31,0x8e34,0x8e42,0x8e39,0x8e35,0x8f3b,0x8f2f, +0x8f38,0x8f33,0x8fa8,0x8fa6,0x9075,0x9074,0x9078,0x9072, +0x907c,0x907a,0x9134,0x9192,0x9320,0x9336,0x92f8,0x9333, +0x932f,0x9322,0x92fc,0x932b,0x9304,0x931a,0x9310,0x9326, +0x9321,0x9315,0x932e,0x9319,0x95bb,0x96a7,0x96a8,0x96aa, +0x96d5,0x970e,0x9711,0x9716,0x970d,0x9713,0x970f,0x975b, +0x975c,0x9766,0x9798,0x9830,0x9838,0x983b,0x9837,0x982d, +0x9839,0x9824,0x9910,0x9928,0x991e,0x991b,0x9921,0x991a, +0x99ed,0x99e2,0x99f1,0x9ab8,0x9abc,0x9afb,0x9aed,0x9b28, +0x9b91,0x9d15,0x9d23,0x9d26,0x9d28,0x9d12,0x9d1b,0x9ed8, +0x9ed4,0x9f8d,0x9f9c,0x512a,0x511f,0x5121,0x5132,0x52f5, +0x568e,0x5680,0x5690,0x5685,0x5687,0x568f,0x58d5,0x58d3, +0x58d1,0x58ce,0x5b30,0x5b2a,0x5b24,0x5b7a,0x5c37,0x5c68, +0x5dbc,0x5dba,0x5dbd,0x5db8,0x5e6b,0x5f4c,0x5fbd,0x61c9, +0x61c2,0x61c7,0x61e6,0x61cb,0x6232,0x6234,0x64ce,0x64ca, +0x64d8,0x64e0,0x64f0,0x64e6,0x64ec,0x64f1,0x64e2,0x64ed, +0x6582,0x6583,0x66d9,0x66d6,0x6a80,0x6a94,0x6a84,0x6aa2, +0x6a9c,0x6adb,0x6aa3,0x6a7e,0x6a97,0x6a90,0x6aa0,0x6b5c, +0x6bae,0x6bda,0x6c08,0x6fd8,0x6ff1,0x6fdf,0x6fe0,0x6fdb, +0x6fe4,0x6feb,0x6fef,0x6f80,0x6fec,0x6fe1,0x6fe9,0x6fd5, +0x6fee,0x6ff0,0x71e7,0x71df,0x71ee,0x71e6,0x71e5,0x71ed, +0x71ec,0x71f4,0x71e0,0x7235,0x7246,0x7370,0x7372,0x74a9, +0x74b0,0x74a6,0x74a8,0x7646,0x7642,0x764c,0x76ea,0x77b3, +0x77aa,0x77b0,0x77ac,0x77a7,0x77ad,0x77ef,0x78f7,0x78fa, +0x78f4,0x78ef,0x7901,0x79a7,0x79aa,0x7a57,0x7abf,0x7c07, +0x7c0d,0x7bfe,0x7bf7,0x7c0c,0x7be0,0x7ce0,0x7cdc,0x7cde, +0x7ce2,0x7cdf,0x7cd9,0x7cdd,0x7e2e,0x7e3e,0x7e46,0x7e37, +0x7e32,0x7e43,0x7e2b,0x7e3d,0x7e31,0x7e45,0x7e41,0x7e34, +0x7e39,0x7e48,0x7e35,0x7e3f,0x7e2f,0x7f44,0x7ff3,0x7ffc, +0x8071,0x8072,0x8070,0x806f,0x8073,0x81c6,0x81c3,0x81ba, +0x81c2,0x81c0,0x81bf,0x81bd,0x81c9,0x81be,0x81e8,0x8209, +0x8271,0x85aa,0x8584,0x857e,0x859c,0x8591,0x8594,0x85af, +0x859b,0x8587,0x85a8,0x858a,0x85a6,0x8667,0x87c0,0x87d1, +0x87b3,0x87d2,0x87c6,0x87ab,0x87bb,0x87ba,0x87c8,0x87cb, +0x893b,0x8936,0x8944,0x8938,0x893d,0x89ac,0x8b0e,0x8b17, +0x8b19,0x8b1b,0x8b0a,0x8b20,0x8b1d,0x8b04,0x8b10,0x8c41, +0x8c3f,0x8c73,0x8cfa,0x8cfd,0x8cfc,0x8cf8,0x8cfb,0x8da8, +0x8e49,0x8e4b,0x8e48,0x8e4a,0x8f44,0x8f3e,0x8f42,0x8f45, +0x8f3f,0x907f,0x907d,0x9084,0x9081,0x9082,0x9080,0x9139, +0x91a3,0x919e,0x919c,0x934d,0x9382,0x9328,0x9375,0x934a, +0x9365,0x934b,0x9318,0x937e,0x936c,0x935b,0x9370,0x935a, +0x9354,0x95ca,0x95cb,0x95cc,0x95c8,0x95c6,0x96b1,0x96b8, +0x96d6,0x971c,0x971e,0x97a0,0x97d3,0x9846,0x98b6,0x9935, +0x9a01,0x99ff,0x9bae,0x9bab,0x9baa,0x9bad,0x9d3b,0x9d3f, +0x9e8b,0x9ecf,0x9ede,0x9edc,0x9edd,0x9edb,0x9f3e,0x9f4b, +0x53e2,0x5695,0x56ae,0x58d9,0x58d8,0x5b38,0x5f5e,0x61e3, +0x6233,0x64f4,0x64f2,0x64fe,0x6506,0x64fa,0x64fb,0x64f7, +0x65b7,0x66dc,0x6726,0x6ab3,0x6aac,0x6ac3,0x6abb,0x6ab8, +0x6ac2,0x6aae,0x6aaf,0x6b5f,0x6b78,0x6baf,0x7009,0x700b, +0x6ffe,0x7006,0x6ffa,0x7011,0x700f,0x71fb,0x71fc,0x71fe, +0x71f8,0x7377,0x7375,0x74a7,0x74bf,0x7515,0x7656,0x7658, +0x7652,0x77bd,0x77bf,0x77bb,0x77bc,0x790e,0x79ae,0x7a61, +0x7a62,0x7a60,0x7ac4,0x7ac5,0x7c2b,0x7c27,0x7c2a,0x7c1e, +0x7c23,0x7c21,0x7ce7,0x7e54,0x7e55,0x7e5e,0x7e5a,0x7e61, +0x7e52,0x7e59,0x7f48,0x7ff9,0x7ffb,0x8077,0x8076,0x81cd, +0x81cf,0x820a,0x85cf,0x85a9,0x85cd,0x85d0,0x85c9,0x85b0, +0x85ba,0x85b9,0x87ef,0x87ec,0x87f2,0x87e0,0x8986,0x89b2, +0x89f4,0x8b28,0x8b39,0x8b2c,0x8b2b,0x8c50,0x8d05,0x8e59, +0x8e63,0x8e66,0x8e64,0x8e5f,0x8e55,0x8ec0,0x8f49,0x8f4d, +0x9087,0x9083,0x9088,0x91ab,0x91ac,0x91d0,0x9394,0x938a, +0x9396,0x93a2,0x93b3,0x93ae,0x93ac,0x93b0,0x9398,0x939a, +0x9397,0x95d4,0x95d6,0x95d0,0x95d5,0x96e2,0x96dc,0x96d9, +0x96db,0x96de,0x9724,0x97a3,0x97a6,0x97ad,0x97f9,0x984d, +0x984f,0x984c,0x984e,0x9853,0x98ba,0x993e,0x993f,0x993d, +0x992e,0x99a5,0x9a0e,0x9ac1,0x9b03,0x9b06,0x9b4f,0x9b4e, +0x9b4d,0x9bca,0x9bc9,0x9bfd,0x9bc8,0x9bc0,0x9d51,0x9d5d, +0x9d60,0x9ee0,0x9f15,0x9f2c,0x5133,0x56a5,0x56a8,0x58de, +0x58df,0x58e2,0x5bf5,0x9f90,0x5eec,0x61f2,0x61f7,0x61f6, +0x61f5,0x6500,0x650f,0x66e0,0x66dd,0x6ae5,0x6add,0x6ada, +0x6ad3,0x701b,0x701f,0x7028,0x701a,0x701d,0x7015,0x7018, +0x7206,0x720d,0x7258,0x72a2,0x7378,0x737a,0x74bd,0x74ca, +0x74e3,0x7587,0x7586,0x765f,0x7661,0x77c7,0x7919,0x79b1, +0x7a6b,0x7a69,0x7c3e,0x7c3f,0x7c38,0x7c3d,0x7c37,0x7c40, +0x7e6b,0x7e6d,0x7e79,0x7e69,0x7e6a,0x7e73,0x7f85,0x7fb6, +0x7fb9,0x7fb8,0x81d8,0x85e9,0x85dd,0x85ea,0x85d5,0x85e4, +0x85e5,0x85f7,0x87fb,0x8805,0x880d,0x87f9,0x87fe,0x8960, +0x895f,0x8956,0x895e,0x8b41,0x8b5c,0x8b58,0x8b49,0x8b5a, +0x8b4e,0x8b4f,0x8b46,0x8b59,0x8d08,0x8d0a,0x8e7c,0x8e72, +0x8e87,0x8e76,0x8e6c,0x8e7a,0x8e74,0x8f54,0x8f4e,0x8fad, +0x908a,0x908b,0x91b1,0x91ae,0x93e1,0x93d1,0x93df,0x93c3, +0x93c8,0x93dc,0x93dd,0x93d6,0x93e2,0x93cd,0x93d8,0x93e4, +0x93d7,0x93e8,0x95dc,0x96b4,0x96e3,0x972a,0x9727,0x9761, +0x97dc,0x97fb,0x985e,0x9858,0x985b,0x98bc,0x9945,0x9949, +0x9a16,0x9a19,0x9b0d,0x9be8,0x9be7,0x9bd6,0x9bdb,0x9d89, +0x9d61,0x9d72,0x9d6a,0x9d6c,0x9e92,0x9e97,0x9e93,0x9eb4, +0x52f8,0x56b7,0x56b6,0x56b4,0x56bc,0x58e4,0x5b40,0x5b43, +0x5b7d,0x5bf6,0x5dc9,0x61f8,0x61fa,0x6518,0x6514,0x6519, +0x66e6,0x6727,0x6aec,0x703e,0x7030,0x7032,0x7210,0x737b, +0x74cf,0x7662,0x7665,0x7926,0x792a,0x792c,0x792b,0x7ac7, +0x7af6,0x7c4c,0x7c43,0x7c4d,0x7cef,0x7cf0,0x8fae,0x7e7d, +0x7e7c,0x7e82,0x7f4c,0x8000,0x81da,0x8266,0x85fb,0x85f9, +0x8611,0x85fa,0x8606,0x860b,0x8607,0x860a,0x8814,0x8815, +0x8964,0x89ba,0x89f8,0x8b70,0x8b6c,0x8b66,0x8b6f,0x8b5f, +0x8b6b,0x8d0f,0x8d0d,0x8e89,0x8e81,0x8e85,0x8e82,0x91b4, +0x91cb,0x9418,0x9403,0x93fd,0x95e1,0x9730,0x98c4,0x9952, +0x9951,0x99a8,0x9a2b,0x9a30,0x9a37,0x9a35,0x9c13,0x9c0d, +0x9e79,0x9eb5,0x9ee8,0x9f2f,0x9f5f,0x9f63,0x9f61,0x5137, +0x5138,0x56c1,0x56c0,0x56c2,0x5914,0x5c6c,0x5dcd,0x61fc, +0x61fe,0x651d,0x651c,0x6595,0x66e9,0x6afb,0x6b04,0x6afa, +0x6bb2,0x704c,0x721b,0x72a7,0x74d6,0x74d4,0x7669,0x77d3, +0x7c50,0x7e8f,0x7e8c,0x7fbc,0x8617,0x862d,0x861a,0x8823, +0x8822,0x8821,0x881f,0x896a,0x896c,0x89bd,0x8b74,0x8b77, +0x8b7d,0x8d13,0x8e8a,0x8e8d,0x8e8b,0x8f5f,0x8faf,0x91ba, +0x942e,0x9433,0x9435,0x943a,0x9438,0x9432,0x942b,0x95e2, +0x9738,0x9739,0x9732,0x97ff,0x9867,0x9865,0x9957,0x9a45, +0x9a43,0x9a40,0x9a3e,0x9acf,0x9b54,0x9b51,0x9c2d,0x9c25, +0x9daf,0x9db4,0x9dc2,0x9db8,0x9e9d,0x9eef,0x9f19,0x9f5c, +0x9f66,0x9f67,0x513c,0x513b,0x56c8,0x56ca,0x56c9,0x5b7f, +0x5dd4,0x5dd2,0x5f4e,0x61ff,0x6524,0x6b0a,0x6b61,0x7051, +0x7058,0x7380,0x74e4,0x758a,0x766e,0x766c,0x79b3,0x7c60, +0x7c5f,0x807e,0x807d,0x81df,0x8972,0x896f,0x89fc,0x8b80, +0x8d16,0x8d17,0x8e91,0x8e93,0x8f61,0x9148,0x9444,0x9451, +0x9452,0x973d,0x973e,0x97c3,0x97c1,0x986b,0x9955,0x9a55, +0x9a4d,0x9ad2,0x9b1a,0x9c49,0x9c31,0x9c3e,0x9c3b,0x9dd3, +0x9dd7,0x9f34,0x9f6c,0x9f6a,0x9f94,0x56cc,0x5dd6,0x6200, +0x6523,0x652b,0x652a,0x66ec,0x6b10,0x74da,0x7aca,0x7c64, +0x7c63,0x7c65,0x7e93,0x7e96,0x7e94,0x81e2,0x8638,0x863f, +0x8831,0x8b8a,0x9090,0x908f,0x9463,0x9460,0x9464,0x9768, +0x986f,0x995c,0x9a5a,0x9a5b,0x9a57,0x9ad3,0x9ad4,0x9ad1, +0x9c54,0x9c57,0x9c56,0x9de5,0x9e9f,0x9ef4,0x56d1,0x58e9, +0x652c,0x705e,0x7671,0x7672,0x77d7,0x7f50,0x7f88,0x8836, +0x8839,0x8862,0x8b93,0x8b92,0x8b96,0x8277,0x8d1b,0x91c0, +0x946a,0x9742,0x9748,0x9744,0x97c6,0x9870,0x9a5f,0x9b22, +0x9b58,0x9c5f,0x9df9,0x9dfa,0x9e7c,0x9e7d,0x9f07,0x9f77, +0x9f72,0x5ef3,0x6b16,0x7063,0x7c6c,0x7c6e,0x883b,0x89c0, +0x8ea1,0x91c1,0x9472,0x9470,0x9871,0x995e,0x9ad6,0x9b23, +0x9ecc,0x7064,0x77da,0x8b9a,0x9477,0x97c9,0x9a62,0x9a65, +0x7e9c,0x8b9c,0x8eaa,0x91c5,0x947d,0x947e,0x947c,0x9c77, +0x9c78,0x9ef7,0x8c54,0x947f,0x9e1a,0x7228,0x9a6a,0x9b31, +0x9e1b,0x9e1e,0x7c72}; + +static const int cns11643_1_ucs_table_size = (sizeof(cns11643_1_ucs_table)/sizeof(unsigned short)); + +static const unsigned short cns11643_2_ucs_table[] = { +0x4e42,0x4e5c,0x51f5,0x531a,0x5382,0x4e07,0x4e0c,0x4e47, +0x4e8d,0x56d7,0x5c6e,0x5f73,0x4e0f,0x5187,0x4e0e,0x4e2e, +0x4e93,0x4ec2,0x4ec9,0x4ec8,0x5198,0x52fc,0x536c,0x53b9, +0x5720,0x5903,0x592c,0x5c10,0x5dff,0x65e1,0x6bb3,0x6bcc, +0x6c14,0x723f,0x4e31,0x4e3c,0x4ee8,0x4edc,0x4ee9,0x4ee1, +0x4edd,0x4eda,0x520c,0x5209,0x531c,0x534c,0x5722,0x5723, +0x5917,0x592f,0x5b81,0x5b84,0x5c12,0x5c3b,0x5c74,0x5c73, +0x5e04,0x5e80,0x5e82,0x5fc9,0x6209,0x6250,0x6c15,0x6c36, +0x6c43,0x6c3f,0x6c3b,0x72ae,0x72b0,0x738a,0x79b8,0x808a, +0x961e,0x4f0e,0x4f18,0x4f2c,0x4ef5,0x4f14,0x4ef1,0x4f00, +0x4ef7,0x4f08,0x4f1d,0x4f02,0x4f05,0x4f22,0x4f13,0x4f04, +0x4ef4,0x4f12,0x51b1,0x5213,0x5210,0x52a6,0x5322,0x531f, +0x534d,0x538a,0x5407,0x56e1,0x56df,0x572e,0x572a,0x5734, +0x593c,0x5980,0x597c,0x5985,0x597b,0x597e,0x5977,0x597f, +0x5b56,0x5c15,0x5c25,0x5c7c,0x5c7a,0x5c7b,0x5c7e,0x5ddf, +0x5e75,0x5e84,0x5f02,0x5f1a,0x5f74,0x5fd5,0x5fd4,0x5fcf, +0x625c,0x625e,0x6264,0x6261,0x6266,0x6262,0x6259,0x6260, +0x625a,0x6265,0x6537,0x65ef,0x65ee,0x673e,0x6739,0x6738, +0x673b,0x673a,0x673f,0x673c,0x6733,0x6c18,0x6c46,0x6c52, +0x6c5c,0x6c4f,0x6c4a,0x6c54,0x6c4b,0x6c4c,0x7071,0x725e, +0x72b4,0x72b5,0x738e,0x752a,0x767f,0x7a75,0x7f51,0x8278, +0x827c,0x8280,0x827d,0x827f,0x864d,0x897e,0x9099,0x9097, +0x9098,0x909b,0x9094,0x9622,0x9624,0x9620,0x9623,0x4f56, +0x4f3b,0x4f62,0x4f49,0x4f53,0x4f64,0x4f3e,0x4f67,0x4f52, +0x4f5f,0x4f41,0x4f58,0x4f2d,0x4f33,0x4f3f,0x4f61,0x518f, +0x51b9,0x521c,0x521e,0x5221,0x52ad,0x52ae,0x5309,0x5363, +0x5372,0x538e,0x538f,0x5430,0x5437,0x542a,0x5454,0x5445, +0x5419,0x541c,0x5425,0x5418,0x543d,0x544f,0x5441,0x5428, +0x5424,0x5447,0x56ee,0x56e7,0x56e5,0x5741,0x5745,0x574c, +0x5749,0x574b,0x5752,0x5906,0x5940,0x59a6,0x5998,0x59a0, +0x5997,0x598e,0x59a2,0x5990,0x598f,0x59a7,0x59a1,0x5b8e, +0x5b92,0x5c28,0x5c2a,0x5c8d,0x5c8f,0x5c88,0x5c8b,0x5c89, +0x5c92,0x5c8a,0x5c86,0x5c93,0x5c95,0x5de0,0x5e0a,0x5e0e, +0x5e8b,0x5e89,0x5e8c,0x5e88,0x5e8d,0x5f05,0x5f1d,0x5f78, +0x5f76,0x5fd2,0x5fd1,0x5fd0,0x5fed,0x5fe8,0x5fee,0x5ff3, +0x5fe1,0x5fe4,0x5fe3,0x5ffa,0x5fef,0x5ff7,0x5ffb,0x6000, +0x5ff4,0x623a,0x6283,0x628c,0x628e,0x628f,0x6294,0x6287, +0x6271,0x627b,0x627a,0x6270,0x6281,0x6288,0x6277,0x627d, +0x6272,0x6274,0x65f0,0x65f4,0x65f3,0x65f2,0x65f5,0x6745, +0x6747,0x6759,0x6755,0x674c,0x6748,0x675d,0x674d,0x675a, +0x674b,0x6bd0,0x6c19,0x6c1a,0x6c78,0x6c67,0x6c6b,0x6c84, +0x6c8b,0x6c8f,0x6c71,0x6c6f,0x6c69,0x6c9a,0x6c6d,0x6c87, +0x6c95,0x6c9c,0x6c66,0x6c73,0x6c65,0x6c7b,0x6c8e,0x7074, +0x707a,0x7263,0x72bf,0x72bd,0x72c3,0x72c6,0x72c1,0x72ba, +0x72c5,0x7395,0x7397,0x7393,0x7394,0x7392,0x753a,0x7539, +0x7594,0x7595,0x7681,0x793d,0x8034,0x8095,0x8099,0x8090, +0x8092,0x809c,0x8290,0x828f,0x8285,0x828e,0x8291,0x8293, +0x828a,0x8283,0x8284,0x8c78,0x8fc9,0x8fbf,0x909f,0x90a1, +0x90a5,0x909e,0x90a7,0x90a0,0x9630,0x9628,0x962f,0x962d, +0x4e33,0x4f98,0x4f7c,0x4f85,0x4f7d,0x4f80,0x4f87,0x4f76, +0x4f74,0x4f89,0x4f84,0x4f77,0x4f4c,0x4f97,0x4f6a,0x4f9a, +0x4f79,0x4f81,0x4f78,0x4f90,0x4f9c,0x4f94,0x4f9e,0x4f92, +0x4f82,0x4f95,0x4f6b,0x4f6e,0x519e,0x51bc,0x51be,0x5235, +0x5232,0x5233,0x5246,0x5231,0x52bc,0x530a,0x530b,0x533c, +0x5392,0x5394,0x5487,0x547f,0x5481,0x5491,0x5482,0x5488, +0x546b,0x547a,0x547e,0x5465,0x546c,0x5474,0x5466,0x548d, +0x546f,0x5461,0x5460,0x5498,0x5463,0x5467,0x5464,0x56f7, +0x56f9,0x576f,0x5772,0x576d,0x576b,0x5771,0x5770,0x5776, +0x5780,0x5775,0x577b,0x5773,0x5774,0x5762,0x5768,0x577d, +0x590c,0x5945,0x59b5,0x59ba,0x59cf,0x59ce,0x59b2,0x59cc, +0x59c1,0x59b6,0x59bc,0x59c3,0x59d6,0x59b1,0x59bd,0x59c0, +0x59c8,0x59b4,0x59c7,0x5b62,0x5b65,0x5b93,0x5b95,0x5c44, +0x5c47,0x5cae,0x5ca4,0x5ca0,0x5cb5,0x5caf,0x5ca8,0x5cac, +0x5c9f,0x5ca3,0x5cad,0x5ca2,0x5caa,0x5ca7,0x5c9d,0x5ca5, +0x5cb6,0x5cb0,0x5ca6,0x5e17,0x5e14,0x5e19,0x5f28,0x5f22, +0x5f23,0x5f24,0x5f54,0x5f82,0x5f7e,0x5f7d,0x5fde,0x5fe5, +0x602d,0x6026,0x6019,0x6032,0x600b,0x6034,0x600a,0x6017, +0x6033,0x601a,0x601e,0x602c,0x6022,0x600d,0x6010,0x602e, +0x6013,0x6011,0x600c,0x6009,0x601c,0x6214,0x623d,0x62ad, +0x62b4,0x62d1,0x62be,0x62aa,0x62b6,0x62ca,0x62ae,0x62b3, +0x62af,0x62bb,0x62a9,0x62b0,0x62b8,0x653d,0x65a8,0x65bb, +0x6609,0x65fc,0x6604,0x6612,0x6608,0x65fb,0x6603,0x660b, +0x660d,0x6605,0x65fd,0x6611,0x6610,0x66f6,0x670a,0x6785, +0x676c,0x678e,0x6792,0x6776,0x677b,0x6798,0x6786,0x6784, +0x6774,0x678d,0x678c,0x677a,0x679f,0x6791,0x6799,0x6783, +0x677d,0x6781,0x6778,0x6779,0x6794,0x6b25,0x6b80,0x6b7e, +0x6bde,0x6c1d,0x6c93,0x6cec,0x6ceb,0x6cee,0x6cd9,0x6cb6, +0x6cd4,0x6cad,0x6ce7,0x6cb7,0x6cd0,0x6cc2,0x6cba,0x6cc3, +0x6cc6,0x6ced,0x6cf2,0x6cd2,0x6cdd,0x6cb4,0x6c8a,0x6c9d, +0x6c80,0x6cde,0x6cc0,0x6d30,0x6ccd,0x6cc7,0x6cb0,0x6cf9, +0x6ccf,0x6ce9,0x6cd1,0x7094,0x7098,0x7085,0x7093,0x7086, +0x7084,0x7091,0x7096,0x7082,0x709a,0x7083,0x726a,0x72d6, +0x72cb,0x72d8,0x72c9,0x72dc,0x72d2,0x72d4,0x72da,0x72cc, +0x72d1,0x73a4,0x73a1,0x73ad,0x73a6,0x73a2,0x73a0,0x73ac, +0x739d,0x74dd,0x74e8,0x753f,0x7540,0x753e,0x758c,0x7598, +0x76af,0x76f3,0x76f1,0x76f0,0x76f5,0x77f8,0x77fc,0x77f9, +0x77fb,0x77fa,0x77f7,0x7942,0x793f,0x79c5,0x7a78,0x7a7b, +0x7afb,0x7c75,0x7cfd,0x8035,0x808f,0x80ae,0x80a3,0x80b8, +0x80b5,0x80ad,0x8220,0x82a0,0x82c0,0x82ab,0x829a,0x8298, +0x829b,0x82b5,0x82a7,0x82ae,0x82bc,0x829e,0x82ba,0x82b4, +0x82a8,0x82a1,0x82a9,0x82c2,0x82a4,0x82c3,0x82b6,0x82a2, +0x8670,0x866f,0x866d,0x866e,0x8c56,0x8fd2,0x8fcb,0x8fd3, +0x8fcd,0x8fd6,0x8fd5,0x8fd7,0x90b2,0x90b4,0x90af,0x90b3, +0x90b0,0x9639,0x963d,0x963c,0x963a,0x9643,0x4fcd,0x4fc5, +0x4fd3,0x4fb2,0x4fc9,0x4fcb,0x4fc1,0x4fd4,0x4fdc,0x4fd9, +0x4fbb,0x4fb3,0x4fdb,0x4fc7,0x4fd6,0x4fba,0x4fc0,0x4fb9, +0x4fec,0x5244,0x5249,0x52c0,0x52c2,0x533d,0x537c,0x5397, +0x5396,0x5399,0x5398,0x54ba,0x54a1,0x54ad,0x54a5,0x54cf, +0x54c3,0x830d,0x54b7,0x54ae,0x54d6,0x54b6,0x54c5,0x54c6, +0x54a0,0x5470,0x54bc,0x54a2,0x54be,0x5472,0x54de,0x54b0, +0x57b5,0x579e,0x579f,0x57a4,0x578c,0x5797,0x579d,0x579b, +0x5794,0x5798,0x578f,0x5799,0x57a5,0x579a,0x5795,0x58f4, +0x590d,0x5953,0x59e1,0x59de,0x59ee,0x5a00,0x59f1,0x59dd, +0x59fa,0x59fd,0x59fc,0x59f6,0x59e4,0x59f2,0x59f7,0x59db, +0x59e9,0x59f3,0x59f5,0x59e0,0x59fe,0x59f4,0x59ed,0x5ba8, +0x5c4c,0x5cd0,0x5cd8,0x5ccc,0x5cd7,0x5ccb,0x5cdb,0x5cde, +0x5cda,0x5cc9,0x5cc7,0x5cca,0x5cd6,0x5cd3,0x5cd4,0x5ccf, +0x5cc8,0x5cc6,0x5cce,0x5cdf,0x5cf8,0x5df9,0x5e21,0x5e22, +0x5e23,0x5e20,0x5e24,0x5eb0,0x5ea4,0x5ea2,0x5e9b,0x5ea3, +0x5ea5,0x5f07,0x5f2e,0x5f56,0x5f86,0x6037,0x6039,0x6054, +0x6072,0x605e,0x6045,0x6053,0x6047,0x6049,0x605b,0x604c, +0x6040,0x6042,0x605f,0x6024,0x6044,0x6058,0x6066,0x606e, +0x6242,0x6243,0x62cf,0x630d,0x630b,0x62f5,0x630e,0x6303, +0x62eb,0x62f9,0x630f,0x630c,0x62f8,0x62f6,0x6300,0x6313, +0x6314,0x62fa,0x6315,0x62fb,0x62f0,0x6541,0x6543,0x65aa, +0x65bf,0x6636,0x6621,0x6632,0x6635,0x661c,0x6626,0x6622, +0x6633,0x662b,0x663a,0x661d,0x6634,0x6639,0x662e,0x670f, +0x6710,0x67c1,0x67f2,0x67c8,0x67ba,0x67dc,0x67bb,0x67f8, +0x67d8,0x67c0,0x67b7,0x67c5,0x67eb,0x67e4,0x67df,0x67b5, +0x67cd,0x67b3,0x67f7,0x67f6,0x67ee,0x67e3,0x67c2,0x67b9, +0x67ce,0x67e7,0x67f0,0x67b2,0x67fc,0x67c6,0x67ed,0x67cc, +0x67ae,0x67e6,0x67db,0x67fa,0x67c9,0x67ca,0x67c3,0x67ea, +0x67cb,0x6b28,0x6b82,0x6b84,0x6bb6,0x6bd6,0x6bd8,0x6be0, +0x6c20,0x6c21,0x6d28,0x6d34,0x6d2d,0x6d1f,0x6d3c,0x6d3f, +0x6d12,0x6d0a,0x6cda,0x6d33,0x6d04,0x6d19,0x6d3a,0x6d1a, +0x6d11,0x6d00,0x6d1d,0x6d42,0x6d01,0x6d18,0x6d37,0x6d03, +0x6d0f,0x6d40,0x6d07,0x6d20,0x6d2c,0x6d08,0x6d22,0x6d09, +0x6d10,0x70b7,0x709f,0x70be,0x70b1,0x70b0,0x70a1,0x70b4, +0x70b5,0x70a9,0x7241,0x7249,0x724a,0x726c,0x7270,0x7273, +0x726e,0x72ca,0x72e4,0x72e8,0x72eb,0x72df,0x72ea,0x72e6, +0x72e3,0x7385,0x73cc,0x73c2,0x73c8,0x73c5,0x73b9,0x73b6, +0x73b5,0x73b4,0x73eb,0x73bf,0x73c7,0x73be,0x73c3,0x73c6, +0x73b8,0x73cb,0x74ec,0x74ee,0x752e,0x7547,0x7548,0x75a7, +0x75aa,0x7679,0x76c4,0x7708,0x7703,0x7704,0x7705,0x770a, +0x76f7,0x76fb,0x76fa,0x77e7,0x77e8,0x7806,0x7811,0x7812, +0x7805,0x7810,0x780f,0x780e,0x7809,0x7803,0x7813,0x794a, +0x794c,0x794b,0x7945,0x7944,0x79d5,0x79cd,0x79cf,0x79d6, +0x79ce,0x7a80,0x7a7e,0x7ad1,0x7b00,0x7b01,0x7c7a,0x7c78, +0x7c79,0x7c7f,0x7c80,0x7c81,0x7d03,0x7d08,0x7d01,0x7f58, +0x7f91,0x7f8d,0x7fbe,0x8007,0x800e,0x800f,0x8014,0x8037, +0x80d8,0x80c7,0x80e0,0x80d1,0x80c8,0x80c2,0x80d0,0x80c5, +0x80e3,0x80d9,0x80dc,0x80ca,0x80d5,0x80c9,0x80cf,0x80d7, +0x80e6,0x80cd,0x81ff,0x8221,0x8294,0x82d9,0x82fe,0x82f9, +0x8307,0x82e8,0x8300,0x82d5,0x833a,0x82eb,0x82d6,0x82f4, +0x82ec,0x82e1,0x82f2,0x82f5,0x830c,0x82fb,0x82f6,0x82f0, +0x82ea,0x82e4,0x82e0,0x82fa,0x82f3,0x82ed,0x8677,0x8674, +0x867c,0x8673,0x8841,0x884e,0x8867,0x886a,0x8869,0x89d3, +0x8a04,0x8a07,0x8d72,0x8fe3,0x8fe1,0x8fee,0x8fe0,0x90f1, +0x90bd,0x90bf,0x90d5,0x90c5,0x90be,0x90c7,0x90cb,0x90c8, +0x91d4,0x91d3,0x9654,0x964f,0x9651,0x9653,0x964a,0x964e, +0x501e,0x5005,0x5007,0x5013,0x5022,0x5030,0x501b,0x4ff5, +0x4ff4,0x5033,0x5037,0x502c,0x4ff6,0x4ff7,0x5017,0x501c, +0x5020,0x5027,0x5035,0x502f,0x5031,0x500e,0x515a,0x5194, +0x5193,0x51ca,0x51c4,0x51c5,0x51c8,0x51ce,0x5261,0x525a, +0x5252,0x525e,0x525f,0x5255,0x5262,0x52cd,0x530e,0x539e, +0x5526,0x54e2,0x5517,0x5512,0x54e7,0x54f3,0x54e4,0x551a, +0x54ff,0x5504,0x5508,0x54eb,0x5511,0x5505,0x54f1,0x550a, +0x54fb,0x54f7,0x54f8,0x54e0,0x550e,0x5503,0x550b,0x5701, +0x5702,0x57cc,0x5832,0x57d5,0x57d2,0x57ba,0x57c6,0x57bd, +0x57bc,0x57b8,0x57b6,0x57bf,0x57c7,0x57d0,0x57b9,0x57c1, +0x590e,0x594a,0x5a19,0x5a16,0x5a2d,0x5a2e,0x5a15,0x5a0f, +0x5a17,0x5a0a,0x5a1e,0x5a33,0x5b6c,0x5ba7,0x5bad,0x5bac, +0x5c03,0x5c56,0x5c54,0x5cec,0x5cff,0x5cee,0x5cf1,0x5cf7, +0x5d00,0x5cf9,0x5e29,0x5e28,0x5ea8,0x5eae,0x5eaa,0x5eac, +0x5f33,0x5f30,0x5f67,0x605d,0x605a,0x6067,0x6041,0x60a2, +0x6088,0x6080,0x6092,0x6081,0x609d,0x6083,0x6095,0x609b, +0x6097,0x6087,0x609c,0x608e,0x6219,0x6246,0x62f2,0x6310, +0x6356,0x632c,0x6344,0x6345,0x6336,0x6343,0x63e4,0x6339, +0x634b,0x634a,0x633c,0x6329,0x6341,0x6334,0x6358,0x6354, +0x6359,0x632d,0x6347,0x6333,0x635a,0x6351,0x6338,0x6357, +0x6340,0x6348,0x654a,0x6546,0x65c6,0x65c3,0x65c4,0x65c2, +0x664a,0x665f,0x6647,0x6651,0x6712,0x6713,0x681f,0x681a, +0x6849,0x6832,0x6833,0x683b,0x684b,0x684f,0x6816,0x6831, +0x681c,0x6835,0x682b,0x682d,0x682f,0x684e,0x6844,0x6834, +0x681d,0x6812,0x6814,0x6826,0x6828,0x682e,0x684d,0x683a, +0x6825,0x6820,0x6b2c,0x6b2f,0x6b2d,0x6b31,0x6b34,0x6b6d, +0x8082,0x6b88,0x6be6,0x6be4,0x6be8,0x6be3,0x6be2,0x6be7, +0x6c25,0x6d7a,0x6d63,0x6d64,0x6d76,0x6d0d,0x6d61,0x6d92, +0x6d58,0x6d62,0x6d6d,0x6d6f,0x6d91,0x6d8d,0x6def,0x6d7f, +0x6d86,0x6d5e,0x6d67,0x6d60,0x6d97,0x6d70,0x6d7c,0x6d5f, +0x6d82,0x6d98,0x6d2f,0x6d68,0x6d8b,0x6d7e,0x6d80,0x6d84, +0x6d16,0x6d83,0x6d7b,0x6d7d,0x6d75,0x6d90,0x70dc,0x70d3, +0x70d1,0x70dd,0x70cb,0x7f39,0x70e2,0x70d7,0x70d2,0x70de, +0x70e0,0x70d4,0x70cd,0x70c5,0x70c6,0x70c7,0x70da,0x70ce, +0x70e1,0x7242,0x7278,0x7277,0x7276,0x7300,0x72fa,0x72f4, +0x72fe,0x72f6,0x72f3,0x72fb,0x7301,0x73d3,0x73d9,0x73e5, +0x73d6,0x73bc,0x73e7,0x73e3,0x73e9,0x73dc,0x73d2,0x73db, +0x73d4,0x73dd,0x73da,0x73d7,0x73d8,0x73e8,0x74de,0x74df, +0x74f4,0x74f5,0x7521,0x755b,0x755f,0x75b0,0x75c1,0x75bb, +0x75c4,0x75c0,0x75bf,0x75b6,0x75ba,0x768a,0x76c9,0x771d, +0x771b,0x7710,0x7713,0x7712,0x7723,0x7711,0x7715,0x7719, +0x771a,0x7722,0x7727,0x7823,0x782c,0x7822,0x7835,0x782f, +0x7828,0x782e,0x782b,0x7821,0x7829,0x7833,0x782a,0x7831, +0x7954,0x795b,0x794f,0x795c,0x7953,0x7952,0x7951,0x79eb, +0x79ec,0x79e0,0x79ee,0x79ed,0x79ea,0x79dc,0x79de,0x79dd, +0x7a86,0x7a89,0x7a85,0x7a8b,0x7a8c,0x7a8a,0x7a87,0x7ad8, +0x7b10,0x7b04,0x7b13,0x7b05,0x7b0f,0x7b08,0x7b0a,0x7b0e, +0x7b09,0x7b12,0x7c84,0x7c91,0x7c8a,0x7c8c,0x7c88,0x7c8d, +0x7c85,0x7d1e,0x7d1d,0x7d11,0x7d0e,0x7d18,0x7d16,0x7d13, +0x7d1f,0x7d12,0x7d0f,0x7d0c,0x7f5c,0x7f61,0x7f5e,0x7f60, +0x7f5d,0x7f5b,0x7f96,0x7f92,0x7fc3,0x7fc2,0x7fc0,0x8016, +0x803e,0x8039,0x80fa,0x80f2,0x80f9,0x80f5,0x8101,0x80fb, +0x8100,0x8201,0x822f,0x8225,0x8333,0x832d,0x8344,0x8319, +0x8351,0x8325,0x8356,0x833f,0x8341,0x8326,0x831c,0x8322, +0x8342,0x834e,0x831b,0x832a,0x8308,0x833c,0x834d,0x8316, +0x8324,0x8320,0x8337,0x832f,0x8329,0x8347,0x8345,0x834c, +0x8353,0x831e,0x832c,0x834b,0x8327,0x8348,0x8653,0x8652, +0x86a2,0x86a8,0x8696,0x868d,0x8691,0x869e,0x8687,0x8697, +0x8686,0x868b,0x869a,0x8685,0x86a5,0x8699,0x86a1,0x86a7, +0x8695,0x8698,0x868e,0x869d,0x8690,0x8694,0x8843,0x8844, +0x886d,0x8875,0x8876,0x8872,0x8880,0x8871,0x887f,0x886f, +0x8883,0x887e,0x8874,0x887c,0x8a12,0x8c47,0x8c57,0x8c7b, +0x8ca4,0x8ca3,0x8d76,0x8d78,0x8db5,0x8db7,0x8db6,0x8ed1, +0x8ed3,0x8ffe,0x8ff5,0x9002,0x8fff,0x8ffb,0x9004,0x8ffc, +0x8ff6,0x90d6,0x90e0,0x90d9,0x90da,0x90e3,0x90df,0x90e5, +0x90d8,0x90db,0x90d7,0x90dc,0x90e4,0x9150,0x914e,0x914f, +0x91d5,0x91e2,0x91da,0x965c,0x965f,0x96bc,0x98e3,0x9adf, +0x9b2f,0x4e7f,0x5070,0x506a,0x5061,0x505e,0x5060,0x5053, +0x504b,0x505d,0x5072,0x5048,0x504d,0x5041,0x505b,0x504a, +0x5062,0x5015,0x5045,0x505f,0x5069,0x506b,0x5063,0x5064, +0x5046,0x5040,0x506e,0x5073,0x5057,0x5051,0x51d0,0x526b, +0x526d,0x526c,0x526e,0x52d6,0x52d3,0x532d,0x539c,0x5575, +0x5576,0x553c,0x554d,0x5550,0x5534,0x552a,0x5551,0x5562, +0x5536,0x5535,0x5530,0x5552,0x5545,0x550c,0x5532,0x5565, +0x554e,0x5539,0x5548,0x552d,0x553b,0x5540,0x554b,0x570a, +0x5707,0x57fb,0x5814,0x57e2,0x57f6,0x57dc,0x57f4,0x5800, +0x57ed,0x57fd,0x5808,0x57f8,0x580b,0x57f3,0x57cf,0x5807, +0x57ee,0x57e3,0x57f2,0x57e5,0x57ec,0x57e1,0x580e,0x57fc, +0x5810,0x57e7,0x5801,0x580c,0x57f1,0x57e9,0x57f0,0x580d, +0x5804,0x595c,0x5a60,0x5a58,0x5a55,0x5a67,0x5a5e,0x5a38, +0x5a35,0x5a6d,0x5a50,0x5a5f,0x5a65,0x5a6c,0x5a53,0x5a64, +0x5a57,0x5a43,0x5a5d,0x5a52,0x5a44,0x5a5b,0x5a48,0x5a8e, +0x5a3e,0x5a4d,0x5a39,0x5a4c,0x5a70,0x5a69,0x5a47,0x5a51, +0x5a56,0x5a42,0x5a5c,0x5b72,0x5b6e,0x5bc1,0x5bc0,0x5c59, +0x5d1e,0x5d0b,0x5d1d,0x5d1a,0x5d20,0x5d0c,0x5d28,0x5d0d, +0x5d26,0x5d25,0x5d0f,0x5d30,0x5d12,0x5d23,0x5d1f,0x5d2e, +0x5e3e,0x5e34,0x5eb1,0x5eb4,0x5eb9,0x5eb2,0x5eb3,0x5f36, +0x5f38,0x5f9b,0x5f96,0x5f9f,0x608a,0x6090,0x6086,0x60be, +0x60b0,0x60ba,0x60d3,0x60d4,0x60cf,0x60e4,0x60d9,0x60dd, +0x60c8,0x60b1,0x60db,0x60b7,0x60ca,0x60bf,0x60c3,0x60cd, +0x60c0,0x6332,0x6365,0x638a,0x6382,0x637d,0x63bd,0x639e, +0x63ad,0x639d,0x6397,0x63ab,0x638e,0x636f,0x6387,0x6390, +0x636e,0x63af,0x6375,0x639c,0x636d,0x63ae,0x637c,0x63a4, +0x633b,0x639f,0x6378,0x6385,0x6381,0x6391,0x638d,0x6370, +0x6553,0x65cd,0x6665,0x6661,0x665b,0x6659,0x665c,0x6662, +0x6718,0x6879,0x6887,0x6890,0x689c,0x686d,0x686e,0x68ae, +0x68ab,0x6956,0x686f,0x68a3,0x68ac,0x68a9,0x6875,0x6874, +0x68b2,0x688f,0x6877,0x6892,0x687c,0x686b,0x6872,0x68aa, +0x6880,0x6871,0x687e,0x689b,0x6896,0x688b,0x68a0,0x6889, +0x68a4,0x6878,0x687b,0x6891,0x688c,0x688a,0x687d,0x6b36, +0x6b33,0x6b37,0x6b38,0x6b91,0x6b8f,0x6b8d,0x6b8e,0x6b8c, +0x6c2a,0x6dc0,0x6dab,0x6db4,0x6db3,0x6e74,0x6dac,0x6de9, +0x6de2,0x6db7,0x6df6,0x6dd4,0x6e00,0x6dc8,0x6de0,0x6ddf, +0x6dd6,0x6dbe,0x6de5,0x6ddc,0x6ddd,0x6ddb,0x6df4,0x6dca, +0x6dbd,0x6ded,0x6df0,0x6dba,0x6dd5,0x6dc2,0x6dcf,0x6dc9, +0x6dd0,0x6df2,0x6dd3,0x6dfd,0x6dd7,0x6dcd,0x6de3,0x6dbb, +0x70fa,0x710d,0x70f7,0x7117,0x70f4,0x710c,0x70f0,0x7104, +0x70f3,0x7110,0x70fc,0x70ff,0x7106,0x7113,0x7100,0x70f8, +0x70f6,0x710b,0x7102,0x710e,0x727e,0x727b,0x727c,0x727f, +0x731d,0x7317,0x7307,0x7311,0x7318,0x730a,0x7308,0x72ff, +0x730f,0x731e,0x7388,0x73f6,0x73f8,0x73f5,0x7404,0x7401, +0x73fd,0x7407,0x7400,0x73fa,0x73fc,0x73ff,0x740c,0x740b, +0x73f4,0x7408,0x7564,0x7563,0x75ce,0x75d2,0x75cf,0x75cb, +0x75cc,0x75d1,0x75d0,0x768f,0x7689,0x76d3,0x7739,0x772f, +0x772d,0x7731,0x7732,0x7734,0x7733,0x773d,0x7725,0x773b, +0x7735,0x7848,0x7852,0x7849,0x784d,0x784a,0x784c,0x7826, +0x7845,0x7850,0x7964,0x7967,0x7969,0x796a,0x7963,0x796b, +0x7961,0x79bb,0x79fa,0x79f8,0x79f6,0x79f7,0x7a8f,0x7a94, +0x7a90,0x7b35,0x7b3b,0x7b34,0x7b25,0x7b30,0x7b22,0x7b24, +0x7b33,0x7b18,0x7b2a,0x7b1d,0x7b31,0x7b2b,0x7b2d,0x7b2f, +0x7b32,0x7b38,0x7b1a,0x7b23,0x7c94,0x7c98,0x7c96,0x7ca3, +0x7d35,0x7d3d,0x7d38,0x7d36,0x7d3a,0x7d45,0x7d2c,0x7d29, +0x7d41,0x7d47,0x7d3e,0x7d3f,0x7d4a,0x7d3b,0x7d28,0x7f63, +0x7f95,0x7f9c,0x7f9d,0x7f9b,0x7fca,0x7fcb,0x7fcd,0x7fd0, +0x7fd1,0x7fc7,0x7fcf,0x7fc9,0x801f,0x801e,0x801b,0x8047, +0x8043,0x8048,0x8118,0x8125,0x8119,0x811b,0x812d,0x811f, +0x812c,0x811e,0x8121,0x8115,0x8127,0x811d,0x8122,0x8211, +0x8238,0x8233,0x823a,0x8234,0x8232,0x8274,0x8390,0x83a3, +0x83a8,0x838d,0x837a,0x8373,0x83a4,0x8374,0x838f,0x8381, +0x8395,0x8399,0x8375,0x8394,0x83a9,0x837d,0x8383,0x838c, +0x839d,0x839b,0x83aa,0x838b,0x837e,0x83a5,0x83af,0x8388, +0x8397,0x83b0,0x837f,0x83a6,0x8387,0x83ae,0x8376,0x8659, +0x8656,0x86bf,0x86b7,0x86c2,0x86c1,0x86c5,0x86ba,0x86b0, +0x86c8,0x86b9,0x86b3,0x86b8,0x86cc,0x86b4,0x86bb,0x86bc, +0x86c3,0x86bd,0x86be,0x8852,0x8889,0x8895,0x88a8,0x88a2, +0x88aa,0x889a,0x8891,0x88a1,0x889f,0x8898,0x88a7,0x8899, +0x889b,0x8897,0x88a4,0x88ac,0x888c,0x8893,0x888e,0x8982, +0x89d6,0x89d9,0x89d5,0x8a30,0x8a27,0x8a2c,0x8a1e,0x8c39, +0x8c3b,0x8c5c,0x8c5d,0x8c7d,0x8ca5,0x8d7d,0x8d7b,0x8d79, +0x8dbc,0x8dc2,0x8db9,0x8dbf,0x8dc1,0x8ed8,0x8ede,0x8edd, +0x8edc,0x8ed7,0x8ee0,0x8ee1,0x9024,0x900b,0x9011,0x901c, +0x900c,0x9021,0x90ef,0x90ea,0x90f0,0x90f4,0x90f2,0x90f3, +0x90d4,0x90eb,0x90ec,0x90e9,0x9156,0x9158,0x915a,0x9153, +0x9155,0x91ec,0x91f4,0x91f1,0x91f3,0x91f8,0x91e4,0x91f9, +0x91ea,0x91eb,0x91f7,0x91e8,0x91ee,0x957a,0x9586,0x9588, +0x967c,0x966d,0x966b,0x9671,0x966f,0x96bf,0x976a,0x9804, +0x98e5,0x9997,0x509b,0x5095,0x5094,0x509e,0x508b,0x50a3, +0x5083,0x508c,0x508e,0x509d,0x5068,0x509c,0x5092,0x5082, +0x5087,0x515f,0x51d4,0x5312,0x5311,0x53a4,0x53a7,0x5591, +0x55a8,0x55a5,0x55ad,0x5577,0x5645,0x55a2,0x5593,0x5588, +0x558f,0x55b5,0x5581,0x55a3,0x5592,0x55a4,0x557d,0x558c, +0x55a6,0x557f,0x5595,0x55a1,0x558e,0x570c,0x5829,0x5837, +0x5819,0x581e,0x5827,0x5823,0x5828,0x57f5,0x5848,0x5825, +0x581c,0x581b,0x5833,0x583f,0x5836,0x582e,0x5839,0x5838, +0x582d,0x582c,0x583b,0x5961,0x5aaf,0x5a94,0x5a9f,0x5a7a, +0x5aa2,0x5a9e,0x5a78,0x5aa6,0x5a7c,0x5aa5,0x5aac,0x5a95, +0x5aae,0x5a37,0x5a84,0x5a8a,0x5a97,0x5a83,0x5a8b,0x5aa9, +0x5a7b,0x5a7d,0x5a8c,0x5a9c,0x5a8f,0x5a93,0x5a9d,0x5bea, +0x5bcd,0x5bcb,0x5bd4,0x5bd1,0x5bca,0x5bce,0x5c0c,0x5c30, +0x5d37,0x5d43,0x5d6b,0x5d41,0x5d4b,0x5d3f,0x5d35,0x5d51, +0x5d4e,0x5d55,0x5d33,0x5d3a,0x5d52,0x5d3d,0x5d31,0x5d59, +0x5d42,0x5d39,0x5d49,0x5d38,0x5d3c,0x5d32,0x5d36,0x5d40, +0x5d45,0x5e44,0x5e41,0x5f58,0x5fa6,0x5fa5,0x5fab,0x60c9, +0x60b9,0x60cc,0x60e2,0x60ce,0x60c4,0x6114,0x60f2,0x610a, +0x6116,0x6105,0x60f5,0x6113,0x60f8,0x60fc,0x60fe,0x60c1, +0x6103,0x6118,0x611d,0x6110,0x60ff,0x6104,0x610b,0x624a, +0x6394,0x63b1,0x63b0,0x63ce,0x63e5,0x63e8,0x63ef,0x63c3, +0x649d,0x63f3,0x63ca,0x63e0,0x63f6,0x63d5,0x63f2,0x63f5, +0x6461,0x63df,0x63be,0x63dd,0x63dc,0x63c4,0x63d8,0x63d3, +0x63c2,0x63c7,0x63cc,0x63cb,0x63c8,0x63f0,0x63d7,0x63d9, +0x6532,0x6567,0x656a,0x6564,0x655c,0x6568,0x6565,0x658c, +0x659d,0x659e,0x65ae,0x65d0,0x65d2,0x667c,0x666c,0x667b, +0x6680,0x6671,0x6679,0x666a,0x6672,0x6701,0x690c,0x68d3, +0x6904,0x68dc,0x692a,0x68ec,0x68ea,0x68f1,0x690f,0x68d6, +0x68f7,0x68eb,0x68e4,0x68f6,0x6913,0x6910,0x68f3,0x68e1, +0x6907,0x68cc,0x6908,0x6970,0x68b4,0x6911,0x68ef,0x68c6, +0x6914,0x68f8,0x68d0,0x68fd,0x68fc,0x68e8,0x690b,0x690a, +0x6917,0x68ce,0x68c8,0x68dd,0x68de,0x68e6,0x68f4,0x68d1, +0x6906,0x68d4,0x68e9,0x6915,0x6925,0x68c7,0x6b39,0x6b3b, +0x6b3f,0x6b3c,0x6b94,0x6b97,0x6b99,0x6b95,0x6bbd,0x6bf0, +0x6bf2,0x6bf3,0x6c30,0x6dfc,0x6e46,0x6e47,0x6e1f,0x6e49, +0x6e88,0x6e3c,0x6e3d,0x6e45,0x6e62,0x6e2b,0x6e3f,0x6e41, +0x6e5d,0x6e73,0x6e1c,0x6e33,0x6e4b,0x6e40,0x6e51,0x6e3b, +0x6e03,0x6e2e,0x6e5e,0x6e68,0x6e5c,0x6e61,0x6e31,0x6e28, +0x6e60,0x6e71,0x6e6b,0x6e39,0x6e22,0x6e30,0x6e53,0x6e65, +0x6e27,0x6e78,0x6e64,0x6e77,0x6e55,0x6e79,0x6e52,0x6e66, +0x6e35,0x6e36,0x6e5a,0x7120,0x711e,0x712f,0x70fb,0x712e, +0x7131,0x7123,0x7125,0x7122,0x7132,0x711f,0x7128,0x713a, +0x711b,0x724b,0x725a,0x7288,0x7289,0x7286,0x7285,0x728b, +0x7312,0x730b,0x7330,0x7322,0x7331,0x7333,0x7327,0x7332, +0x732d,0x7326,0x7323,0x7335,0x730c,0x742e,0x742c,0x7430, +0x742b,0x7416,0x741a,0x7421,0x742d,0x7431,0x7424,0x7423, +0x741d,0x7429,0x7420,0x7432,0x74fb,0x752f,0x756f,0x756c, +0x75e7,0x75da,0x75e1,0x75e6,0x75dd,0x75df,0x75e4,0x75d7, +0x7695,0x7692,0x76da,0x7746,0x7747,0x7744,0x774d,0x7745, +0x774a,0x774e,0x774b,0x774c,0x77de,0x77ec,0x7860,0x7864, +0x7865,0x785c,0x786d,0x7871,0x786a,0x786e,0x7870,0x7869, +0x7868,0x785e,0x7862,0x7974,0x7973,0x7972,0x7970,0x7a02, +0x7a0a,0x7a03,0x7a0c,0x7a04,0x7a99,0x7ae6,0x7ae4,0x7b4a, +0x7b47,0x7b44,0x7b48,0x7b4c,0x7b4e,0x7b40,0x7b58,0x7b45, +0x7ca2,0x7c9e,0x7ca8,0x7ca1,0x7d58,0x7d6f,0x7d63,0x7d53, +0x7d56,0x7d67,0x7d6a,0x7d4f,0x7d6d,0x7d5c,0x7d6b,0x7d52, +0x7d54,0x7d69,0x7d51,0x7d5f,0x7d4e,0x7f3e,0x7f3f,0x7f65, +0x7f66,0x7fa2,0x7fa0,0x7fa1,0x7fd7,0x8051,0x804f,0x8050, +0x80fe,0x80d4,0x8143,0x814a,0x8152,0x814f,0x8147,0x813d, +0x814d,0x813a,0x81e6,0x81ee,0x81f7,0x81f8,0x81f9,0x8204, +0x823c,0x823d,0x823f,0x8275,0x833b,0x83cf,0x83f9,0x8423, +0x83c0,0x83e8,0x8412,0x83e7,0x83e4,0x83fc,0x83f6,0x8410, +0x83c6,0x83c8,0x83eb,0x83e3,0x83bf,0x8401,0x83dd,0x83e5, +0x83d8,0x83ff,0x83e1,0x83cb,0x83ce,0x83d6,0x83f5,0x83c9, +0x8409,0x840f,0x83de,0x8411,0x8406,0x83c2,0x83f3,0x83d5, +0x83fa,0x83c7,0x83d1,0x83ea,0x8413,0x839a,0x83c3,0x83ec, +0x83ee,0x83c4,0x83fb,0x83d7,0x83e2,0x841b,0x83db,0x83fe, +0x86d8,0x86e2,0x86e6,0x86d3,0x86e3,0x86da,0x86ea,0x86dd, +0x86eb,0x86dc,0x86ec,0x86e9,0x86d7,0x86e8,0x86d1,0x8848, +0x8856,0x8855,0x88ba,0x88d7,0x88b9,0x88b8,0x88c0,0x88be, +0x88b6,0x88bc,0x88b7,0x88bd,0x88b2,0x8901,0x88c9,0x8995, +0x8998,0x8997,0x89dd,0x89da,0x89db,0x8a4e,0x8a4d,0x8a39, +0x8a59,0x8a40,0x8a57,0x8a58,0x8a44,0x8a45,0x8a52,0x8a48, +0x8a51,0x8a4a,0x8a4c,0x8a4f,0x8c5f,0x8c81,0x8c80,0x8cba, +0x8cbe,0x8cb0,0x8cb9,0x8cb5,0x8d84,0x8d80,0x8d89,0x8dd8, +0x8dd3,0x8dcd,0x8dc7,0x8dd6,0x8ddc,0x8dcf,0x8dd5,0x8dd9, +0x8dc8,0x8dd7,0x8dc5,0x8eef,0x8ef7,0x8efa,0x8ef9,0x8ee6, +0x8eee,0x8ee5,0x8ef5,0x8ee7,0x8ee8,0x8ef6,0x8eeb,0x8ef1, +0x8eec,0x8ef4,0x8ee9,0x902d,0x9034,0x902f,0x9106,0x912c, +0x9104,0x90ff,0x90fc,0x9108,0x90f9,0x90fb,0x9101,0x9100, +0x9107,0x9105,0x9103,0x9161,0x9164,0x915f,0x9162,0x9160, +0x9201,0x920a,0x9225,0x9203,0x921a,0x9226,0x920f,0x920c, +0x9200,0x9212,0x91ff,0x91fd,0x9206,0x9204,0x9227,0x9202, +0x921c,0x9224,0x9219,0x9217,0x9205,0x9216,0x957b,0x958d, +0x958c,0x9590,0x9687,0x967e,0x9688,0x9689,0x9683,0x9680, +0x96c2,0x96c8,0x96c3,0x96f1,0x96f0,0x976c,0x9770,0x976e, +0x9807,0x98a9,0x98eb,0x9ce6,0x9ef9,0x4e83,0x4e84,0x4eb6, +0x50bd,0x50bf,0x50c6,0x50ae,0x50c4,0x50ca,0x50b4,0x50c8, +0x50c2,0x50b0,0x50c1,0x50ba,0x50b1,0x50cb,0x50c9,0x50b6, +0x50b8,0x51d7,0x527a,0x5278,0x527b,0x527c,0x55c3,0x55db, +0x55cc,0x55d0,0x55cb,0x55ca,0x55dd,0x55c0,0x55d4,0x55c4, +0x55e9,0x55bf,0x55d2,0x558d,0x55cf,0x55d5,0x55e2,0x55d6, +0x55c8,0x55f2,0x55cd,0x55d9,0x55c2,0x5714,0x5853,0x5868, +0x5864,0x584f,0x584d,0x5849,0x586f,0x5855,0x584e,0x585d, +0x5859,0x5865,0x585b,0x583d,0x5863,0x5871,0x58fc,0x5ac7, +0x5ac4,0x5acb,0x5aba,0x5ab8,0x5ab1,0x5ab5,0x5ab0,0x5abf, +0x5ac8,0x5abb,0x5ac6,0x5ab7,0x5ac0,0x5aca,0x5ab4,0x5ab6, +0x5acd,0x5ab9,0x5a90,0x5bd6,0x5bd8,0x5bd9,0x5c1f,0x5c33, +0x5d71,0x5d63,0x5d4a,0x5d65,0x5d72,0x5d6c,0x5d5e,0x5d68, +0x5d67,0x5d62,0x5df0,0x5e4f,0x5e4e,0x5e4a,0x5e4d,0x5e4b, +0x5ec5,0x5ecc,0x5ec6,0x5ecb,0x5ec7,0x5f40,0x5faf,0x5fad, +0x60f7,0x6149,0x614a,0x612b,0x6145,0x6136,0x6132,0x612e, +0x6146,0x612f,0x614f,0x6129,0x6140,0x6220,0x9168,0x6223, +0x6225,0x6224,0x63c5,0x63f1,0x63eb,0x6410,0x6412,0x6409, +0x6420,0x6424,0x6433,0x6443,0x641f,0x6415,0x6418,0x6439, +0x6437,0x6422,0x6423,0x640c,0x6426,0x6430,0x6428,0x6441, +0x6435,0x642f,0x640a,0x641a,0x6440,0x6425,0x6427,0x640b, +0x63e7,0x641b,0x642e,0x6421,0x640e,0x656f,0x6592,0x65d3, +0x6686,0x668c,0x6695,0x6690,0x668b,0x668a,0x6699,0x6694, +0x6678,0x6720,0x6966,0x695f,0x6938,0x694e,0x6962,0x6971, +0x693f,0x6945,0x696a,0x6939,0x6942,0x6957,0x6959,0x697a, +0x6948,0x6949,0x6935,0x696c,0x6933,0x693d,0x6965,0x68f0, +0x6978,0x6934,0x6969,0x6940,0x696f,0x6944,0x6976,0x6958, +0x6941,0x6974,0x694c,0x693b,0x694b,0x6937,0x695c,0x694f, +0x6951,0x6932,0x6952,0x692f,0x697b,0x693c,0x6b46,0x6b45, +0x6b43,0x6b42,0x6b48,0x6b41,0x6b9b,0x6bfb,0x6bfc,0x6bf9, +0x6bf7,0x6bf8,0x6e9b,0x6ed6,0x6ec8,0x6e8f,0x6ec0,0x6e9f, +0x6e93,0x6e94,0x6ea0,0x6eb1,0x6eb9,0x6ec6,0x6ed2,0x6ebd, +0x6ec1,0x6e9e,0x6ec9,0x6eb7,0x6eb0,0x6ecd,0x6ea6,0x6ecf, +0x6eb2,0x6ebe,0x6ec3,0x6edc,0x6ed8,0x6e99,0x6e92,0x6e8e, +0x6e8d,0x6ea4,0x6ea1,0x6ebf,0x6eb3,0x6ed0,0x6eca,0x6e97, +0x6eae,0x6ea3,0x7147,0x7154,0x7152,0x7163,0x7160,0x7141, +0x715d,0x7162,0x7172,0x7178,0x716a,0x7161,0x7142,0x7158, +0x7143,0x714b,0x7170,0x715f,0x7150,0x7153,0x7144,0x714d, +0x715a,0x724f,0x728d,0x728c,0x7291,0x7290,0x728e,0x733c, +0x7342,0x733b,0x733a,0x7340,0x734a,0x7349,0x7444,0x744a, +0x744b,0x7452,0x7451,0x7457,0x7440,0x744f,0x7450,0x744e, +0x7442,0x7446,0x744d,0x7454,0x74e1,0x74ff,0x74fe,0x74fd, +0x751d,0x7579,0x7577,0x6983,0x75ef,0x760f,0x7603,0x75f7, +0x75fe,0x75fc,0x75f9,0x75f8,0x7610,0x75fb,0x75f6,0x75ed, +0x75f5,0x75fd,0x7699,0x76b5,0x76dd,0x7755,0x775f,0x7760, +0x7752,0x7756,0x775a,0x7769,0x7767,0x7754,0x7759,0x776d, +0x77e0,0x7887,0x789a,0x7894,0x788f,0x7884,0x7895,0x7885, +0x7886,0x78a1,0x7883,0x7879,0x7899,0x7880,0x7896,0x787b, +0x797c,0x7982,0x797d,0x7979,0x7a11,0x7a18,0x7a19,0x7a12, +0x7a17,0x7a15,0x7a22,0x7a13,0x7a1b,0x7a10,0x7aa3,0x7aa2, +0x7a9e,0x7aeb,0x7b66,0x7b64,0x7b6d,0x7b74,0x7b69,0x7b72, +0x7b65,0x7b73,0x7b71,0x7b70,0x7b61,0x7b78,0x7b76,0x7b63, +0x7cb2,0x7cb4,0x7caf,0x7d88,0x7d86,0x7d80,0x7d8d,0x7d7f, +0x7d85,0x7d7a,0x7d8e,0x7d7b,0x7d83,0x7d7c,0x7d8c,0x7d94, +0x7d84,0x7d7d,0x7d92,0x7f6d,0x7f6b,0x7f67,0x7f68,0x7f6c, +0x7fa6,0x7fa5,0x7fa7,0x7fdb,0x7fdc,0x8021,0x8164,0x8160, +0x8177,0x815c,0x8169,0x815b,0x8162,0x8172,0x6721,0x815e, +0x8176,0x8167,0x816f,0x8144,0x8161,0x821d,0x8249,0x8244, +0x8240,0x8242,0x8245,0x84f1,0x843f,0x8456,0x8476,0x8479, +0x848f,0x848d,0x8465,0x8451,0x8440,0x8486,0x8467,0x8430, +0x844d,0x847d,0x845a,0x8459,0x8474,0x8473,0x845d,0x8507, +0x845e,0x8437,0x843a,0x8434,0x847a,0x8443,0x8478,0x8432, +0x8445,0x8429,0x83d9,0x844b,0x842f,0x8442,0x842d,0x845f, +0x8470,0x8439,0x844e,0x844c,0x8452,0x846f,0x84c5,0x848e, +0x843b,0x8447,0x8436,0x8433,0x8468,0x847e,0x8444,0x842b, +0x8460,0x8454,0x846e,0x8450,0x870b,0x8704,0x86f7,0x870c, +0x86fa,0x86d6,0x86f5,0x874d,0x86f8,0x870e,0x8709,0x8701, +0x86f6,0x870d,0x8705,0x88d6,0x88cb,0x88cd,0x88ce,0x88de, +0x88db,0x88da,0x88cc,0x88d0,0x8985,0x899b,0x89df,0x89e5, +0x89e4,0x89e1,0x89e0,0x89e2,0x89dc,0x89e6,0x8a76,0x8a86, +0x8a7f,0x8a61,0x8a3f,0x8a77,0x8a82,0x8a84,0x8a75,0x8a83, +0x8a81,0x8a74,0x8a7a,0x8c3c,0x8c4b,0x8c4a,0x8c65,0x8c64, +0x8c66,0x8c86,0x8c84,0x8c85,0x8ccc,0x8d68,0x8d69,0x8d91, +0x8d8c,0x8d8e,0x8d8f,0x8d8d,0x8d93,0x8d94,0x8d90,0x8d92, +0x8df0,0x8de0,0x8dec,0x8df1,0x8dee,0x8dd0,0x8de9,0x8de3, +0x8de2,0x8de7,0x8df2,0x8deb,0x8df4,0x8f06,0x8eff,0x8f01, +0x8f00,0x8f05,0x8f07,0x8f08,0x8f02,0x8f0b,0x9052,0x903f, +0x9044,0x9049,0x903d,0x9110,0x910d,0x910f,0x9111,0x9116, +0x9114,0x910b,0x910e,0x916e,0x916f,0x9248,0x9252,0x9230, +0x923a,0x9266,0x9233,0x9265,0x925e,0x9283,0x922e,0x924a, +0x9246,0x926d,0x926c,0x924f,0x9260,0x9267,0x926f,0x9236, +0x9261,0x9270,0x9231,0x9254,0x9263,0x9250,0x9272,0x924e, +0x9253,0x924c,0x9256,0x9232,0x959f,0x959c,0x959e,0x959b, +0x9692,0x9693,0x9691,0x9697,0x96ce,0x96fa,0x96fd,0x96f8, +0x96f5,0x9773,0x9777,0x9778,0x9772,0x980f,0x980d,0x980e, +0x98ac,0x98f6,0x98f9,0x99af,0x99b2,0x99b0,0x99b5,0x9aad, +0x9aab,0x9b5b,0x9cea,0x9ced,0x9ce7,0x9e80,0x9efd,0x50e6, +0x50d4,0x50d7,0x50e8,0x50f3,0x50db,0x50ea,0x50dd,0x50e4, +0x50d3,0x50ec,0x50f0,0x50ef,0x50e3,0x50e0,0x51d8,0x5280, +0x5281,0x52e9,0x52eb,0x5330,0x53ac,0x5627,0x5615,0x560c, +0x5612,0x55fc,0x560f,0x561c,0x5601,0x5613,0x5602,0x55fa, +0x561d,0x5604,0x55ff,0x55f9,0x5889,0x587c,0x5890,0x5898, +0x5886,0x5881,0x587f,0x5874,0x588b,0x587a,0x5887,0x5891, +0x588e,0x5876,0x5882,0x5888,0x587b,0x5894,0x588f,0x58fe, +0x596b,0x5adc,0x5aee,0x5ae5,0x5ad5,0x5aea,0x5ada,0x5aed, +0x5aeb,0x5af3,0x5ae2,0x5ae0,0x5adb,0x5aec,0x5ade,0x5add, +0x5ad9,0x5ae8,0x5adf,0x5b77,0x5be0,0x5be3,0x5c63,0x5d82, +0x5d80,0x5d7d,0x5d86,0x5d7a,0x5d81,0x5d77,0x5d8a,0x5d89, +0x5d88,0x5d7e,0x5d7c,0x5d8d,0x5d79,0x5d7f,0x5e58,0x5e59, +0x5e53,0x5ed8,0x5ed1,0x5ed7,0x5ece,0x5edc,0x5ed5,0x5ed9, +0x5ed2,0x5ed4,0x5f44,0x5f43,0x5f6f,0x5fb6,0x612c,0x6128, +0x6141,0x615e,0x6171,0x6173,0x6152,0x6153,0x6172,0x616c, +0x6180,0x6174,0x6154,0x617a,0x615b,0x6165,0x613b,0x616a, +0x6161,0x6156,0x6229,0x6227,0x622b,0x642b,0x644d,0x645b, +0x645d,0x6474,0x6476,0x6472,0x6473,0x647d,0x6475,0x6466, +0x64a6,0x644e,0x6482,0x645e,0x645c,0x644b,0x6453,0x6460, +0x6450,0x647f,0x643f,0x646c,0x646b,0x6459,0x6465,0x6477, +0x6573,0x65a0,0x66a1,0x66a0,0x669f,0x6705,0x6704,0x6722, +0x69b1,0x69b6,0x69c9,0x69a0,0x69ce,0x6996,0x69b0,0x69ac, +0x69bc,0x6991,0x6999,0x698e,0x69a7,0x698d,0x69a9,0x69be, +0x69af,0x69bf,0x69c4,0x69bd,0x69a4,0x69d4,0x69b9,0x69ca, +0x699a,0x69cf,0x69b3,0x6993,0x69aa,0x69a1,0x699e,0x69d9, +0x6997,0x6990,0x69c2,0x69b5,0x69a5,0x69c6,0x6b4a,0x6b4d, +0x6b4b,0x6b9e,0x6b9f,0x6ba0,0x6bc3,0x6bc4,0x6bfe,0x6ece, +0x6ef5,0x6ef1,0x6f03,0x6f25,0x6ef8,0x6f37,0x6efb,0x6f2e, +0x6f09,0x6f4e,0x6f19,0x6f1a,0x6f27,0x6f18,0x6f3b,0x6f12, +0x6eed,0x6f0a,0x6f36,0x6f73,0x6ef9,0x6eee,0x6f2d,0x6f40, +0x6f30,0x6f3c,0x6f35,0x6eeb,0x6f07,0x6f0e,0x6f43,0x6f05, +0x6efd,0x6ef6,0x6f39,0x6f1c,0x6efc,0x6f3a,0x6f1f,0x6f0d, +0x6f1e,0x6f08,0x6f21,0x7187,0x7190,0x7189,0x7180,0x7185, +0x7182,0x718f,0x717b,0x7186,0x7181,0x7197,0x7244,0x7253, +0x7297,0x7295,0x7293,0x7343,0x734d,0x7351,0x734c,0x7462, +0x7473,0x7471,0x7475,0x7472,0x7467,0x746e,0x7500,0x7502, +0x7503,0x757d,0x7590,0x7616,0x7608,0x760c,0x7615,0x7611, +0x760a,0x7614,0x76b8,0x7781,0x777c,0x7785,0x7782,0x776e, +0x7780,0x776f,0x777e,0x7783,0x78b2,0x78aa,0x78b4,0x78ad, +0x78a8,0x787e,0x78ab,0x789e,0x78a5,0x78a0,0x78ac,0x78a2, +0x78a4,0x7998,0x798a,0x798b,0x7996,0x7995,0x7994,0x7993, +0x7997,0x7988,0x7992,0x7990,0x7a2b,0x7a4a,0x7a30,0x7a2f, +0x7a28,0x7a26,0x7aa8,0x7aab,0x7aac,0x7aee,0x7b88,0x7b9c, +0x7b8a,0x7b91,0x7b90,0x7b96,0x7b8d,0x7b8c,0x7b9b,0x7b8e, +0x7b85,0x7b98,0x5284,0x7b99,0x7ba4,0x7b82,0x7cbb,0x7cbf, +0x7cbc,0x7cba,0x7da7,0x7db7,0x7dc2,0x7da3,0x7daa,0x7dc1, +0x7dc0,0x7dc5,0x7d9d,0x7dce,0x7dc4,0x7dc6,0x7dcb,0x7dcc, +0x7daf,0x7db9,0x7d96,0x7dbc,0x7d9f,0x7da6,0x7dae,0x7da9, +0x7da1,0x7dc9,0x7f73,0x7fe2,0x7fe3,0x7fe5,0x7fde,0x8024, +0x805d,0x805c,0x8189,0x8186,0x8183,0x8187,0x818d,0x818c, +0x818b,0x8215,0x8497,0x84a4,0x84a1,0x849f,0x84ba,0x84ce, +0x84c2,0x84ac,0x84ae,0x84ab,0x84b9,0x84b4,0x84c1,0x84cd, +0x84aa,0x849a,0x84b1,0x84d0,0x849d,0x84a7,0x84bb,0x84a2, +0x8494,0x84c7,0x84cc,0x849b,0x84a9,0x84af,0x84a8,0x84d6, +0x8498,0x84b6,0x84cf,0x84a0,0x84d7,0x84d4,0x84d2,0x84db, +0x84b0,0x8491,0x8661,0x8733,0x8723,0x8728,0x876b,0x8740, +0x872e,0x871e,0x8721,0x8719,0x871b,0x8743,0x872c,0x8741, +0x873e,0x8746,0x8720,0x8732,0x872a,0x872d,0x873c,0x8712, +0x873a,0x8731,0x8735,0x8742,0x8726,0x8727,0x8738,0x8724, +0x871a,0x8730,0x8711,0x88f7,0x88e7,0x88f1,0x88f2,0x88fa, +0x88fe,0x88ee,0x88fc,0x88f6,0x88fb,0x88f0,0x88ec,0x88eb, +0x899d,0x89a1,0x899f,0x899e,0x89e9,0x89eb,0x89e8,0x8aab, +0x8a99,0x8a8b,0x8a92,0x8a8f,0x8a96,0x8c3d,0x8c68,0x8c69, +0x8cd5,0x8ccf,0x8cd7,0x8d96,0x8e09,0x8e02,0x8dff,0x8e0d, +0x8dfd,0x8e0a,0x8e03,0x8e07,0x8e06,0x8e05,0x8dfe,0x8e00, +0x8e04,0x8f10,0x8f11,0x8f0e,0x8f0d,0x9123,0x911c,0x9120, +0x9122,0x911f,0x911d,0x911a,0x9124,0x9121,0x911b,0x917a, +0x9172,0x9179,0x9173,0x92a5,0x92a4,0x9276,0x929b,0x927a, +0x92a0,0x9294,0x92aa,0x928d,0x92a6,0x929a,0x92ab,0x9279, +0x9297,0x927f,0x92a3,0x92ee,0x928e,0x9282,0x9295,0x92a2, +0x927d,0x9288,0x92a1,0x928a,0x9286,0x928c,0x9299,0x92a7, +0x927e,0x9287,0x92a9,0x929d,0x928b,0x922d,0x969e,0x96a1, +0x96ff,0x9758,0x977d,0x977a,0x977e,0x9783,0x9780,0x9782, +0x977b,0x9784,0x9781,0x977f,0x97ce,0x97cd,0x9816,0x98ad, +0x98ae,0x9902,0x9900,0x9907,0x999d,0x999c,0x99c3,0x99b9, +0x99bb,0x99ba,0x99c2,0x99bd,0x99c7,0x9ab1,0x9ae3,0x9ae7, +0x9b3e,0x9b3f,0x9b60,0x9b61,0x9b5f,0x9cf1,0x9cf2,0x9cf5, +0x9ea7,0x50ff,0x5103,0x5130,0x50f8,0x5106,0x5107,0x50f6, +0x50fe,0x510b,0x510c,0x50fd,0x510a,0x528b,0x528c,0x52f1, +0x52ef,0x5648,0x5642,0x564c,0x5635,0x5641,0x564a,0x5649, +0x5646,0x5658,0x565a,0x5640,0x5633,0x563d,0x562c,0x563e, +0x5638,0x562a,0x563a,0x571a,0x58ab,0x589d,0x58b1,0x58a0, +0x58a3,0x58af,0x58ac,0x58a5,0x58a1,0x58ff,0x5aff,0x5af4, +0x5afd,0x5af7,0x5af6,0x5b03,0x5af8,0x5b02,0x5af9,0x5b01, +0x5b07,0x5b05,0x5b0f,0x5c67,0x5d99,0x5d97,0x5d9f,0x5d92, +0x5da2,0x5d93,0x5d95,0x5da0,0x5d9c,0x5da1,0x5d9a,0x5d9e, +0x5e69,0x5e5d,0x5e60,0x5e5c,0x7df3,0x5edb,0x5ede,0x5ee1, +0x5f49,0x5fb2,0x618b,0x6183,0x6179,0x61b1,0x61b0,0x61a2, +0x6189,0x619b,0x6193,0x61af,0x61ad,0x619f,0x6192,0x61aa, +0x61a1,0x618d,0x6166,0x61b3,0x622d,0x646e,0x6470,0x6496, +0x64a0,0x6485,0x6497,0x649c,0x648f,0x648b,0x648a,0x648c, +0x64a3,0x649f,0x6468,0x64b1,0x6498,0x6576,0x657a,0x6579, +0x657b,0x65b2,0x65b3,0x66b5,0x66b0,0x66a9,0x66b2,0x66b7, +0x66aa,0x66af,0x6a00,0x6a06,0x6a17,0x69e5,0x69f8,0x6a15, +0x69f1,0x69e4,0x6a20,0x69ff,0x69ec,0x69e2,0x6a1b,0x6a1d, +0x69fe,0x6a27,0x69f2,0x69ee,0x6a14,0x69f7,0x69e7,0x6a40, +0x6a08,0x69e6,0x69fb,0x6a0d,0x69fc,0x69eb,0x6a09,0x6a04, +0x6a18,0x6a25,0x6a0f,0x69f6,0x6a26,0x6a07,0x69f4,0x6a16, +0x6b51,0x6ba5,0x6ba3,0x6ba2,0x6ba6,0x6c01,0x6c00,0x6bff, +0x6c02,0x6f41,0x6f26,0x6f7e,0x6f87,0x6fc6,0x6f92,0x6f8d, +0x6f89,0x6f8c,0x6f62,0x6f4f,0x6f85,0x6f5a,0x6f96,0x6f76, +0x6f6c,0x6f82,0x6f55,0x6f72,0x6f52,0x6f50,0x6f57,0x6f94, +0x6f93,0x6f5d,0x6f00,0x6f61,0x6f6b,0x6f7d,0x6f67,0x6f90, +0x6f53,0x6f8b,0x6f69,0x6f7f,0x6f95,0x6f63,0x6f77,0x6f6a, +0x6f7b,0x71b2,0x71af,0x719b,0x71b0,0x71a0,0x719a,0x71a9, +0x71b5,0x719d,0x71a5,0x719e,0x71a4,0x71a1,0x71aa,0x719c, +0x71a7,0x71b3,0x7298,0x729a,0x7358,0x7352,0x735e,0x735f, +0x7360,0x735d,0x735b,0x7361,0x735a,0x7359,0x7362,0x7487, +0x7489,0x748a,0x7486,0x7481,0x747d,0x7485,0x7488,0x747c, +0x7479,0x7508,0x7507,0x757e,0x7625,0x761e,0x7619,0x761d, +0x761c,0x7623,0x761a,0x7628,0x761b,0x769c,0x769d,0x769e, +0x769b,0x778d,0x778f,0x7789,0x7788,0x78cd,0x78bb,0x78cf, +0x78cc,0x78d1,0x78ce,0x78d4,0x78c8,0x78c3,0x78c4,0x78c9, +0x799a,0x79a1,0x79a0,0x799c,0x79a2,0x799b,0x6b76,0x7a39, +0x7ab2,0x7ab4,0x7ab3,0x7bb7,0x7bcb,0x7bbe,0x7bac,0x7bce, +0x7baf,0x7bb9,0x7bca,0x7bb5,0x7cc5,0x7cc8,0x7ccc,0x7ccb, +0x7df7,0x7ddb,0x7dea,0x7de7,0x7dd7,0x7de1,0x7e03,0x7dfa, +0x7de6,0x7df6,0x7df1,0x7df0,0x7dee,0x7ddf,0x7f76,0x7fac, +0x7fb0,0x7fad,0x7fed,0x7feb,0x7fea,0x7fec,0x7fe6,0x7fe8, +0x8064,0x8067,0x81a3,0x819f,0x819e,0x8195,0x81a2,0x8199, +0x8197,0x8216,0x824f,0x8253,0x8252,0x8250,0x824e,0x8251, +0x8524,0x853b,0x850f,0x8500,0x8529,0x850e,0x8509,0x850d, +0x851f,0x850a,0x8527,0x851c,0x84fb,0x852b,0x84fa,0x8508, +0x850c,0x84f4,0x852a,0x84f2,0x8515,0x84f7,0x84eb,0x84f3, +0x84fc,0x8512,0x84ea,0x84e9,0x8516,0x84fe,0x8528,0x851d, +0x852e,0x8502,0x84fd,0x851e,0x84f6,0x8531,0x8526,0x84e7, +0x84e8,0x84f0,0x84ef,0x84f9,0x8518,0x8520,0x8530,0x850b, +0x8519,0x852f,0x8662,0x8756,0x8763,0x8764,0x8777,0x87e1, +0x8773,0x8758,0x8754,0x875b,0x8752,0x8761,0x875a,0x8751, +0x875e,0x876d,0x876a,0x8750,0x874e,0x875f,0x875d,0x876f, +0x876c,0x877a,0x876e,0x875c,0x8765,0x874f,0x877b,0x8775, +0x8762,0x8767,0x8769,0x885a,0x8905,0x890c,0x8914,0x890b, +0x8917,0x8918,0x8919,0x8906,0x8916,0x8911,0x890e,0x8909, +0x89a2,0x89a4,0x89a3,0x89ed,0x89f0,0x89ec,0x8acf,0x8ac6, +0x8ab8,0x8ad3,0x8ad1,0x8ad4,0x8ad5,0x8abb,0x8ad7,0x8abe, +0x8ac0,0x8ac5,0x8ad8,0x8ac3,0x8aba,0x8abd,0x8ad9,0x8c3e, +0x8c4d,0x8c8f,0x8ce5,0x8cdf,0x8cd9,0x8ce8,0x8cda,0x8cdd, +0x8ce7,0x8da0,0x8d9c,0x8da1,0x8d9b,0x8e20,0x8e23,0x8e25, +0x8e24,0x8e2e,0x8e15,0x8e1b,0x8e16,0x8e11,0x8e19,0x8e26, +0x8e27,0x8e14,0x8e12,0x8e18,0x8e13,0x8e1c,0x8e17,0x8e1a, +0x8f2c,0x8f24,0x8f18,0x8f1a,0x8f20,0x8f23,0x8f16,0x8f17, +0x9073,0x9070,0x906f,0x9067,0x906b,0x912f,0x912b,0x9129, +0x912a,0x9132,0x9126,0x912e,0x9185,0x9186,0x918a,0x9181, +0x9182,0x9184,0x9180,0x92d0,0x92c3,0x92c4,0x92c0,0x92d9, +0x92b6,0x92cf,0x92f1,0x92df,0x92d8,0x92e9,0x92d7,0x92dd, +0x92cc,0x92ef,0x92c2,0x92e8,0x92ca,0x92c8,0x92ce,0x92e6, +0x92cd,0x92d5,0x92c9,0x92e0,0x92de,0x92e7,0x92d1,0x92d3, +0x92b5,0x92e1,0x9325,0x92c6,0x92b4,0x957c,0x95ac,0x95ab, +0x95ae,0x95b0,0x96a4,0x96a2,0x96d3,0x9705,0x9708,0x9702, +0x975a,0x978a,0x978e,0x9788,0x97d0,0x97cf,0x981e,0x981d, +0x9826,0x9829,0x9828,0x9820,0x981b,0x9827,0x98b2,0x9908, +0x98fa,0x9911,0x9914,0x9916,0x9917,0x9915,0x99dc,0x99cd, +0x99cf,0x99d3,0x99d4,0x99ce,0x99c9,0x99d6,0x99d8,0x99cb, +0x99d7,0x99cc,0x9ab3,0x9aec,0x9aeb,0x9af3,0x9af2,0x9af1, +0x9b46,0x9b43,0x9b67,0x9b74,0x9b71,0x9b66,0x9b76,0x9b75, +0x9b70,0x9b68,0x9b64,0x9b6c,0x9cfc,0x9cfa,0x9cfd,0x9cff, +0x9cf7,0x9d07,0x9d00,0x9cf9,0x9cfb,0x9d08,0x9d05,0x9d04, +0x9e83,0x9ed3,0x9f0f,0x9f10,0x511c,0x5113,0x5117,0x511a, +0x5111,0x51de,0x5334,0x53e1,0x5670,0x5660,0x566e,0x5673, +0x5666,0x5663,0x566d,0x5672,0x565e,0x5677,0x571c,0x571b, +0x58c8,0x58bd,0x58c9,0x58bf,0x58ba,0x58c2,0x58bc,0x58c6, +0x5b17,0x5b19,0x5b1b,0x5b21,0x5b14,0x5b13,0x5b10,0x5b16, +0x5b28,0x5b1a,0x5b20,0x5b1e,0x5bef,0x5dac,0x5db1,0x5da9, +0x5da7,0x5db5,0x5db0,0x5dae,0x5daa,0x5da8,0x5db2,0x5dad, +0x5daf,0x5db4,0x5e67,0x5e68,0x5e66,0x5e6f,0x5ee9,0x5ee7, +0x5ee6,0x5ee8,0x5ee5,0x5f4b,0x5fbc,0x5fbb,0x619d,0x61a8, +0x6196,0x61c5,0x61b4,0x61c6,0x61c1,0x61cc,0x61ba,0x61bf, +0x61b8,0x618c,0x64d7,0x64d6,0x64d0,0x64cf,0x64c9,0x64bd, +0x6489,0x64c3,0x64db,0x64f3,0x64d9,0x6533,0x657f,0x657c, +0x65a2,0x66c8,0x66be,0x66c0,0x66ca,0x66cb,0x66cf,0x66bd, +0x66bb,0x66ba,0x66cc,0x6723,0x6a34,0x6a66,0x6a49,0x6a67, +0x6a32,0x6a68,0x6a3e,0x6a5d,0x6a6d,0x6a76,0x6a5b,0x6a51, +0x6a28,0x6a5a,0x6a3b,0x6a3f,0x6a41,0x6a6a,0x6a64,0x6a50, +0x6a4f,0x6a54,0x6a6f,0x6a69,0x6a60,0x6a3c,0x6a5e,0x6a56, +0x6a55,0x6a4d,0x6a4e,0x6a46,0x6b55,0x6b54,0x6b56,0x6ba7, +0x6baa,0x6bab,0x6bc8,0x6bc7,0x6c04,0x6c03,0x6c06,0x6fad, +0x6fcb,0x6fa3,0x6fc7,0x6fbc,0x6fce,0x6fc8,0x6f5e,0x6fc4, +0x6fbd,0x6f9e,0x6fca,0x6fa8,0x7004,0x6fa5,0x6fae,0x6fba, +0x6fac,0x6faa,0x6fcf,0x6fbf,0x6fb8,0x6fa2,0x6fc9,0x6fab, +0x6fcd,0x6faf,0x6fb2,0x6fb0,0x71c5,0x71c2,0x71bf,0x71b8, +0x71d6,0x71c0,0x71c1,0x71cb,0x71d4,0x71ca,0x71c7,0x71cf, +0x71bd,0x71d8,0x71bc,0x71c6,0x71da,0x71db,0x729d,0x729e, +0x7369,0x7366,0x7367,0x736c,0x7365,0x736b,0x736a,0x747f, +0x749a,0x74a0,0x7494,0x7492,0x7495,0x74a1,0x750b,0x7580, +0x762f,0x762d,0x7631,0x763d,0x7633,0x763c,0x7635,0x7632, +0x7630,0x76bb,0x76e6,0x779a,0x779d,0x77a1,0x779c,0x779b, +0x77a2,0x77a3,0x7795,0x7799,0x7797,0x78dd,0x78e9,0x78e5, +0x78ea,0x78de,0x78e3,0x78db,0x78e1,0x78e2,0x78ed,0x78df, +0x78e0,0x79a4,0x7a44,0x7a48,0x7a47,0x7ab6,0x7ab8,0x7ab5, +0x7ab1,0x7ab7,0x7bde,0x7be3,0x7be7,0x7bdd,0x7bd5,0x7be5, +0x7bda,0x7be8,0x7bf9,0x7bd4,0x7bea,0x7be2,0x7bdc,0x7beb, +0x7bd8,0x7bdf,0x7cd2,0x7cd4,0x7cd7,0x7cd0,0x7cd1,0x7e12, +0x7e21,0x7e17,0x7e0c,0x7e1f,0x7e20,0x7e13,0x7e0e,0x7e1c, +0x7e15,0x7e1a,0x7e22,0x7e0b,0x7e0f,0x7e16,0x7e0d,0x7e14, +0x7e25,0x7e24,0x7f43,0x7f7b,0x7f7c,0x7f7a,0x7fb1,0x7fef, +0x802a,0x8029,0x806c,0x81b1,0x81a6,0x81ae,0x81b9,0x81b5, +0x81ab,0x81b0,0x81ac,0x81b4,0x81b2,0x81b7,0x81a7,0x81f2, +0x8255,0x8256,0x8257,0x8556,0x8545,0x856b,0x854d,0x8553, +0x8561,0x8558,0x8540,0x8546,0x8564,0x8541,0x8562,0x8544, +0x8551,0x8547,0x8563,0x853e,0x855b,0x8571,0x854e,0x856e, +0x8575,0x8555,0x8567,0x8560,0x858c,0x8566,0x855d,0x8554, +0x8565,0x856c,0x8663,0x8665,0x8664,0x87a4,0x879b,0x878f, +0x8797,0x8793,0x8792,0x8788,0x8781,0x8796,0x8798,0x8779, +0x8787,0x87a3,0x8785,0x8790,0x8791,0x879d,0x8784,0x8794, +0x879c,0x879a,0x8789,0x891e,0x8926,0x8930,0x892d,0x892e, +0x8927,0x8931,0x8922,0x8929,0x8923,0x892f,0x892c,0x891f, +0x89f1,0x8ae0,0x8ae2,0x8af2,0x8af4,0x8af5,0x8add,0x8b14, +0x8ae4,0x8adf,0x8af0,0x8ac8,0x8ade,0x8ae1,0x8ae8,0x8aff, +0x8aef,0x8afb,0x8c91,0x8c92,0x8c90,0x8cf5,0x8cee,0x8cf1, +0x8cf0,0x8cf3,0x8d6c,0x8d6e,0x8da5,0x8da7,0x8e33,0x8e3e, +0x8e38,0x8e40,0x8e45,0x8e36,0x8e3c,0x8e3d,0x8e41,0x8e30, +0x8e3f,0x8ebd,0x8f36,0x8f2e,0x8f35,0x8f32,0x8f39,0x8f37, +0x8f34,0x9076,0x9079,0x907b,0x9086,0x90fa,0x9133,0x9135, +0x9136,0x9193,0x9190,0x9191,0x918d,0x918f,0x9327,0x931e, +0x9308,0x931f,0x9306,0x930f,0x937a,0x9338,0x933c,0x931b, +0x9323,0x9312,0x9301,0x9346,0x932d,0x930e,0x930d,0x92cb, +0x931d,0x92fa,0x9313,0x92f9,0x92f7,0x9334,0x9302,0x9324, +0x92ff,0x9329,0x9339,0x9335,0x932a,0x9314,0x930c,0x930b, +0x92fe,0x9309,0x9300,0x92fb,0x9316,0x95bc,0x95cd,0x95be, +0x95b9,0x95ba,0x95b6,0x95bf,0x95b5,0x95bd,0x96a9,0x96d4, +0x970b,0x9712,0x9710,0x9799,0x9797,0x9794,0x97f0,0x97f8, +0x9835,0x982f,0x9832,0x9924,0x991f,0x9927,0x9929,0x999e, +0x99ee,0x99ec,0x99e5,0x99e4,0x99f0,0x99e3,0x99ea,0x99e9, +0x99e7,0x9ab9,0x9abf,0x9ab4,0x9abb,0x9af6,0x9afa,0x9af9, +0x9af7,0x9b33,0x9b80,0x9b85,0x9b87,0x9b7c,0x9b7e,0x9b7b, +0x9b82,0x9b93,0x9b92,0x9b90,0x9b7a,0x9b95,0x9b7d,0x9b88, +0x9d25,0x9d17,0x9d20,0x9d1e,0x9d14,0x9d29,0x9d1d,0x9d18, +0x9d22,0x9d10,0x9d19,0x9d1f,0x9e88,0x9e86,0x9e87,0x9eae, +0x9ead,0x9ed5,0x9ed6,0x9efa,0x9f12,0x9f3d,0x5126,0x5125, +0x5122,0x5124,0x5120,0x5129,0x52f4,0x5693,0x568c,0x568d, +0x5686,0x5684,0x5683,0x567e,0x5682,0x567f,0x5681,0x58d6, +0x58d4,0x58cf,0x58d2,0x5b2d,0x5b25,0x5b32,0x5b23,0x5b2c, +0x5b27,0x5b26,0x5b2f,0x5b2e,0x5b7b,0x5bf1,0x5bf2,0x5db7, +0x5e6c,0x5e6a,0x5fbe,0x61c3,0x61b5,0x61bc,0x61e7,0x61e0, +0x61e5,0x61e4,0x61e8,0x61de,0x64ef,0x64e9,0x64e3,0x64eb, +0x64e4,0x64e8,0x6581,0x6580,0x65b6,0x65da,0x66d2,0x6a8d, +0x6a96,0x6a81,0x6aa5,0x6a89,0x6a9f,0x6a9b,0x6aa1,0x6a9e, +0x6a87,0x6a93,0x6a8e,0x6a95,0x6a83,0x6aa8,0x6aa4,0x6a91, +0x6a7f,0x6aa6,0x6a9a,0x6a85,0x6a8c,0x6a92,0x6b5b,0x6bad, +0x6c09,0x6fcc,0x6fa9,0x6ff4,0x6fd4,0x6fe3,0x6fdc,0x6fed, +0x6fe7,0x6fe6,0x6fde,0x6ff2,0x6fdd,0x6fe2,0x6fe8,0x71e1, +0x71f1,0x71e8,0x71f2,0x71e4,0x71f0,0x71e2,0x7373,0x736e, +0x736f,0x7497,0x74b2,0x74ab,0x7490,0x74aa,0x74ad,0x74b1, +0x74a5,0x74af,0x7510,0x7511,0x7512,0x750f,0x7584,0x7643, +0x7648,0x7649,0x7647,0x76a4,0x76e9,0x77b5,0x77ab,0x77b2, +0x77b7,0x77b6,0x77b4,0x77b1,0x77a8,0x77f0,0x78f3,0x78fd, +0x7902,0x78fb,0x78fc,0x78ff,0x78f2,0x7905,0x78f9,0x78fe, +0x7904,0x79ab,0x79a8,0x7a5c,0x7a5b,0x7a56,0x7a58,0x7a54, +0x7a5a,0x7abe,0x7ac0,0x7ac1,0x7c05,0x7c0f,0x7bf2,0x7c00, +0x7bff,0x7bfb,0x7c0e,0x7bf4,0x7c0b,0x7bf3,0x7c02,0x7c09, +0x7c03,0x7c01,0x7bf8,0x7bfd,0x7c06,0x7bf0,0x7bf1,0x7c10, +0x7c0a,0x7ce8,0x7e2d,0x7e3c,0x7e42,0x7e33,0x9848,0x7e38, +0x7e2a,0x7e49,0x7e40,0x7e47,0x7e29,0x7e4c,0x7e30,0x7e3b, +0x7e36,0x7e44,0x7e3a,0x7f45,0x7f7f,0x7f7e,0x7f7d,0x7ff4, +0x7ff2,0x802c,0x81bb,0x81c4,0x81cc,0x81ca,0x81c5,0x81c7, +0x81bc,0x81e9,0x825b,0x825a,0x825c,0x8583,0x8580,0x858f, +0x85a7,0x8595,0x85a0,0x858b,0x85a3,0x857b,0x85a4,0x859a, +0x859e,0x8577,0x857c,0x8589,0x85a1,0x857a,0x8578,0x8557, +0x858e,0x8596,0x8586,0x858d,0x8599,0x859d,0x8581,0x85a2, +0x8582,0x8588,0x8585,0x8579,0x8576,0x8598,0x8590,0x859f, +0x8668,0x87be,0x87aa,0x87ad,0x87c5,0x87b0,0x87ac,0x87b9, +0x87b5,0x87bc,0x87ae,0x87c9,0x87c3,0x87c2,0x87cc,0x87b7, +0x87af,0x87c4,0x87ca,0x87b4,0x87b6,0x87bf,0x87b8,0x87bd, +0x87de,0x87b2,0x8935,0x8933,0x893c,0x893e,0x8941,0x8952, +0x8937,0x8942,0x89ad,0x89af,0x89ae,0x89f2,0x89f3,0x8b1e, +0x8b18,0x8b16,0x8b11,0x8b05,0x8b0b,0x8b22,0x8b0f,0x8b12, +0x8b15,0x8b07,0x8b0d,0x8b08,0x8b06,0x8b1c,0x8b13,0x8b1a, +0x8c4f,0x8c70,0x8c72,0x8c71,0x8c6f,0x8c95,0x8c94,0x8cf9, +0x8d6f,0x8e4e,0x8e4d,0x8e53,0x8e50,0x8e4c,0x8e47,0x8f43, +0x8f40,0x9085,0x907e,0x9138,0x919a,0x91a2,0x919b,0x9199, +0x919f,0x91a1,0x919d,0x91a0,0x93a1,0x9383,0x93af,0x9364, +0x9356,0x9347,0x937c,0x9358,0x935c,0x9376,0x9349,0x9350, +0x9351,0x9360,0x936d,0x938f,0x934c,0x936a,0x9379,0x9357, +0x9355,0x9352,0x934f,0x9371,0x9377,0x937b,0x9361,0x935e, +0x9363,0x9367,0x934e,0x9359,0x95c7,0x95c0,0x95c9,0x95c3, +0x95c5,0x95b7,0x96ae,0x96b0,0x96ac,0x9720,0x971f,0x9718, +0x971d,0x9719,0x979a,0x97a1,0x979c,0x979e,0x979d,0x97d5, +0x97d4,0x97f1,0x9841,0x9844,0x984a,0x9849,0x9845,0x9843, +0x9925,0x992b,0x992c,0x992a,0x9933,0x9932,0x992f,0x992d, +0x9931,0x9930,0x9998,0x99a3,0x99a1,0x9a02,0x99fa,0x99f4, +0x99f7,0x99f9,0x99f8,0x99f6,0x99fb,0x99fd,0x99fe,0x99fc, +0x9a03,0x9abe,0x9afe,0x9afd,0x9b01,0x9afc,0x9b48,0x9b9a, +0x9ba8,0x9b9e,0x9b9b,0x9ba6,0x9ba1,0x9ba5,0x9ba4,0x9b86, +0x9ba2,0x9ba0,0x9baf,0x9d33,0x9d41,0x9d67,0x9d36,0x9d2e, +0x9d2f,0x9d31,0x9d38,0x9d30,0x9d45,0x9d42,0x9d43,0x9d3e, +0x9d37,0x9d40,0x9d3d,0x7ff5,0x9d2d,0x9e8a,0x9e89,0x9e8d, +0x9eb0,0x9ec8,0x9eda,0x9efb,0x9eff,0x9f24,0x9f23,0x9f22, +0x9f54,0x9fa0,0x5131,0x512d,0x512e,0x5698,0x569c,0x5697, +0x569a,0x569d,0x5699,0x5970,0x5b3c,0x5c69,0x5c6a,0x5dc0, +0x5e6d,0x5e6e,0x61d8,0x61df,0x61ed,0x61ee,0x61f1,0x61ea, +0x61f0,0x61eb,0x61d6,0x61e9,0x64ff,0x6504,0x64fd,0x64f8, +0x6501,0x6503,0x64fc,0x6594,0x65db,0x66da,0x66db,0x66d8, +0x6ac5,0x6ab9,0x6abd,0x6ae1,0x6ac6,0x6aba,0x6ab6,0x6ab7, +0x6ac7,0x6ab4,0x6aad,0x6b5e,0x6bc9,0x6c0b,0x7007,0x700c, +0x700d,0x7001,0x7005,0x7014,0x700e,0x6fff,0x7000,0x6ffb, +0x7026,0x6ffc,0x6ff7,0x700a,0x7201,0x71ff,0x71f9,0x7203, +0x71fd,0x7376,0x74b8,0x74c0,0x74b5,0x74c1,0x74be,0x74b6, +0x74bb,0x74c2,0x7514,0x7513,0x765c,0x7664,0x7659,0x7650, +0x7653,0x7657,0x765a,0x76a6,0x76bd,0x76ec,0x77c2,0x77ba, +0x790c,0x7913,0x7914,0x7909,0x7910,0x7912,0x7911,0x79ad, +0x79ac,0x7a5f,0x7c1c,0x7c29,0x7c19,0x7c20,0x7c1f,0x7c2d, +0x7c1d,0x7c26,0x7c28,0x7c22,0x7c25,0x7c30,0x7e5c,0x7e50, +0x7e56,0x7e63,0x7e58,0x7e62,0x7e5f,0x7e51,0x7e60,0x7e57, +0x7e53,0x7fb5,0x7fb3,0x7ff7,0x7ff8,0x8075,0x81d1,0x81d2, +0x81d0,0x825f,0x825e,0x85b4,0x85c6,0x85c0,0x85c3,0x85c2, +0x85b3,0x85b5,0x85bd,0x85c7,0x85c4,0x85bf,0x85cb,0x85ce, +0x85c8,0x85c5,0x85b1,0x85b6,0x85d2,0x8624,0x85b8,0x85b7, +0x85be,0x8669,0x87e7,0x87e6,0x87e2,0x87db,0x87eb,0x87ea, +0x87e5,0x87df,0x87f3,0x87e4,0x87d4,0x87dc,0x87d3,0x87ed, +0x87d8,0x87e3,0x87d7,0x87d9,0x8801,0x87f4,0x87e8,0x87dd, +0x8953,0x894b,0x894f,0x894c,0x8946,0x8950,0x8951,0x8949, +0x8b2a,0x8b27,0x8b23,0x8b33,0x8b30,0x8b35,0x8b47,0x8b2f, +0x8b3c,0x8b3e,0x8b31,0x8b25,0x8b37,0x8b26,0x8b36,0x8b2e, +0x8b24,0x8b3b,0x8b3d,0x8b3a,0x8c42,0x8c75,0x8c99,0x8c98, +0x8c97,0x8cfe,0x8d04,0x8d02,0x8d00,0x8e5c,0x8e62,0x8e60, +0x8e57,0x8e56,0x8e5e,0x8e65,0x8e67,0x8e5b,0x8e5a,0x8e61, +0x8e5d,0x8e69,0x8e54,0x8f46,0x8f47,0x8f48,0x8f4b,0x9128, +0x913a,0x913b,0x913e,0x91a8,0x91a5,0x91a7,0x91af,0x91aa, +0x93b5,0x938c,0x9392,0x93b7,0x939b,0x939d,0x9389,0x93a7, +0x938e,0x93aa,0x939e,0x93a6,0x9395,0x9388,0x9399,0x939f, +0x9380,0x938d,0x93b1,0x9391,0x93b2,0x93a4,0x93a8,0x93b4, +0x93a3,0x95d2,0x95d3,0x95d1,0x96b3,0x96d7,0x96da,0x5dc2, +0x96df,0x96d8,0x96dd,0x9723,0x9722,0x9725,0x97ac,0x97ae, +0x97a8,0x97ab,0x97a4,0x97aa,0x97a2,0x97a5,0x97d7,0x97d9, +0x97d6,0x97d8,0x97fa,0x9850,0x9851,0x9852,0x98b8,0x9941, +0x993c,0x993a,0x9a0f,0x9a0b,0x9a09,0x9a0d,0x9a04,0x9a11, +0x9a0a,0x9a05,0x9a07,0x9a06,0x9ac0,0x9adc,0x9b08,0x9b04, +0x9b05,0x9b29,0x9b35,0x9b4a,0x9b4c,0x9b4b,0x9bc7,0x9bc6, +0x9bc3,0x9bbf,0x9bc1,0x9bb5,0x9bb8,0x9bd3,0x9bb6,0x9bc4, +0x9bb9,0x9bbd,0x9d5c,0x9d53,0x9d4f,0x9d4a,0x9d5b,0x9d4b, +0x9d59,0x9d56,0x9d4c,0x9d57,0x9d52,0x9d54,0x9d5f,0x9d58, +0x9d5a,0x9e8e,0x9e8c,0x9edf,0x9f01,0x9f00,0x9f16,0x9f25, +0x9f2b,0x9f2a,0x9f29,0x9f28,0x9f4c,0x9f55,0x5134,0x5135, +0x5296,0x52f7,0x53b4,0x56ab,0x56ad,0x56a6,0x56a7,0x56aa, +0x56ac,0x58da,0x58dd,0x58db,0x5912,0x5b3d,0x5b3e,0x5b3f, +0x5dc3,0x5e70,0x5fbf,0x61fb,0x6507,0x6510,0x650d,0x6509, +0x650c,0x650e,0x6584,0x65de,0x65dd,0x66de,0x6ae7,0x6ae0, +0x6acc,0x6ad1,0x6ad9,0x6acb,0x6adf,0x6adc,0x6ad0,0x6aeb, +0x6acf,0x6acd,0x6ade,0x6b60,0x6bb0,0x6c0c,0x7019,0x7027, +0x7020,0x7016,0x702b,0x7021,0x7022,0x7023,0x7029,0x7017, +0x7024,0x701c,0x720c,0x720a,0x7207,0x7202,0x7205,0x72a5, +0x72a6,0x72a4,0x72a3,0x72a1,0x74cb,0x74c5,0x74b7,0x74c3, +0x7516,0x7660,0x77c9,0x77ca,0x77c4,0x77f1,0x791d,0x791b, +0x7921,0x791c,0x7917,0x791e,0x79b0,0x7a67,0x7a68,0x7c33, +0x7c3c,0x7c39,0x7c2c,0x7c3b,0x7cec,0x7cea,0x7e76,0x7e75, +0x7e78,0x7e70,0x7e77,0x7e6f,0x7e7a,0x7e72,0x7e74,0x7e68, +0x7f4b,0x7f4a,0x7f83,0x7f86,0x7fb7,0x7ffd,0x7ffe,0x8078, +0x81d7,0x81d5,0x820b,0x8264,0x8261,0x8263,0x85eb,0x85f1, +0x85ed,0x85d9,0x85e1,0x85e8,0x85da,0x85d7,0x85ec,0x85f2, +0x85f8,0x85d8,0x85df,0x85e3,0x85dc,0x85d1,0x85f0,0x85e6, +0x85ef,0x85de,0x85e2,0x8800,0x87fa,0x8803,0x87f6,0x87f7, +0x8809,0x880c,0x880b,0x8806,0x87fc,0x8808,0x87ff,0x880a, +0x8802,0x8962,0x895a,0x895b,0x8957,0x8961,0x895c,0x8958, +0x895d,0x8959,0x8988,0x89b7,0x89b6,0x89f6,0x8b50,0x8b48, +0x8b4a,0x8b40,0x8b53,0x8b56,0x8b54,0x8b4b,0x8b55,0x8b51, +0x8b42,0x8b52,0x8b57,0x8c43,0x8c77,0x8c76,0x8c9a,0x8d06, +0x8d07,0x8d09,0x8dac,0x8daa,0x8dad,0x8dab,0x8e6d,0x8e78, +0x8e73,0x8e6a,0x8e6f,0x8e7b,0x8ec2,0x8f52,0x8f51,0x8f4f, +0x8f50,0x8f53,0x8fb4,0x9140,0x913f,0x91b0,0x91ad,0x93de, +0x93c7,0x93cf,0x93c2,0x93da,0x93d0,0x93f9,0x93ec,0x93cc, +0x93d9,0x93a9,0x93e6,0x93ca,0x93d4,0x93ee,0x93e3,0x93d5, +0x93c4,0x93ce,0x93c0,0x93d2,0x93a5,0x93e7,0x957d,0x95da, +0x95db,0x96e1,0x9729,0x972b,0x972c,0x9728,0x9726,0x97b3, +0x97b7,0x97b6,0x97dd,0x97de,0x97df,0x985c,0x9859,0x985d, +0x9857,0x98bf,0x98bd,0x98bb,0x98be,0x9948,0x9947,0x9943, +0x99a6,0x99a7,0x9a1a,0x9a15,0x9a25,0x9a1d,0x9a24,0x9a1b, +0x9a22,0x9a20,0x9a27,0x9a23,0x9a1e,0x9a1c,0x9a14,0x9ac2, +0x9b0b,0x9b0a,0x9b0e,0x9b0c,0x9b37,0x9bea,0x9beb,0x9be0, +0x9bde,0x9be4,0x9be6,0x9be2,0x9bf0,0x9bd4,0x9bd7,0x9bec, +0x9bdc,0x9bd9,0x9be5,0x9bd5,0x9be1,0x9bda,0x9d77,0x9d81, +0x9d8a,0x9d84,0x9d88,0x9d71,0x9d80,0x9d78,0x9d86,0x9d8b, +0x9d8c,0x9d7d,0x9d6b,0x9d74,0x9d75,0x9d70,0x9d69,0x9d85, +0x9d73,0x9d7b,0x9d82,0x9d6f,0x9d79,0x9d7f,0x9d87,0x9d68, +0x9e94,0x9e91,0x9ec0,0x9efc,0x9f2d,0x9f40,0x9f41,0x9f4d, +0x9f56,0x9f57,0x9f58,0x5337,0x56b2,0x56b5,0x56b3,0x58e3, +0x5b45,0x5dc6,0x5dc7,0x5eee,0x5eef,0x5fc0,0x5fc1,0x61f9, +0x6517,0x6516,0x6515,0x6513,0x65df,0x66e8,0x66e3,0x66e4, +0x6af3,0x6af0,0x6aea,0x6ae8,0x6af9,0x6af1,0x6aee,0x6aef, +0x703c,0x7035,0x702f,0x7037,0x7034,0x7031,0x7042,0x7038, +0x703f,0x703a,0x7039,0x702a,0x7040,0x703b,0x7033,0x7041, +0x7213,0x7214,0x72a8,0x737d,0x737c,0x74ba,0x76ab,0x76aa, +0x76be,0x76ed,0x77cc,0x77ce,0x77cf,0x77cd,0x77f2,0x7925, +0x7923,0x7927,0x7928,0x7924,0x7929,0x79b2,0x7a6e,0x7a6c, +0x7a6d,0x7af7,0x7c49,0x7c48,0x7c4a,0x7c47,0x7c45,0x7cee, +0x7e7b,0x7e7e,0x7e81,0x7e80,0x7fba,0x7fff,0x8079,0x81db, +0x81d9,0x8268,0x8269,0x8622,0x85ff,0x8601,0x85fe,0x861b, +0x8600,0x85f6,0x8604,0x8609,0x8605,0x860c,0x85fd,0x8819, +0x8810,0x8811,0x8817,0x8813,0x8816,0x8963,0x8966,0x89b9, +0x89f7,0x8b60,0x8b6a,0x8b5d,0x8b68,0x8b63,0x8b65,0x8b67, +0x8b6d,0x8dae,0x8e86,0x8e88,0x8e84,0x8f59,0x8f56,0x8f57, +0x8f55,0x8f58,0x8f5a,0x908d,0x9143,0x9141,0x91b7,0x91b5, +0x91b2,0x91b3,0x940b,0x9413,0x93fb,0x9420,0x940f,0x9414, +0x93fe,0x9415,0x9410,0x9428,0x9419,0x940d,0x93f5,0x9400, +0x93f7,0x9407,0x940e,0x9416,0x9412,0x93fa,0x9409,0x93f8, +0x943c,0x940a,0x93ff,0x93fc,0x940c,0x93f6,0x9411,0x9406, +0x95de,0x95e0,0x95df,0x972e,0x972f,0x97b9,0x97bb,0x97fd, +0x97fe,0x9860,0x9862,0x9863,0x985f,0x98c1,0x98c2,0x9950, +0x994e,0x9959,0x994c,0x994b,0x9953,0x9a32,0x9a34,0x9a31, +0x9a2c,0x9a2a,0x9a36,0x9a29,0x9a2e,0x9a38,0x9a2d,0x9ac7, +0x9aca,0x9ac6,0x9b10,0x9b12,0x9b11,0x9c0b,0x9c08,0x9bf7, +0x9c05,0x9c12,0x9bf8,0x9c40,0x9c07,0x9c0e,0x9c06,0x9c17, +0x9c14,0x9c09,0x9d9f,0x9d99,0x9da4,0x9d9d,0x9d92,0x9d98, +0x9d90,0x9d9b,0x9da0,0x9d94,0x9d9c,0x9daa,0x9d97,0x9da1, +0x9d9a,0x9da2,0x9da8,0x9d9e,0x9da3,0x9dbf,0x9da9,0x9d96, +0x9da6,0x9da7,0x9e99,0x9e9b,0x9e9a,0x9ee5,0x9ee4,0x9ee7, +0x9ee6,0x9f30,0x9f2e,0x9f5b,0x9f60,0x9f5e,0x9f5d,0x9f59, +0x9f91,0x513a,0x5139,0x5298,0x5297,0x56c3,0x56bd,0x56be, +0x5b48,0x5b47,0x5dcb,0x5dcf,0x5ef1,0x61fd,0x651b,0x6b02, +0x6afc,0x6b03,0x6af8,0x6b00,0x7043,0x7044,0x704a,0x7048, +0x7049,0x7045,0x7046,0x721d,0x721a,0x7219,0x737e,0x7517, +0x766a,0x77d0,0x792d,0x7931,0x792f,0x7c54,0x7c53,0x7cf2, +0x7e8a,0x7e87,0x7e88,0x7e8b,0x7e86,0x7e8d,0x7f4d,0x7fbb, +0x8030,0x81dd,0x8618,0x862a,0x8626,0x861f,0x8623,0x861c, +0x8619,0x8627,0x862e,0x8621,0x8620,0x8629,0x861e,0x8625, +0x8829,0x881d,0x881b,0x8820,0x8824,0x881c,0x882b,0x884a, +0x896d,0x8969,0x896e,0x896b,0x89fa,0x8b79,0x8b78,0x8b45, +0x8b7a,0x8b7b,0x8d10,0x8d14,0x8daf,0x8e8e,0x8e8c,0x8f5e, +0x8f5b,0x8f5d,0x9146,0x9144,0x9145,0x91b9,0x943f,0x943b, +0x9436,0x9429,0x943d,0x9430,0x9439,0x942a,0x9437,0x942c, +0x9440,0x9431,0x95e5,0x95e4,0x95e3,0x9735,0x973a,0x97bf, +0x97e1,0x9864,0x98c9,0x98c6,0x98c0,0x9958,0x9956,0x9a39, +0x9a3d,0x9a46,0x9a44,0x9a42,0x9a41,0x9a3a,0x9a3f,0x9acd, +0x9b15,0x9b17,0x9b18,0x9b16,0x9b3a,0x9b52,0x9c2b,0x9c1d, +0x9c1c,0x9c2c,0x9c23,0x9c28,0x9c29,0x9c24,0x9c21,0x9db7, +0x9db6,0x9dbc,0x9dc1,0x9dc7,0x9dca,0x9dcf,0x9dbe,0x9dc5, +0x9dc3,0x9dbb,0x9db5,0x9dce,0x9db9,0x9dba,0x9dac,0x9dc8, +0x9db1,0x9dad,0x9dcc,0x9db3,0x9dcd,0x9db2,0x9e7a,0x9e9c, +0x9eeb,0x9eee,0x9eed,0x9f1b,0x9f18,0x9f1a,0x9f31,0x9f4e, +0x9f65,0x9f64,0x9f92,0x4eb9,0x56c6,0x56c5,0x56cb,0x5971, +0x5b4b,0x5b4c,0x5dd5,0x5dd1,0x5ef2,0x6521,0x6520,0x6526, +0x6522,0x6b0b,0x6b08,0x6b09,0x6c0d,0x7055,0x7056,0x7057, +0x7052,0x721e,0x721f,0x72a9,0x737f,0x74d8,0x74d5,0x74d9, +0x74d7,0x766d,0x76ad,0x7935,0x79b4,0x7a70,0x7a71,0x7c57, +0x7c5c,0x7c59,0x7c5b,0x7c5a,0x7cf4,0x7cf1,0x7e91,0x7f4f, +0x7f87,0x81de,0x826b,0x8634,0x8635,0x8633,0x862c,0x8632, +0x8636,0x882c,0x8828,0x8826,0x882a,0x8825,0x8971,0x89bf, +0x89be,0x89fb,0x8b7e,0x8b84,0x8b82,0x8b86,0x8b85,0x8b7f, +0x8d15,0x8e95,0x8e94,0x8e9a,0x8e92,0x8e90,0x8e96,0x8e97, +0x8f60,0x8f62,0x9147,0x944c,0x9450,0x944a,0x944b,0x944f, +0x9447,0x9445,0x9448,0x9449,0x9446,0x973f,0x97e3,0x986a, +0x9869,0x98cb,0x9954,0x995b,0x9a4e,0x9a53,0x9a54,0x9a4c, +0x9a4f,0x9a48,0x9a4a,0x9a49,0x9a52,0x9a50,0x9ad0,0x9b19, +0x9b2b,0x9b3b,0x9b56,0x9b55,0x9c46,0x9c48,0x9c3f,0x9c44, +0x9c39,0x9c33,0x9c41,0x9c3c,0x9c37,0x9c34,0x9c32,0x9c3d, +0x9c36,0x9ddb,0x9dd2,0x9dde,0x9dda,0x9dcb,0x9dd0,0x9ddc, +0x9dd1,0x9ddf,0x9de9,0x9dd9,0x9dd8,0x9dd6,0x9df5,0x9dd5, +0x9ddd,0x9eb6,0x9ef0,0x9f35,0x9f33,0x9f32,0x9f42,0x9f6b, +0x9f95,0x9fa2,0x513d,0x5299,0x58e8,0x58e7,0x5972,0x5b4d, +0x5dd8,0x882f,0x5f4f,0x6201,0x6203,0x6204,0x6529,0x6525, +0x6596,0x66eb,0x6b11,0x6b12,0x6b0f,0x6bca,0x705b,0x705a, +0x7222,0x7382,0x7381,0x7383,0x7670,0x77d4,0x7c67,0x7c66, +0x7e95,0x826c,0x863a,0x8640,0x8639,0x863c,0x8631,0x863b, +0x863e,0x8830,0x8832,0x882e,0x8833,0x8976,0x8974,0x8973, +0x89fe,0x8b8c,0x8b8e,0x8b8b,0x8b88,0x8c45,0x8d19,0x8e98, +0x8f64,0x8f63,0x91bc,0x9462,0x9455,0x945d,0x9457,0x945e, +0x97c4,0x97c5,0x9800,0x9a56,0x9a59,0x9b1e,0x9b1f,0x9b20, +0x9c52,0x9c58,0x9c50,0x9c4a,0x9c4d,0x9c4b,0x9c55,0x9c59, +0x9c4c,0x9c4e,0x9dfb,0x9df7,0x9def,0x9de3,0x9deb,0x9df8, +0x9de4,0x9df6,0x9de1,0x9dee,0x9de6,0x9df2,0x9df0,0x9de2, +0x9dec,0x9df4,0x9df3,0x9de8,0x9ded,0x9ec2,0x9ed0,0x9ef2, +0x9ef3,0x9f06,0x9f1c,0x9f38,0x9f37,0x9f36,0x9f43,0x9f4f, +0x9f71,0x9f70,0x9f6e,0x9f6f,0x56d3,0x56cd,0x5b4e,0x5c6d, +0x652d,0x66ed,0x66ee,0x6b13,0x705f,0x7061,0x705d,0x7060, +0x7223,0x74db,0x74e5,0x77d5,0x7938,0x79b7,0x79b6,0x7c6a, +0x7e97,0x7f89,0x826d,0x8643,0x8838,0x8837,0x8835,0x884b, +0x8b94,0x8b95,0x8e9e,0x8e9f,0x8ea0,0x8e9d,0x91be,0x91bd, +0x91c2,0x946b,0x9468,0x9469,0x96e5,0x9746,0x9743,0x9747, +0x97c7,0x97e5,0x9a5e,0x9ad5,0x9b59,0x9c63,0x9c67,0x9c66, +0x9c62,0x9c5e,0x9c60,0x9e02,0x9dfe,0x9e07,0x9e03,0x9e06, +0x9e05,0x9e00,0x9e01,0x9e09,0x9dff,0x9dfd,0x9e04,0x9ea0, +0x9f1e,0x9f46,0x9f74,0x9f75,0x9f76,0x56d4,0x652e,0x65b8, +0x6b18,0x6b19,0x6b17,0x6b1a,0x7062,0x7226,0x72aa,0x77d8, +0x77d9,0x7939,0x7c69,0x7c6b,0x7cf6,0x7e9a,0x7e98,0x7e9b, +0x7e99,0x81e0,0x81e1,0x8646,0x8647,0x8648,0x8979,0x897a, +0x897c,0x897b,0x89ff,0x8b98,0x8b99,0x8ea5,0x8ea4,0x8ea3, +0x946e,0x946d,0x946f,0x9471,0x9473,0x9749,0x9872,0x995f, +0x9c68,0x9c6e,0x9c6d,0x9e0b,0x9e0d,0x9e10,0x9e0f,0x9e12, +0x9e11,0x9ea1,0x9ef5,0x9f09,0x9f47,0x9f78,0x9f7b,0x9f7a, +0x9f79,0x571e,0x7066,0x7c6f,0x883c,0x8db2,0x8ea6,0x91c3, +0x9474,0x9478,0x9476,0x9475,0x9a60,0x9b2e,0x9c74,0x9c73, +0x9c71,0x9c75,0x9e14,0x9e13,0x9ef6,0x9f0a,0x9fa4,0x7068, +0x7065,0x7cf7,0x866a,0x883e,0x883d,0x883f,0x8b9e,0x8c9c, +0x8ea9,0x8ec9,0x974b,0x9873,0x9874,0x98cc,0x9961,0x99ab, +0x9a64,0x9a66,0x9a67,0x9b24,0x9e15,0x9e17,0x9f48,0x6207, +0x6b1e,0x7227,0x864c,0x8ea8,0x9482,0x9480,0x9481,0x9a69, +0x9a68,0x9e19,0x864b,0x8b9f,0x9483,0x9c79,0x9eb7,0x7675, +0x9a6b,0x9c7a,0x9e1d,0x7069,0x706a,0x7229,0x9ea4,0x9f7e, +0x9f49,0x9f98}; + +static const int cns11643_2_ucs_table_size = (sizeof (cns11643_2_ucs_table) / sizeof (unsigned short)); + +static const unsigned short cns11643_14_ucs_table[] = { +0x4e28,0x4e36,0x4e3f,0x4e85,0x4e05,0x4e04,0x5182,0x5196, +0x5338,0x5369,0x53b6,0x4e2a,0x4e87,0x4e49,0x51e2,0x4e46, +0x4e8f,0x4ebc,0x4ebe,0x5166,0x51e3,0x5204,0x529c,0x0000, +0x5902,0x590a,0x5b80,0x5ddb,0x5e7a,0x5e7f,0x5ef4,0x5f50, +0x5f51,0x5f61,0x961d,0x0000,0x4e63,0x4e62,0x4ea3,0x5185, +0x4ec5,0x4ecf,0x4ece,0x4ecc,0x5184,0x5186,0x0000,0x0000, +0x51e4,0x5205,0x529e,0x529d,0x52fd,0x5300,0x533a,0x0000, +0x5346,0x535d,0x5386,0x53b7,0x0000,0x53cc,0x0000,0x53ce, +0x5721,0x0000,0x5e00,0x5f0c,0x6237,0x6238,0x6534,0x6535, +0x65e0,0x0000,0x738d,0x4e97,0x4ee0,0x0000,0x0000,0x4ee7, +0x0000,0x4ee6,0x0000,0x0000,0x0000,0x0000,0x56d8,0x518b, +0x518c,0x5199,0x51e5,0x0000,0x520b,0x0000,0x0000,0x5304, +0x5303,0x5307,0x0000,0x531e,0x535f,0x536d,0x5389,0x53ba, +0x53d0,0x0000,0x53f6,0x53f7,0x53f9,0x0000,0x53f4,0x0000, +0x0000,0x5724,0x5904,0x5918,0x5932,0x5930,0x5934,0x0000, +0x5975,0x0000,0x5b82,0x5bf9,0x5c14,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x5e81,0x5e83,0x5f0d,0x5f52, +0x0000,0x5fca,0x5fc7,0x6239,0x0000,0x624f,0x65e7,0x672f, +0x6b7a,0x6c39,0x0000,0x0000,0x6c37,0x6c44,0x6c45,0x738c, +0x7592,0x7676,0x9093,0x9092,0x0000,0x0000,0x4e21,0x4e20, +0x4e22,0x4e68,0x4e89,0x4e98,0x4ef9,0x4eef,0x0000,0x0000, +0x4ef8,0x4f06,0x4f03,0x4efc,0x4eee,0x4f16,0x0000,0x4f28, +0x4f1c,0x4f07,0x4f1a,0x4efa,0x4f17,0x514a,0x0000,0x5172, +0x0000,0x51b4,0x51b3,0x51b2,0x0000,0x51e8,0x0000,0x5214, +0x520f,0x5215,0x5218,0x52a8,0x0000,0x534b,0x534f,0x0000, +0x5350,0x0000,0x538b,0x0000,0x53be,0x0000,0x53d2,0x5416, +0x53ff,0x0000,0x5400,0x0000,0x5405,0x5413,0x5415,0x0000, +0x0000,0x56e3,0x5735,0x5736,0x5731,0x5732,0x58ee,0x5905, +0x4e54,0x0000,0x5936,0x0000,0x0000,0x0000,0x597a,0x0000, +0x5986,0x0000,0x0000,0x5b86,0x5f53,0x5c18,0x0000,0x5c3d, +0x5c78,0x0000,0x0000,0x0000,0x0000,0x5c80,0x0000,0x5e08, +0x0000,0x0000,0x0000,0x0000,0x5ef5,0x5f0e,0x0000,0x0000, +0x0000,0x5fd3,0x5fda,0x0000,0x5fdb,0x0000,0x620f,0x625d, +0x625f,0x6267,0x6257,0x9f50,0x0000,0x65eb,0x65ea,0x0000, +0x6737,0x0000,0x6732,0x6736,0x6b22,0x6bce,0x0000,0x6c58, +0x6c51,0x6c77,0x6c3c,0x0000,0x6c5a,0x0000,0x6c53,0x706f, +0x7072,0x706e,0x0000,0x0000,0x7073,0x72b1,0x72b2,0x0000, +0x738f,0x0000,0x0000,0x0000,0x793c,0x0000,0x808d,0x808e, +0x0000,0x827b,0x0000,0x8d71,0x8fb9,0x9096,0x909a,0x0000, +0x4e24,0x4e71,0x0000,0x4e9c,0x4f45,0x4f4a,0x4f39,0x4f37, +0x0000,0x4f32,0x4f42,0x0000,0x4f44,0x4f4b,0x0000,0x4f40, +0x4f35,0x4f31,0x5151,0x0000,0x5150,0x514e,0x0000,0x0000, +0x519d,0x0000,0x51b5,0x51b8,0x51ec,0x5223,0x5227,0x5226, +0x521f,0x522b,0x5220,0x52b4,0x52b3,0x0000,0x5325,0x533b, +0x5374,0x0000,0x0000,0x0000,0x0000,0x0000,0x544d,0x0000, +0x0000,0x543a,0x0000,0x0000,0x5444,0x544c,0x5423,0x541a, +0x5432,0x544b,0x5421,0x0000,0x5434,0x5449,0x5450,0x5422, +0x543f,0x5451,0x545a,0x542f,0x0000,0x56e9,0x56f2,0x56f3, +0x56ef,0x56ed,0x56ec,0x56e6,0x5748,0x0000,0x5744,0x573f, +0x573c,0x5753,0x5756,0x0000,0x575f,0x5743,0x5758,0x5757, +0x0000,0x0000,0x0000,0x5746,0x0000,0x573d,0x0000,0x5742, +0x5754,0x5755,0x58f1,0x58f2,0x58f0,0x590b,0x9ea6,0x56f1, +0x593d,0x0000,0x5994,0x598c,0x0000,0x599c,0x0000,0x0000, +0x599f,0x0000,0x599b,0x0000,0x5989,0x599a,0x0000,0x6588, +0x0000,0x5b8d,0x0000,0x5bfe,0x5bff,0x5bfd,0x5c2b,0x0000, +0x5c84,0x5c8e,0x5c9c,0x0000,0x0000,0x5c85,0x5df5,0x5e09, +0x0000,0x0000,0x5e0b,0x0000,0x5e92,0x5e90,0x5f03,0x0000, +0x5f1e,0x5f63,0x0000,0x5fe7,0x5ffe,0x5fe6,0x5fdc,0x5fce, +0x0000,0x5ffc,0x5fdf,0x5fec,0x5ff6,0x0000,0x5ff2,0x5ff0, +0x5ff9,0x0000,0x6213,0x0000,0x0000,0x623b,0x623c,0x6282, +0x0000,0x0000,0x0000,0x6278,0x628b,0x0000,0x629e,0x62a5, +0x629b,0x629c,0x6299,0x628d,0x6285,0x629d,0x6275,0x0000, +0x0000,0x0000,0x65f6,0x0000,0x0000,0x0000,0x66f5,0x675b, +0x0000,0x6754,0x6752,0x0000,0x6758,0x6744,0x674a,0x6761, +0x0000,0x6c7f,0x6c91,0x6c9e,0x0000,0x6c6e,0x6c7c,0x6c9f, +0x6c75,0x0000,0x6c56,0x6ca2,0x6c79,0x0000,0x6ca1,0x0000, +0x6caa,0x6ca0,0x0000,0x7079,0x7077,0x707e,0x0000,0x7075, +0x707b,0x7264,0x0000,0x72bb,0x72bc,0x72c7,0x72b9,0x72be, +0x72b6,0x0000,0x0000,0x7398,0x0000,0x0000,0x0000,0x0000, +0x7593,0x7680,0x0000,0x7683,0x76c0,0x76c1,0x0000,0x0000, +0x77f4,0x77f5,0x0000,0x7acc,0x7acd,0x7cfa,0x809f,0x8091, +0x8097,0x8094,0x0000,0x8286,0x828c,0x0000,0x8295,0x0000, +0x866c,0x0000,0x8fb5,0x8fbe,0x8fc7,0x0000,0x8fc1,0x90a9, +0x90a4,0x0000,0x0000,0x0000,0x90a8,0x9627,0x9626,0x962b, +0x9633,0x9634,0x9629,0x4e3d,0x0000,0x4e9d,0x4f93,0x4f8a, +0x0000,0x0000,0x4f6d,0x4f8e,0x4fa0,0x4fa2,0x4fa1,0x4f9f, +0x4fa3,0x0000,0x4f72,0x0000,0x4f8c,0x5156,0x0000,0x0000, +0x5190,0x0000,0x0000,0x0000,0x51ed,0x51fe,0x522f,0x0000, +0x523c,0x5234,0x5239,0x52b9,0x52b5,0x52bf,0x5355,0x0000, +0x5376,0x537a,0x5393,0x0000,0x53c1,0x53c2,0x53d5,0x5485, +0x0000,0x545f,0x5493,0x5489,0x5479,0x9efe,0x548f,0x5469, +0x546d,0x0000,0x5494,0x546a,0x548a,0x0000,0x56fd,0x56fb, +0x56f8,0x0000,0x56fc,0x56f6,0x5765,0x5781,0x5763,0x5767, +0x0000,0x576e,0x5778,0x577f,0x0000,0x0000,0x58f3,0x594b, +0x594c,0x0000,0x0000,0x0000,0x59ad,0x0000,0x59c4,0x0000, +0x59c2,0x59b0,0x0000,0x0000,0x0000,0x0000,0x59bf,0x0000, +0x59c9,0x59b8,0x59ac,0x0000,0x0000,0x0000,0x59b7,0x59d7, +0x0000,0x5b60,0x0000,0x5b96,0x5b9e,0x5b94,0x5b9f,0x5b9d, +0x0000,0x5c00,0x5c19,0x0000,0x0000,0x5c49,0x5c4a,0x0000, +0x5cbb,0x5cc1,0x0000,0x0000,0x0000,0x5cb9,0x5c9e,0x5cb4, +0x5cba,0x5df6,0x5e13,0x5e12,0x5e77,0x0000,0x5e98,0x0000, +0x5e99,0x5e9d,0x5ef8,0x0000,0x5ef9,0x0000,0x5f06,0x5f21, +0x0000,0x5f25,0x5f55,0x0000,0x0000,0x0000,0x5f84,0x5f83, +0x6030,0x6007,0x0000,0x6036,0x0000,0x0000,0x0000,0x5fe9, +0x603d,0x6008,0x0000,0x0000,0x62ba,0x62b2,0x0000,0x62b7, +0x62e4,0x62a7,0x0000,0x0000,0x0000,0x62d5,0x62e1,0x62dd, +0x62a6,0x62c1,0x62c5,0x62c0,0x62df,0x62e0,0x62de,0x0000, +0x6589,0x0000,0x65a6,0x65ba,0x0000,0x65ff,0x0000,0x6617, +0x6618,0x6601,0x65fe,0x0000,0x670c,0x0000,0x676b,0x6796, +0x6782,0x678a,0x0000,0x67a3,0x0000,0x67a2,0x678f,0x0000, +0x67f9,0x6780,0x6b26,0x6b27,0x6b68,0x6b69,0x0000,0x6b81, +0x6bb4,0x6bd1,0x0000,0x0000,0x6c1c,0x0000,0x0000,0x0000, +0x0000,0x0000,0x6c97,0x6c6c,0x6cdf,0x0000,0x6cea,0x0000, +0x6ce4,0x6cd8,0x6cb2,0x6cce,0x6cc8,0x0000,0x708b,0x7088, +0x7090,0x708f,0x0000,0x7087,0x7089,0x708d,0x7081,0x0000, +0x708c,0x0000,0x0000,0x7240,0x0000,0x0000,0x7265,0x7266, +0x7268,0x0000,0x0000,0x72cd,0x72d3,0x72db,0x0000,0x72cf, +0x73a7,0x73a3,0x739e,0x0000,0x73af,0x0000,0x0000,0x73aa, +0x739c,0x0000,0x7542,0x7544,0x753b,0x7541,0x0000,0x759b, +0x759e,0x0000,0x79c4,0x79c3,0x79c6,0x0000,0x0000,0x79c7, +0x0000,0x79ca,0x0000,0x0000,0x7acf,0x7c76,0x7c74,0x7cff, +0x7cfc,0x0000,0x0000,0x7f59,0x80a8,0x0000,0x0000,0x80b0, +0x0000,0x80b3,0x0000,0x80a4,0x80b6,0x80a7,0x80ac,0x0000, +0x80a6,0x5367,0x820e,0x82c4,0x833e,0x829c,0x0000,0x0000, +0x0000,0x0000,0x0000,0x82aa,0x0000,0x82c9,0x0000,0x0000, +0x82a6,0x82b2,0x0000,0x0000,0x0000,0x8fcc,0x8fd9,0x8fca, +0x8fd8,0x8fcf,0x90b7,0x0000,0x90ad,0x90b9,0x9637,0x0000, +0x9641,0x963e,0x96b6,0x9751,0x9763,0x4e57,0x4e79,0x4eb2, +0x4eb0,0x4eaf,0x4eb1,0x4fd2,0x4fd5,0x0000,0x4fbe,0x4fb8, +0x4fb0,0x4fb1,0x4fc8,0x0000,0x0000,0x4fc6,0x4fcc,0x4fe5, +0x4fe3,0x4fb4,0x516a,0x0000,0x519f,0x0000,0x51c1,0x0000, +0x51c2,0x51c3,0x5245,0x5248,0x0000,0x0000,0x524f,0x0000, +0x0000,0x52c5,0x52ca,0x52c4,0x5327,0x5358,0x537d,0x0000, +0x53dd,0x53dc,0x53da,0x53d9,0x54b9,0x0000,0x54d0,0x54b4, +0x54ca,0x0000,0x54a3,0x54da,0x54a4,0x0000,0x54b2,0x549e, +0x549f,0x54b5,0x0000,0x0000,0x54cd,0x0000,0x54cc,0x0000, +0x5700,0x57ac,0x5791,0x578e,0x578d,0x5792,0x57a1,0x5790, +0x57a6,0x57a8,0x0000,0x579c,0x5796,0x57a7,0x0000,0x0000, +0x0000,0x0000,0x58f5,0x0000,0x5909,0x5908,0x0000,0x5952, +0x0000,0x0000,0x59df,0x0000,0x59eb,0x59ef,0x59f0,0x59d5, +0x5a0d,0x5a04,0x59f9,0x5a02,0x59f8,0x59e2,0x59d9,0x59e7, +0x5b6a,0x0000,0x0000,0x5bab,0x0000,0x5c1b,0x5c2f,0x0000, +0x663c,0x0000,0x0000,0x0000,0x5cd1,0x5cdc,0x5ce6,0x5ce1, +0x5ccd,0x0000,0x5ce2,0x5cdd,0x5ce5,0x5dfb,0x5dfa,0x5e1e, +0x0000,0x5ea1,0x0000,0x0000,0x5efc,0x5efb,0x5f2f,0x0000, +0x0000,0x5f66,0x0000,0x0000,0x0000,0x605c,0x0000,0x604e, +0x6051,0x0000,0x0000,0x6023,0x6031,0x607c,0x6052,0x0000, +0x6060,0x604a,0x6061,0x0000,0x6218,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x631f,0x6317,0x62ea,0x6321, +0x6304,0x6305,0x0000,0x6531,0x6544,0x6540,0x0000,0x6542, +0x65be,0x0000,0x6629,0x661b,0x0000,0x6623,0x662c,0x661a, +0x6630,0x663b,0x661e,0x6637,0x6638,0x0000,0x670e,0x0000, +0x0000,0x67e8,0x67d6,0x0000,0x67c7,0x67bc,0x6852,0x67bf, +0x67d5,0x67fe,0x8363,0x67fb,0x0000,0x67b1,0x6801,0x6805, +0x6800,0x67d7,0x0000,0x6b2a,0x6b6b,0x0000,0x0000,0x0000, +0x0000,0x6be1,0x0000,0x0000,0x6d23,0x6cff,0x6d14,0x6d05, +0x6d13,0x6d06,0x6d21,0x0000,0x6d15,0x6caf,0x6cf4,0x6d02, +0x6d45,0x0000,0x6d26,0x0000,0x6d44,0x0000,0x6d24,0x70a5, +0x0000,0x70a3,0x0000,0x70a2,0x70bb,0x70a0,0x70aa,0x0000, +0x0000,0x70a8,0x70b6,0x70b2,0x70a7,0x0000,0x0000,0x70b9, +0x722e,0x0000,0x723c,0x0000,0x726d,0x0000,0x0000,0x72e7, +0x72ed,0x0000,0x72ec,0x72e5,0x72e2,0x0000,0x73c4,0x73bd, +0x73cf,0x73c9,0x73c1,0x73d0,0x0000,0x73ce,0x74ed,0x74eb, +0x0000,0x74ef,0x7549,0x7550,0x7546,0x754a,0x0000,0x754d, +0x75a6,0x0000,0x0000,0x0000,0x75a8,0x0000,0x0000,0x76c7, +0x76ff,0x0000,0x76fd,0x77e6,0x780a,0x0000,0x7804,0x780b, +0x7807,0x0000,0x7815,0x7808,0x0000,0x79d3,0x79d4,0x79d0, +0x79d7,0x7a7c,0x0000,0x0000,0x7a7d,0x7a83,0x7a82,0x0000, +0x7ad4,0x7ad5,0x7ad3,0x7ad0,0x7ad2,0x7afe,0x7afc,0x7c77, +0x7c7c,0x7c7b,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x7f8f,0x80d3,0x0000,0x80cb,0x80d2,0x0000, +0x8109,0x80e2,0x80df,0x80c6,0x0000,0x8224,0x82f7,0x82d8, +0x82dd,0x0000,0x0000,0x82f8,0x82fc,0x0000,0x0000,0x82e9, +0x0000,0x82ee,0x0000,0x82d0,0x830e,0x82e2,0x830b,0x82fd, +0x5179,0x8676,0x0000,0x8678,0x0000,0x0000,0x8675,0x867d, +0x0000,0x8842,0x8866,0x0000,0x898c,0x8a05,0x0000,0x8a06, +0x0000,0x8c9f,0x0000,0x8ff1,0x8fe7,0x8fe9,0x8fef,0x90c2, +0x90bc,0x0000,0x90c6,0x90c0,0x0000,0x0000,0x90cd,0x90c9, +0x0000,0x90c4,0x0000,0x9581,0x0000,0x9cec,0x5032,0x4ff9, +0x501d,0x4fff,0x5004,0x4ff0,0x5003,0x0000,0x5002,0x4ffc, +0x4ff2,0x5024,0x5008,0x5036,0x502e,0x0000,0x5010,0x5038, +0x5039,0x4ffd,0x5056,0x4ffb,0x51a3,0x51a6,0x51a1,0x0000, +0x0000,0x51c7,0x51c9,0x5260,0x5264,0x5259,0x5265,0x5267, +0x5257,0x5263,0x0000,0x5253,0x0000,0x52cf,0x0000,0x52ce, +0x52d0,0x52d1,0x52cc,0x0000,0x0000,0x0000,0x550d,0x54f4, +0x0000,0x5513,0x54ef,0x54f5,0x54f9,0x5502,0x5500,0x0000, +0x0000,0x5518,0x54f0,0x54f6,0x0000,0x0000,0x5519,0x0000, +0x5705,0x57c9,0x0000,0x57b7,0x57cd,0x0000,0x0000,0x0000, +0x57be,0x57bb,0x0000,0x57db,0x57c8,0x57c4,0x57c5,0x57d1, +0x57ca,0x57c0,0x0000,0x0000,0x5a21,0x5a2a,0x0000,0x5a1d, +0x0000,0x5a0b,0x0000,0x0000,0x0000,0x0000,0x5a22,0x0000, +0x0000,0x5a24,0x0000,0x5a14,0x5a31,0x0000,0x5a2f,0x5a1a, +0x5a12,0x0000,0x0000,0x5a26,0x0000,0x0000,0x5bbc,0x5bbb, +0x5bb7,0x5c05,0x5c06,0x5c52,0x5c53,0x0000,0x0000,0x5cfa, +0x5ceb,0x0000,0x5cf3,0x5cf5,0x5ce9,0x5cef,0x0000,0x5e2a, +0x5e30,0x5e2e,0x5e2c,0x5e2f,0x5eaf,0x5ea9,0x0000,0x5efd, +0x5f32,0x5f8e,0x5f93,0x5f8f,0x604f,0x6099,0x0000,0x607e, +0x0000,0x6074,0x604b,0x6073,0x6075,0x0000,0x0000,0x6056, +0x60a9,0x608b,0x60a6,0x0000,0x6093,0x60ae,0x609e,0x60a7, +0x6245,0x0000,0x0000,0x632e,0x0000,0x6352,0x6330,0x635b, +0x0000,0x6319,0x631b,0x0000,0x6331,0x635d,0x6337,0x6335, +0x6353,0x0000,0x635c,0x633f,0x654b,0x0000,0x0000,0x658b, +0x0000,0x659a,0x6650,0x6646,0x664e,0x6640,0x0000,0x664b, +0x6648,0x0000,0x6660,0x6644,0x664d,0x0000,0x6837,0x6824, +0x0000,0x0000,0x681b,0x6836,0x0000,0x682c,0x6819,0x6856, +0x6847,0x683e,0x681e,0x0000,0x6815,0x6822,0x6827,0x6859, +0x6858,0x6855,0x6830,0x6823,0x6b2e,0x6b2b,0x6b30,0x6b6c, +0x0000,0x6b8b,0x0000,0x6be9,0x6bea,0x6be5,0x6d6b,0x0000, +0x0000,0x6d73,0x6d57,0x0000,0x0000,0x6d5d,0x6d56,0x6d8f, +0x6d5b,0x6d1c,0x6d9a,0x6d9b,0x6d99,0x0000,0x6d81,0x6d71, +0x0000,0x0000,0x6d72,0x6d5c,0x6d96,0x70c4,0x70db,0x70cc, +0x70d0,0x70e3,0x70df,0x0000,0x70d6,0x70ee,0x70d5,0x0000, +0x0000,0x0000,0x0000,0x727a,0x0000,0x72f5,0x7302,0x0000, +0x0000,0x73e2,0x73ec,0x73d5,0x73f9,0x73df,0x73e6,0x0000, +0x0000,0x0000,0x0000,0x73e4,0x73e1,0x74f3,0x0000,0x0000, +0x0000,0x0000,0x7556,0x7555,0x7558,0x7557,0x755e,0x75c3, +0x0000,0x0000,0x75b4,0x0000,0x75b1,0x0000,0x0000,0x76cb, +0x76cc,0x772a,0x0000,0x7716,0x770f,0x0000,0x0000,0x773f, +0x772b,0x770e,0x7724,0x0000,0x7721,0x7718,0x77dd,0x0000, +0x0000,0x7824,0x7836,0x0000,0x7958,0x7959,0x0000,0x7962, +0x79da,0x79d9,0x0000,0x79e1,0x79e5,0x79e8,0x79db,0x0000, +0x79e2,0x79f0,0x0000,0x0000,0x0000,0x0000,0x7ada,0x7add, +0x0000,0x7adb,0x7adc,0x0000,0x0000,0x7b0d,0x7b0b,0x7b14, +0x7c8e,0x7c86,0x0000,0x7c87,0x7c83,0x7c8b,0x0000,0x0000, +0x0000,0x0000,0x7d24,0x0000,0x0000,0x0000,0x7d25,0x7f62, +0x7f93,0x7f99,0x7f97,0x0000,0x0000,0x7fc4,0x7fc6,0x800a, +0x0000,0x0000,0x8040,0x803c,0x803b,0x80f6,0x80ff,0x80ee, +0x8104,0x8103,0x8107,0x0000,0x0000,0x80f7,0x0000,0x0000, +0x822d,0x0000,0x8227,0x8229,0x831f,0x8357,0x0000,0x0000, +0x0000,0x0000,0x8321,0x0000,0x0000,0x8318,0x8358,0x0000, +0x0000,0x0000,0x0000,0x0000,0x8684,0x869f,0x869b,0x8689, +0x86a6,0x8692,0x868f,0x86a0,0x884f,0x8878,0x887a,0x886e, +0x887b,0x8884,0x8873,0x0000,0x0000,0x8a0d,0x8a0b,0x8a19, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x8ff9,0x9009, +0x9008,0x0000,0x90de,0x9151,0x0000,0x0000,0x91db,0x91df, +0x91de,0x91d6,0x91e0,0x9585,0x9660,0x9659,0x0000,0x9656, +0x0000,0x0000,0x96bd,0x0000,0x0000,0x5042,0x5059,0x0000, +0x5044,0x5066,0x5052,0x5054,0x5071,0x5050,0x507b,0x507c, +0x5058,0x0000,0x0000,0x5079,0x506c,0x5078,0x51a8,0x51d1, +0x51cf,0x5268,0x5276,0x52d4,0x0000,0x53a0,0x53c4,0x0000, +0x5558,0x554c,0x5568,0x0000,0x5549,0x0000,0x0000,0x555d, +0x5529,0x0000,0x5554,0x5553,0x0000,0x555a,0x0000,0x553a, +0x553f,0x552b,0x57ea,0x0000,0x57ef,0x0000,0x0000,0x57dd, +0x57fe,0x0000,0x57de,0x57e6,0x0000,0x57e8,0x57ff,0x5803, +0x58f7,0x68a6,0x591f,0x0000,0x595b,0x595d,0x595e,0x0000, +0x0000,0x5a2b,0x0000,0x5a3b,0x0000,0x0000,0x5a61,0x5a3a, +0x5a6e,0x5a4b,0x5a6b,0x0000,0x0000,0x5a45,0x5a4e,0x5a68, +0x5a3d,0x5a71,0x5a3f,0x5a6f,0x5a75,0x0000,0x5a73,0x5a2c, +0x5a59,0x5a54,0x5a4f,0x5a63,0x0000,0x0000,0x5bc8,0x0000, +0x5bc3,0x0000,0x5c5b,0x5c61,0x0000,0x5d21,0x5d0a,0x5d09, +0x0000,0x5d2c,0x5d08,0x0000,0x0000,0x5d2a,0x5d15,0x0000, +0x5d10,0x5d13,0x0000,0x5d2f,0x5d18,0x0000,0x5de3,0x5e39, +0x5e35,0x5e3a,0x5e32,0x0000,0x0000,0x0000,0x0000,0x5ebb, +0x5eba,0x5f34,0x5f39,0x0000,0x0000,0x0000,0x0000,0x6098, +0x0000,0x60d0,0x0000,0x0000,0x0000,0x60d7,0x60aa,0x0000, +0x60a1,0x60a4,0x0000,0x60ee,0x0000,0x60e7,0x0000,0x0000, +0x60de,0x0000,0x0000,0x637e,0x638b,0x0000,0x0000,0x6379, +0x6386,0x6393,0x0000,0x6373,0x636a,0x0000,0x636c,0x0000, +0x637f,0x0000,0x63b2,0x63ba,0x0000,0x0000,0x6366,0x6374, +0x0000,0x655a,0x0000,0x654e,0x654d,0x658d,0x658e,0x65ad, +0x0000,0x65c7,0x65ca,0x0000,0x65c9,0x0000,0x65e3,0x6657, +0x0000,0x6663,0x6667,0x671a,0x6719,0x6716,0x0000,0x0000, +0x689e,0x68b6,0x6898,0x6873,0x0000,0x689a,0x688e,0x68b7, +0x68db,0x68a5,0x686c,0x68c1,0x6884,0x0000,0x0000,0x6895, +0x687a,0x6899,0x0000,0x68b8,0x68b9,0x6870,0x0000,0x6b35, +0x0000,0x6b90,0x6bbb,0x6bed,0x0000,0x0000,0x0000,0x6dc1, +0x6dc3,0x6dce,0x0000,0x0000,0x6dad,0x6e04,0x0000,0x6db9, +0x0000,0x6de7,0x0000,0x6e08,0x6e06,0x0000,0x6e0a,0x6db0, +0x0000,0x6df8,0x6e0c,0x0000,0x6db1,0x0000,0x6e02,0x6e07, +0x6e09,0x6e01,0x6e17,0x6dff,0x6e12,0x0000,0x0000,0x7103, +0x7107,0x7101,0x70f5,0x70f1,0x7108,0x70f2,0x710f,0x0000, +0x70fe,0x0000,0x0000,0x0000,0x731a,0x7310,0x730e,0x7402, +0x73f3,0x0000,0x0000,0x73fb,0x0000,0x0000,0x0000,0x751b, +0x7523,0x7561,0x7568,0x0000,0x7567,0x75d3,0x0000,0x0000, +0x7690,0x0000,0x0000,0x76d5,0x76d7,0x76d6,0x7730,0x0000, +0x7726,0x0000,0x7740,0x0000,0x771e,0x0000,0x0000,0x0000, +0x7847,0x0000,0x784b,0x7851,0x784f,0x7842,0x7846,0x0000, +0x796e,0x796c,0x79f2,0x0000,0x79f1,0x79f5,0x79f3,0x79f9, +0x0000,0x0000,0x0000,0x7a9a,0x7a93,0x7a91,0x7ae1,0x0000, +0x0000,0x7b21,0x7b1c,0x7b16,0x7b17,0x7b36,0x7b1f,0x0000, +0x7c93,0x7c99,0x7c9a,0x7c9c,0x0000,0x7d49,0x0000,0x7d34, +0x7d37,0x0000,0x7d2d,0x0000,0x7d4c,0x0000,0x0000,0x7d48, +0x0000,0x0000,0x7f3b,0x0000,0x0000,0x0000,0x0000,0x8008, +0x801a,0x0000,0x801d,0x0000,0x8049,0x8045,0x8044,0x7c9b, +0x0000,0x0000,0x812a,0x812e,0x0000,0x0000,0x8131,0x0000, +0x811a,0x8134,0x8117,0x0000,0x0000,0x0000,0x831d,0x8371, +0x8384,0x8380,0x8372,0x83a1,0x0000,0x8379,0x8391,0x0000, +0x839f,0x83ad,0x0000,0x0000,0x8323,0x0000,0x8385,0x839c, +0x83b7,0x8658,0x865a,0x0000,0x8657,0x86b2,0x0000,0x86ae, +0x0000,0x0000,0x0000,0x8845,0x889c,0x8894,0x88a3,0x888f, +0x88a5,0x88a9,0x88a6,0x888a,0x88a0,0x8890,0x8992,0x8991, +0x8994,0x0000,0x8a26,0x8a32,0x8a28,0x0000,0x0000,0x8a1c, +0x0000,0x8a2b,0x8a20,0x0000,0x8a29,0x0000,0x0000,0x0000, +0x8a21,0x8c3a,0x0000,0x8c5b,0x8c58,0x8c7c,0x0000,0x8ca6, +0x8cae,0x8cad,0x8d65,0x0000,0x8d7e,0x0000,0x8d7c,0x8d7f, +0x8d7a,0x8dbd,0x0000,0x0000,0x8dc0,0x8dbb,0x8ead,0x8eaf, +0x8ed6,0x0000,0x0000,0x0000,0x0000,0x0000,0x8ed9,0x0000, +0x0000,0x9012,0x900e,0x9025,0x0000,0x9013,0x90ee,0x0000, +0x90ab,0x90f7,0x0000,0x9159,0x9154,0x91f2,0x91f0,0x91e5, +0x91f6,0x0000,0x0000,0x9587,0x0000,0x965a,0x0000,0x0000, +0x966e,0x0000,0x0000,0x0000,0x9679,0x0000,0x98e1,0x98e6, +0x0000,0x9ec4,0x9ed2,0x4e80,0x0000,0x4e81,0x508f,0x5097, +0x5088,0x5089,0x0000,0x0000,0x5081,0x5160,0x0000,0x0000, +0x5e42,0x51d3,0x0000,0x0000,0x51d2,0x51d6,0x5273,0x0000, +0x5270,0x0000,0x0000,0x0000,0x53a8,0x53a6,0x53c5,0x5597, +0x55de,0x0000,0x0000,0x5596,0x55b4,0x0000,0x5585,0x0000, +0x559b,0x55a0,0x0000,0x5559,0x0000,0x5586,0x0000,0x0000, +0x55af,0x557a,0x0000,0x0000,0x0000,0x559e,0x0000,0x55a9, +0x570f,0x570e,0x581a,0x0000,0x581f,0x0000,0x583c,0x5818, +0x583e,0x5826,0x0000,0x583a,0x0000,0x5822,0x0000,0x58fb, +0x5963,0x5964,0x0000,0x5aa8,0x5aa3,0x5a82,0x5a88,0x5aa1, +0x5a85,0x5a98,0x0000,0x5a99,0x0000,0x5a89,0x5a81,0x5a96, +0x5a80,0x0000,0x0000,0x5a91,0x0000,0x0000,0x0000,0x0000, +0x5acf,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x5a87, +0x5aa0,0x0000,0x5a79,0x0000,0x5a86,0x5aab,0x5aaa,0x5aa4, +0x5a8d,0x5a7e,0x0000,0x5bd5,0x0000,0x0000,0x0000,0x5c1e, +0x5c5f,0x5c5e,0x5d44,0x5d3e,0x0000,0x5d48,0x5d1c,0x0000, +0x5d5b,0x5d4d,0x0000,0x0000,0x5d57,0x0000,0x5d53,0x5d4f, +0x0000,0x5d3b,0x5d46,0x0000,0x0000,0x5e46,0x5e47,0x0000, +0x5e48,0x5ec0,0x5ebd,0x5ebf,0x0000,0x5f11,0x0000,0x5f3e, +0x5f3b,0x0000,0x5f3a,0x0000,0x0000,0x0000,0x5fa7,0x0000, +0x60ea,0x0000,0x6107,0x6122,0x610c,0x0000,0x0000,0x60b3, +0x60d6,0x60d2,0x0000,0x60e3,0x60e5,0x60e9,0x0000,0x0000, +0x6111,0x60fd,0x0000,0x0000,0x611e,0x6120,0x6121,0x621e, +0x0000,0x63e2,0x63de,0x63e6,0x0000,0x0000,0x0000,0x0000, +0x63f8,0x0000,0x63fe,0x63c1,0x63bf,0x63f7,0x63d1,0x655f, +0x6560,0x6561,0x0000,0x0000,0x65d1,0x0000,0x0000,0x667d, +0x666b,0x667f,0x0000,0x0000,0x6673,0x6681,0x666d,0x6669, +0x0000,0x0000,0x671e,0x68ed,0x0000,0x0000,0x0000,0x0000, +0x6903,0x0000,0x68fe,0x68e5,0x691e,0x6902,0x0000,0x0000, +0x6909,0x68ca,0x6900,0x0000,0x6901,0x6918,0x68e2,0x68cf, +0x0000,0x692e,0x68c5,0x68ff,0x0000,0x691c,0x68c3,0x0000, +0x6b6f,0x0000,0x6b6e,0x0000,0x6bbe,0x0000,0x6bf4,0x6c2d, +0x0000,0x6db6,0x6e75,0x6e1e,0x0000,0x6e18,0x0000,0x6e48, +0x0000,0x6e4f,0x0000,0x6e42,0x6e6a,0x6e70,0x6dfe,0x0000, +0x0000,0x6e6d,0x0000,0x6e7b,0x6e7e,0x6e59,0x0000,0x6e57, +0x0000,0x6e80,0x6e50,0x0000,0x6e29,0x6e76,0x6e2a,0x6e4c, +0x712a,0x0000,0x7135,0x712c,0x7137,0x711d,0x0000,0x0000, +0x7138,0x0000,0x7134,0x712b,0x7133,0x7127,0x7124,0x0000, +0x712d,0x7232,0x7283,0x7282,0x7287,0x7306,0x7324,0x7338, +0x732a,0x732c,0x732b,0x0000,0x732f,0x7328,0x7417,0x0000, +0x0000,0x7419,0x7438,0x0000,0x741f,0x7414,0x743c,0x73f7, +0x741c,0x7415,0x7418,0x7439,0x74f9,0x7524,0x0000,0x0000, +0x0000,0x756e,0x756d,0x7571,0x758e,0x0000,0x75e5,0x0000, +0x0000,0x0000,0x0000,0x7694,0x76b3,0x0000,0x76d9,0x0000, +0x7748,0x7749,0x7743,0x0000,0x0000,0x7742,0x77df,0x0000, +0x7863,0x7876,0x0000,0x785f,0x7866,0x7966,0x7971,0x0000, +0x0000,0x7976,0x7984,0x7975,0x79ff,0x7a07,0x0000,0x7a0e, +0x7a09,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x7ae7, +0x7ae2,0x7b55,0x0000,0x0000,0x7b43,0x7b57,0x7b6c,0x7b42, +0x7b53,0x0000,0x7b41,0x0000,0x0000,0x7ca7,0x7ca0,0x7ca6, +0x7ca4,0x7d74,0x0000,0x7d59,0x0000,0x7d60,0x7d57,0x7d6c, +0x7d7e,0x7d64,0x0000,0x7d5a,0x7d5d,0x0000,0x0000,0x0000, +0x7d76,0x7d4d,0x7d75,0x0000,0x7fd3,0x7fd6,0x0000,0x0000, +0x8060,0x804e,0x8145,0x813b,0x0000,0x8148,0x8142,0x8149, +0x8140,0x8114,0x8141,0x0000,0x81ef,0x81f6,0x8203,0x0000, +0x83ed,0x0000,0x83da,0x8418,0x83d2,0x8408,0x0000,0x8400, +0x0000,0x0000,0x0000,0x8417,0x8346,0x8414,0x83d3,0x8405, +0x841f,0x8402,0x8416,0x83cd,0x83e6,0x0000,0x865d,0x86d5, +0x86e1,0x0000,0x0000,0x0000,0x0000,0x86ee,0x8847,0x8846, +0x0000,0x0000,0x88bb,0x0000,0x88bf,0x88b4,0x0000,0x88b5, +0x0000,0x899a,0x8a43,0x0000,0x0000,0x8a5a,0x0000,0x0000, +0x0000,0x8a35,0x8a38,0x8a42,0x8a49,0x8a5d,0x8a4b,0x8a3d, +0x0000,0x0000,0x0000,0x0000,0x8c60,0x8c5e,0x8c7f,0x8c7e, +0x8c83,0x0000,0x8cb1,0x8d87,0x0000,0x0000,0x8d88,0x8d83, +0x0000,0x0000,0x8d86,0x8d8b,0x8d82,0x8dca,0x8dd2,0x0000, +0x0000,0x8dd4,0x8dc9,0x8eb0,0x0000,0x0000,0x0000,0x8ef2, +0x8ee4,0x8ef3,0x8eea,0x0000,0x8efd,0x0000,0x8f9d,0x902b, +0x902a,0x0000,0x9028,0x9029,0x902c,0x0000,0x0000,0x903a, +0x9030,0x9037,0x903b,0x0000,0x910a,0x0000,0x0000,0x0000, +0x91fe,0x9220,0x0000,0x920b,0x0000,0x9218,0x9222,0x0000, +0x921b,0x9208,0x0000,0x920e,0x9213,0x0000,0x0000,0x9595, +0x0000,0x0000,0x0000,0x968c,0x967b,0x967f,0x9681,0x0000, +0x9682,0x0000,0x0000,0x0000,0x0000,0x0000,0x96ee,0x96ed, +0x0000,0x96ec,0x975f,0x976f,0x0000,0x976d,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x98f0,0x0000,0x0000,0x0000, +0x9aa9,0x0000,0x0000,0x9ae0,0x4eb7,0x0000,0x0000,0x50cc, +0x50bc,0x0000,0x50aa,0x50b9,0x0000,0x50ab,0x50c3,0x50cd, +0x517e,0x527e,0x5279,0x0000,0x0000,0x52e1,0x52e0,0x52e7, +0x5380,0x53ab,0x53aa,0x53a9,0x53e0,0x55ea,0x0000,0x55d7, +0x0000,0x0000,0x55c1,0x5715,0x0000,0x586c,0x0000,0x585c, +0x5850,0x5861,0x586a,0x5869,0x5856,0x5860,0x5866,0x585f, +0x5923,0x5966,0x5968,0x0000,0x0000,0x5ace,0x0000,0x5ac5, +0x5ac3,0x0000,0x0000,0x5ad0,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x5b74,0x5b76,0x5bdc,0x5bd7,0x5bda,0x5bdb, +0x0000,0x5c20,0x5d6d,0x5d66,0x0000,0x5d64,0x5d6e,0x0000, +0x5d60,0x5f42,0x5f5a,0x5f6e,0x0000,0x0000,0x6130,0x613a, +0x612a,0x6143,0x6119,0x6131,0x0000,0x613d,0x0000,0x0000, +0x0000,0x6408,0x6432,0x6438,0x0000,0x6431,0x0000,0x6419, +0x0000,0x6411,0x0000,0x0000,0x6429,0x641d,0x0000,0x0000, +0x0000,0x643c,0x0000,0x6446,0x6447,0x0000,0x0000,0x643a, +0x6407,0x0000,0x656b,0x0000,0x6570,0x656d,0x0000,0x65e4, +0x6693,0x0000,0x0000,0x0000,0x0000,0x668f,0x0000,0x0000, +0x6692,0x0000,0x668e,0x0000,0x6946,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x6931,0x0000,0x0000,0x693e, +0x0000,0x697c,0x6943,0x0000,0x6973,0x0000,0x6955,0x0000, +0x0000,0x6985,0x694d,0x6950,0x6947,0x6967,0x6936,0x6964, +0x6961,0x0000,0x697d,0x6b44,0x6b40,0x6b71,0x6b73,0x6b9c, +0x0000,0x0000,0x0000,0x6bc1,0x0000,0x6bfa,0x6c31,0x6c32, +0x0000,0x0000,0x6eb8,0x6ea8,0x0000,0x6e91,0x6ebb,0x0000, +0x6e9a,0x0000,0x0000,0x6ea9,0x0000,0x0000,0x6eb5,0x6e6c, +0x6ee8,0x0000,0x6edd,0x6eda,0x6ee6,0x6eac,0x0000,0x0000, +0x0000,0x6ed9,0x6ee3,0x6ee9,0x6edb,0x0000,0x716f,0x0000, +0x0000,0x7148,0x0000,0x714a,0x716b,0x0000,0x714f,0x7157, +0x7174,0x0000,0x0000,0x0000,0x7145,0x7151,0x716d,0x0000, +0x7251,0x7250,0x724e,0x0000,0x7341,0x0000,0x732e,0x7346, +0x0000,0x7427,0x0000,0x7448,0x7453,0x743d,0x0000,0x745d, +0x7456,0x0000,0x741e,0x7447,0x7443,0x7458,0x7449,0x0000, +0x744c,0x7445,0x743e,0x0000,0x7501,0x751e,0x0000,0x0000, +0x757a,0x75ee,0x7602,0x7697,0x7698,0x0000,0x0000,0x0000, +0x775d,0x7764,0x7753,0x7758,0x7882,0x7890,0x788a,0x0000, +0x787a,0x787d,0x0000,0x788b,0x7878,0x0000,0x0000,0x788d, +0x7888,0x7892,0x7881,0x797e,0x7983,0x0000,0x0000,0x0000, +0x7980,0x0000,0x0000,0x0000,0x7a0f,0x0000,0x0000,0x7a1d, +0x0000,0x7aa1,0x7aa4,0x0000,0x7ae9,0x7aea,0x0000,0x7b62, +0x7b6b,0x0000,0x7b5e,0x0000,0x7b79,0x0000,0x0000,0x7b6f, +0x7b68,0x0000,0x0000,0x7cae,0x0000,0x0000,0x0000,0x7cb0, +0x0000,0x7d90,0x0000,0x7d8a,0x0000,0x7d8b,0x7d99,0x7d95, +0x0000,0x7d87,0x7d78,0x7d97,0x7d89,0x7d98,0x0000,0x0000, +0x0000,0x7fa3,0x0000,0x0000,0x0000,0x7fdd,0x8057,0x0000, +0x8163,0x816a,0x816c,0x0000,0x0000,0x0000,0x815d,0x8175, +0x0000,0x815f,0x0000,0x817d,0x816d,0x0000,0x0000,0x8241, +0x844f,0x8484,0x0000,0x847f,0x0000,0x8448,0x842a,0x847b, +0x8472,0x8464,0x842e,0x845c,0x8453,0x0000,0x8441,0x84c8, +0x0000,0x8462,0x8480,0x843e,0x8483,0x8471,0x0000,0x844a, +0x8455,0x8458,0x0000,0x0000,0x0000,0x86fc,0x86fd,0x8715, +0x0000,0x8716,0x86ff,0x0000,0x0000,0x0000,0x8858,0x88cf, +0x88e0,0x0000,0x0000,0x0000,0x0000,0x89e7,0x8a6a,0x8a80, +0x0000,0x8a6f,0x8a65,0x0000,0x8a78,0x8a7d,0x8a88,0x0000, +0x0000,0x8a64,0x8a7e,0x0000,0x8a67,0x8c63,0x8c88,0x0000, +0x8ccd,0x0000,0x8cc9,0x0000,0x8ded,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x8eb1,0x0000,0x0000,0x8f04, +0x8f9e,0x8fa0,0x9043,0x9046,0x9048,0x9045,0x9040,0x904c, +0x0000,0x0000,0x910c,0x9113,0x9115,0x0000,0x916b,0x9167, +0x925d,0x9255,0x9235,0x0000,0x9259,0x922f,0x923c,0x928f, +0x925c,0x926a,0x9262,0x925f,0x926b,0x926e,0x923b,0x9244, +0x9241,0x959a,0x0000,0x9599,0x0000,0x0000,0x0000,0x968f, +0x0000,0x9696,0x0000,0x0000,0x0000,0x96f4,0x96fc,0x0000, +0x9755,0x0000,0x9779,0x0000,0x0000,0x0000,0x97ee,0x97f5, +0x0000,0x980b,0x0000,0x98f3,0x0000,0x0000,0x98f7,0x98ff, +0x98f5,0x0000,0x98ec,0x98f1,0x0000,0x0000,0x999a,0x0000, +0x9ae2,0x9b3d,0x9b5d,0x9ce8,0x0000,0x9ceb,0x9cef,0x9cee, +0x9e81,0x9f14,0x50d0,0x50d9,0x50dc,0x50d8,0x0000,0x50e1, +0x50eb,0x0000,0x0000,0x50f4,0x50e2,0x50de,0x0000,0x0000, +0x0000,0x51f4,0x0000,0x0000,0x0000,0x52ed,0x52ea,0x0000, +0x5332,0x0000,0x53ae,0x53b0,0x0000,0x55fb,0x5603,0x560b, +0x0000,0x5607,0x0000,0x55f8,0x0000,0x5628,0x561e,0x0000, +0x5618,0x5611,0x5651,0x5605,0x5717,0x5892,0x0000,0x588c, +0x0000,0x5878,0x5884,0x5873,0x58ad,0x5897,0x5895,0x5877, +0x5872,0x5896,0x588d,0x5910,0x0000,0x596c,0x0000,0x5ae7, +0x0000,0x5ae4,0x0000,0x0000,0x5aef,0x5626,0x0000,0x0000, +0x5af0,0x5d7b,0x0000,0x5d83,0x0000,0x0000,0x5d8b,0x5d8c, +0x0000,0x5d78,0x5e52,0x0000,0x0000,0x5ed0,0x5ecf,0x0000, +0x5fb3,0x5fb4,0x0000,0x0000,0x0000,0x617b,0x0000,0x616f, +0x6181,0x613c,0x6142,0x6138,0x6133,0x0000,0x6160,0x6169, +0x617d,0x6186,0x622c,0x6228,0x0000,0x644c,0x0000,0x6457, +0x647c,0x0000,0x0000,0x6455,0x6462,0x6471,0x646a,0x6456, +0x643b,0x6481,0x0000,0x644f,0x647e,0x6464,0x0000,0x0000, +0x0000,0x0000,0x0000,0x6571,0x0000,0x0000,0x66a5,0x669a, +0x669c,0x0000,0x66a6,0x0000,0x66a4,0x698f,0x69c5,0x69c8, +0x6992,0x69b2,0x0000,0x0000,0x0000,0x69e3,0x69c0,0x69d6, +0x69d1,0x699f,0x69a2,0x69d2,0x0000,0x0000,0x0000,0x69e1, +0x69d5,0x699d,0x0000,0x0000,0x6998,0x0000,0x6b74,0x6ba1, +0x0000,0x6ef0,0x6ef3,0x0000,0x0000,0x6f1b,0x6f0c,0x6f1d, +0x6f34,0x6f28,0x6f17,0x0000,0x6f44,0x6f42,0x6f04,0x6f11, +0x6efa,0x6f4a,0x7191,0x718e,0x0000,0x718b,0x718d,0x717f, +0x718c,0x717e,0x717c,0x7183,0x0000,0x7188,0x0000,0x0000, +0x7294,0x0000,0x7355,0x7353,0x734f,0x7354,0x746c,0x7465, +0x7466,0x7461,0x746b,0x7468,0x7476,0x0000,0x7460,0x0000, +0x7474,0x7506,0x760e,0x0000,0x7607,0x0000,0x0000,0x76b9, +0x0000,0x76b7,0x76e2,0x0000,0x7774,0x7777,0x7776,0x7775, +0x0000,0x7778,0x7771,0x0000,0x777a,0x715b,0x777b,0x78a6, +0x78ae,0x78b8,0x0000,0x0000,0x0000,0x78b1,0x78af,0x0000, +0x7989,0x7987,0x0000,0x0000,0x7a29,0x0000,0x7a2a,0x0000, +0x7a2d,0x7a2c,0x0000,0x7a32,0x0000,0x7aec,0x7af0,0x7b81, +0x7b9e,0x7b83,0x0000,0x7b92,0x0000,0x7ba3,0x7b9f,0x7b93, +0x0000,0x7b86,0x7cb8,0x7cb7,0x0000,0x0000,0x0000,0x0000, +0x0000,0x7dc8,0x7db6,0x0000,0x7dd1,0x0000,0x7da8,0x7dab, +0x0000,0x7db3,0x7dcd,0x0000,0x7dcf,0x7da4,0x0000,0x0000, +0x7f41,0x7f6f,0x7f71,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x8023,0x805b,0x0000,0x8061,0x805f,0x8181,0x0000, +0x0000,0x8184,0x8213,0x0000,0x824a,0x824c,0x0000,0x0000, +0x0000,0x84bd,0x8495,0x0000,0x8492,0x84c3,0x0000,0x8496, +0x84a5,0x84b5,0x84b3,0x84a3,0x84e4,0x84d8,0x84d5,0x0000, +0x84b7,0x84ad,0x84da,0x8493,0x8736,0x0000,0x0000,0x0000, +0x873d,0x872b,0x8747,0x8739,0x0000,0x8745,0x871d,0x0000, +0x88ff,0x88ea,0x0000,0x88f5,0x0000,0x8900,0x88ed,0x8903, +0x88e9,0x0000,0x0000,0x89ea,0x0000,0x8a9b,0x8a8e,0x8aa2, +0x0000,0x8a9c,0x8a94,0x8a90,0x8aa9,0x8aac,0x0000,0x8a9f, +0x0000,0x0000,0x8a9d,0x0000,0x8c67,0x0000,0x0000,0x8cd0, +0x8cd6,0x8cd4,0x8d98,0x8d9a,0x8d97,0x0000,0x0000,0x0000, +0x8e0b,0x8e08,0x8e01,0x8eb4,0x8eb3,0x0000,0x8fa1,0x8fa2, +0x0000,0x905a,0x0000,0x9061,0x905f,0x0000,0x0000,0x9125, +0x917b,0x9176,0x917c,0x0000,0x9289,0x92f6,0x92b1,0x92ad, +0x9292,0x9281,0x9284,0x0000,0x92ae,0x9290,0x929e,0x0000, +0x0000,0x0000,0x95a2,0x95a7,0x0000,0x0000,0x0000,0x0000, +0x0000,0x96a0,0x969d,0x969f,0x96d0,0x0000,0x96d1,0x0000, +0x0000,0x9759,0x0000,0x9764,0x0000,0x0000,0x0000,0x9819, +0x0000,0x9814,0x9815,0x981a,0x0000,0x0000,0x0000,0x0000, +0x9906,0x0000,0x98f8,0x9901,0x0000,0x99be,0x99bc,0x99b7, +0x99b6,0x99c0,0x0000,0x99b8,0x0000,0x0000,0x0000,0x99c4, +0x0000,0x99bf,0x0000,0x9ada,0x9ae4,0x9ae9,0x9ae8,0x9aea, +0x9ae5,0x0000,0x9b26,0x0000,0x0000,0x9b40,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x9ebd,0x0000,0x0000, +0x0000,0x0000,0x510e,0x0000,0x50f7,0x0000,0x50fc,0x510d, +0x5101,0x51da,0x51d9,0x51db,0x5286,0x528e,0x52ee,0x5333, +0x53b1,0x0000,0x5647,0x562d,0x5654,0x0000,0x564b,0x5652, +0x5631,0x5644,0x5656,0x5650,0x562b,0x0000,0x564d,0x5637, +0x564f,0x58a2,0x58b7,0x0000,0x58b2,0x0000,0x58aa,0x58b5, +0x58b0,0x0000,0x58b4,0x58a4,0x58a7,0x0000,0x5926,0x5afe, +0x0000,0x5b04,0x0000,0x5afc,0x0000,0x5b06,0x5b0a,0x5afa, +0x5b0d,0x5b00,0x5b0e,0x0000,0x0000,0x0000,0x5d91,0x0000, +0x5d8f,0x5d90,0x5d98,0x5da4,0x5d9b,0x5da3,0x5d96,0x5de4, +0x5e5a,0x0000,0x0000,0x5e5e,0x0000,0x5fb8,0x6157,0x615c, +0x61a6,0x6195,0x6188,0x0000,0x61a3,0x618f,0x0000,0x6164, +0x0000,0x6159,0x6178,0x0000,0x6185,0x6187,0x619e,0x0000, +0x0000,0x6198,0x619c,0x0000,0x0000,0x622f,0x6480,0x649b, +0x648e,0x648d,0x6494,0x64c6,0x0000,0x64a8,0x6483,0x0000, +0x64b9,0x6486,0x64b4,0x64af,0x6491,0x0000,0x64aa,0x64a1, +0x64a7,0x66b6,0x66b3,0x0000,0x66bc,0x66ac,0x0000,0x66ad, +0x6a0e,0x0000,0x6a1c,0x6a1a,0x0000,0x0000,0x6a0b,0x0000, +0x69ef,0x6a0c,0x69f0,0x6a22,0x0000,0x69d8,0x0000,0x6a12, +0x69fa,0x0000,0x6a2a,0x0000,0x6a10,0x0000,0x0000,0x6a29, +0x69f9,0x69ea,0x6a2c,0x6a24,0x0000,0x69e9,0x6b52,0x6b4f, +0x6b53,0x0000,0x0000,0x6f10,0x6f65,0x6f75,0x0000,0x0000, +0x0000,0x0000,0x6fd0,0x0000,0x6f5c,0x6f3d,0x6f71,0x0000, +0x6f91,0x6f0b,0x6f79,0x6f81,0x6f8f,0x0000,0x6f59,0x6f74, +0x0000,0x71ae,0x0000,0x71a3,0x71ad,0x0000,0x0000,0x71ab, +0x71a6,0x71a2,0x0000,0x52f2,0x7257,0x7255,0x7299,0x734b, +0x747a,0x0000,0x0000,0x0000,0x748c,0x7484,0x0000,0x0000, +0x7482,0x7493,0x747b,0x0000,0x7509,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x778a,0x0000,0x7790,0x0000,0x78c6, +0x78d3,0x78c0,0x78d2,0x78c7,0x78c2,0x0000,0x799f,0x799d, +0x799e,0x0000,0x7a41,0x0000,0x7a38,0x7a3a,0x7a42,0x0000, +0x0000,0x7a3e,0x7ab0,0x7bae,0x7bb3,0x0000,0x0000,0x7bbf, +0x0000,0x0000,0x7bcd,0x0000,0x7bb2,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x7cc4,0x7ccd,0x7cc2,0x7cc6, +0x7cc3,0x7cc9,0x7cc7,0x0000,0x7df8,0x0000,0x7ded,0x7de2, +0x0000,0x0000,0x0000,0x7ddc,0x7e02,0x7e01,0x0000,0x7dd6, +0x0000,0x7de4,0x7dfe,0x0000,0x7e00,0x7dfc,0x7dfd,0x0000, +0x7df5,0x7dff,0x0000,0x7deb,0x7de5,0x7f78,0x7fae,0x7fe7, +0x0000,0x8065,0x806a,0x8066,0x8068,0x806b,0x8194,0x81a1, +0x8192,0x8196,0x8193,0x0000,0x0000,0x8501,0x0000,0x84f8, +0x0000,0x84f5,0x0000,0x8504,0x0000,0x0000,0x0000,0x0000, +0x851b,0x8503,0x8533,0x8534,0x84ed,0x0000,0x0000,0x8535, +0x0000,0x8505,0x0000,0x0000,0x0000,0x0000,0x877d,0x0000, +0x0000,0x0000,0x8771,0x0000,0x885c,0x88e6,0x890f,0x891b, +0x0000,0x89a9,0x89a5,0x89ee,0x8ab1,0x0000,0x8acc,0x8ace, +0x0000,0x8ab7,0x0000,0x8ab5,0x8ae9,0x8ab4,0x0000,0x8ab3, +0x8ac1,0x8aaf,0x8aca,0x8ad0,0x0000,0x0000,0x0000,0x8c8e, +0x0000,0x0000,0x8ce9,0x8cdb,0x0000,0x8ceb,0x8da4,0x0000, +0x8da2,0x8d9d,0x0000,0x0000,0x0000,0x0000,0x8e2a,0x8e28, +0x0000,0x0000,0x8eb8,0x8eb6,0x8eb9,0x8eb7,0x8f22,0x8f2b, +0x8f27,0x8f19,0x8fa4,0x0000,0x8fb3,0x0000,0x9071,0x906a, +0x0000,0x0000,0x9188,0x918c,0x92bf,0x92b8,0x92be,0x92dc, +0x92e5,0x0000,0x0000,0x92d4,0x92d6,0x0000,0x92da,0x92ed, +0x92f3,0x92db,0x0000,0x92b9,0x92e2,0x92eb,0x95af,0x0000, +0x95b2,0x95b3,0x0000,0x0000,0x0000,0x96a3,0x96a5,0x0000, +0x0000,0x0000,0x0000,0x970a,0x0000,0x9787,0x9789,0x978c, +0x97ef,0x982a,0x9822,0x0000,0x981f,0x0000,0x9919,0x0000, +0x99ca,0x99da,0x0000,0x0000,0x0000,0x99de,0x99c8,0x99e0, +0x0000,0x9ab6,0x9ab5,0x0000,0x9af4,0x0000,0x9b6b,0x9b69, +0x9b72,0x9b63,0x0000,0x9d0d,0x0000,0x9d01,0x9d0c,0x0000, +0x9cf8,0x0000,0x0000,0x9cfe,0x9d02,0x9e84,0x0000,0x9eab, +0x9eaa,0x511d,0x5116,0x0000,0x512b,0x511e,0x511b,0x5290, +0x5294,0x5314,0x0000,0x0000,0x5667,0x0000,0x567b,0x0000, +0x565f,0x5661,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x58c3,0x58ca,0x58bb,0x58c0,0x58c4,0x5901,0x5b1f, +0x5b18,0x5b11,0x5b15,0x0000,0x5b12,0x5b1c,0x0000,0x5b22, +0x5b79,0x5da6,0x0000,0x5db3,0x5dab,0x5eea,0x0000,0x5f5b, +0x0000,0x0000,0x61b7,0x61ce,0x61b9,0x61bd,0x61cf,0x61c0, +0x6199,0x6197,0x0000,0x61bb,0x61d0,0x61c4,0x6231,0x0000, +0x64d3,0x64c0,0x0000,0x0000,0x0000,0x0000,0x64dc,0x64d1, +0x64c8,0x0000,0x64d5,0x66c3,0x0000,0x0000,0x66bf,0x66c5, +0x0000,0x66cd,0x66c1,0x6706,0x0000,0x6724,0x6a63,0x6a42, +0x6a52,0x0000,0x6a43,0x6a33,0x0000,0x6a6c,0x6a57,0x0000, +0x6a4c,0x6a6e,0x0000,0x0000,0x0000,0x0000,0x0000,0x6a37, +0x0000,0x6a71,0x6a4a,0x6a36,0x0000,0x6a53,0x0000,0x6a45, +0x6a70,0x0000,0x0000,0x6a5c,0x6b58,0x6b57,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x6fbb,0x0000,0x0000,0x6fbe, +0x0000,0x0000,0x0000,0x6fb5,0x6fd3,0x6f9f,0x0000,0x6fb7, +0x6ff5,0x71b7,0x0000,0x71bb,0x0000,0x71d1,0x0000,0x71ba, +0x0000,0x71b6,0x71cc,0x0000,0x0000,0x71d3,0x749b,0x0000, +0x0000,0x7496,0x74a2,0x749d,0x750a,0x750e,0x0000,0x7581, +0x762c,0x7637,0x7636,0x763b,0x0000,0x76a1,0x0000,0x0000, +0x7798,0x0000,0x7796,0x0000,0x0000,0x0000,0x78d6,0x78eb, +0x0000,0x78dc,0x0000,0x79a5,0x79a9,0x9834,0x7a53,0x7a45, +0x0000,0x7a4f,0x0000,0x7abd,0x7abb,0x7af1,0x0000,0x0000, +0x7bec,0x7bed,0x0000,0x0000,0x7cd3,0x0000,0x7ce1,0x0000, +0x7e19,0x0000,0x0000,0x0000,0x7e27,0x7e26,0x0000,0x0000, +0x806e,0x81af,0x0000,0x0000,0x81ad,0x0000,0x81aa,0x8218, +0x0000,0x0000,0x0000,0x0000,0x856f,0x854c,0x0000,0x8542, +0x0000,0x855c,0x8570,0x855f,0x0000,0x855a,0x854b,0x853f, +0x878a,0x0000,0x878b,0x87a1,0x878e,0x0000,0x0000,0x8799, +0x885e,0x885f,0x8924,0x89a7,0x8aea,0x8afd,0x8af9,0x8ae3, +0x8ae5,0x0000,0x0000,0x8aec,0x0000,0x0000,0x0000,0x0000, +0x8cf2,0x0000,0x8cef,0x0000,0x8da6,0x0000,0x0000,0x0000, +0x8e3b,0x8e43,0x0000,0x8e32,0x8f31,0x8f30,0x0000,0x8f2d, +0x8f3c,0x8fa7,0x8fa5,0x0000,0x0000,0x0000,0x9137,0x9195, +0x918e,0x0000,0x9196,0x0000,0x9345,0x930a,0x0000,0x0000, +0x92fd,0x9317,0x931c,0x9307,0x9331,0x9332,0x932c,0x9330, +0x9303,0x9305,0x0000,0x95c2,0x0000,0x95b8,0x0000,0x95c1, +0x0000,0x0000,0x0000,0x96ab,0x96b7,0x0000,0x0000,0x9715, +0x9714,0x0000,0x0000,0x970c,0x9717,0x0000,0x9793,0x0000, +0x97d2,0x0000,0x0000,0x9836,0x9831,0x9833,0x983c,0x982e, +0x983a,0x0000,0x983d,0x0000,0x98b5,0x9922,0x9923,0x9920, +0x991c,0x991d,0x0000,0x99a0,0x0000,0x99ef,0x99e8,0x99eb, +0x0000,0x0000,0x0000,0x99e1,0x99e6,0x0000,0x0000,0x9af8, +0x9af5,0x0000,0x0000,0x9b83,0x9b94,0x9b84,0x0000,0x9b8b, +0x9b8f,0x0000,0x9b8c,0x0000,0x9b89,0x0000,0x9b8e,0x0000, +0x0000,0x0000,0x9d24,0x9d0f,0x0000,0x9d13,0x9d0a,0x0000, +0x0000,0x0000,0x0000,0x9d2a,0x9d1a,0x0000,0x9d27,0x9d16, +0x9d21,0x0000,0x9e85,0x9eac,0x9ec6,0x9ec5,0x9ed7,0x9f53, +0x0000,0x5128,0x5127,0x51df,0x0000,0x5335,0x53b3,0x0000, +0x568a,0x567d,0x5689,0x0000,0x58cd,0x58d0,0x0000,0x5b2b, +0x5b33,0x5b29,0x5b35,0x5b31,0x5b37,0x5c36,0x5dbe,0x0000, +0x5db9,0x0000,0x5dbb,0x0000,0x61e2,0x61db,0x61dd,0x61dc, +0x61da,0x0000,0x61d9,0x0000,0x0000,0x64df,0x0000,0x0000, +0x64e1,0x0000,0x64ee,0x0000,0x65b5,0x66d4,0x66d5,0x0000, +0x66d0,0x66d1,0x66ce,0x66d7,0x0000,0x0000,0x6a7d,0x6a8a, +0x0000,0x6aa7,0x0000,0x6a99,0x6a82,0x6a88,0x0000,0x0000, +0x6a86,0x0000,0x6a98,0x6a9d,0x0000,0x0000,0x6a8f,0x0000, +0x6aaa,0x0000,0x6b5d,0x0000,0x6c0a,0x0000,0x6fd7,0x6fd6, +0x6fe5,0x0000,0x0000,0x0000,0x6fd9,0x6fda,0x6fea,0x0000, +0x6ff6,0x0000,0x0000,0x71e3,0x0000,0x71e9,0x0000,0x71eb, +0x71ef,0x71f3,0x71ea,0x0000,0x0000,0x0000,0x0000,0x0000, +0x7371,0x0000,0x74ae,0x0000,0x74b3,0x0000,0x74ac,0x0000, +0x0000,0x7583,0x7645,0x764e,0x7644,0x76a3,0x76a5,0x77a6, +0x77a4,0x0000,0x77a9,0x77af,0x0000,0x0000,0x0000,0x78f0, +0x78f8,0x78f1,0x0000,0x7a49,0x0000,0x0000,0x0000,0x7ac2, +0x7af2,0x7af3,0x7bfa,0x0000,0x7bf6,0x7bfc,0x7c18,0x7c08, +0x7c12,0x0000,0x0000,0x7cdb,0x7cda,0x0000,0x0000,0x0000, +0x7e2c,0x7e4d,0x0000,0x0000,0x7f46,0x7ff6,0x802b,0x8074, +0x81b8,0x81c8,0x0000,0x0000,0x0000,0x8592,0x8593,0x0000, +0x857f,0x85ab,0x8597,0x0000,0x0000,0x85ac,0x0000,0x0000, +0x0000,0x87ce,0x0000,0x87cd,0x0000,0x0000,0x87c1,0x87b1, +0x87c7,0x0000,0x8940,0x0000,0x893f,0x8939,0x0000,0x8943, +0x0000,0x0000,0x0000,0x89ab,0x0000,0x8b1f,0x8b09,0x8b0c, +0x0000,0x0000,0x8c40,0x0000,0x8c96,0x0000,0x8cf6,0x8cf7, +0x0000,0x8e46,0x8e4f,0x0000,0x0000,0x0000,0x8f3d,0x8f41, +0x9366,0x9378,0x935d,0x9369,0x9374,0x937d,0x936e,0x9372, +0x9373,0x9362,0x9348,0x9353,0x935f,0x9368,0x0000,0x937f, +0x936b,0x0000,0x95c4,0x0000,0x96af,0x96ad,0x96b2,0x0000, +0x0000,0x971a,0x971b,0x0000,0x0000,0x0000,0x0000,0x979b, +0x979f,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x9840,0x0000,0x9847,0x0000,0x98b7,0x0000,0x0000, +0x0000,0x0000,0x0000,0x99a2,0x0000,0x0000,0x9a00,0x99f3, +0x0000,0x0000,0x99f5,0x0000,0x0000,0x9abd,0x9b00,0x9b02, +0x0000,0x9b34,0x9b49,0x9b9f,0x0000,0x9ba3,0x9bcd,0x9b99, +0x9b9d,0x0000,0x0000,0x9d39,0x0000,0x9d44,0x0000,0x0000, +0x9d35,0x0000,0x0000,0x9eaf,0x0000,0x512f,0x0000,0x0000, +0x9f8e,0x0000,0x569f,0x569b,0x569e,0x5696,0x5694,0x56a0, +0x0000,0x5b3b,0x0000,0x0000,0x5b3a,0x5dc1,0x5f4d,0x5f5d, +0x61f3,0x0000,0x0000,0x0000,0x0000,0x64f6,0x64e5,0x64ea, +0x64e7,0x6505,0x0000,0x64f9,0x0000,0x0000,0x0000,0x6aab, +0x6aed,0x6ab2,0x6ab0,0x6ab5,0x6abe,0x6ac1,0x6ac8,0x0000, +0x6ac0,0x6abc,0x6ab1,0x6ac4,0x6abf,0x0000,0x0000,0x7008, +0x7003,0x6ffd,0x7010,0x7002,0x7013,0x0000,0x71fa,0x7200, +0x74b9,0x74bc,0x0000,0x765b,0x7651,0x764f,0x76eb,0x77b8, +0x0000,0x77b9,0x77c1,0x77c0,0x77be,0x790b,0x0000,0x7907, +0x790a,0x7908,0x0000,0x790d,0x7906,0x7915,0x79af,0x0000, +0x0000,0x0000,0x7af5,0x0000,0x0000,0x7c2e,0x0000,0x7c1b, +0x0000,0x7c1a,0x7c24,0x0000,0x0000,0x7ce6,0x7ce3,0x0000, +0x0000,0x7e5d,0x7e4f,0x7e66,0x7e5b,0x7f47,0x7fb4,0x0000, +0x0000,0x0000,0x7ffa,0x802e,0x0000,0x0000,0x81ce,0x0000, +0x0000,0x8219,0x0000,0x0000,0x85cc,0x85b2,0x0000,0x85bb, +0x85c1,0x0000,0x0000,0x0000,0x87e9,0x87ee,0x87f0,0x87d6, +0x880e,0x87da,0x8948,0x894a,0x894e,0x894d,0x89b1,0x89b0, +0x89b3,0x0000,0x8b38,0x8b32,0x0000,0x8b2d,0x0000,0x8b34, +0x0000,0x8b29,0x8c74,0x0000,0x0000,0x8d03,0x0000,0x0000, +0x8da9,0x8e58,0x0000,0x0000,0x8ebf,0x8ec1,0x8f4a,0x8fac, +0x0000,0x9089,0x913d,0x913c,0x91a9,0x93a0,0x0000,0x9390, +0x0000,0x9393,0x938b,0x93ad,0x93bb,0x93b8,0x0000,0x0000, +0x939c,0x95d8,0x95d7,0x0000,0x0000,0x0000,0x975d,0x97a9, +0x97da,0x0000,0x0000,0x0000,0x0000,0x9854,0x0000,0x9855, +0x984b,0x0000,0x983f,0x98b9,0x0000,0x0000,0x0000,0x0000, +0x9938,0x9936,0x9940,0x0000,0x993b,0x9939,0x99a4,0x0000, +0x0000,0x9a08,0x9a0c,0x0000,0x9a10,0x0000,0x9b07,0x0000, +0x9bd2,0x0000,0x9bc2,0x9bbb,0x9bcc,0x9bcb,0x0000,0x0000, +0x9d4d,0x9d63,0x9d4e,0x0000,0x9d50,0x9d55,0x0000,0x9d5e, +0x0000,0x9e90,0x9eb2,0x9eb1,0x0000,0x9eca,0x9f02,0x9f27, +0x9f26,0x0000,0x56af,0x58e0,0x58dc,0x0000,0x5b39,0x0000, +0x0000,0x5b7c,0x5bf3,0x0000,0x0000,0x5c6b,0x5dc4,0x650b, +0x6508,0x650a,0x0000,0x0000,0x65dc,0x0000,0x0000,0x66e1, +0x66df,0x6ace,0x6ad4,0x6ae3,0x6ad7,0x6ae2,0x0000,0x0000, +0x0000,0x0000,0x6ad8,0x6ad5,0x6ad2,0x0000,0x0000,0x701e, +0x702c,0x7025,0x6ff3,0x7204,0x7208,0x7215,0x0000,0x74c4, +0x74c9,0x74c7,0x74c8,0x76a9,0x77c6,0x77c5,0x7918,0x791a, +0x7920,0x0000,0x7a66,0x7a64,0x7a6a,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x7c35,0x7c34,0x0000,0x0000,0x7e6c, +0x0000,0x7e6e,0x7e71,0x0000,0x81d4,0x81d6,0x821a,0x8262, +0x8265,0x8276,0x85db,0x85d6,0x0000,0x85e7,0x0000,0x0000, +0x85f4,0x0000,0x87fd,0x87d5,0x8807,0x0000,0x880f,0x87f8, +0x0000,0x0000,0x8987,0x0000,0x89b5,0x89f5,0x0000,0x8b3f, +0x8b43,0x8b4c,0x0000,0x8d0b,0x8e6b,0x8e68,0x8e70,0x8e75, +0x8e77,0x0000,0x8ec3,0x0000,0x93e9,0x93ea,0x93cb,0x93c5, +0x93c6,0x0000,0x93ed,0x93d3,0x0000,0x93e5,0x0000,0x0000, +0x93db,0x93eb,0x93e0,0x93c1,0x0000,0x0000,0x95dd,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x97b2,0x97b4,0x97b1,0x97b5,0x97f2,0x0000,0x0000,0x0000, +0x9856,0x0000,0x0000,0x0000,0x9944,0x0000,0x9a26,0x9a1f, +0x9a18,0x9a21,0x9a17,0x0000,0x9b09,0x0000,0x0000,0x9bc5, +0x9bdf,0x0000,0x9be3,0x0000,0x9be9,0x9bee,0x0000,0x0000, +0x9d66,0x9d7a,0x0000,0x9d6e,0x9d91,0x9d83,0x9d76,0x9d7e, +0x9d6d,0x0000,0x9e95,0x9ee3,0x0000,0x0000,0x9f03,0x9f04, +0x0000,0x9f17,0x0000,0x5136,0x0000,0x5336,0x0000,0x5b42, +0x0000,0x0000,0x5b44,0x5b46,0x5b7e,0x5dca,0x5dc8,0x5dcc, +0x5ef0,0x0000,0x6585,0x66e5,0x66e7,0x0000,0x0000,0x0000, +0x6af4,0x0000,0x6ae9,0x0000,0x0000,0x0000,0x0000,0x0000, +0x703d,0x0000,0x7036,0x0000,0x7216,0x0000,0x7212,0x720f, +0x7217,0x7211,0x720b,0x0000,0x0000,0x74cd,0x74d0,0x74cc, +0x74ce,0x74d1,0x0000,0x7589,0x0000,0x7a6f,0x7c4b,0x7c44, +0x0000,0x0000,0x0000,0x0000,0x0000,0x7e7f,0x8b71,0x0000, +0x802f,0x807a,0x807b,0x807c,0x0000,0x0000,0x0000,0x85fc, +0x8610,0x8602,0x0000,0x0000,0x85ee,0x8603,0x0000,0x860d, +0x8613,0x8608,0x860f,0x8818,0x8812,0x0000,0x0000,0x8967, +0x8965,0x89bb,0x8b69,0x8b62,0x0000,0x8b6e,0x0000,0x8b61, +0x0000,0x8b64,0x8b4d,0x8c51,0x0000,0x0000,0x8e83,0x8ec6, +0x0000,0x941f,0x0000,0x9404,0x9417,0x9408,0x9405,0x0000, +0x93f3,0x941e,0x9402,0x941a,0x941b,0x9427,0x941c,0x0000, +0x96b5,0x0000,0x0000,0x9733,0x0000,0x9734,0x9731,0x97b8, +0x97ba,0x0000,0x97fc,0x0000,0x0000,0x98c3,0x0000,0x994d, +0x0000,0x9a2f,0x0000,0x0000,0x0000,0x9ac9,0x0000,0x9ac8, +0x9ac4,0x9b2a,0x9b38,0x9b50,0x0000,0x9c0a,0x9bfb,0x9c04, +0x9bfc,0x9bfe,0x0000,0x0000,0x0000,0x9c02,0x9bf6,0x9c1b, +0x9bf9,0x9c15,0x9c10,0x9bff,0x9c00,0x9c0c,0x0000,0x0000, +0x9d95,0x9da5,0x0000,0x0000,0x0000,0x0000,0x9e98,0x9ec1, +0x0000,0x9f5a,0x5164,0x56bb,0x0000,0x58e6,0x5b49,0x5bf7, +0x0000,0x0000,0x5dd0,0x0000,0x5fc2,0x0000,0x6511,0x0000, +0x6aff,0x6afe,0x6afd,0x0000,0x6b01,0x0000,0x0000,0x704b, +0x704d,0x7047,0x74d3,0x7668,0x7667,0x0000,0x0000,0x77d1, +0x7930,0x7932,0x792e,0x0000,0x9f9d,0x7ac9,0x7ac8,0x0000, +0x7c56,0x7c51,0x0000,0x0000,0x0000,0x7e85,0x7e89,0x7e8e, +0x7e84,0x0000,0x826a,0x862b,0x862f,0x8628,0x0000,0x8616, +0x8615,0x861d,0x881a,0x0000,0x0000,0x0000,0x89bc,0x8b75, +0x8b7c,0x0000,0x8d11,0x8d12,0x8f5c,0x91bb,0x0000,0x93f4, +0x0000,0x0000,0x942d,0x0000,0x0000,0x96e4,0x9737,0x9736, +0x9767,0x97be,0x97bd,0x97e2,0x9868,0x9866,0x98c8,0x98ca, +0x98c7,0x98dc,0x0000,0x994f,0x99a9,0x9a3c,0x0000,0x9a3b, +0x9ace,0x0000,0x9b14,0x9b53,0x0000,0x9c2e,0x0000,0x9c1f, +0x0000,0x0000,0x0000,0x0000,0x9db0,0x9dbd,0x0000,0x0000, +0x9dae,0x9dc4,0x9e7b,0x0000,0x0000,0x9e9e,0x0000,0x9f05, +0x0000,0x9f69,0x9fa1,0x56c7,0x571d,0x5b4a,0x5dd3,0x0000, +0x5f72,0x6202,0x0000,0x6235,0x6527,0x651e,0x651f,0x0000, +0x0000,0x6b07,0x6b06,0x0000,0x0000,0x7054,0x721c,0x7220, +0x7af8,0x0000,0x7c5d,0x7c58,0x0000,0x7e92,0x7f4e,0x0000, +0x0000,0x0000,0x8827,0x0000,0x8b81,0x8b83,0x0000,0x8c44, +0x0000,0x0000,0x0000,0x0000,0x9442,0x944d,0x9454,0x944e, +0x0000,0x9443,0x0000,0x0000,0x973c,0x9740,0x97c0,0x0000, +0x0000,0x0000,0x0000,0x995a,0x9a51,0x0000,0x9add,0x0000, +0x0000,0x9c38,0x0000,0x9c45,0x9c3a,0x0000,0x9c35,0x0000, +0x0000,0x0000,0x9ef1,0x0000,0x9f93,0x529a,0x0000,0x0000, +0x8641,0x5dd7,0x0000,0x6528,0x0000,0x0000,0x0000,0x7053, +0x7059,0x0000,0x7221,0x0000,0x766f,0x7937,0x79b5,0x7c62, +0x7c5e,0x7cf5,0x0000,0x0000,0x863d,0x0000,0x882d,0x8989, +0x8b8d,0x8b87,0x8b90,0x8d1a,0x8e99,0x0000,0x0000,0x0000, +0x945f,0x0000,0x0000,0x9456,0x9461,0x945b,0x945a,0x945c, +0x9465,0x0000,0x9741,0x0000,0x0000,0x986e,0x986c,0x986d, +0x0000,0x99aa,0x9a5c,0x9a58,0x9ade,0x0000,0x9c4f,0x9c51, +0x0000,0x9c53,0x0000,0x0000,0x0000,0x9dfc,0x9f39,0x0000, +0x513e,0x0000,0x56d2,0x0000,0x5b4f,0x6b14,0x0000,0x7a72, +0x7a73,0x0000,0x0000,0x0000,0x8b91,0x0000,0x0000,0x91bf, +0x0000,0x946c,0x0000,0x0000,0x96e6,0x9745,0x0000,0x97c8, +0x97e4,0x995d,0x0000,0x9b21,0x0000,0x9b2c,0x9b57,0x0000, +0x0000,0x9c5d,0x9c61,0x9c65,0x9e08,0x0000,0x0000,0x0000, +0x0000,0x0000,0x9f45,0x0000,0x0000,0x6205,0x66ef,0x6b1b, +0x6b1d,0x7225,0x7224,0x7c6d,0x0000,0x8642,0x8649,0x0000, +0x8978,0x898a,0x8b97,0x0000,0x8c9b,0x8d1c,0x0000,0x8ea2, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x9c6c,0x0000,0x9c6f,0x0000,0x9e0e,0x0000,0x9f08,0x9f1d, +0x9fa3,0x0000,0x0000,0x5f60,0x6b1c,0x0000,0x0000,0x0000, +0x7cf3,0x0000,0x8b9b,0x8ea7,0x91c4,0x0000,0x947a,0x0000, +0x0000,0x9a61,0x9a63,0x9ad7,0x9c76,0x0000,0x9fa5,0x0000, +0x7067,0x0000,0x72ab,0x864a,0x897d,0x8b9d,0x8c53,0x8f65, +0x947b,0x0000,0x98cd,0x98dd,0x0000,0x9b30,0x9e16,0x0000, +0x0000,0x0000,0x0000,0x0000,0x96e7,0x9e18,0x9ea2,0x0000, +0x9f7c,0x0000,0x7e9e,0x9484,0x0000,0x9e1c,0x0000,0x7c71, +0x97ca,0x0000,0x0000,0x0000,0x9ea3,0x0000,0x9c7b,0x9f97, +0x0000,0x0000,0x9750,0x0000,0x0000,0x0000,0x5727,0x5c13, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x5fc8,0x0000, +0x0000,0x0000,0x0000,0x0000,0x6765,0x0000,0x0000,0x52bd, +0x0000,0x5b66,0x0000,0x65f9,0x6788,0x6ce6,0x6ccb,0x0000, +0x4fbd,0x5f8d,0x0000,0x6018,0x6048,0x0000,0x6b29,0x70a6, +0x0000,0x7706,0x0000,0x0000,0x0000,0x5a10,0x5cfc,0x5cfe, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x70c9,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x9579,0x0000, +0x96ba,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x7b29,0x8128,0x0000,0x8a2e,0x0000,0x0000,0x0000,0x9ad9, +0x0000,0x582b,0x5845,0x0000,0x63fa,0x0000,0x0000,0x0000, +0x6e86,0x0000,0x0000,0x0000,0x0000,0x0000,0x5867,0x0000, +0x5bdd,0x656e,0x0000,0x0000,0x0000,0x8c87,0x0000,0x50d2, +0x50df,0x0000,0x0000,0x0000,0x0000,0x69ba,0x0000,0x6b9d, +0x0000,0x8059,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x6f8a,0x0000, +0x0000,0x7bc3,0x7bc2,0x0000,0x0000,0x0000,0x0000,0x90f6, +0x0000,0x9823,0x0000,0x0000,0x0000,0x0000,0x0000,0x71cd, +0x7499,0x0000,0x0000,0x0000,0x0000,0x0000,0x9842,0x0000, +0x0000,0x0000,0x0000,0x7f84,0x0000,0x0000,0x0000,0x0000, +0x0000,0x8d0e,0x0000,0x9861,0x0000,0x0000,0x8b73,0x0000, +0x9c27,0x0000,0x9458,0x77d6,0x9b2d,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x4f66,0x4f68,0x4fe7,0x503f,0x0000,0x50a6,0x510f, +0x523e,0x5324,0x5365,0x539b,0x517f,0x54cb,0x5573,0x5571, +0x556b,0x55f4,0x5622,0x5620,0x5692,0x56ba,0x5691,0x56b0, +0x5759,0x578a,0x580f,0x5812,0x5813,0x5847,0x589b,0x5900, +0x594d,0x5ad1,0x5ad3,0x5b67,0x5c57,0x5c77,0x5cd5,0x5d75, +0x5d8e,0x5da5,0x5db6,0x5dbf,0x5e65,0x5ecd,0x5eed,0x5f94, +0x5f9a,0x5fba,0x6125,0x6150,0x62a3,0x6360,0x6364,0x63b6, +0x6403,0x64b6,0x651a,0x7a25,0x5c21,0x66e2,0x6702,0x67a4, +0x67ac,0x6810,0x6806,0x685e,0x685a,0x692c,0x6929,0x6a2d, +0x6a77,0x6a7a,0x6aca,0x6ae6,0x6af5,0x6b0d,0x6b0e,0x6bdc, +0x6bdd,0x6bf6,0x6c1e,0x6c63,0x6da5,0x6e0f,0x6e8a,0x6e84, +0x6e8b,0x6e7c,0x6f4c,0x6f48,0x6f49,0x6f9d,0x6f99,0x6ff8, +0x702e,0x702d,0x705c,0x79cc,0x70bf,0x70ea,0x70e5,0x7111, +0x7112,0x713f,0x7139,0x713b,0x713d,0x7177,0x7175,0x7176, +0x7171,0x7196,0x7193,0x71b4,0x71dd,0x71de,0x720e,0x5911, +0x7218,0x7347,0x7348,0x73ef,0x7412,0x743b,0x74a4,0x748d, +0x74b4,0x7673,0x7677,0x76bc,0x7819,0x781b,0x783d,0x7853, +0x7854,0x7858,0x78b7,0x78d8,0x78ee,0x7922,0x794d,0x7986, +0x7999,0x79a3,0x79bc,0x7aa7,0x7b37,0x7b59,0x7bd0,0x7c2f, +0x7c32,0x7c42,0x7c4e,0x7c68,0x7ca9,0x7ced,0x7dd0,0x7e07, +0x7dd3,0x7e64,0x7f40,0x0000,0x8041,0x8063,0x80bb,0x6711, +0x6725,0x8248,0x8310,0x8362,0x8312,0x8421,0x841e,0x84e2, +0x84de,0x84e1,0x8573,0x85d4,0x85f5,0x8637,0x8645,0x8672, +0x874a,0x87a9,0x87a5,0x87f5,0x8834,0x8850,0x8887,0x8954, +0x8984,0x8b03,0x8c52,0x8cd8,0x8d0c,0x8d18,0x8db0,0x8ebc, +0x8ed5,0x8faa,0x909c,0x0000,0x915c,0x922b,0x9221,0x9273, +0x92f4,0x92f5,0x933f,0x9342,0x9386,0x93be,0x93bc,0x93bd, +0x93f1,0x93f2,0x93ef,0x9422,0x9423,0x9424,0x9467,0x9466, +0x9597,0x95ce,0x95e7,0x973b,0x974d,0x98e4,0x9942,0x9b1d, +0x9b98,0x0000,0x9d49,0x6449,0x5e71,0x5e85,0x61d3,0x990e, +0x8002,0x781e,0x0000,0x0000,0x5528,0x5572,0x55ba,0x55f0, +0x55ee,0x56b8,0x56b9,0x56c4,0x8053,0x92b0}; + +static const int cns11643_14_ucs_table_size = (sizeof(cns11643_14_ucs_table)/sizeof(unsigned short)); + +/* UCS -> CNS11643 */ +static const unsigned int ucs_a1_cns11643_table[] = { +/* 0x0000 */ +0x00000,0x00001,0x00002,0x00003,0x00004,0x00005,0x00006,0x00007, +0x00008,0x00009,0x0000a,0x0000b,0x0000c,0x0000d,0x0000e,0x0000f, +0x00010,0x00011,0x00012,0x00013,0x00014,0x00015,0x00016,0x00017, +0x00018,0x00019,0x0001a,0x0001b,0x0001c,0x0001d,0x0001e,0x0001f, +0x00020,0x00021,0x00022,0x00023,0x00024,0x00025,0x00026,0x00027, +0x00028,0x00029,0x0002a,0x0002b,0x0002c,0x0002d,0x0002e,0x0002f, +0x00030,0x00031,0x00032,0x00033,0x00034,0x00035,0x00036,0x00037, +0x00038,0x00039,0x0003a,0x0003b,0x0003c,0x0003d,0x0003e,0x0003f, +0x00040,0x00041,0x00042,0x00043,0x00044,0x00045,0x00046,0x00047, +0x00048,0x00049,0x0004a,0x0004b,0x0004c,0x0004d,0x0004e,0x0004f, +0x00050,0x00051,0x00052,0x00053,0x00054,0x00055,0x00056,0x00057, +0x00058,0x00059,0x0005a,0x0005b,0x0005c,0x0005d,0x0005e,0x0005f, +0x00060,0x00061,0x00062,0x00063,0x00064,0x00065,0x00066,0x00067, +0x00068,0x00069,0x0006a,0x0006b,0x0006c,0x0006d,0x0006e,0x0006f, +0x00070,0x00071,0x00072,0x00073,0x00074,0x00075,0x00076,0x00077, +0x00078,0x00079,0x0007a,0x0007b,0x0007c,0x0007d,0x0007e,0x0007f, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x12170, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x12278,0x12234,0x00000,0x00000,0x00000,0x00000,0x00000,0x12131, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x12232, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x12233, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +/* 0x0100 */ +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +/* 0x0200 */ +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x1256f, +0x00000,0x1256d,0x1256e,0x12570,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x1256c,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +/* 0x0300 */ +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x12475,0x12476,0x12477,0x12478,0x12479,0x1247a,0x1247b, +0x1247c,0x1247d,0x1247e,0x12521,0x12522,0x12523,0x12524,0x12525, +0x12526,0x12527,0x00000,0x12528,0x12529,0x1252a,0x1252b,0x1252c, +0x1252d,0x1252e,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x1252f,0x12530,0x12531,0x12532,0x12533,0x12534,0x12535, +0x12536,0x12537,0x12538,0x12539,0x1253a,0x1253b,0x1253c,0x1253d, +0x1253e,0x1253f,0x00000,0x12540,0x12541,0x12542,0x12543,0x12544, +0x12545,0x12546}; + +static const int ucs_a1_cns11643_table_min = 0x0000; +static const int ucs_a1_cns11643_table_max = 0x0000 + (sizeof (ucs_a1_cns11643_table) / sizeof (unsigned int)); + +static const unsigned int ucs_a2_cns11643_table[] = { +/* 0x2000 */ +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x12139,0x12137,0x00000,0x1225d,0x00000, +0x12164,0x12165,0x00000,0x00000,0x12166,0x12167,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x1212d,0x1212c,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x1216a,0x00000,0x00000,0x1216b,0x00000,0x00000, +0x00000,0x00000,0x00000,0x1216f,0x00000,0x00000,0x12223,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +/* 0x2100 */ +0x00000,0x00000,0x00000,0x1226a,0x00000,0x12222,0x00000,0x00000, +0x00000,0x1226b,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x1242b,0x1242c,0x1242d,0x1242e,0x1242f,0x12430,0x12431,0x12432, +0x12433,0x12434,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x12635,0x12636,0x12637,0x12638,0x12639,0x1263a,0x1263b,0x1263c, +0x1263d,0x1263e,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x12258,0x12255,0x12257,0x12256,0x00000,0x00000,0x12259,0x1225a, +0x1225c,0x1225b,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +/* 0x2200 */ +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x12261,0x00000,0x00000, +0x00000,0x00000,0x12235,0x00000,0x00000,0x00000,0x1223c,0x12249, +0x12248,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x12245,0x12246,0x1224d,0x00000,0x00000,0x1224e,0x00000, +0x00000,0x00000,0x00000,0x00000,0x12250,0x1224f,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x12244,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x1223d,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x1223b,0x1223e,0x00000,0x00000,0x00000,0x00000,0x12239,0x1223a, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x12247,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x1224a, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +/* 0x2300 */ +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x14221,0x14222,0x14223,0x14224,0x14225,0x14226,0x14227,0x14228, +0x14229,0x1422a,0x1422b,0x1422c,0x1422d,0x1422e,0x1422f,0x14230, +0x14231,0x14232,0x14233,0x14234,0x14235,0x14236,0x14237,0x14238, +0x14239,0x1423a,0x1423b,0x1423c,0x1423d,0x1423e,0x1423f,0x14240, +0x00000,0x14241,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x12621,0x12622,0x12623,0x12624,0x12625,0x12626,0x12627,0x12628, +0x12629,0x1262a,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x1262b,0x1262c,0x1262d,0x1262e, +0x1262f,0x12630,0x12631,0x12632,0x12633,0x12634,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x12339,0x00000,0x1233a,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x1233c,0x00000,0x00000,0x00000, +0x1233d,0x00000,0x00000,0x00000,0x1233e,0x00000,0x00000,0x00000, +0x1233f,0x00000,0x00000,0x00000,0x12337,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x12336,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x12335,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x12334,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x12333,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x12344,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x12345,0x00000, +0x00000,0x12347,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x12346,0x00000,0x00000,0x12340,0x12341,0x12343, +0x12342,0x1234c,0x1234d,0x1234e,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x12324,0x12325,0x12326,0x12327,0x12328,0x12329,0x1232a, +0x1232b,0x12332,0x12331,0x12330,0x1232f,0x1232e,0x1232d,0x1232c, +0x00000,0x00000,0x00000,0x00000,0x12338,0x1233b,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x1217c,0x1217b,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x12175,0x12174,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x1217e,0x1217d,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x1217a,0x12179, +0x00000,0x00000,0x00000,0x12172,0x00000,0x00000,0x12176,0x12173, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x12348,0x12349,0x1234b,0x1234a,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +/* 0x2600 */ +0x00000,0x00000,0x00000,0x00000,0x00000,0x12178,0x12177,0x00000, +0x00000,0x12254,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x12251,0x12253,0x12252}; + +static const int ucs_a2_cns11643_table_min = 0x2000; +static const int ucs_a2_cns11643_table_max = 0x2000 + (sizeof (ucs_a1_cns11643_table) / sizeof (unsigned int)); + +static const unsigned int ucs_a3_cns11643_table[] = { +/* 0x2f00 */ +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x12121,0x12123,0x12124,0x12171,0x00000,0x00000,0x00000,0x00000, +0x12152,0x12153,0x1214e,0x1214f,0x12156,0x12157,0x1215a,0x1215b, +0x1214a,0x1214b,0x12265,0x00000,0x12146,0x12147,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x12168,0x12169,0x00000, +0x00000,0x12435,0x12436,0x12437,0x12438,0x12439,0x1243a,0x1243b, +0x1243c,0x1243d,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x12126,0x00000,0x00000,0x00000,0x00000, +/* 0x3100 */ +0x00000,0x00000,0x00000,0x00000,0x00000,0x12547,0x12548,0x12549, +0x1254a,0x1254b,0x1254c,0x1254d,0x1254e,0x1254f,0x12550,0x12551, +0x12552,0x12553,0x12554,0x12555,0x12556,0x12557,0x12558,0x12559, +0x1255a,0x1255b,0x1255c,0x1255d,0x1255e,0x1255f,0x12560,0x12561, +0x12562,0x12563,0x12564,0x12565,0x12566,0x12567,0x12568,0x12569, +0x1256a,0x1256b,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +/* 0x3200 */ +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x12221,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +/* 0x3300 */ +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x12275,0x12276, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x12270,0x12271,0x12272,0x00000, +0x00000,0x12274,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x12277,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x12273,0x00000, +0x00000,0x1224c,0x1224b,0x00000,0x00000,0x1226f}; + +static const int ucs_a3_cns11643_table_min = 0x2f00; +static const int ucs_a3_cns11643_table_max = 0x2f00 + (sizeof (ucs_a3_cns11643_table) / sizeof (unsigned int)); + +static const unsigned int ucs_i_cns11643_table[] = { +/* 0x4d00 */ +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x14421,0x14423,0x00000,0x14424,0xe2126,0xe2125,0x00000,0x22126, +0x14437,0x14435,0x14438,0x14436,0x22127,0x14462,0x2212f,0x2212d, +0x14461,0x14460,0x00000,0x00000,0x14562,0x14561,0x14560,0x00000, +0x14563,0x1455f,0x00000,0x00000,0x00000,0x00000,0x14722,0x14723, +0xe2262,0xe2261,0xe2263,0x00000,0xe243f,0x00000,0x14b64,0x00000, +0xe2121,0x00000,0xe212c,0x14439,0x00000,0x14463,0x22130,0x00000, +0x14464,0x22143,0x1486b,0x22531,0x00000,0x00000,0xe2122,0x00000, +0x1443a,0x14465,0x00000,0x14564,0x22144,0xe2740,0x00000,0xe2123, +0x00000,0x00000,0x22121,0x14425,0x00000,0x1443c,0xe2130,0x22128, +0x1443d,0xe212e,0x00000,0x14466,0x00000,0x14565,0x14567,0x14566, +0x00000,0x00000,0x14724,0x14725,0xe2345,0x00000,0x14b65,0xe2b22, +0x1537d,0x14422,0x00000,0x00000,0x22122,0x14426,0x1443f,0x1443e, +0x00000,0x00000,0xe2146,0xe2145,0x00000,0x00000,0x00000,0x00000, +0xe2264,0x14726,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0xe2440,0x00000,0x14b66,0x00000,0x00000,0x00000,0x00000, +0x00000,0xe2b23,0x00000,0x00000,0x00000,0x00000,0x15871,0x2334e, +0xe396c,0xe396e,0x1632a,0x24156,0x24157,0xe2124,0x14427,0xe212d, +0x14468,0xe2265,0x00000,0x14b67,0x14428,0x22129,0x14440,0xe2131, +0x00000,0x14469,0x1446b,0x22131,0x1446c,0x1446a,0x00000,0xe216c, +0xe2266,0x14727,0x00000,0x14b68,0xe2442,0xe2742,0x14b69,0x14f67, +0x00000,0x14441,0x1446d,0xe2147,0x14728,0x1472a,0x14729,0x00000, +0x1486c,0x00000,0x00000,0x14b6a,0x14b6b,0x14f68,0x14f69,0xe2b26, +0xe2b25,0xe2b27,0xe2b24,0x1537e,0x00000,0x00000,0x24158,0xe4033, +0x00000,0x26d44,0x14429,0x00000,0xe2132,0x00000,0xe2133,0x00000, +0x1446f,0x1446e,0x22132,0x14470,0x14476,0xe2149,0x14471,0x14472, +0x22134,0x22133,0x14474,0x14475,0xe214c,0x14473,0xe214b,0xe214a, +0x00000,0x00000,0x00000,0x00000,0x1456a,0x1456b,0x1456c,0x1456d, +0x14569,0x14570,0x2214a,0x00000,0x22146,0x22149,0x14571,0x14623, +0xe216d,0x22148,0x00000,0x1456e,0x1456f,0x14568,0xe2172,0xe2170, +0x22145,0x22147,0x00000,0x00000,0x00000,0x00000,0xe226f,0xe2268, +0x14737,0x2216f,0x14734,0x14738,0x22179,0x2216d,0x14735,0x22171, +0xe226b,0xe2267,0xe2276,0x14736,0xe226e,0x14739,0x00000,0x1472b, +0x22170,0x1473a,0x22174,0xe226d,0x22178,0x22175,0xe226c,0xe2274, +0x22172,0x1472c,0x1472e,0x1473b,0x00000,0x14730,0x2216a,0x14733, +0x14731,0x14732,0x2217a,0x22177,0x2216e,0x1472f,0xe2270,0xe2277, +0x2216b,0x1472d,0xe2275,0x00000,0xe2273,0x22173,0x00000,0x00000, +0x00000,0x00000,0x22176,0x00000,0x00000,0x00000,0x00000,0x00000, +0xe2272,0x00000,0x00000,0x00000,0x2216c,0x22328,0x00000,0x14924, +0x14875,0xe2450,0xe2448,0x22329,0x14872,0xe244f,0x14926,0xe2446, +0x1487a,0xe2445,0x14879,0x2227b,0x1487d,0x14878,0x22322,0x2232a, +0xe244e,0x22326,0xe2449,0x1487b,0xe244b,0xe2443,0x1487e,0x1486f, +0x14929,0x2227d,0xe2444,0xe244c,0x2253d,0x1486d,0x14925,0x1486e, +0x14876,0x14877,0x22324,0x2227e,0x1487c,0x14874,0x2227a,0x14870, +0x22327,0x14927,0x1492a,0x14873,0x14922,0x14928,0x14871,0x22325, +0x14923,0x2232b,0x2227c,0x14921,0x22321,0x00000,0xe6448,0x22323, +0xe6449,0x14b79,0x2253f,0x2254b,0x14b71,0xe2747,0x2254c,0x14b6c, +0x14b76,0x00000,0xe274f,0x14b6f,0x22539,0x14b77,0x22538,0x2253c, +0x22543,0x22541,0x14c21,0x14b7a,0x22533,0x22535,0x14b7c,0x14b70, +0x22536,0x22542,0x22549,0x14b75,0x2253b,0x22534,0x14b74,0x22537, +0x14b78,0x2253a,0xe2744,0x14b73,0xe2751,0x14b6e,0xe2748,0x14b7d, +0x22544,0x14b7e,0x22548,0xe2743,0x22546,0x2254a,0x14b7b,0x2253e, +0x22532,0x00000,0x22540,0x14b72,0x22545,0x14b6d,0x22547,0xe274c, +0xe2749,0xe274b,0xe274a,0xe274d,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x14f78,0x14f6c, +0xe2b2d,0xe2b2e,0x22922,0x2292a,0xe2b36,0x14f6b,0x14f73,0x15021, +0xe2b2c,0x22930,0x2292e,0x22929,0x00000,0xe6263,0xe2b2b,0x14f6d, +0x2292f,0x22925,0x14f7b,0x14f72,0x14f7a,0x2287e,0xe2b32,0x2292c, +0xe2b2f,0x22923,0x14f76,0x22924,0xe2b33,0x2287d,0x14f7d,0x14f70, +0x14f79,0x14f6f,0xe2b28,0x22921,0x22926,0xe2b29,0x2292d,0x14f77, +0x14f74,0x22928,0x14f7c,0x2292b,0x22927,0x14f71,0x14f7e,0x14f75, +0x14f6e,0x14f6a,0x00000,0xe2b35,0x00000,0xe2b34,0x00000,0xe644a, +0x00000,0x00000,0x00000,0x00000,0x22931,0x00000,0x1543a,0x15424, +0xe2f48,0x15434,0xe2f4d,0x15439,0x22d71,0x22d70,0x22d75,0x22d76, +0x15427,0xe2f44,0x15430,0xe2f58,0xe2f4c,0xe2f56,0x1543d,0xe2f46, +0x15431,0x00000,0xe2f4b,0xe2f49,0xe2f47,0x22d6a,0x1542a,0x22d6b, +0xe2f4f,0x1543f,0x00000,0x15436,0x15421,0x15422,0x22d7e,0x15924, +0xe2f53,0x1542f,0x1542e,0x22d6c,0x15432,0x2335e,0x15429,0x22d77, +0x15438,0x15437,0x1542d,0x22d6f,0x22d78,0xe2f45,0x22d69,0x1542c, +0x22d79,0x15435,0x22d6d,0x15423,0xe2f4e,0x15426,0x15425,0x22d7a, +0x15433,0x15428,0x1543c,0x1543e,0x22d74,0x1543b,0xe2f51,0x22d7c, +0x22d6e,0x22d7d,0xe2f43,0x22d72,0x00000,0x22d7b,0xe2f50,0x22d73, +0xe2f54,0xe2f55,0x00000,0x00000,0x1542b,0x00000,0x00000,0xe644b, +0x23366,0x2335a,0xe343c,0x15876,0xe343f,0x2335f,0x23365,0x15875, +0x23358,0x15879,0x2335c,0x23355,0x15877,0x23359,0x1587c,0x15923, +0xe3444,0x2336a,0xe3441,0x23354,0xe3442,0x1587d,0xe2f57,0x23369, +0xe3447,0xe343d,0x15878,0x2335b,0x15874,0x23356,0x23352,0x23360, +0x23353,0x23351,0x2335d,0x23363,0x23364,0x1587a,0xe3440,0x00000, +0x23a3f,0x23361,0x23350,0x23362,0xe344b,0x15926,0x23367,0x15925, +0x2334f,0xe3443,0x23357,0x23368,0x15921,0x1587e,0x1587b,0x15922, +0xe344c,0xe344a,0x15872,0xe3445,0xe3446,0x15873,0x00000,0x00000, +0x15e2e,0xe3975,0x23a42,0x23a3b,0x00000,0x15e2b,0x00000,0x23a43, +0xe3971,0xe3972,0x00000,0x23a39,0x23a3c,0x15e2a,0x23a3d,0xe396f, +0x00000,0x15e2d,0x23a41,0x00000,0x23a37,0x23a36,0x15e2f,0xe3970, +0x15e30,0x15e2c,0x15e31,0x23a35,0x23a40,0x23a3e,0x23a38,0x00000, +0x00000,0x00000,0x15e29,0x23a3a,0x00000,0x00000,0xe644d,0x00000, +0x00000,0x00000,0xe4039,0xe403c,0x16331,0x1632b,0x2415c,0x16334, +0x24162,0x24165,0x1632d,0x1632e,0x2415f,0x1632c,0x24168,0x16332, +0x24169,0xe403a,0x24164,0x16333,0xe4037,0x24159,0x16330,0x2415a, +0x00000,0x24163,0x24161,0xe403d,0x2415d,0x1632f,0x2415b,0x16335, +0x24160,0x24167,0x2415e,0x24166,0xe4036,0xe403e,0x1677c,0x16779, +0xe456b,0x1677a,0xe634c,0x24921,0x24877,0x16778,0x16775,0x24878, +0xe456e,0xe456c,0x16777,0x2487b,0xe456d,0x2487d,0xe4576,0xe634d, +0x24926,0xe4570,0xe4575,0x24925,0x2487e,0x16774,0x24876,0x16772, +0x24879,0x1677d,0x2487c,0xe4571,0x24922,0x16776,0x16773,0x24924, +0x24923,0x1677b,0x00000,0x2487a,0xe4574,0x16c23,0x24f54,0xe4b29, +0x24f51,0x16c24,0x00000,0x16c22,0xe4b2b,0x24f58,0x24f55,0x24f4e, +0x16c21,0xe4b2d,0x16c25,0x24f4f,0x16b7e,0x16c28,0x24f52,0x24f53, +0x16c26,0x16c27,0x24f59,0x24f56,0x24f57,0xe4b2c,0xe4b27,0xe644e, +0x17033,0x25643,0x17030,0x25640,0x17032,0x17034,0xe5031,0x25641, +0x17031,0x00000,0x25642,0xe5035,0x2563f,0xe5030,0xe5034,0x17341, +0x25c49,0x17342,0x25c47,0x00000,0x25c48,0x25c46,0x25c45,0xe5441, +0xe5440,0x25c4a,0x17340,0xe5033,0x00000,0x26144,0x26145,0xe5752, +0x24f50,0x26143,0x17343,0x1782b,0x26537,0x26538,0xe5c32,0x17a62, +0x17a63,0x26b4f,0x26b4e,0x17b58,0x17b57,0x26e7d,0xe606f,0x1442a, +0x14442,0x14478,0x00000,0x14477,0x14573,0x14572,0x1473e,0x1473d, +0x1473f,0x1473c,0xe2278,0x1492c,0x1492b,0x1492d,0xe2454,0x00000, +0xe2453,0xe2451,0x14c23,0x00000,0x14c22,0x14c24,0xe2752,0x15022, +0x00000,0x12279,0x22e21,0x1227a,0x15927,0x1227c,0x1227b,0x23a44, +0xe3976,0x1227d,0x1677e,0x1227e,0xe5e25,0x1442b,0xe2134,0x14479, +0x14740,0x14c25,0xe2b37,0x1442c,0x1447c,0x1447a,0x1447b,0x00000, +0x00000,0x14741,0xe227a,0x00000,0x00000,0x1492e,0x14c27,0x14c26, +0x14c28,0xe2e7b,0x00000,0x00000,0x15440,0x00000,0xe403f,0xe6453, +0x17035,0x00000,0xe2127,0x00000,0xe214d,0xe2148,0xe214e,0x2212e, +0x00000,0x14574,0x14575,0xe2178,0xe2179,0x14742,0x00000,0x2232c, +0xe2755,0x15024,0x15023,0x22e23,0x22e22,0x15928,0xe2128,0x1447d, +0x22135,0xe217a,0x00000,0x00000,0x00000,0xe2457,0x2254d,0xe2b39, +0x15025,0xe2f5b,0x15443,0xe2f59,0x15441,0x15442,0xe2f5a,0x00000, +0xe344d,0x00000,0x17036,0x00000,0x14576,0x00000,0x00000,0x00000, +0x14743,0x2217b,0xe227e,0xe227d,0xe227c,0xe2459,0x1492f,0x14930, +0xe245a,0x2232d,0x00000,0x00000,0x2254e,0x14c29,0x2254f,0x00000, +0x00000,0xe2b3b,0xe2b3d,0xe2b3e,0x22e25,0x22e26,0x15446,0xe2f5e, +0x22e27,0xe2f5f,0x22e24,0x15447,0x15445,0x15444,0x22e28,0xe344f, +0x2336b,0xe344e,0xe397d,0xe397a,0x23a45,0x00000,0xe397e,0x2416a, +0x24927,0xe4b2f,0xe4b2e,0xe4b30,0x16c29,0x17037,0x25644,0xe5442, +0x1442d,0x1443b,0xe212f,0xe2135,0xe2151,0xe217b,0x00000,0x00000, +0xe2322,0x00000,0x00000,0x00000,0xe245b,0xe2759,0x00000,0x00000, +0x15929,0x15e33,0x00000,0x16821,0xe457a,0x22123,0x1447e,0x00000, +0x14579,0x14577,0x14578,0x00000,0x00000,0x14c2a,0xe275a,0x00000, +0x1442e,0x1442f,0x00000,0x14443,0xe2136,0xe2152,0x14521,0x14522, +0x14523,0x2214c,0x1457a,0xe217d,0x2214b,0x00000,0x14747,0xe2325, +0x2217d,0x14745,0x14746,0x2217c,0xe2324,0xe2326,0x14748,0x14744, +0xe2327,0x00000,0x00000,0x00000,0x2232e,0x14f4f,0x2232f,0xe245f, +0xe2461,0x22330,0x00000,0xe245c,0x14932,0x14931,0xe245e,0xe245d, +0x14935,0x14933,0x14934,0xe2460,0x00000,0x00000,0x14c30,0xe275b, +0x14c2f,0x22554,0x22551,0x22552,0xe275e,0x22550,0x14c31,0x14c2d, +0x14c2c,0xe275f,0x14c2e,0x14c2b,0xe275d,0x00000,0xe644f,0x00000, +0x00000,0x14c32,0x00000,0x15027,0x22932,0xe2b3f,0x22553,0x1502c, +0xe2b40,0x22933,0x15028,0x1502b,0x1502a,0x15029,0x15026,0xe2b43, +0x00000,0x00000,0x22e2b,0xe2f68,0x1544a,0x22e2e,0x15448,0xe2f65, +0x00000,0xe2f62,0x22e2a,0x1544b,0x15449,0x1544c,0x22e2c,0x22e2d, +0xe2f60,0x22e29,0x22e2f,0xe2f66,0xe2f61,0xe2f63,0x00000,0xe2f64, +0xe3450,0x15e37,0x1592a,0x2336c,0x2336e,0x2336d,0x2336f,0x1592b, +0xe3a23,0x00000,0x15e34,0xe3a21,0x15e35,0x15e36,0xe3451,0x16337, +0x2416c,0xe4041,0x2416b,0x2416d,0x2416e,0x16338,0xe4040,0x16336, +0x24928,0x24929,0x16823,0x16822,0x24c61,0x00000,0xe4b31,0x16c2a, +0x16c2b,0x16c2c,0x16c2e,0x24f5a,0x24f5b,0x16c2d,0xe4b32,0x00000, +0xe5036,0x17038,0x00000,0x17039,0xe5037,0x00000,0x26539,0x26b51, +0x26b50,0x26e7e,0xe602c,0x14430,0xe2137,0xe2154,0xe2153,0x1457c, +0x1457b,0x00000,0x00000,0x14749,0x00000,0x00000,0x2217e,0x00000, +0xe2328,0x14937,0x14938,0x14936,0x14939,0x22331,0x22332,0x00000, +0x00000,0x00000,0x00000,0xe2463,0xe2462,0xe2761,0x00000,0x00000, +0x00000,0xe2760,0x00000,0x14c34,0x22555,0xe625a,0x14c33,0xe2762, +0x22934,0x15030,0x22935,0x1502f,0xe2b48,0xe2b46,0x00000,0x1502d, +0x00000,0x1502e,0xe2b47,0x00000,0xe2f6f,0x22e30,0xe2f6c,0xe2f6a, +0xe2f6d,0xe2f6e,0x1592c,0x23371,0xe3452,0x1592f,0x23370,0x15b2b, +0x1592e,0x1592d,0x00000,0x15e3a,0x00000,0x15e39,0x15e38,0x16339, +0xe4045,0xe4044,0x1633c,0x1633d,0x1633b,0x00000,0x1633a,0xe4046, +0x00000,0x2492a,0xe4621,0x2492b,0x00000,0xe457e,0xe4b33,0x24f5d, +0x16c2f,0x24f5c,0xe4d2c,0x1703a,0x25c4b,0x17344,0x00000,0x2653a, +0x17961,0x00000,0x14444,0x14524,0x22136,0xe2155,0x14525,0x14526, +0xe2156,0x00000,0x00000,0xe2223,0xe2222,0x1457d,0x1457e,0xe2224, +0x1474a,0x22333,0x22556,0x22557,0x00000,0x15031,0x22e31,0x15931, +0x15930,0x23a47,0x23a46,0x00000,0xe5038,0x14431,0x14527,0x14621, +0x00000,0x15932,0x22124,0x00000,0x2214d,0x14622,0xe2226,0x22222, +0x1474c,0x1474b,0x22221,0x1493a,0xe6450,0xe2465,0x00000,0xe2b49, +0x00000,0x00000,0x1544d,0x00000,0x00000,0x23372,0x00000,0x1633e, +0x2492c,0x16824,0xe4623,0xe4b34,0x25645,0xe5444,0xe5c34,0x2686a, +0xe2129,0x14528,0xe2157,0xe2466,0x22558,0x22936,0x15935,0x15933, +0x15934,0x14432,0x00000,0x14445,0x1243f,0x1452b,0xe2159,0x1452a, +0x14529,0x14625,0x14624,0xe232a,0x2214e,0x22223,0x00000,0xe232b, +0xe232d,0x14c38,0x14c35,0x14c37,0x14c36,0xe2763,0x00000,0x15032, +0xe2b4a,0x00000,0x15e3b,0x00000,0x14433,0xe215a,0x1452c,0xe2227, +0x14627,0x14626,0x00000,0x22334,0x00000,0xe6451,0x14c39,0xe2a5c, +0x00000,0xe212a,0x00000,0x00000,0x22137,0xe2228,0x14629,0x14628, +0x1474d,0x1474e,0x22335,0x1493b,0xe2467,0x1493c,0xe2765,0x14c3a, +0x14c3b,0x14c3c,0xe2766,0x15033,0x22937,0xe2b4b,0x00000,0x1544e, +0xe4047,0x00000,0x22125,0x00000,0x1452d,0x00000,0xe215b,0x00000, +0x00000,0xe2229,0x22224,0xe232f,0x00000,0x00000,0x22336,0x22337, +0x00000,0x00000,0x22559,0xe2767,0x2255a,0x00000,0x22939,0x22938, +0x2293b,0x2293a,0x15034,0xe6452,0x23373,0x15450,0x22e32,0x1544f, +0xe3454,0x00000,0x00000,0x00000,0x23a48,0x15e3c,0xe3a28,0x23a49, +0xe3a27,0xe404a,0xe4049,0xe4048,0x2492d,0x16825,0xe4625,0x00000, +0xe4626,0xe4b35,0x16c30,0xe5445,0x2653b,0x00000,0xe212b,0xe215c, +0x00000,0x22138,0xe222a,0x1462a,0x00000,0x00000,0xe2331,0x00000, +0x00000,0xe2769,0xe276a,0x15936,0xe3455,0xe3a29,0x00000,0x00000, +0x14434,0x14446,0x1452f,0x1452e,0xe215e,0x14530,0xe2160,0x00000, +0xe222b,0x00000,0xe2333,0x00000,0x14c3e,0xe276b,0x14c3d,0x14c3f, +0x00000,0xe2b50,0xe2b4f,0x15035,0xe2b4e,0xe2b4d,0x00000,0x15451, +0xe404b,0x25646,0x1763b,0x14447,0x1462c,0x1463b,0x14636,0x00000, +0x14631,0x14630,0x14637,0x14635,0x1462e,0x1463c,0x1462f,0x1462b, +0x1463a,0x14639,0x14638,0x1462d,0xe2231,0x14634,0xe222d,0xe222e, +0x14633,0xe222f,0x00000,0x1463d,0x14632,0x00000,0x00000,0xe2335, +0xe2337,0x14754,0x00000,0x1475a,0x14756,0xe2339,0x1475c,0x22225, +0x14759,0x1474f,0x14752,0x14755,0x14751,0x14758,0x1475b,0x14750, +0x14753,0x14757,0x1475d,0xe233a,0x00000,0xe233b,0xe2334,0x00000, +0x22340,0x2233d,0xe2476,0x14949,0x2233e,0x1493d,0x1493f,0x14957, +0x14952,0xe2479,0xe247e,0xe2475,0x22345,0x2233f,0x14941,0x14943, +0x22344,0x1494a,0x2233a,0x14956,0x14958,0x1493e,0x1494f,0xe2524, +0x22338,0x14955,0xe2477,0x14946,0xe247b,0x14950,0x14951,0x22339, +0x1494e,0x1494c,0xe2470,0x1494d,0x14953,0x22341,0x14940,0xe2521, +0x14954,0x22343,0x14948,0x14945,0xe2473,0x2233c,0x14944,0x22346, +0x14947,0xe247c,0x1494b,0xe2478,0xe2474,0xe246d,0x14942,0x22342, +0xe247d,0xe2522,0x00000,0x00000,0x2233b,0x00000,0x00000,0x00000, +0x00000,0x00000,0xe2523,0x00000,0x00000,0x00000,0x00000,0xe276e, +0x2256b,0x2256a,0x14c51,0x2256d,0x2256f,0x22564,0x22567,0x2256e, +0x14c52,0xe2774,0xe2778,0x22561,0x22565,0xe2775,0x00000,0x22569, +0x2294a,0x14c4d,0x2294e,0x14c40,0x22566,0x14c41,0x14c4e,0x14c47, +0x14c43,0xe2771,0x22562,0x14c46,0x14c4b,0x14c54,0x22563,0x2255c, +0x14c45,0x2255d,0x2255f,0x00000,0x14c48,0xe276c,0x14c4a,0x2255b, +0x22560,0xe2770,0xe2779,0x14c53,0x14c4f,0x22568,0x14c55,0xe2773, +0x14c4c,0x2255e,0x14c49,0xe276f,0xe2777,0x14c44,0x14c42,0x00000, +0x2256c,0x00000,0x14c50,0x00000,0x00000,0x00000,0xe2b5c,0xe2b5d, +0x22949,0x2293d,0x2294c,0xe2b57,0xe2b59,0x2293f,0x1503c,0x1504a, +0x15038,0x15049,0x15041,0x15046,0x15036,0x2293e,0x22944,0x15045, +0x22950,0x15047,0xe2b5b,0x1503d,0xe2b54,0xe2b5e,0x22946,0x22943, +0x1503b,0xe2b51,0x2293c,0x15048,0x2294b,0x15040,0x2294d,0x1504b, +0x15037,0x15042,0x1503f,0x22941,0x15043,0x22947,0x22948,0x1503e, +0x15044,0x1503a,0xe2b55,0xe6454,0xe2b63,0xe2b61,0x15039,0x22940, +0xe2b53,0x00000,0x00000,0x00000,0x00000,0x00000,0x22945,0x00000, +0x00000,0x00000,0xe2b58,0x00000,0x00000,0x00000,0x2294f,0x00000, +0x22e46,0x1545e,0x22e34,0x00000,0x22e39,0x15457,0x15462,0x22e37, +0x15452,0x1545c,0x15461,0x22e3e,0x00000,0x1545d,0x15460,0xe2f77, +0xe3021,0x22e41,0x15458,0x22e38,0xe2f74,0xe2f78,0xe3022,0x22e44, +0x22e45,0xe2f79,0x1545a,0x22e43,0x15456,0x15465,0x00000,0x22e3b, +0xe2f7b,0x15454,0xe2f7a,0x22e48,0x22e3c,0x22e40,0x15459,0x15464, +0x22e3d,0x1545f,0x22e42,0x22e49,0x23424,0xe2f73,0x22e47,0x15466, +0x15453,0x22e3f,0x22e36,0xe2f76,0x1545b,0x00000,0x00000,0x22e35, +0xe2f7e,0xe3025,0x22e3a,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x22e33,0x15463, +0xe6721,0xe345f,0x2337a,0xe3468,0x15949,0x2342a,0x15947,0x15944, +0x23421,0x15940,0x23425,0x1594b,0x23379,0x2337e,0x2337d,0x15455, +0x15946,0x23428,0xe3466,0x2342b,0x23376,0x00000,0x15e4e,0xe3467, +0x2342c,0x1594c,0x00000,0x1593e,0x1593b,0x23423,0x15938,0x00000, +0x23429,0xe345b,0x1593f,0x2342d,0xe3458,0x23377,0x23427,0x15942, +0x23378,0x2337b,0x23422,0xe3462,0xe3461,0x15943,0x15941,0x1594d, +0xe3457,0xe3a36,0xe3464,0x00000,0x15948,0xe345e,0x1593c,0x15a76, +0x00000,0x1593d,0x2337c,0x1594a,0x15945,0x23426,0x1593a,0x00000, +0xe3459,0x00000,0x15939,0xe6457,0x00000,0x00000,0x00000,0x00000, +0x00000,0xe6456,0xe6722,0xe6455,0x00000,0x23374,0x23375,0x23a4e, +0x00000,0x00000,0xe3a3c,0x15e3d,0x15e40,0x23a59,0x15e54,0x23a5c, +0x15e3e,0x23a55,0x15e44,0x15e4a,0x16143,0xe3a31,0xe3a38,0x15e48, +0x23a52,0x15e55,0x15e41,0x15e49,0x23a5a,0x2417c,0x23a5f,0x23a53, +0x00000,0x23a4a,0x23a57,0x23a51,0x15e47,0x23a5d,0xe3a2e,0xe3a2a, +0x15e43,0x15e57,0x15e50,0xe3a33,0x15e45,0x15e42,0xe3a40,0x15e4d, +0xe3a34,0x23a5e,0x23a50,0x23a56,0x23a58,0x23a4c,0x23a5b,0x15e3f, +0x23a4b,0xe3a42,0x15e46,0x15e56,0x15e52,0x23a4d,0x15e4c,0xe3a3b, +0x00000,0x15e53,0x15e4f,0x15e4b,0xe3a2f,0x23a54,0x00000,0x00000, +0x00000,0x00000,0xe6723,0x15e51,0x00000,0x00000,0x00000,0x2417a, +0x24176,0xe4051,0x24227,0x2416f,0x24178,0x1634c,0x1634d,0x16345, +0x24223,0x1634f,0x24174,0x24173,0x24171,0x24225,0x16343,0x2417d, +0x24172,0x16346,0x2417b,0x16341,0x24177,0x2417e,0x24222,0xe404e, +0x00000,0x24226,0x1634a,0x24170,0x16344,0x24175,0xe3a2b,0x1633f, +0x00000,0x1634b,0x24221,0x16347,0x16348,0x1634e,0x16342,0x12321, +0x16340,0x24179,0xe404c,0x00000,0x00000,0x00000,0xe6725,0x16349, +0xe6724,0x00000,0x24224,0x00000,0xe6458,0x00000,0x16835,0x16830, +0xe462e,0x2493c,0x24938,0xe4628,0x24932,0x1682a,0x16826,0x2493b, +0x16827,0x24935,0x24937,0xe4629,0x2493a,0xe4636,0x1682c,0xe462c, +0x16833,0x1682d,0x00000,0xe462a,0x24930,0x1682e,0x1682f,0x24933, +0x16834,0xe4634,0x24931,0x24936,0x1682b,0x2492f,0x16831,0x16829, +0xe4633,0x00000,0x00000,0x16828,0x24934,0x24939,0xe4631,0x16832, +0xe645a,0x00000,0xe6459,0x00000,0x00000,0x00000,0xe4650,0x2492e, +0xe4630,0x16c37,0x24f6e,0xe4b41,0x24f6b,0xe4b38,0x16c31,0x16c3d, +0x16c3e,0xe4b3d,0x16c34,0x24f69,0x16c36,0x24f61,0x16c3c,0xe4b44, +0x24f6d,0x16c33,0x24f6f,0x16c32,0x00000,0x24f6a,0x24f6c,0x16c35, +0x24f68,0x24f62,0x24f5f,0x00000,0xe4b3e,0x23a4f,0x24f65,0xe4b37, +0x24f5e,0x24f64,0x24f63,0xe4b3b,0x24f60,0xe4b43,0x16c39,0xe4b45, +0xe4b40,0xe4635,0xe4b3c,0x16c38,0xe4b39,0x00000,0xe4b3f,0x16c3a, +0x24f66,0x1703b,0x24f67,0x00000,0x00000,0x00000,0x2564f,0xe503f, +0x25648,0xe5040,0x17047,0x2564c,0x1703f,0x17043,0x2564b,0xe503b, +0x17042,0x1703e,0x17041,0x1703c,0x17046,0x2564d,0x25649,0x17045, +0x25647,0x17044,0x2564e,0x2564a,0x16c3b,0x00000,0x17048,0x25650, +0x17040,0x1703d,0x00000,0xe503d,0x00000,0xe5448,0x25c52,0x25c54, +0x17346,0x25c55,0x25c53,0x25c51,0x25c50,0x17348,0x25c4f,0x17349, +0x00000,0xe5449,0xe5447,0x00000,0x25c4d,0x25c4e,0x17345,0x1734a, +0x17347,0xe645d,0xe645b,0x25c4c,0xe575b,0x1763c,0xe575a,0x26148, +0x26146,0x2614b,0x26149,0xe5758,0x26147,0x2614a,0xe5759,0xe5757, +0xe575c,0x00000,0x00000,0x00000,0x00000,0x1782c,0x2653e,0x2653f, +0x1782d,0x00000,0x26540,0x2653c,0x26541,0x2653d,0x1763d,0xe5a2d, +0xe645e,0x00000,0x2686b,0x2686d,0x17964,0x2686c,0x17963,0x17962, +0xe6726,0xe6727,0xe645c,0xe5e26,0x17965,0x26b53,0x26b54,0x00000, +0x17a65,0x17a64,0x17a66,0x26b52,0xe6728,0x26d46,0x26d45,0xe5f40, +0x17b59,0x17b5b,0x17b5a,0x26d47,0x17c34,0x27034,0x00000,0x00000, +0x00000,0x17c5d,0xe6071,0x27033,0x2707c,0x00000,0x00000,0x2212a, +0xe2177,0x00000,0x1463f,0x1463e,0x00000,0x14760,0x1475f,0x22227, +0x1475e,0x22226,0x00000,0xe233e,0x1495b,0x22349,0xe252c,0x22348, +0x00000,0xe2526,0x14959,0x1495c,0xe252b,0xe252a,0x22347,0xe2529, +0x1495a,0xe2548,0xe2527,0xe2528,0x00000,0x00000,0xe2822,0x22570, +0xe277d,0x22571,0x14c56,0xe277c,0xe2821,0xe277b,0x00000,0x1504c, +0xe2b65,0x22e4a,0x22e4b,0x15467,0x15468,0xe3027,0x00000,0x2342f, +0x1594e,0x15950,0x2342e,0x1594f,0x23a60,0x15e58,0xe3a44,0xe3a43, +0x00000,0x00000,0x16350,0x16351,0x24228,0xe4052,0x16837,0xe4637, +0x16836,0x00000,0x24f70,0x25652,0x25651,0xe5f41,0x2715a,0x14448, +0x22139,0xe2161,0x2214f,0x22150,0xe2234,0x00000,0x00000,0xe6249, +0x14763,0x14767,0x22229,0x00000,0x14765,0x14764,0x22228,0x14766, +0x14762,0xe2341,0xe2342,0x14761,0x2222a,0xe233f,0xe2340,0x00000, +0x00000,0x00000,0x00000,0x14966,0xe2531,0xe253e,0x14963,0xe2530, +0x1495f,0x2234a,0xe2540,0xe2536,0xe252f,0x2234b,0xe253c,0x14961, +0xe252d,0x2234d,0x1495d,0x2234e,0x2234c,0x14960,0x14962,0x14965, +0x14964,0x1495e,0x2234f,0xe2532,0xe2541,0xe2542,0xe2533,0xe2538, +0xe2537,0xe645f,0x00000,0x00000,0x00000,0x00000,0x00000,0xe2535, +0x00000,0x14c5b,0x2257e,0xe2825,0x14c5d,0xe2823,0x14c5c,0xe2826, +0x22621,0x14c5a,0x14c59,0x22575,0x00000,0x22574,0xe2828,0x22572, +0x22577,0x22576,0x22573,0x2257c,0x2257d,0x2257a,0x22578,0x14c58, +0xe2829,0x00000,0x00000,0x2257b,0x14c5e,0x22622,0x00000,0xe282a, +0x22579,0xe2824,0x1504d,0x14c57,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0xe6460,0x1504e,0x22955,0xe2b69,0xe2b68,0x2295b, +0xe2b6c,0xe2b67,0xe2b6a,0x15054,0x22959,0x2295f,0xe2b71,0x22956, +0x2295a,0x2295c,0x2295e,0x22958,0xe2b70,0x22957,0x22952,0x22953, +0x1504f,0xe2b6b,0x15051,0x15050,0x22954,0x2295d,0xe2b6d,0xe2b72, +0xe2b6e,0x00000,0x00000,0x00000,0xe2b66,0x00000,0x15053,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x22951,0x22e55,0xe302a, +0x22e54,0x22e59,0x22e50,0xe3030,0x22e53,0x22e52,0xe302f,0x22e56, +0xe3038,0x22e5a,0x15469,0x1546c,0xe3034,0xe3035,0x22e51,0x22e57, +0xe3033,0xe3028,0xe3037,0x1546b,0x22e4c,0xe302b,0x15052,0x2343d, +0x22e58,0xe3036,0x22e4f,0x00000,0x1546a,0x22e4e,0x00000,0x00000, +0x00000,0x00000,0x00000,0xe3032,0x23434,0xe346e,0xe3471,0x15951, +0x15955,0x23444,0x23432,0x23440,0x15956,0x23442,0xe3472,0x23448, +0xe3474,0x2344c,0xe3469,0x00000,0x23443,0x23437,0x2343f,0xe346b, +0x2344d,0x2344b,0x23441,0x2343c,0x23435,0x23a68,0x23433,0x1595a, +0x2343a,0x1595b,0x15957,0x23430,0x23446,0x23438,0xe346f,0xe3475, +0x23436,0x23449,0x15958,0xe3476,0x2344f,0x15952,0x15954,0x2343e, +0x23439,0x1546d,0x15953,0x2343b,0x2344a,0x2344e,0x23445,0xe6461, +0x23447,0x00000,0xe6462,0xe6463,0x23431,0x00000,0x00000,0x00000, +0xe3a4a,0x23a63,0xe3a45,0x23a6c,0x23a6b,0x15e60,0x23a64,0xe3a47, +0x15e61,0x15e5f,0xe3a50,0x23a66,0x15e5c,0x23a6a,0xe3a4c,0x23a65, +0x23a67,0x23a61,0x15e5a,0xe6336,0x23a74,0x23a73,0x23a70,0x15e59, +0x15e5d,0x15e5e,0x22e4d,0x23a6d,0x15e5b,0x15959,0x23a6f,0x23a62, +0x23a72,0x23a71,0xe3a4e,0x23a75,0xe3a49,0x24236,0xe3a4b,0x23a6e, +0x00000,0x00000,0x00000,0x00000,0x00000,0xe6337,0x00000,0xe6464, +0x23a69,0x2422e,0x1635b,0x1635e,0x16359,0x2422d,0x24231,0x2422c, +0xe4057,0x16353,0x1635d,0x24229,0x16357,0x24230,0xe405b,0x16355, +0x16354,0x24233,0x16356,0x24235,0xe4056,0x24232,0x16352,0xe405e, +0xe405c,0xe4058,0x1635c,0x24237,0x2422b,0x24234,0xe405d,0xe6343, +0x2422a,0xe405a,0xe4059,0x16358,0xe4054,0x1635a,0x00000,0x2422f, +0x00000,0x24238,0xe4643,0xe463e,0x24944,0x16838,0x2494a,0xe4642, +0xe463c,0x1683d,0x24946,0x2494d,0x2493e,0x1683f,0x16839,0x24943, +0x16c3f,0x24942,0x2494b,0x1683a,0xe463d,0x1683e,0x24941,0x24947, +0x2494c,0x2493d,0x1683c,0x24945,0xe463a,0xe4645,0x24949,0x2494f, +0x2493f,0x24948,0xe4638,0x1683b,0x2494e,0xe4641,0xe4644,0xe4640, +0x24940,0x00000,0x00000,0xe6465,0x16c43,0x24f72,0x16c41,0x16c40, +0x24f74,0x24f79,0xe4b46,0x24f75,0xe4b50,0x24f78,0x16c46,0xe4b51, +0x1702e,0x16c45,0xe4b4b,0x24f71,0x24f77,0xe463f,0x16c44,0x24f76, +0xe4b4d,0x24f73,0xe4b49,0x16c42,0xe4b4f,0xe4b4c,0x00000,0xe4b47, +0x00000,0x00000,0x25657,0xe504a,0x25659,0x25654,0x1704a,0x25656, +0xe504b,0x17049,0x25658,0xe5048,0xe504c,0x1704c,0x2565a,0x1704b, +0x25653,0x25655,0xe5049,0x00000,0x00000,0xe544b,0x1734e,0x25c58, +0xe544c,0x1734d,0x25c59,0x1734c,0x25c57,0x1734b,0x25c56,0x00000, +0x1763f,0x1763e,0x26542,0x26544,0xe5a2f,0x26543,0x1782e,0x1782f, +0xe5a2e,0x00000,0x17830,0x2686e,0x17966,0x00000,0xe5e28,0x26f22, +0x26f21,0x17c5e,0x00000,0x14449,0x14531,0x00000,0xe2343,0x14967, +0xe2545,0xe2543,0xe2544,0xe282d,0x22960,0xe2b77,0x00000,0xe3477, +0x00000,0x15e62,0x15e63,0xe3a52,0x24239,0x16840,0x24950,0x24f7a, +0xe6466,0xe504d,0xe2139,0x2213a,0xe2235,0xe2344,0x22350,0x00000, +0xe2b7a,0xe2b79,0xe213a,0xe2546,0x22623,0x22961,0x22e5b,0x1546e, +0xe4646,0xe6560,0x26545,0x00000,0x17a67,0x1444a,0x14640,0x22151, +0xe2236,0x14768,0x14769,0x00000,0x14c5f,0x00000,0x00000,0xe3479, +0x1595c,0x00000,0x16842,0xe405f,0x16843,0x16841,0xe4b53,0x1444b, +0x00000,0x14532,0x14534,0x14533,0x2213b,0x14535,0x14641,0x22152, +0xe2238,0x14642,0xe2237,0x00000,0xe2239,0x00000,0xe2347,0x1476a, +0x1476b,0x00000,0x00000,0x00000,0x2222b,0xe2549,0x14968,0x00000, +0x22351,0x00000,0x00000,0x00000,0x14c63,0x22624,0x00000,0x14c61, +0x14c62,0x14c60,0x22e5c,0xe282e,0xe282f,0xe6467,0x15058,0x15057, +0x15059,0x15056,0xe2b7c,0x22962,0x14c64,0x15055,0x00000,0x1546f, +0x15470,0x00000,0x15471,0xe347b,0x23450,0xe347c,0xe347d,0x00000, +0x15e64,0x23a76,0x1595d,0xe3a53,0xe3a54,0x00000,0xe4060,0x1635f, +0xe4061,0x16845,0x16844,0x24951,0xe4648,0x16c47,0x1704d,0x00000, +0x2614c,0x26d48,0x26f23,0x1444c,0x14643,0xe223b,0x14644,0x22231, +0x1476d,0x14770,0xe234b,0x2222f,0x2222d,0x1476f,0x22230,0x22232, +0x2222c,0x14772,0x14771,0x1476e,0x1476c,0x2222e,0xe234d,0x00000, +0x00000,0xe2555,0x14973,0x00000,0xe254c,0x14970,0x22356,0x22359, +0x22358,0x00000,0x1496a,0x14972,0xe254b,0x00000,0x1496f,0x22355, +0x22353,0x1496e,0xe2556,0xe2553,0xe254e,0x14969,0x1496c,0xe2551, +0x22354,0x2235b,0x22357,0x1496d,0x14971,0x14974,0x22352,0x2235a, +0x1496b,0x00000,0x00000,0x00000,0xe2841,0xe2833,0x14c69,0x14c71, +0xe2838,0x22630,0x22629,0x14c72,0x22634,0x22625,0x2262c,0xe2845, +0xe2840,0x14c68,0x22626,0x14c66,0x2262d,0x22631,0x14c65,0xe283d, +0x22632,0x2262b,0xe2837,0x2262e,0xe2835,0x14c74,0x14c6b,0x22635, +0x22633,0xe283f,0x14c70,0x14c6e,0x2262a,0x14c6d,0x22628,0x22627, +0x14c6c,0x14c6a,0x14c73,0x14c6f,0x14c67,0xe2c26,0x2262f,0xe2846, +0x1505b,0xe2c2d,0x15062,0x22970,0x1505a,0x22968,0x22964,0xe2c21, +0x22974,0x22963,0xe2c2c,0x1505d,0x2296d,0x15060,0x15063,0xe2c2e, +0x1505e,0x22971,0x15061,0xe2c23,0x15478,0x22977,0x22965,0xe2c24, +0xe2c25,0x22967,0x2296e,0x22972,0x22976,0x22973,0x2296c,0x2296f, +0xe2c2b,0xe2c29,0x22969,0x15065,0x2296b,0x2296a,0x22975,0x1505c, +0x22966,0x15064,0xe2c2a,0x1505f,0xe2c28,0x00000,0x00000,0x00000, +0x00000,0x1547e,0x22e64,0xe3040,0x1547d,0xe2c27,0x00000,0x22e62, +0xe6270,0x15472,0xe304f,0x15477,0xe304a,0x22e61,0x22e5e,0x22e63, +0x15473,0x22e5d,0xe304e,0x15476,0x15474,0xe303e,0x22e65,0x15475, +0x15479,0xe303b,0xe3045,0x1547a,0xe3048,0x1547c,0xe3052,0x00000, +0x00000,0x1547b,0xe303c,0xe3522,0xe3538,0x22e5f,0x22e60,0xe304d, +0x00000,0xe304b,0x00000,0x22e66,0x00000,0x23457,0x1595e,0x23b26, +0x23456,0x23469,0xe3528,0xe3524,0x15964,0xe3531,0x23467,0xe3533, +0x15963,0x1595f,0x23470,0x23460,0x23463,0xe352e,0x15967,0x2346d, +0x23465,0x15960,0x15968,0xe352a,0x2346a,0x23468,0xe352f,0xe353b, +0x23459,0x2346e,0x23462,0x2345d,0xe353a,0x23453,0x2346f,0x2345f, +0x23452,0xe3539,0x15966,0x23464,0x23471,0x23461,0x23455,0x2345a, +0x23451,0xe3527,0x15965,0xe353c,0x2345e,0x2345b,0x15961,0x23454, +0xe3530,0x2346c,0x15962,0xe352b,0x2345c,0x23458,0xe3529,0xe3534, +0x2346b,0xe3532,0x00000,0xe3537,0x00000,0xe3535,0x00000,0x15e65, +0x23a7d,0xe3a75,0x23a7a,0x23b2d,0x23b21,0x23b2e,0xe3a7c,0x15e67, +0xe3a63,0xe3a61,0xe3a58,0x23b2a,0x23b27,0xe3a5b,0xe3a77,0xe3a72, +0xe3a59,0xe3a60,0x23b28,0x23b2b,0x23b2f,0xe3a7b,0x23466,0x23b31, +0x2424d,0xe3a66,0x15e68,0x23b32,0x23a78,0x23b24,0xe3a62,0x23b29, +0xe3a5c,0xe3a5e,0x15e66,0x15e69,0x23b30,0x23b33,0x23a7c,0x23a79, +0xe3a73,0xe3a5a,0x23a7b,0xe3a57,0xe3a7a,0x23b22,0x23a7e,0x15e6a, +0xe3a56,0x23b2c,0xe3a79,0xe3a78,0x23b23,0x00000,0x23b25,0x23a77, +0x24241,0x2423f,0x16368,0x16366,0x24249,0x24240,0x2424a,0x24246, +0x2423e,0x2424c,0x2423d,0x24244,0x16365,0x16364,0x16363,0x24242, +0x24247,0x16360,0x16367,0xe4067,0x2423b,0xe4066,0x24245,0x2423a, +0x24243,0x16361,0x24248,0x2423c,0x16362,0x2424b,0xe4064,0xe3a6b, +0xe406a,0xe6468,0x00000,0xe6469,0x00000,0x24955,0x1684a,0x16849, +0x1684b,0x24961,0x24957,0x2495d,0x24952,0x24960,0x2495f,0x24963, +0x2495c,0x16846,0x2495b,0x1684c,0xe464c,0x24954,0x16847,0xe464a, +0x24962,0x16848,0x24956,0x24959,0x2495e,0x24958,0x24953,0xe464f, +0xe4653,0x00000,0x00000,0x2495a,0x24f7c,0x16c4b,0x25021,0x24f7e, +0x25023,0x25025,0xe4b5c,0x16c49,0xe4b58,0x24f7d,0xe4b54,0x24f7b, +0xe4b5e,0x25026,0x25024,0x25022,0xe4b56,0x25028,0xe4b5a,0x25027, +0x16c4d,0x16c48,0xe4b5b,0x16c4a,0x16c4c,0xe4b5d,0xe4b5f,0x25029, +0x25661,0xe5050,0xe5053,0x25660,0x2565f,0xe5051,0x25662,0x2565b, +0xe504f,0x2565c,0x25664,0x2565d,0xe5054,0x1704e,0x25666,0xe504e, +0x25665,0x2565e,0xe5056,0x25c5d,0x17351,0x25c5b,0x25c60,0x25c5f, +0x25663,0xe5450,0x17350,0xe544e,0x25c5e,0x25c5a,0x25c62,0x25c61, +0x1734f,0xe5452,0x25c5c,0xe544f,0x1704f,0xe5451,0x00000,0xe5453, +0x17640,0xe5a31,0xe5761,0xe575e,0x2614d,0x26546,0x26547,0x26548, +0x17967,0x00000,0xe5c36,0x17968,0xe5c39,0x2686f,0xe5c3a,0x26b56, +0x26b55,0xe5e29,0xe5f42,0x26d49,0x26d4a,0x26f24,0x27035,0xe6073, +0x1444d,0x1444e,0x00000,0x1444f,0x14536,0x14645,0x22233,0x14773, +0x14774,0x00000,0x14977,0x14978,0x14976,0x14975,0x00000,0x14c75, +0xe2848,0x00000,0x22636,0x14c77,0x14c76,0x22637,0xe625c,0xe646a, +0x00000,0x15066,0xe2c2f,0x15521,0x22e67,0x00000,0x23473,0x00000, +0x15969,0x15e6c,0x23472,0x15e6b,0xe4071,0x1684d,0xe4072,0x24964, +0x17050,0xe5057,0x17352,0x25c63,0xe5a34,0x17969,0xe5c3b,0x17b5c, +0xe213b,0x22153,0xe223d,0x14646,0x22154,0x14777,0xe2350,0x14775, +0x14776,0x14778,0x00000,0x1497a,0x14979,0xe255a,0x2235c,0x1497b, +0x00000,0x00000,0x2235d,0x22638,0xe284c,0x22639,0xe284a,0x14c78, +0x14c7a,0x14c7c,0x14c79,0x14c7d,0x14c7b,0xe284e,0xe284b,0xe284d, +0x00000,0x00000,0x1506a,0x15067,0x15069,0x1506b,0x15068,0x22e68, +0x22978,0x00000,0x00000,0xe2c32,0x22e6a,0x22e69,0x15527,0x00000, +0x15523,0x00000,0x00000,0x15524,0x15526,0x15528,0x15525,0xe3057, +0x1552a,0x15529,0x00000,0xe3056,0xe3055,0x00000,0x00000,0x1596e, +0x23475,0x23474,0x1596d,0xe3541,0x1596c,0x1596b,0x1596f,0x1596a, +0xe353f,0x00000,0x23b39,0x23b36,0x15e6e,0x23b35,0x23b3a,0x00000, +0x15e70,0x23b38,0x15e6d,0x15e6f,0x23b37,0xe3a7e,0x2424e,0xe4074, +0x2424f,0x24250,0xe4075,0xe4076,0xe4073,0xe6345,0x1684e,0x16856, +0x24965,0x16850,0x16854,0x24966,0x16855,0x16851,0x16852,0x1684f, +0x16853,0x16c50,0x23b34,0x16c51,0x16c4f,0x00000,0x16c4e,0x25667, +0x17051,0x25c64,0x25c65,0xe5a35,0x00000,0x17831,0x1796a,0xe5e2a, +0x14450,0xe223e,0x14779,0x00000,0x00000,0xe255e,0xe255c,0xe255d, +0xe2850,0x1506c,0x00000,0x22e6b,0x1552b,0xe3058,0xe3059,0x15972, +0x15971,0x15970,0x15e71,0x15e72,0x23b3b,0x16857,0x17052,0x14451, +0x2213c,0x14537,0x22155,0xe624a,0xe223f,0x22234,0x1477a,0x00000, +0xe2352,0xe2851,0x14c7e,0xe2c34,0x00000,0x00000,0xe3b24,0x24251, +0xe4078,0xe6525,0x14452,0x00000,0x14538,0x22235,0x00000,0x00000, +0x2235e,0x00000,0x2235f,0xe255f,0x1497c,0x00000,0x00000,0xe2c35, +0x23b3c,0x15e73,0x00000,0x24252,0x00000,0x00000,0xe5454,0x17353, +0x14453,0x14467,0x14539,0x22156,0x14647,0xe2354,0x14a22,0x14a21, +0x1497d,0x1497e,0x00000,0x00000,0x2263a,0x14d22,0x14d23,0x2263b, +0x14d21,0xe2854,0xe2855,0x15070,0x22979,0x1506f,0x1506d,0x1506e, +0x1552e,0x1552c,0xe305a,0xe305b,0x22e6d,0x1552d,0x22e6c,0xe646b, +0x15522,0x23476,0x00000,0xe3543,0x15974,0x15975,0xe3b26,0xe3b25, +0x15973,0xe3544,0x16858,0x24967,0x16c52,0x16c53,0x00000,0x2502a, +0x17354,0x2614e,0x2614f,0xe5a38,0x17a68,0x27036,0x2212b,0x1453a, +0x00000,0x14454,0x00000,0x22158,0x22157,0x00000,0x00000,0xe646c, +0xe2355,0x1477b,0x22237,0x22238,0x22236,0x00000,0x22239,0x00000, +0xe235a,0x00000,0x00000,0x00000,0xe2561,0xe2566,0x22367,0x00000, +0x22362,0x22364,0x22366,0x22363,0x14a26,0x22360,0xe2562,0x22361, +0x14a23,0x14a24,0x22365,0x22368,0x14a25,0x22369,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0xe2563,0x22649,0xe285d,0x22643, +0x2263e,0x14d25,0x22646,0x22644,0x2263d,0x2264a,0x2264d,0x22648, +0x22641,0x14d27,0x22647,0x14d28,0x22642,0x22645,0x2263c,0x22640, +0x2264c,0x14d29,0x00000,0x14d2a,0xe285e,0x2263f,0x2264b,0x14d24, +0x14d26,0xe285c,0xe285f,0xe2857,0x00000,0x00000,0x00000,0x00000, +0x00000,0xe2858,0x00000,0x00000,0x00000,0x00000,0x22a2c,0x22a25, +0x22a2b,0x22a24,0x22a26,0x2297e,0x2297c,0xe2c3f,0x22a2d,0x22a2a, +0x2297a,0xe2c3b,0x15072,0x22a28,0x22a29,0xe646d,0x22a27,0x2297d, +0x2297b,0x15071,0x22a23,0x22a21,0xe2c3c,0xe2c42,0x22a22,0x22a2e, +0x00000,0xe2c3e,0xe2c41,0x00000,0x00000,0xe2c43,0xe2c3d,0x00000, +0x15533,0xe3063,0x15532,0xe305f,0x22e6e,0x1552f,0x22e70,0xe3064, +0x15534,0x22e71,0x00000,0xe3061,0x15537,0xe3062,0x15535,0x22e72, +0x22a2f,0x22e74,0xe305e,0x15531,0xe6271,0x15530,0xe6272,0x22e6f, +0x22e73,0x15536,0x00000,0x00000,0x00000,0x00000,0x15977,0x15976, +0xe354b,0xe3548,0xe3547,0x23478,0x2347c,0x2347e,0x15978,0x23523, +0xe3551,0x1597c,0x23525,0xe3552,0x1597e,0xe354f,0x1597a,0x15a24, +0xe3555,0x15a21,0x2347a,0x15979,0xe3b2b,0x23479,0x23477,0x23527, +0x2347b,0xe3546,0x1597b,0x23526,0x15a22,0x23522,0x23521,0x15a23, +0x2347d,0x1597d,0xe354e,0x00000,0xe354a,0x00000,0x23528,0xe3554, +0x23524,0x23b4b,0x23b52,0x23b47,0x15e76,0x23b43,0x23b53,0x23b3d, +0x23b50,0x23b4e,0x23b48,0xe3b36,0x23b51,0x23b4a,0xe3b28,0x23b42, +0x23b54,0x23b40,0x23b4d,0x23b3e,0xe3b27,0x23b55,0xe3b37,0x15e77, +0xe3b2a,0x23b4f,0x24255,0x23b41,0x15e74,0xe3b2e,0x23b45,0xe3b34, +0x15e75,0x23b44,0x23b49,0xe3b33,0x00000,0x23b46,0x00000,0xe3b31, +0x00000,0x23b4c,0x00000,0xe3b2d,0x00000,0x00000,0x24259,0x00000, +0xe4121,0x00000,0x2425c,0x24254,0xe407c,0x24256,0xe407a,0x2425b, +0x2425a,0x16369,0x00000,0x23b3f,0x24258,0xe4079,0xe407d,0x1636a, +0x00000,0x24253,0x24257,0x00000,0x00000,0xe646e,0x00000,0x2496e, +0xe465c,0x24975,0x2496c,0xe4654,0x24973,0x2496a,0x24972,0x24976, +0x24969,0x2496d,0x24968,0xe4656,0x16859,0x00000,0x2496b,0x1685a, +0x24971,0x24970,0x2496f,0xe4659,0xe465a,0x24974,0xe646f,0xe4b65, +0xe4b66,0xe4b63,0x2502e,0x25030,0x16c55,0x25031,0xe4b6b,0x2502c, +0xe4b67,0x2502b,0x25035,0xe4b69,0x25033,0x16c54,0x25036,0x2502d, +0x25032,0x25034,0x2502f,0xe4b6a,0xe4b68,0xe6470,0xe5058,0x2566b, +0x25670,0x2566a,0x2566f,0xe505b,0x25668,0x25672,0x2566e,0x25673, +0x2566d,0x25669,0x25671,0xe505a,0x25674,0x2566c,0xe6471,0x25c66, +0x17358,0xe5457,0x17356,0xe5459,0x17355,0x17357,0xe5455,0xe6472, +0x26150,0xe5762,0x2643e,0x26549,0xe5a39,0x00000,0x26870,0x26871, +0xe5c3d,0x1796b,0xe5c3c,0x26b57,0xe5c3e,0x17a69,0x00000,0x26b58, +0xe5e2d,0x26d4c,0x17b5e,0xe5f43,0x17b5d,0x26d4b,0x17c35,0xe6030, +0x26f25,0x00000,0x00000,0xe213c,0x00000,0x14455,0x1477c,0x2223a, +0x2236a,0x14b56,0x15a25,0xe3557,0xe4b6c,0x14456,0x1464a,0x14649, +0x14648,0x00000,0x00000,0x14a27,0x00000,0x00000,0x15538,0x00000, +0x2425d,0x14457,0x14458,0x14459,0x1453b,0xe2567,0xe2860,0x15073, +0x00000,0x22a30,0xe2c45,0xe2c44,0x00000,0x15e78,0x1445a,0x2213d, +0xe2163,0x00000,0x1464b,0x1464c,0x22159,0x00000,0x1477d,0x00000, +0xe235c,0xe2568,0x2236b,0xe256b,0x14a28,0x00000,0x2236c,0x00000, +0x00000,0x14d30,0xe2862,0xe2861,0x2264f,0x14d2e,0x14d2d,0x2264e, +0x14d2b,0x22650,0x14d2c,0x14d2f,0x00000,0x15074,0xe2c46,0x15076, +0x22a34,0x22a31,0x22a32,0x22a33,0x22a35,0x15075,0x00000,0x00000, +0x22e76,0x22e75,0xe3066,0x1553a,0xe3069,0x15539,0xe3068,0xe306a, +0xe3067,0x00000,0xe355b,0x15a28,0x2352a,0xe3559,0x15a27,0x15a29, +0x15a26,0xe3558,0xe355a,0x00000,0x00000,0x15e7a,0x23529,0x00000, +0x15e7b,0x23b57,0xe3979,0x15e7c,0x23b56,0x15e79,0xe3b3a,0xe3b3b, +0xe3b3d,0x00000,0x24260,0x24262,0x1636b,0x24261,0x2425f,0x2425e, +0x00000,0x00000,0xe465d,0x24979,0x1685f,0x1685d,0x00000,0x1685e, +0x24977,0x24978,0xe4b6d,0x1685b,0x2503a,0x25038,0xe4b70,0x16c57, +0x25039,0x16c58,0x16c56,0x1685c,0x00000,0xe6473,0x25677,0x25675, +0x25676,0x25037,0x25c68,0x17359,0x25c67,0x26151,0x26152,0x25678, +0x2654a,0xe6677,0x1445b,0x1464d,0x14821,0x2223b,0x1477e,0xe2863, +0x14d31,0x1636c,0xe213d,0x1453c,0x1464e,0x15077,0x15e7d,0xe213e, +0x2215a,0xe2247,0x2215b,0xe2248,0x2223c,0xe6678,0x00000,0x14a2a, +0x22370,0x2236e,0x14a2b,0x2236d,0x2236f,0x22371,0x00000,0x14a29, +0xe256e,0x00000,0xe256d,0x00000,0x00000,0x14d35,0x14d36,0x14d33, +0xe2865,0xe2867,0x14d32,0x22a39,0x14d34,0xe2868,0x00000,0x00000, +0x15078,0xe2c48,0x22a38,0x22a3a,0x22a37,0x22a3b,0x15079,0x1553d, +0x22e77,0xe306c,0x22e79,0x1553b,0x22e7a,0x1553c,0x22e78,0xe306b, +0x22a36,0x2352b,0x2352e,0x2352f,0x2352c,0x15a2d,0x15a2c,0x15a2a, +0x15a2b,0x2352d,0xe3561,0xe3560,0x00000,0xe3b3f,0x15a2e,0xe3b40, +0xe3b3e,0x15f21,0x15f22,0x00000,0x15f23,0x24263,0x24265,0x24267, +0x1636e,0x1636d,0x15e7e,0x24266,0x24264,0xe6474,0x2497d,0xe4661, +0xe4660,0x2497b,0x24a23,0x16860,0x24a24,0x24a21,0x16861,0x2497c, +0x2497a,0x24a22,0x16c5a,0x2503c,0x2497e,0x16c5c,0x2503d,0x16c5b, +0x16c5e,0x2503e,0x16c59,0x16c5d,0x00000,0x2567d,0x2567b,0x2567a, +0x2567c,0x25679,0xe505c,0x00000,0x17833,0xe6475,0x26872,0x26873, +0xe5c3f,0x26b59,0x26d4d,0x17d22,0xe213f,0xe2361,0x14d37,0x14a2c, +0xe2869,0xe286b,0x1507a,0xe2c4c,0xe2c4b,0xe306e,0x1445c,0x1453d, +/* 0x5f00 */ +0x00000,0x1464f,0x2223d,0xe256f,0x14a2d,0x22372,0xe286d,0x22a3c, +0x1507b,0x00000,0x16862,0x1445d,0xe2164,0xe2249,0xe2362,0x14822, +0x00000,0xe3b42,0x1636f,0x1445e,0x1453e,0x1453f,0x00000,0x14651, +0x14650,0x00000,0x2223e,0x14823,0x00000,0x22373,0xe2571,0x14a2e, +0x00000,0xe286e,0x22652,0x22653,0x22654,0xe2870,0x14d38,0x14d39, +0x22651,0x14d3a,0x00000,0x00000,0x00000,0x1507c,0x22a3d,0xe2c4d, +0x22e7c,0x1553e,0xe306f,0x22e7b,0xe3562,0x15a2f,0x23530,0x15a30, +0x23531,0xe3563,0xe3b47,0xe3b45,0x15f24,0x00000,0xe3b44,0x00000, +0x24268,0x00000,0xe4122,0x24a26,0x24a25,0x00000,0x16863,0x00000, +0x16c5f,0x2503f,0x17053,0x2567e,0x1735a,0xe5763,0x17b5f,0x26f27, +0xe2140,0xe2141,0xe224a,0xe2351,0x22655,0xe2871,0x22a3e,0x15a31, +0x23b58,0x16370,0xe4123,0xe505e,0x00000,0xe5764,0x17641,0x00000, +0xe6164,0xe2142,0x14a30,0xe2572,0x14a2f,0x1507d,0xe2c50,0x22e7d, +0x00000,0x15a33,0x15d29,0x15a34,0x15a32,0x15f25,0xe4124,0x24a27, +0x16864,0x16c60,0xe5f45,0x2212c,0x2223f,0x00000,0x22375,0x14a31, +0x22374,0x14a32,0x00000,0x00000,0x14d3e,0x22658,0x22657,0x14d3d, +0x14d3b,0x14d3c,0x22656,0xe2876,0xe2875,0x15121,0x22a3f,0x15124, +0x1507e,0x15126,0x15122,0x15123,0x15125,0xe6264,0xe3070,0xe3072, +0x15541,0x15540,0x1553f,0xe3071,0xe6476,0x00000,0x23533,0x15a35, +0x15a38,0x15a36,0xe6477,0x23532,0x15a3b,0x00000,0x15a37,0x23534, +0x15a3a,0x15a39,0x00000,0x00000,0x00000,0x23b5a,0x23b59,0xe3b4b, +0x15f28,0x15f26,0x15f27,0x23b5b,0x16371,0x2426a,0x16372,0x24269, +0x00000,0x00000,0x25040,0xe4663,0xe4664,0x16c62,0x24a28,0x16c61, +0xe4b72,0x16865,0xe6478,0x25722,0x25721,0x1735b,0x25c69,0x2654b, +0x26874,0x26875,0xe5e2f,0x14540,0x00000,0x14652,0x00000,0xe224d, +0xe6251,0x2215c,0xe224c,0x00000,0x14a34,0x14a36,0xe2578,0x22242, +0x22378,0x22377,0x22376,0xe2366,0x22241,0x22240,0x14825,0x14a35, +0x14a33,0x14824,0xe2367,0xe2369,0xe2577,0x14d3f,0x22659,0xe257b, +0x14d40,0x2237d,0x00000,0x22421,0x2237e,0x2265a,0xe2576,0xe2574, +0x2237a,0xe287e,0x14a3a,0x14a38,0xe257c,0x22379,0x2237b,0x22423, +0xe2622,0x14a37,0xe2621,0x2237c,0x22427,0x14d42,0xe257d,0x22424, +0x14a39,0xe2623,0x22422,0x22425,0xe257a,0x14d41,0xe2575,0x14d43, +0x22426,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0xe2878, +0xe2922,0x2266e,0x22661,0x2265f,0x2266d,0x22668,0x1512b,0x14d44, +0x22669,0x2266c,0x15127,0x2266b,0x14d45,0x14d4a,0x14d48,0x22662, +0xe6266,0x2265d,0x22664,0x14d4f,0x2266f,0x15128,0x22665,0x00000, +0x15129,0x14d4b,0x22667,0xe2c5a,0x22a4e,0x1512a,0x2265c,0x14d4c, +0x1512c,0x14d4d,0x14d49,0x14d4e,0x22666,0x2265b,0x2266a,0x14d46, +0xe2877,0xe2c5b,0x2265e,0x22663,0x22660,0x14d47,0xe287a,0x22a40, +0x00000,0x22a41,0x00000,0x00000,0x00000,0xe2921,0x00000,0x00000, +0x22a4b,0x22f23,0x22a4c,0x15132,0x22a4f,0x22a45,0x15131,0x22a47, +0xe6267,0x22a48,0xe2c60,0xe3079,0x22a4a,0x1512d,0xe2c56,0xe3073, +0x15545,0xe2c57,0xe2c5d,0x22a46,0x22a42,0x15546,0xe307e,0x00000, +0x22a50,0x15542,0x22f21,0x22a49,0xe2c54,0x22e7e,0x22a44,0x22a4d, +0xe2c5f,0xe2c61,0x15130,0x15543,0x15136,0x15544,0x22a51,0x22f22, +0x1512f,0x15548,0x15135,0x15134,0x15133,0x15547,0x22a52,0x15549, +0x1512e,0x00000,0x22a43,0xe307a,0xe3078,0xe307b,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0xe2c5c,0x00000,0xe3076,0x15a3c, +0x22f26,0x22f28,0x00000,0x22f2a,0x1554a,0x15550,0x23537,0x22f2e, +0x22f25,0x15a3e,0x23535,0xe3122,0x1554f,0x1554d,0x22f30,0x00000, +0x23536,0x00000,0x22f27,0xe3125,0x1554e,0x22f2b,0x15551,0x22f2d, +0xe3568,0xe3074,0x1554c,0x22f2c,0x22f2f,0x22f29,0xe3127,0x1554b, +0x15a3f,0xe3571,0x22f24,0x15a3d,0xe3572,0x00000,0xe3123,0xe3128, +0x15a40,0xe3121,0xe356f,0x00000,0x00000,0x00000,0xe3126,0x00000, +0x23539,0x23542,0x15f2b,0xe3b54,0x15a42,0x15a47,0x15f2c,0x23544, +0x15a4e,0x23b5d,0x2353a,0x15a46,0x15a49,0x15a44,0x23538,0x23546, +0x23549,0x23b6c,0x00000,0x23547,0x23b61,0x15a45,0x15a4c,0x15a50, +0x23541,0x23b5c,0x23545,0x15a41,0x23b5e,0x23548,0x23b60,0x2353d, +0xe356a,0x15f29,0xe3b56,0x2353b,0x2353c,0x15a4b,0xe3b55,0xe356e, +0x15a4a,0x2353f,0x15a4f,0x23543,0x15a48,0x23540,0xe3579,0x15a4d, +0x15f2d,0x15f2a,0x23b5f,0xe3b58,0x2353e,0xe3b59,0x15a43,0xe3576, +0x00000,0xe3b5a,0xe3b4d,0x00000,0x00000,0x00000,0xe3574,0x00000, +0x15f32,0x15f36,0x23b63,0x16377,0x15f34,0x23b67,0x15f38,0x2426b, +0x23b69,0x16379,0x15f30,0x15f33,0x23b6a,0xe3b5e,0x23b6b,0x23b71, +0x15f3a,0x1637a,0x00000,0x23b6d,0x23b72,0x23b66,0x16426,0xe3b4f, +0x1637b,0x15f39,0x23b64,0x23b73,0xe3b51,0x16425,0x15f37,0x16374, +0x23b70,0xe3b5d,0x15f3b,0x23b68,0x23b62,0x15f31,0x23b65,0x00000, +0x23b6e,0xe412b,0x16373,0x16378,0x15f2e,0x23b6f,0xe3b61,0x16376, +0xe3b62,0xe3b63,0xe3b50,0x15f2f,0x00000,0xe6479,0x00000,0x16424, +0x24a2a,0x24276,0xe4129,0x2426e,0x24a29,0x00000,0x24272,0x24274, +0xe4127,0xe412c,0x24271,0xe466f,0x16423,0x00000,0x24270,0x16427, +0xe466e,0x00000,0xe4128,0x24a39,0xe466c,0xe412e,0x16422,0x16867, +0x24277,0x24a2b,0xe466d,0xe412a,0x1637e,0x2426f,0x24273,0x16866, +0x16375,0x2426c,0x2426d,0x16868,0x1637d,0x16421,0x1637c,0x24275, +0xe647a,0x00000,0x24a2f,0x24a30,0x24a35,0x16c67,0x24a3c,0xe4b73, +0x1686e,0xe4b7e,0x1686d,0x24a37,0xe4b74,0x16c66,0x24a2c,0x1686c, +0xe4671,0x24a3b,0x1686a,0x1686b,0xe4b7c,0x24a38,0x25051,0x16c64, +0x15f35,0xe4672,0x24a3a,0x16c6b,0x24a32,0x00000,0x16c65,0xe466a, +0x16c6a,0x24a2d,0x24a31,0x24a2e,0x24a34,0x1686f,0x16c63,0x16869, +0xe4c21,0x25043,0x24a36,0xe4668,0x16c69,0xe4673,0x16c6c,0x00000, +0x24a33,0xe466b,0x16c68,0x25042,0x00000,0xe4c23,0xe4674,0xe4c24, +0xe4b77,0x25047,0x17057,0x25041,0x2572e,0x25050,0x16c70,0xe4b7a, +0x16c6e,0x17055,0x2504d,0x25049,0x16c74,0xe4b76,0x25725,0xe5068, +0xe4c28,0xe5067,0x16c72,0x25048,0xe4c29,0x25723,0xe4c25,0x2504c, +0x00000,0x2504f,0x25046,0xe4b79,0x16c73,0x00000,0xe4b75,0x16c6d, +0x25724,0x17056,0x2504e,0x16c6f,0x16c71,0x2504b,0x16c75,0x2504a, +0x25045,0x25044,0x17054,0x25052,0x25727,0x25c6b,0x17059,0xe5061, +0x2572d,0xe5063,0x2572b,0xe506a,0x25c6c,0xe5064,0x1705a,0x2572c, +0xe5066,0x25729,0x1735d,0x25c6a,0xe506c,0x25726,0x25728,0x1735e, +0x1705c,0x1735c,0x1705b,0x17360,0x2572a,0x17058,0xe5062,0xe5065, +0xe506b,0x00000,0x00000,0xe6679,0x00000,0x00000,0x2615b,0x00000, +0x26153,0xe5461,0xe545f,0xe545c,0xe545e,0xe545d,0x25c72,0x26154, +0x25c6e,0x00000,0xe545b,0x17642,0x25c70,0x25c6f,0x1735f,0x25c6d, +0x25c71,0x2615c,0x26158,0x2615a,0x00000,0x26155,0x26156,0x00000, +0x26159,0x26157,0x17834,0xe5765,0x00000,0x17837,0x17836,0x17835, +0x1796c,0x26876,0x1796d,0x2654c,0x17a6a,0x26b5a,0x17a6b,0x17b60, +0x17c36,0x26f28,0xe5f46,0x26f29,0x26f2a,0xe613e,0x00000,0x2722a, +0x14541,0x2215d,0x14653,0x00000,0x14827,0x14828,0x14826,0xe236b, +0x14829,0x14a3c,0x14a3b,0xe2625,0x22670,0x14d51,0x14d50,0x00000, +0xe2c63,0x22f31,0x15a51,0x15a52,0x00000,0x00000,0xe3b64,0x15f3c, +0x24278,0x16428,0x16429,0x2427a,0x2427c,0x2427b,0x00000,0x24a3e, +0xe4676,0x24a3d,0x16870,0x24a3f,0xe4675,0x25053,0x16c76,0xe4c2c, +0x1705d,0xe506d,0x17361,0x17643,0x17362,0xe5f48,0x14542,0xe2165, +0xe2166,0xe224e,0x22428,0xe2628,0xe2629,0x22671,0x14d53,0x14d52, +0x14d54,0x15137,0x22a53,0x22a54,0x00000,0xe3129,0x22f32,0x15552, +0x15a53,0x15f3d,0x23b74,0x14543,0x00000,0x1445f,0x14544,0xe2250, +0x2215e,0x14657,0x14656,0x14654,0x14655,0x00000,0x00000,0xe236f, +0x1482c,0x22249,0x2224b,0x1482b,0x22243,0xe236c,0x22244,0xe236d, +0x2224a,0x22246,0x22248,0x1482a,0x22245,0x2224c,0x22247,0xe236e, +0x00000,0x00000,0x00000,0x00000,0x00000,0x14a43,0x14a4c,0x14a4a, +0x22432,0x2242f,0x22437,0x14a48,0x22438,0xe2639,0x14a41,0x22435, +0xe262e,0x14a47,0x22431,0x22430,0x14a45,0x22436,0x14a46,0x14d55, +0x14a40,0x22433,0xe262a,0x22429,0x14a3d,0xe2637,0x14a50,0x2242e, +0x22434,0x14a42,0x14a44,0xe262f,0x2242a,0xe2636,0x2242b,0x2242c, +0x00000,0x14a4f,0x14a49,0x14a4e,0x2242d,0x14a4d,0x14a3f,0x14a3e, +0x14a4b,0xe2635,0x00000,0xe2633,0xe2634,0xe2638,0xe2631,0x00000, +0x00000,0x00000,0x00000,0xe647b,0x00000,0xe2632,0xe2931,0xe292a, +0x14d63,0x2267d,0x22676,0x14d5e,0x14d71,0x22672,0x22679,0x2267b, +0x2267e,0x14d6c,0xe2926,0x2267a,0x22673,0x14d6a,0x22677,0xe2928, +0x22721,0x14d5b,0xe2925,0x2267c,0x14d65,0x14d64,0x22675,0x14d59, +0xe2934,0xe2932,0x14d5a,0x00000,0x14d58,0xe2933,0x14d70,0x14d68, +0x14d62,0x14d56,0x22678,0x14d61,0x14d57,0x14d69,0x14d72,0x22a55, +0x14d66,0x22674,0x14d5c,0x14d5f,0x14d60,0xe292e,0x14d6e,0x14d6f, +0x14d6d,0x14d67,0x14d6b,0x14d5d,0x15138,0xe2930,0xe2937,0xe2935, +0xe2936,0xe292f,0x00000,0x00000,0xe2929,0x00000,0x00000,0x00000, +0x00000,0x00000,0xe2c6d,0x22a5b,0x15144,0x1513c,0x1513e,0x15143, +0x22a67,0x15141,0x22f33,0x15553,0x15146,0x22a58,0x22a60,0x15142, +0x22a5f,0x22a5c,0x22a64,0x22a66,0x1513b,0x1513f,0x15145,0x15555, +0x22a61,0x1513d,0x15148,0x22a5a,0xe2c6f,0xe2c70,0x00000,0x15140, +0x15554,0x1513a,0x00000,0x22a57,0x22a5e,0x22a56,0x22a59,0x22a5d, +0x22f34,0x15147,0x00000,0x22a62,0x22a63,0x22a65,0x15139,0xe2c6c, +0x00000,0xe3132,0x00000,0xe3133,0x00000,0x00000,0x00000,0xe2c6b, +0x00000,0xe2c6e,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x15563,0x22f40,0x15561,0x15562,0x22f36,0x22f46,0xe312c,0x15558, +0xe312f,0xe3135,0x2354a,0x22f48,0x22f42,0xe3138,0x22f39,0xe3137, +0x22f4b,0x22f3c,0x1555e,0x23561,0x22f3f,0x15560,0x15557,0xe313c, +0x22f4d,0x22f41,0x1555a,0x22f3a,0x22f37,0x22f38,0x1555b,0x22f47, +0x22f4e,0x1555d,0x22f3e,0x22f3d,0x15565,0x15564,0x15556,0x1555c, +0x1555f,0x22f4a,0xe312e,0xe3139,0x22f44,0x15559,0x22f35,0x22f4c, +0x22f43,0x22f45,0x22f49,0xe3130,0xe313b,0xe3136,0x00000,0x00000, +0xe647c,0x00000,0x00000,0x00000,0xe647d,0x2354b,0xe3631,0x15a5b, +0x15a6f,0x15a6e,0xe3627,0x15a63,0xe3629,0x2355d,0x23559,0x23556, +0x23568,0x15a5e,0x15a56,0xe3626,0xe3632,0x2355b,0x15f4d,0x15a5a, +0x23563,0xe3622,0x15a70,0x15a6d,0x2355f,0x2354e,0xe357c,0xe362b, +0x15a6c,0x23565,0x2354d,0x15a61,0x15a65,0x23564,0xe3623,0x23557, +0x15a66,0x15a60,0x2354c,0xe357d,0x15f3f,0x23567,0x23555,0x15a6b, +0x23558,0x23566,0x15a6a,0xe3624,0x23b75,0x00000,0x15a57,0x23553, +0x15a5c,0x15a67,0x00000,0x15a62,0x2355c,0x23552,0x23550,0x23562, +0x15a54,0x15a68,0x15a58,0x15f3e,0x23560,0x15a59,0x00000,0x15a55, +0x15a64,0x15a5f,0x15a5d,0x23554,0x15a69,0x23551,0x2355e,0x2355a, +0x23b77,0x23b76,0xe362d,0x00000,0x00000,0x00000,0xe647e,0x00000, +0x00000,0x00000,0xe362e,0x00000,0x00000,0x2354f,0x23c29,0xe3b71, +0x15f41,0xe3b70,0x23c2f,0x23b7c,0x23c2c,0x2427d,0x15f44,0x23c30, +0x23c33,0x15f43,0x23c21,0x23c32,0x23c31,0x15f45,0x23b78,0x15f40, +0x15f48,0xe3b73,0x15f46,0x23c2e,0x00000,0x23c24,0x15f4a,0x23c35, +0x23c2d,0x23c36,0x15f52,0x15f50,0x23c2b,0x23c2a,0xe3b67,0x23c28, +0x23c22,0x15f49,0xe3b66,0x15f47,0x22f3b,0x23b79,0xe3b68,0x2433d, +0x23b7a,0x15f42,0x15f4f,0x24321,0x00000,0x15f4b,0x15f4c,0x23b7b, +0x23c34,0x2427e,0x23c25,0x23b7e,0x15f4e,0x23c26,0x23c23,0xe3b72, +0xe3b6d,0x15f53,0xe6339,0x00000,0x00000,0x00000,0xe3b6f,0x00000, +/* 0x6400 */ +0x00000,0x00000,0x00000,0xe6521,0x00000,0x00000,0x16438,0xe4149, +0xe4132,0x24324,0x24337,0x2433c,0x24330,0x16434,0x24341,0x16431, +0x24322,0xe413a,0x24323,0x1642a,0x16433,0x2432a,0x16436,0x16437, +0x2432b,0xe4138,0x24338,0x2433e,0x16432,0xe413e,0x1642c,0x24329, +0x24325,0x24340,0x2432e,0x2432f,0x24326,0x2433a,0x24331,0x2433b, +0x24333,0xe413d,0x1642d,0x24a40,0x16430,0x1642e,0x2433f,0x24336, +0x24332,0xe4136,0xe4133,0x24327,0x1687a,0x24335,0x16435,0x2432d, +0xe4134,0x2432c,0xe4148,0xe4725,0xe4142,0x1642f,0x1642b,0x24a55, +0x24339,0x24334,0x00000,0x24328,0x00000,0x00000,0xe4144,0xe4145, +0x00000,0xe6676,0x00000,0x24a50,0xe4678,0x24a41,0x24a4c,0xe4728, +0x24a53,0x16878,0x15f51,0x24a51,0x16873,0xe467e,0xe4724,0xe467a, +0x16872,0x24a58,0x00000,0x24a42,0x24a4f,0x24a43,0x24a4e,0x16876, +0x24a52,0x23c27,0xe4721,0x00000,0xe472a,0x24a59,0x24a4a,0x16879, +0x25061,0x16c77,0xe4723,0x24a57,0x24a56,0x1687b,0x25054,0x16c78, +0x25055,0xe4722,0x24a46,0x24a47,0x24a44,0x24a49,0x24a45,0x24a5a, +0x16875,0x16c79,0x16877,0x1687c,0xe467b,0x24a48,0xe4729,0x24a54, +0xe4c2d,0xe4726,0x24a4d,0xe4c35,0x00000,0x25058,0xe4c38,0x16871, +0x16c7c,0x25735,0x2505d,0x2505c,0x2505e,0xe4c30,0xe4c2f,0x2505b, +0x16c7d,0xe4c3b,0x16d25,0x16d22,0xe4c31,0x16d23,0x25056,0x25059, +0x25063,0x16d2b,0x16d29,0xe4c2e,0x2505a,0x23b7d,0x16c7a,0x25060, +0x25057,0xe4c3e,0x16d2c,0x2505f,0x16874,0x16d21,0x24a4b,0xe4c3f, +0xe4c34,0x16d24,0xe4c3d,0x16d28,0x16d2a,0x16d27,0x16d26,0xe4c3a, +0x16c7e,0x25062,0x16c7b,0x16d2d,0xe4c39,0x00000,0xe6522,0x00000, +0x00000,0xe4c37,0x00000,0x17061,0x17062,0x25734,0x1706b,0x17068, +0xe5070,0x1705f,0x17066,0x25736,0x17064,0x1705e,0xe4c32,0x17065, +0xe5077,0x25733,0x17364,0x17060,0x00000,0x17067,0x17363,0x25732, +0x25731,0xe5076,0x17069,0xe506f,0x1706a,0xe5079,0x25730,0x2572f, +0x17365,0x25739,0x17063,0x25737,0xe5075,0x00000,0x00000,0xe5464, +0x17366,0xe5467,0x1736b,0x25c75,0x25c77,0xe576b,0x17368,0xe576d, +0x25c78,0x25c74,0xe576c,0x25c76,0x17369,0x1736c,0xe5469,0x25c73, +0x17367,0x1736a,0x17645,0x25738,0x17644,0x00000,0xe576a,0x1764a, +0x26160,0xe5770,0x17648,0x17649,0x26163,0x2615f,0x17646,0x2615d, +0x17838,0x26161,0x00000,0x26162,0x2615e,0xe576e,0x17647,0x2654d, +0xe5a3b,0x26550,0xe5a3c,0xe5a3a,0x26551,0x2654f,0x26552,0x17839, +0x2654e,0xe5e31,0x00000,0x2687a,0x1796f,0x26879,0x26878,0x26877, +0x1796e,0x17970,0xe6523,0x26b5b,0x17a6d,0x17a6c,0xe5f4a,0xe5f4b, +0x26d4f,0x26d4e,0x26d51,0x17c37,0x17b61,0x26f2c,0x26d50,0xe5f49, +0xe6032,0x26f2b,0x17c39,0x17c38,0x17c5f,0x27037,0x2707d,0x14545, +0x00000,0xe2c72,0x23c37,0x2573a,0xe2167,0xe2168,0x1482d,0x2224d, +0x14a53,0x14a51,0x00000,0x14a52,0x00000,0x22722,0x14d73,0x15149, +0xe2c74,0x22a68,0xe2c76,0x22a69,0xe2c73,0x1514a,0x22f50,0x00000, +0x15566,0x15567,0x22f4f,0xe313d,0x00000,0xe3637,0xe3636,0x15a77, +0x00000,0x15a73,0x00000,0x23569,0x15a7a,0x15a79,0x15a72,0x15a75, +0x15a78,0x15a74,0xe3634,0x00000,0x23c3b,0x15a71,0x15f54,0xe3b74, +0xe3b75,0xe3b76,0x15f56,0x15f57,0x23c3a,0x23c3d,0x15f55,0x23c38, +0x23c3c,0x00000,0x23c39,0xe414b,0x16439,0xe414e,0xe6346,0x24342, +0xe414d,0xe4730,0x1687d,0x24a5b,0x1706c,0x16d2e,0x25064,0x16d2f, +0x16d30,0x25066,0x25065,0x25067,0x2573c,0x00000,0x00000,0x2573b, +0x25c7a,0x25c79,0x1736d,0x1736e,0x26553,0xe5c41,0x00000,0x14546, +0xe2558,0xe2939,0x00000,0xe3140,0x23c3e,0xe3638,0xe3639,0x00000, +0x15f59,0x15f58,0x24343,0x00000,0x26164,0x17a6e,0x26f2d,0x14547, +0x00000,0x15568,0xe3142,0x15a7c,0x15a7b,0x23c3f,0x23c40,0x1643a, +0x24a5c,0x1687e,0x2573d,0x00000,0x14548,0x14658,0xe293b,0x14d74, +0x22723,0x00000,0x22a6a,0x1514b,0x15a7d,0xe363a,0x23c41,0x15f5a, +0x1643b,0x00000,0x25068,0x25069,0x00000,0xe546b,0x25c7b,0x1764b, +0x2707e,0x14549,0xe293c,0x22724,0x14d75,0x1514c,0xe2c77,0x22a6b, +0x00000,0x15569,0x22f54,0x22f52,0x22f53,0x1556a,0x22f51,0xe363c, +0x00000,0xe363f,0xe363d,0x15b21,0x15b22,0x2356a,0x15b23,0x15a7e, +0x23c42,0xe3b79,0x23c43,0x24344,0x00000,0x00000,0x16922,0x16921, +0x00000,0x00000,0x25c7c,0x26165,0xe5a3f,0x26555,0x26554,0x2687b, +0xe2169,0x2213e,0x1514d,0xe3641,0xe4150,0x1454a,0x14659,0xe2251, +0x1482f,0x1482e,0xe2373,0xe2372,0x14830,0x14831,0x2224f,0x2224e, +0x22439,0x14a54,0x2243c,0x2243b,0x2243a,0x2243d,0xe263d,0x00000, +0x00000,0xe625e,0x14d76,0x2272a,0x22726,0x2272f,0xe2943,0xe293e, +0x14d7d,0xe2942,0x14d7b,0x2272b,0x22727,0x2272e,0x14d7a,0x14e23, +0x22729,0x22725,0x14e22,0x2272c,0x14d79,0x2272d,0x14d7c,0x14d7e, +0x22731,0x22730,0x22728,0x14d78,0x14d77,0x14e21,0x00000,0xe2940, +0xe2941,0x00000,0xe2c7e,0xe2c7a,0x22a70,0x22a76,0xe2d23,0x15153, +0x15150,0x22a6d,0x22a72,0xe2c7c,0x15156,0x1514e,0x22a71,0x15151, +0x15154,0xe2c79,0x00000,0x22a74,0xe2c7d,0x1514f,0x22a79,0x15152, +0xe2d21,0x15155,0x22a6e,0x22a73,0x22a77,0x22a6f,0x22a6c,0xe2d24, +0xe2d25,0x22a78,0x22a75,0xe2d22,0xe2c37,0x00000,0x00000,0x00000, +0xe3146,0x15572,0x1556b,0x1556e,0xe314c,0x15571,0xe3144,0x22f57, +0xe3149,0x1556c,0x22f55,0xe3148,0x15570,0xe314d,0xe3145,0x1556d, +0xe3143,0x22f58,0x1556f,0x00000,0x00000,0x00000,0x00000,0xe3642, +0x00000,0x2356e,0x15b25,0x2356d,0x2356f,0x15b24,0x15b29,0x22f56, +0xe314b,0x2356c,0x23570,0xe3644,0x15b26,0x2356b,0x15b28,0xe3645, +0x15b27,0xe3c26,0x23c4a,0xe3b7d,0x23c45,0xe3c25,0x15f5b,0x15f5f, +0x15f5c,0x23c48,0x23c4b,0xe3c23,0x15f5d,0x00000,0x15f5e,0x15f63, +0x2434d,0x23c49,0x15f61,0x23c46,0x23c44,0xe3b7c,0x15f62,0xe3b7e, +0x23c47,0xe3c24,0x00000,0x00000,0x16441,0x00000,0x24345,0x1643e, +0x1643f,0x1643d,0x2434a,0x24349,0x24346,0x16443,0xe415b,0xe4156, +0x24348,0x15f60,0xe4159,0xe4151,0x2434c,0x24347,0x16440,0x1643c, +0x16442,0x2434b,0xe4734,0x00000,0xe4735,0x16925,0x00000,0x24a5f, +0x24a5e,0x24a5d,0x16923,0x00000,0xe4739,0xe4733,0xe4737,0x00000, +0x16924,0x2506c,0x2506f,0x16d32,0xe4c44,0xe4c46,0x16d31,0x25070, +0x2506b,0x16d34,0x2506d,0xe4c41,0x16d33,0x2506a,0xe4c40,0x2506e, +0x17072,0x1706f,0x25746,0x25745,0xe4c43,0x25744,0x2573f,0xe507d, +0x25740,0xe5123,0x00000,0xe507a,0x17070,0xe507e,0x1706d,0x17071, +0x2573e,0x1706e,0x25741,0x25742,0x25747,0xe5122,0xe5471,0x25743, +0xe546f,0xe5470,0x25c7d,0x00000,0xe546c,0xe546d,0x17370,0xe5472, +0x26168,0x1736f,0x26166,0x26167,0x1764c,0x1783b,0x26556,0xe5a43, +0x1783a,0xe5a42,0xe6526,0x2687d,0x2687e,0xe5c42,0x17971,0xe5c43, +0x2687c,0x17a6f,0x00000,0x26f2e,0x17c3a,0x27038,0x27039,0xe613f, +0x1454b,0x00000,0x14832,0x14833,0x14a55,0xe2641,0x22732,0x15157, +0x15573,0x15b2a,0x00000,0x00000,0x15937,0x00000,0x15f64,0x15f65, +0x15e32,0x23c4c,0xe6527,0x16444,0x24a61,0x24a60,0xe5124,0x00000, +0x1454c,0x14834,0x22733,0x14e25,0xe2945,0x14e24,0xe2d27,0x22a7a, +0x22a7b,0xe6632,0x22f59,0x22f5a,0x15574,0x15575,0xe3648,0x15576, +0x23571,0xe3647,0xe3646,0x15b2c,0x00000,0x15f67,0xe3c29,0x15f66, +0x2434e,0x24641,0x24a62,0x25748,0xe5126,0xe6633,0x1764d,0x17972, +0x1454d,0x00000,0x1465c,0x1465d,0x1465b,0x1465e,0x1465a,0xe2252, +0x00000,0x14837,0xe2377,0x22257,0x14836,0x14838,0xe2378,0xe2375, +0x22252,0x22251,0x22254,0x22253,0x22256,0x14835,0x22250,0x22255, +0x00000,0x00000,0x00000,0x00000,0xe2648,0x2243e,0x14a5f,0x2243f, +0x22443,0x14a5e,0xe2649,0x22447,0x22442,0x22445,0x14a57,0x14a58, +0x14a59,0x14a5a,0xe2645,0x14a61,0xe2644,0x22441,0x14a5c,0x14a62, +0xe2647,0x22440,0x22446,0xe2642,0x14a5b,0x22444,0x14a5d,0x14a56, +0x14a60,0xe264a,0x00000,0x00000,0x00000,0xe6257,0x00000,0x00000, +0x00000,0x00000,0x14e3a,0xe2947,0x22735,0x14e26,0x00000,0x14e30, +0x14e31,0x14e29,0x14e3b,0x14e2b,0x2273d,0x14e36,0x22738,0x14e2c, +0x22747,0x22748,0x22740,0x22739,0x14e39,0x22745,0x14e34,0x14e32, +0xe2952,0x22746,0xe2949,0x22744,0x2273c,0x22734,0x2273b,0x14e2d, +0xe625f,0x14e33,0xe294a,0x14e27,0x2273f,0x2273e,0x22736,0xe294f, +0x14e35,0x22742,0x22737,0x14e38,0x22749,0x14e28,0xe2948,0x14e2f, +0x2273a,0x22743,0x14e37,0x00000,0x14e2a,0x14e2e,0x00000,0x22741, +0x00000,0x00000,0xe294e,0xe294c,0xe6528,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0xe6529,0x00000,0x22b3d,0x1515f, +0x1516c,0xe2d36,0x22b38,0x22b2e,0x15165,0x22b2c,0x1515e,0x22b27, +0x15168,0x22b34,0x22b21,0x22b23,0xe2d2e,0x00000,0x00000,0xe2d30, +0x22b26,0x22a7c,0x22b33,0x22b43,0x15163,0x22b28,0x22b3a,0xe2d2d, +0x22a7e,0x22b41,0x22b42,0x22b45,0x22b3c,0x22b2d,0x22b35,0x15169, +0x1515c,0x15164,0x15170,0x15159,0x1515b,0xe2d31,0xe2d2b,0xe2d3a, +0x22b25,0x1516d,0x15166,0x22b3f,0x22b22,0x1516f,0x1516a,0x22b2b, +0x00000,0x00000,0x1516e,0x22b32,0x22b2a,0x15167,0x22b3e,0x22b36, +0xe2d2a,0x15161,0x22b44,0x22b29,0x1515d,0x22b3b,0x22b31,0x15162, +0x22b37,0x1515a,0x22a7d,0x1516b,0x15627,0x15160,0x22b30,0x22b2f, +0x22b24,0xe2951,0x22b40,0xe2d34,0x22b39,0x00000,0xe2d32,0x15158, +0xe2d39,0xe2d37,0x00000,0x00000,0x00000,0xe2d38,0xe652b,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0xe652a,0x00000,0x22f6e,0x1562e,0x22f6f,0xe315d,0x22f63,0x15623, +0x1562f,0xe3157,0x22f5c,0xe3153,0x22f65,0x22f6d,0xe315b,0x22f5b, +0x22f76,0x15577,0xe315e,0xe3164,0xe3150,0x22f75,0x22f70,0xe315f, +0x22f71,0x15621,0x1562c,0x22f67,0xe3156,0x22f68,0x22f72,0x22f69, +0xe3163,0x22f64,0x22f5e,0x22f5f,0x22f6c,0x22f66,0xe3154,0xe314f, +0x15578,0x1557c,0x22f74,0x22f60,0x1562a,0x15626,0xe315a,0x00000, +0x15629,0x15630,0x1557d,0x1562b,0x22f6b,0x1562d,0x1557a,0xe3159, +0x15579,0x22f5d,0x00000,0x22f61,0x15624,0x22f73,0x22f6a,0x22f62, +0x15628,0x15625,0xe2d2f,0x1557b,0x1557e,0xe3162,0xe3158,0x00000, +0xe3161,0xe3160,0xe652d,0x00000,0x00000,0x00000,0xe652c,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x23628,0xe3655,0x23576,0x23577,0x2357b, +0xe3660,0x2362c,0x23629,0xe364e,0x23622,0x23621,0x15b33,0x23625, +0x23634,0x23572,0xe365b,0x23635,0x23627,0x23639,0x2362d,0x15b32, +0x2362b,0x15b2d,0x15b42,0x15b38,0xe3657,0x15b3c,0x15b3b,0x23573, +0x00000,0x23632,0x23638,0x23630,0x23637,0x00000,0xe3651,0x23624, +0x23574,0x23636,0x23626,0x15b30,0x15b3d,0xe365a,0x2362f,0x15b36, +0xe364d,0xe365c,0xe3650,0x2362e,0x23575,0x15b3e,0xe364b,0x15b40, +0x23631,0x15b41,0x15b2f,0x2357c,0x23633,0xe3654,0xe3478,0x15b35, +0x15b3f,0x2357e,0x2362a,0x23579,0x2357d,0x15b3a,0x23578,0x15b2e, +0x15b37,0x15b34,0x23623,0x15622,0x23c63,0x15b31,0xe364c,0xe3652, +0xe365e,0xe365f,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0xe3656,0x00000,0xe3c45,0x15b39,0xe3c41,0x23c66,0x23c7c, +0x23c71,0x15f7b,0xe3c38,0x15f76,0x23c60,0x15f77,0x23c70,0xe3c3e, +0x23c69,0x23c76,0x15f73,0x23c4e,0x23c78,0x15f69,0x23c56,0x15f6c, +0x15f6b,0x00000,0x15f7c,0xe3653,0x23c50,0x23c72,0x23c73,0x15f6e, +0x15f6a,0x23c5e,0xe3c3d,0x15f75,0x23c59,0xe3c32,0x23c74,0x15f71, +0x23c6c,0x23c79,0x23c53,0x23c58,0x23c52,0xe3c2a,0x15f70,0x23c65, +0x24364,0x23c54,0x15f74,0x23c5d,0x23c75,0x15f6f,0x23c5a,0x23c57, +0x23c68,0x15f72,0x15f68,0x15f7e,0x23c6b,0x23c6a,0xe3c31,0xe3c42, +0xe3c39,0xe3c3b,0xe3c34,0xe3c2f,0x23c4f,0x15f6d,0x23c77,0x23c5f, +0x23c61,0xe3c37,0x23c6e,0x23c6d,0x23c4d,0x15f78,0x15f7a,0x23c55, +0x23c5c,0x23c64,0x15f79,0x23c5b,0x23c67,0x23c7a,0x00000,0x23c6f, +0xe3c3c,0x00000,0x00000,0x00000,0xe3c44,0x00000,0xe3c33,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x23c7b,0x00000,0x00000, +0x00000,0xe652f,0x23c51,0x00000,0xe652e,0x00000,0xe3c40,0x24378, +0x1644c,0xe4165,0x24376,0x24361,0x24366,0x2435f,0xe4177,0x24372, +0x24351,0x24358,0x00000,0x24370,0x2437a,0x24362,0xe4168,0x24355, +0x24368,0x2436d,0x24359,0xe416b,0x2436a,0x24356,0xe415d,0xe4175, +0x2435d,0x2435e,0x1644e,0x24371,0x2436f,0xe4173,0x24352,0x24374, +0xe4174,0x24375,0x24377,0x16452,0x1644a,0xe416f,0x2357a,0x2435a, +0x2436c,0x2435b,0x16447,0x16457,0x24373,0x16455,0x16451,0x24350, +0x16449,0xe4179,0x24353,0x16456,0xe4178,0x24363,0x2434f,0xe4176, +0x1644f,0x24367,0x24357,0x16450,0x24360,0x16446,0x15f7d,0x24369, +0x23c62,0x24354,0x00000,0xe416d,0x2436e,0x1644b,0x2436b,0x16448, +0x24365,0x16453,0x2435c,0x24379,0xe416a,0xe417b,0x00000,0x00000, +0x00000,0x00000,0x1644d,0x2452c,0x00000,0xe4172,0x16454,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x24a70,0x24a6e,0xe473a, +0x24b26,0x24a6c,0xe473d,0x24a7e,0x16445,0x16928,0x24a68,0x24b25, +0xe4751,0x24a6d,0x24a7b,0x1692d,0x16926,0xe474e,0x24b23,0xe4746, +0x24a66,0x24b22,0xe4747,0x16938,0x24a77,0x24b29,0x16936,0x24a6f, +0x16927,0x24a71,0x24b21,0x16930,0x24a6a,0x16934,0x1692a,0x24a73, +0x24a69,0x24a63,0xe473e,0x24a7d,0x16931,0x24b28,0x24a64,0x1692e, +0x00000,0x24a79,0xe6352,0x1692f,0x24a6b,0x24a76,0x24a72,0x24a74, +0xe4743,0x16929,0x24b27,0x16937,0x24a75,0xe473b,0x24b2a,0x00000, +0xe473c,0x24a65,0x24a7a,0x1692c,0x16935,0x16933,0x24a67,0x24a7c, +0x16932,0xe4745,0xe4748,0x1692b,0x24a78,0xe474d,0xe4744,0x00000, +0xe4c54,0x24b24,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0xe474c,0x2507c,0xe4742,0x25078,0x25074,0x2512a,0x25127, +0x16d37,0xe4c64,0xe4c60,0x2512e,0x2507b,0x16d42,0x25124,0xe4c4f, +0xe4c51,0x25077,0x25123,0x16d3f,0x25137,0x00000,0x25134,0x25126, +0x25075,0xe4c5f,0xe4c57,0x2512b,0x2512d,0x16d3b,0x25121,0x2507a, +0x25071,0x16d38,0x16d40,0x00000,0x25130,0x16d41,0x25072,0x25136, +0x25129,0x2512f,0x16d3e,0xe4c4d,0xe4c50,0x2512c,0xe4c47,0x25133, +0xe4c5b,0x16d43,0xe4c56,0x16d3d,0x25125,0x25076,0x25138,0x25073, +0x25131,0x16d3a,0xe4c4a,0x2507d,0xe4c49,0x2507e,0x16d39,0x16d36, +0x25079,0x16d3c,0xe4c52,0x16d35,0xe4c62,0x25132,0x25135,0x25122, +0x25755,0xe4c5e,0xe4c59,0x00000,0xe4c61,0xe6530,0x00000,0x00000, +0x00000,0x00000,0x2574d,0xe512c,0x25749,0x17121,0xe513c,0xe5138, +0x17074,0x17079,0x17075,0x25757,0x25762,0x17073,0x2574f,0x25758, +0x25128,0x25759,0xe5128,0xe512b,0x1707a,0xe5140,0x25768,0x1707e, +0x17123,0x2574b,0xe513b,0x1707d,0xe5131,0x25766,0x25767,0x2575d, +0x2575c,0x25754,0xe5129,0xe513e,0x2575e,0x25765,0x25764,0xe512f, +0x17078,0x17076,0x25756,0x25753,0xe5144,0x25750,0x25763,0x17122, +0x25761,0x1707c,0x1707b,0xe5127,0x2575b,0x00000,0x2574a,0x2574c, +0x2574e,0x25760,0x2575a,0x17077,0xe512e,0x25751,0xe5132,0x2575f, +0xe5141,0xe513a,0x00000,0x00000,0x00000,0x00000,0x25752,0xe6531, +0x00000,0x00000,0xe6532,0x00000,0x00000,0xe5475,0x17378,0x25d31, +0x17371,0x25d22,0xe547b,0x25d2d,0x17373,0x25d34,0xe5521,0x25d29, +0xe547c,0x25d24,0xe5476,0x00000,0x25d35,0x25c7e,0x25d2b,0xe5527, +0x1737a,0x25d30,0x25d36,0x25d2a,0x17372,0x25d2c,0x25d21,0x17379, +0xe5523,0xe547a,0x25d33,0x25d26,0x17375,0xe5524,0x25d28,0x25d25, +0x1737b,0x25d27,0x17374,0x17377,0x25d2f,0x25d23,0x25d32,0xe5478, +0x25d2e,0x00000,0xe5529,0xe5774,0x1764f,0x26173,0x17654,0x17655, +0xe5777,0xe5821,0xe5776,0x1764e,0x26172,0xe5778,0x2616f,0x26170, +0x17652,0x2616a,0x2616e,0x17651,0xe577e,0x2616b,0xe5779,0xe5823, +0xe577d,0xe577a,0x17653,0x17650,0xe5822,0x26169,0x2616d,0x26171, +0xe577b,0x00000,0xe6533,0x2655c,0x26559,0x26562,0xe5a44,0x26561, +0x2655f,0x2655a,0xe5a4f,0x1783f,0xe5a45,0xe5a4e,0x00000,0xe5a47, +0xe5a4d,0x2655b,0x1783e,0x17376,0x2655e,0x1783d,0x26563,0x2655d, +0x26558,0x2616c,0xe5a48,0xe5a46,0x00000,0x1783c,0xe6534,0x26557, +0x26924,0xe5c49,0x26923,0x26560,0x17973,0xe5775,0x26927,0x26928, +0x26922,0x26926,0x00000,0x26921,0xe5c47,0xe6535,0x00000,0x00000, +0x26b5f,0x26925,0x17a72,0x17a70,0x26b5d,0xe5e35,0xe5e34,0xe5e33, +0x26b60,0xe5e37,0x26b5c,0x26b5e,0x17a71,0x00000,0xe5f4f,0xe5f4e, +0x26d53,0x26d54,0x17b62,0x26d52,0x00000,0xe6536,0xe6537,0x26f31, +0x17c3b,0x26f2f,0x26f30,0x2703a,0xe6074,0x00000,0x17d23,0x27123, +0x27121,0x27122,0x27124,0xe6140,0xe6165,0xe6141,0x2722b,0x00000, +0x1454e,0x14839,0xe2379,0x14e3c,0x00000,0x2274a,0xe2953,0xe2954, +0x22b46,0xe6269,0xe2d3c,0xe3166,0x22f77,0x22f79,0xe3165,0x22f78, +0xe3167,0x22f7a,0x15b43,0x2363b,0x22f7b,0xe3662,0x2363a,0x2363c, +0x2363d,0x23c7d,0x16022,0x23c7e,0x23d22,0x16023,0x16021,0x23d21, +0xe417d,0x24422,0x2437e,0x2437d,0xe417c,0x2437c,0x2437b,0x16458, +0x24421,0x16939,0x24b2b,0x24b2d,0x1693a,0x24b2c,0x16d45,0xe4c66, +0x16d44,0x25139,0xe4c65,0xe4c67,0x2576a,0x25769,0x2576b,0xe5146, +0xe5145,0x17124,0x00000,0x25d37,0x1737c,0xe552b,0x26174,0x17656, +0x26564,0x17b63,0x1454f,0x1465f,0x1483a,0x14a63,0x14e3d,0x14e3e, +0xe2955,0xe2956,0x15171,0xe2d3d,0xe3168,0x22f7c,0xe3c49,0xe3c47, +0x00000,0xe417e,0x16459,0xe4221,0xe4753,0x00000,0x25259,0x17125, +0x17657,0x14550,0xe2253,0x1483b,0x00000,0x00000,0x2274c,0x14e3f, +0x2274b,0xe2958,0x22b47,0x15172,0x22b48,0x00000,0x15173,0x00000, +0x22f7e,0x15632,0x15631,0xe316a,0x23642,0x23640,0x23641,0x2363f, +0xe3664,0x2363e,0x00000,0x00000,0x23d23,0x23d26,0x16025,0x23d24, +0x16024,0x23d25,0x00000,0x24423,0xe4222,0xe6354,0x24b2e,0x24b2f, +0x24b30,0xe4754,0x2513c,0x2513b,0x16d46,0x2513a,0x2513d,0x2576c, +0x00000,0x00000,0x2576d,0x2576e,0x00000,0x25d38,0x1737d,0x17658, +0x26565,0x00000,0x17a73,0x2213f,0xe2959,0x15174,0x22b49,0x15633, +0x00000,0x00000,0x15b44,0xe3665,0x16026,0x23d27,0xe3c4b,0x1645b, +0x1645a,0xe4226,0x00000,0x24b31,0x24b32,0x16d47,0x16d48,0x25770, +0x2576f,0x26175,0x26f32,0x14551,0x22140,0x14660,0xe237a,0x14a64, +0x22448,0xe295a,0x15175,0x1645c,0x14552,0x00000,0x22b4a,0x15176, +0x22b4b,0x00000,0x1737e,0x14553,0xe6538,0xe6539,0x2274d,0x00000, +0x22b4c,0xe2d42,0x23025,0x23024,0x23022,0xe316e,0x23021,0x23026, +0x23023,0xe316c,0xe316d,0x15b45,0x15b46,0xe3666,0x00000,0x16027, +0x23d28,0x00000,0x23d29,0x23d2a,0xe3c4d,0x00000,0xe653a,0x24427, +0x24428,0x24426,0xe4228,0x24424,0x24425,0x1645d,0x24b33,0x25140, +0x2513f,0x2513e,0x25141,0x25772,0x25771,0x17126,0x25773,0x00000, +0x17421,0x25d39,0xe552d,0x26176,0x26566,0x26d55,0x00000,0x14554, +0x14662,0x14661,0x00000,0x14e40,0x22141,0x2215f,0x1483c,0x00000, +0x22258,0x22449,0x2244a,0x14e41,0xe295d,0x2274e,0xe653b,0x15177, +0x22b4d,0x22b4e,0x00000,0x15634,0x15638,0x23027,0x15637,0x15635, +0x15636,0x00000,0x23643,0x15b47,0x1602a,0xe3c4e,0x16028,0x16029, +0x23d2b,0xe4229,0xe422a,0x1693b,0x14555,0x00000,0x22160,0xe2257, +0x14663,0xe2254,0x00000,0x22163,0xe2421,0x00000,0x14666,0x22162, +0x14665,0x14664,0x14a65,0x22161,0xe2258,0xe2259,0x22259,0x00000, +0x00000,0x00000,0x2225d,0x2225f,0x22260,0x14846,0x14847,0x2225c, +0x14842,0xe237d,0x2225a,0xe2425,0x2225e,0x14843,0xe2655,0x1483e, +0xe237c,0x1483f,0xe2423,0x14845,0x2225b,0x1483d,0x14a66,0x14840, +0x14841,0x14844,0x00000,0xe653c,0x00000,0x2245b,0x22459,0x2244c, +0x14a72,0x22453,0x14a6d,0x2244d,0xe2964,0x22455,0xe2650,0x22452, +0x14a70,0x22451,0x14a77,0x2245a,0x14a79,0xe2653,0x14a7b,0xe237e, +0x2244b,0xe2657,0x14a6e,0x2245c,0xe2651,0x14a75,0x14a78,0xe264c, +0x22765,0x14a68,0x14b21,0x14a76,0x2244e,0x14a6b,0x14a7a,0x22456, +0x14a69,0x14a6a,0x22763,0x2244f,0x14a71,0x14a7c,0x2245d,0x22450, +0x14a6f,0xe264d,0x14a74,0x2274f,0x14a7d,0x22457,0x14a73,0xe2963, +0x14a7e,0x14a67,0x22454,0x14a6c,0x22458,0x22764,0xe264e,0xe2652, +0xe265c,0xe2659,0xe2656,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0xe265b,0x14e4d,0x14e5d,0x22756,0x14e54,0xe2d4e, +0x2276b,0x14e45,0xe296b,0x14e48,0x22762,0x00000,0x22754,0x22758, +0x14e50,0x14e52,0x2275b,0x14e59,0x14e4b,0x14e49,0x14e4a,0x14e58, +0x22767,0x14e53,0x2275a,0x2275c,0x14e51,0x14e56,0x2275d,0x2276a, +0xe296d,0x15178,0x14e5c,0xe6261,0x14e46,0x22769,0xe296c,0x2276d, +0x22759,0x2276f,0x22760,0x14e4f,0x22755,0x14e4e,0x14e60,0x14e55, +0xe296a,0x22753,0x22b57,0x14e5b,0x14e5f,0x22761,0x22766,0xe2965, +0x14e61,0x14e5a,0x14e4c,0x14e42,0xe2969,0x14e47,0xe6260,0x22757, +0x14e43,0x2276e,0xe2967,0x22751,0x22750,0x2275e,0x22752,0x14e5e, +0x15639,0x14e57,0x2275f,0x14e44,0xe2d4f,0x15229,0x00000,0x00000, +0x00000,0x2276c,0x00000,0x00000,0x00000,0x00000,0x00000,0xe2d46, +0x22b5e,0x22b61,0xe2d50,0x22b64,0x22b59,0xe2d48,0xe2d4a,0x22b67, +0x22b6a,0x22b6c,0x22b56,0x15179,0x1517e,0x2302c,0x15230,0x22b65, +0x22b6d,0x22b5d,0x22b55,0xe2d49,0xe2d47,0xe2d4d,0x23047,0x15223, +0x22b62,0x22b5a,0x22b5c,0x15228,0xe317a,0x22b5f,0x15222,0x22b52, +0x22b68,0xe2d4b,0x22b6b,0xe2d45,0xe2d57,0x1517d,0xe2d53,0x1522b, +0x22b4f,0x1522d,0x1517b,0x15231,0x22b69,0x22b51,0x1522e,0x23041, +0x22768,0x15221,0x1517a,0x22b58,0x22b50,0x1522f,0x15227,0x22b63, +0x1522c,0x1522a,0x22b5b,0x15224,0x22b53,0x15225,0x15226,0x22b54, +0x22b66,0x1517c,0x22b60,0x00000,0xe2d55,0xe2d51,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0xe3177,0xe3173, +0x2302f,0x15641,0x15646,0xe3179,0xe3226,0xe3176,0x23038,0x2303e, +0x2303a,0x2302d,0x23030,0x23029,0x2302a,0x1564d,0x1563e,0x23039, +0x23042,0x15648,0x1563a,0xe316f,0x15643,0x23031,0x15645,0x23032, +0x2303c,0xe3222,0xe3225,0xe3172,0x15647,0x2304b,0x2302b,0x15640, +0x1563f,0x1564b,0x23028,0x23049,0x2303d,0x2304a,0x23044,0x23036, +0x23045,0xe3221,0x2303f,0x23048,0x23046,0x1564c,0x23037,0x1563d, +0x1563c,0x15644,0x1564a,0x23043,0x15649,0x23034,0x15b48,0xe3178, +0x2304c,0x23033,0x2302e,0x15642,0x1564e,0x1563b,0xe3227,0x2303b, +0x23040,0xe317d,0xe317b,0xe317c,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0xe653d,0x00000,0x00000, +0x00000,0x00000,0x15b6a,0x23645,0x23649,0xe366f,0x15b57,0x15b55, +0xe367a,0xe3721,0x15b4c,0x23647,0x23646,0x15b60,0xe3c50,0x2364c, +0x15b5a,0xe3672,0x2365e,0x2366a,0x15b49,0x2365b,0x23654,0x15b6c, +0x23644,0xe366a,0x23660,0xe366b,0x15b69,0x15b5d,0x15b68,0x15b53, +0x23650,0x23662,0x2365a,0x15b54,0x15b4e,0x23668,0xe366c,0x23661, +0x23663,0x15b56,0x15b5e,0x23665,0x2364e,0x2365f,0x23653,0x23667, +0x15b63,0x15b4b,0x15b61,0x23658,0x23656,0x23657,0x15b58,0x23652, +0x23651,0x15b4d,0x2364b,0x23669,0x15b4f,0x23655,0x15b6d,0xe3674, +0x15b67,0x2364a,0x15b64,0x15b62,0x15b6b,0x2365c,0x15b66,0x23035, +0x2365d,0x15b65,0x23664,0x15b4a,0x23659,0x15b5c,0x2364d,0x15b5b, +0xe367c,0x15b59,0x15b51,0x15b50,0x23d2c,0x23666,0xe3c5d,0xe3728, +0x2364f,0xe3726,0xe3723,0x23d41,0xe3670,0x15b52,0xe3677,0xe3724, +0xe3676,0xe3725,0xe3679,0x00000,0xe367d,0x00000,0x00000,0xe653e, +0x00000,0x00000,0xe3729,0x00000,0x00000,0x00000,0x00000,0xe3727, +0xe3c54,0x16047,0x15b5f,0x16035,0x23d3b,0x16043,0xe3c52,0x23d2f, +0x16032,0x1602e,0x23d4d,0x16034,0x16038,0x16033,0x1603c,0x23d51, +0x23d48,0xe3c6b,0xe3c6d,0x23d36,0x16041,0x1603b,0x23d42,0x1602b, +0x23d4e,0x23d47,0x1602f,0x23d3c,0x1603e,0x23d59,0x23d5a,0x00000, +0x1602c,0x23d4c,0x16040,0x23d40,0x23d32,0x23d33,0x16044,0x23d37, +0x23d3e,0x23d38,0xe3c5a,0x16042,0x1604a,0x23d34,0x23d2d,0x23d2e, +0xe3c56,0x23d30,0x16031,0x23d3d,0xe3c6e,0x1603f,0x16048,0xe3c58, +0xe3c69,0x23d3f,0x23d57,0x23d4f,0x1602d,0x23d55,0x16039,0xe3c66, +0x16037,0xe3c64,0x23d5b,0x16036,0x23d45,0x23d39,0x23d43,0x1604d, +0x23d49,0x23d46,0x23d35,0x16049,0x23d53,0x23d50,0x23d58,0x16030, +0x23d44,0x1604c,0xe3c5b,0x23d4b,0xe423a,0xe3c60,0x1603a,0x1603d, +0xe3c5c,0x23d4a,0x1604b,0x23d3a,0x23648,0xe3c51,0xe3c6c,0x23d54, +0x23d52,0x23d56,0x00000,0xe3c62,0xe6542,0x00000,0xe3c63,0x00000, +0xe3c68,0x00000,0x00000,0x00000,0xe6540,0x00000,0xe633d,0x00000, +0x23d31,0x16046,0xe653f,0xe6541,0x00000,0x24447,0x24446,0x2442c, +0x16463,0xe4230,0x24445,0x2442f,0x24430,0x00000,0x1646d,0x2444e, +0x16468,0x24444,0xe4233,0x24429,0x1646e,0x16464,0x24438,0x2442e, +0x24431,0x24449,0x1645e,0x24450,0x24448,0x16467,0x2443d,0x16472, +0xe422e,0xe4236,0x16471,0x1646b,0xe4240,0x00000,0x2444f,0x1645f, +0x2443b,0x24432,0x2443f,0x2444b,0x16473,0xe4239,0x16461,0x2443a, +0xe422d,0x24433,0x1646a,0xe4231,0x16469,0x24436,0x24440,0x2444a, +0x2442d,0x24437,0x16462,0x24441,0x1646f,0x16466,0x24434,0x16465, +0x2442b,0x24439,0x2444d,0x16045,0x16957,0x2443c,0x24b34,0x2443e, +0x2444c,0x1646c,0x24435,0x16460,0x16470,0x16d5a,0x2442a,0x00000, +0x24443,0xe4244,0xe423e,0xe4247,0x24442,0xe423d,0x00000,0x00000, +0x00000,0x00000,0x00000,0xe4245,0x00000,0x00000,0xe423f,0x00000, +0xe423b,0xe4246,0x00000,0x24b50,0x16954,0x24b45,0x24b4a,0x16949, +0xe4756,0x24b36,0x16956,0xe4757,0x16940,0x24b35,0x24b56,0x16958, +0x24b39,0x24b49,0xe4765,0x24b3b,0x24b59,0x24b55,0x1693e,0x16948, +0x2515b,0x16955,0x16946,0x24b37,0xe4763,0x24b54,0x1694a,0x24b51, +0x24b5e,0x24b3d,0x24b46,0xe4c78,0xe475b,0x24b5c,0x24b52,0x16945, +0xe4c6a,0xe4764,0x24b44,0x1693f,0x1693d,0x1694f,0x00000,0xe475f, +0x24b42,0x24b3f,0x24b40,0xe475a,0x24b58,0xe475c,0x24b5d,0x24b5b, +0x16943,0x24b5f,0x16947,0x1694e,0x00000,0x24b38,0x25143,0x24b41, +0xe475e,0x16941,0x16953,0x16950,0x16944,0x24b4b,0x24b3c,0x16951, +0x24b4d,0x1694b,0x1694d,0x1693c,0xe475d,0x24b4f,0x24b47,0x24b3a, +0x1694c,0x24b57,0x24b5a,0x24b43,0x24b4e,0xe4c74,0x16942,0x16d49, +0x24b4c,0x25142,0xe4762,0x24b53,0xe4761,0x00000,0x00000,0x00000, +0xe6544,0xe6545,0xe4766,0x00000,0xe6543,0x00000,0x24b3e,0x2514c, +0x25156,0x16d4c,0x25155,0x25161,0x16d4e,0x25153,0x00000,0x25157, +0x16d59,0xe4c7d,0x2514e,0x16d51,0xe4c73,0x2515a,0x2577b,0x16d5d, +0x16d5c,0x2515c,0x2514b,0x25166,0x16d57,0xe4c6b,0x16d4d,0x2515f, +0x00000,0x25163,0x25168,0x2515d,0x25151,0x16d50,0x16d53,0x16d5b, +0x16d56,0xe4c75,0x25154,0x24b48,0xe4c7e,0xe4c6c,0x25150,0x25167, +0x16d52,0xe4c79,0x16d55,0x25169,0x16d4a,0x2515e,0x25144,0x25164, +0x1742a,0xe4c7a,0x25152,0x00000,0x16d4b,0x2514d,0x16d4f,0x25145, +0x16952,0x25149,0xe6363,0x25162,0x2514a,0x25148,0x16d54,0xe4c7b, +0x25160,0xe4c77,0x25147,0x25159,0x25158,0x25165,0x2514f,0x16d58, +0x00000,0xe6547,0x00000,0x00000,0x00000,0xe6546,0x2577e,0xe5156, +0x17133,0x17129,0x2582c,0x25776,0x1712b,0x25824,0x17132,0x1712d, +0x25822,0x25d3b,0x25828,0x2582e,0x25827,0x25774,0x25825,0x25830, +0x25832,0x17128,0x25831,0x1712e,0x17134,0xe5154,0x17131,0xe5158, +0x2582b,0x17130,0x25826,0xe514d,0x25778,0x2577d,0xe5150,0x2582a, +0x1712f,0x1712c,0x17127,0x1712a,0x2577c,0x00000,0x25146,0x25777, +0x2577a,0x2582d,0x25821,0x25775,0x25d3a,0x2582f,0x25779,0x25829, +0xe4c71,0x00000,0x00000,0xe5155,0x25d3d,0x1742e,0xe5530,0xe552f, +0x17422,0xe5535,0xe5536,0x17426,0x25d3f,0x25d45,0x25d43,0x17424, +0x17425,0x1742c,0x25d46,0x25d3e,0x17427,0xe5531,0x25d42,0x25d41, +0x25d47,0x1742d,0xe5537,0x17428,0x1742b,0x25d40,0x1742f,0x17429, +0x17430,0x17423,0x25d44,0xe5a55,0x25d3c,0xe5159,0xe5539,0x26225, +0xe6548,0x00000,0x1765d,0x26222,0x26224,0xe5828,0x1765b,0x2617e, +0x26221,0x2617a,0xe582a,0xe5827,0x25823,0x2617b,0x1765c,0x26177, +0xe5826,0x17659,0x26226,0x1765a,0x26178,0x26179,0x2617d,0x1765f, +0xe5829,0x1765e,0x00000,0xe582b,0x2617c,0x17845,0x2656a,0x26570, +0x17846,0x26567,0x17843,0x17840,0x26572,0x17844,0xe5a52,0x17841, +0x26569,0x2656c,0x2656d,0x2656e,0x26571,0xe5a54,0x26223,0x26568, +0x17842,0x2656f,0x26934,0x2656b,0xe5a53,0xe654a,0xe6549,0x2692b, +0x17975,0x2692e,0x17976,0x26937,0x2692d,0x2692a,0xe5c51,0x2692c, +0x26930,0x26933,0x26932,0x26936,0x26929,0xe5c4f,0x17974,0x26931, +0x26935,0x26938,0x2692f,0x26b61,0x26b62,0x26b66,0x26b67,0xe5e3c, +0x26b64,0x26b65,0x26b63,0xe5e3a,0x17a74,0xe5e3b,0x00000,0x00000, +0x00000,0x17b64,0x26d59,0xe6036,0xe5f52,0x26d56,0x26d57,0x26d58, +0x17b65,0xe6037,0x26f34,0x26f33,0xe654b,0x2703d,0x17c60,0x2703b, +0x2703e,0x2703c,0x27125,0x17d24,0x17d32,0x27171,0x2715b,0xe6179, +0x27170,0x2723e,0x2723f,0x14556,0x00000,0x00000,0xe2428,0xe2426, +0x14848,0x22261,0xe2427,0xe242b,0x2245e,0xe2662,0x14b22,0xe265f, +0x14b25,0xe265e,0x2245f,0xe2663,0x14b23,0x14b24,0xe2660,0x00000, +0x00000,0xe2977,0x22778,0x2277a,0x22775,0x22772,0x22774,0xe2974, +0xe2970,0xe2975,0x14e65,0xe296f,0xe2979,0xe2976,0x14e63,0xe2972, +0xe2971,0x22776,0x14e64,0x22773,0x22770,0x14e62,0x22777,0x00000, +0x22771,0x14e66,0x22779,0x00000,0x00000,0x00000,0x00000,0x22b6f, +0xe2d5e,0x22b73,0xe2d5c,0xe2d5a,0x1523a,0xe2d58,0xe626a,0xe2d65, +0xe2d62,0x22b76,0xe2d5f,0x15232,0x15235,0x15237,0x15239,0x15236, +0x22b72,0x22b71,0xe2d64,0x15234,0x22b74,0x22b75,0xe2d63,0x22b6e, +0x15238,0xe2d68,0x15233,0xe2d5d,0x00000,0x00000,0x22b70,0xe654d, +0x00000,0x00000,0x00000,0x00000,0xe3228,0x2305a,0x2305b,0x2305c, +0x15653,0xe6279,0x1564f,0x23051,0xe322a,0x23059,0x2305e,0x15654, +0xe322b,0x2304f,0x23055,0x2304e,0x23058,0xe3231,0xe322f,0x23054, +0x15650,0x15652,0x2305d,0xe3229,0x2304d,0x23050,0x23056,0xe322d, +0x23057,0x2305f,0x23053,0xe322c,0x15651,0xe654f,0x00000,0x00000, +0x00000,0x00000,0xe654e,0x00000,0x00000,0x00000,0xe3230,0x15b72, +0x23671,0xe3730,0xe3732,0x23673,0x2366f,0xe372f,0x2367b,0x2366d, +0x2367a,0x15b6e,0x2366b,0x23d5f,0x23675,0x15b71,0xe3735,0x23676, +0x23679,0xe372e,0x2367d,0xe372c,0x23672,0x00000,0x23677,0xe372d, +0xe3731,0x15b6f,0x15b70,0x2367c,0x23670,0x2366c,0x2367e,0xe3733, +0x23674,0xe6550,0xe6551,0x23678,0x00000,0x00000,0x00000,0x2366e, +0x00000,0x1604e,0x1604f,0x23d69,0x16055,0xe3c74,0x23d5d,0x23d66, +0x23d5c,0x16052,0x23d64,0x23d62,0xe3c7d,0x23d63,0x16050,0xe3c7c, +0x23d67,0x00000,0xe3c6f,0xe3c7a,0xe3c72,0xe3d21,0x23d60,0x23d5e, +0x16051,0x23d61,0x23d65,0xe3c7b,0xe3c79,0xe3c71,0x16053,0xe3c73, +0xe3c77,0xe6553,0x23d68,0xe6554,0x00000,0xe6555,0x00000,0xe6552, +0x00000,0x24456,0x2445d,0x2445f,0x24465,0xe4257,0x16522,0x24451, +0xe424c,0x16478,0xe424e,0x24460,0x1647d,0x24466,0x16474,0xe4251, +0x24463,0xe4258,0x24453,0x24464,0x24452,0x00000,0x16524,0xe4252, +0x2445e,0x16475,0x24467,0xe483c,0x1647a,0x24457,0x16521,0x24462, +0x24455,0x2445c,0x24458,0x24454,0x16477,0x1647e,0x1647c,0x16479, +0x16523,0x16476,0x2445b,0xe424f,0x1647b,0xe4259,0x16054,0xe4249, +0x24461,0xe6559,0x24459,0x00000,0xe4253,0xe6557,0xe6558,0xe6556, +0x2445a,0x00000,0x00000,0x24b67,0xe476f,0x1695b,0xe476e,0xe476c, +0x24b63,0x24b69,0x24b65,0xe4770,0x1695d,0x24b64,0x24b68,0x24b60, +0xe4772,0x24b62,0x1695c,0xe476a,0xe476d,0xe476b,0xe4768,0x24b66, +0x24b61,0xe4767,0x1695e,0xe655b,0x16959,0x00000,0xe655a,0x24b6a, +0x00000,0x1695a,0x2516f,0x2516c,0x25178,0x25172,0x25174,0x16d5e, +0x2516e,0x25176,0xe4d2a,0xe4d24,0x25175,0x25173,0xe4d29,0x25179, +0x16d61,0x25170,0x25177,0xe4d28,0x16d5f,0xe4d25,0xe4d22,0x2516b, +0x2516d,0x16d60,0x2516a,0x2517a,0xe655c,0x25171,0xe5162,0xe515a, +0x25836,0x1713b,0xe5160,0xe515c,0x25841,0x2583f,0x17135,0x25835, +0x25838,0x25839,0x25834,0x1713f,0x17140,0x25833,0x25842,0x2583d, +0x17139,0x17136,0x2583c,0x2583a,0xe5163,0xe6374,0x1713c,0x2583e, +0x17137,0xe515e,0x17138,0xe5166,0x2583b,0x1713a,0x25837,0x00000, +0x25840,0x1713d,0x25843,0x25844,0x1713e,0xe655d,0xe655e,0x17432, +0x17439,0x25d48,0x25d4e,0xe553c,0x25d4c,0x17435,0x17434,0x17431, +0x25d4a,0xe553e,0xe5543,0xe5540,0x17437,0x17436,0x17433,0xe5541, +0x25d4d,0x25d49,0x25d4b,0xe5542,0x17438,0x00000,0x00000,0x00000, +0x17663,0x26229,0xe582d,0x17660,0x17661,0x2622b,0x17662,0x26228, +0xe582e,0x26227,0x26576,0x2622a,0xe5a56,0x26577,0x17847,0x26575, +0xe5a57,0x00000,0x26574,0xe5c59,0x26573,0x17848,0xe655f,0xe5c56, +0x17977,0xe5c58,0xe5c55,0x26939,0x2693a,0xe5a58,0xe5c53,0xe5c57, +0xe6561,0x26b6a,0x26b69,0x17a75,0xe5f53,0x26b68,0x26d5a,0x26d5b, +0xe5f54,0xe6039,0x26f35,0x2703f,0xe6143,0xe6142,0x27126,0x2722c, +0x17d46,0x27240,0x14557,0x00000,0x14e67,0x14e68,0xe2d69,0x00000, +0x1523b,0x00000,0xe3d22,0x00000,0x00000,0x1743a,0x14558,0x00000, +0x14e69,0x15655,0x16525,0x14559,0xe2d6b,0x15b73,0x1695f,0x22142, +0xe297c,0x22b77,0x23060,0x00000,0x24b6b,0x00000,0x1743b,0x1455a, +0x14e6a,0x22b78,0x22b79,0x23d6a,0x16056,0x00000,0xe425d,0x24468, +0xe425c,0xe425b,0x16526,0x24b6c,0x00000,0xe4d2e,0x16d62,0xe4d2d, +0x17849,0x1455b,0x23d6b,0x1455c,0x00000,0x1484a,0x22262,0x14849, +0x14b28,0x14b27,0x14b26,0x22460,0xe2664,0xe2a21,0xe2a22,0x14e6b, +0xe2a23,0x14e6c,0x2277b,0x00000,0x22b7a,0xe2d6d,0x22b7d,0x1523d, +0x22b7b,0x00000,0x1523c,0x22b7c,0x1523e,0x00000,0x23063,0x23062, +0x23061,0x15656,0xe3236,0x23722,0x23723,0x15b74,0x23721,0x23724, +0x16058,0x15b75,0xe3d24,0xe3d23,0x16057,0x23d6f,0x23d6e,0xe3d25, +0x23d6c,0x23d6d,0x00000,0x23d70,0x2446a,0x24469,0x2446d,0x00000, +0x2446c,0x2446b,0x16960,0x24b6f,0xe4775,0x24b6e,0x16961,0x24b6d, +0x2517b,0xe4d2f,0x2517c,0x16d63,0x00000,0x25845,0x25846,0x00000, +0x00000,0x2657c,0x1784a,0x2657b,0x2657a,0x26578,0x26579,0x17a76, +0x2693b,0x26d5c,0x27127,0xe617b,0x1455d,0x00000,0x22164,0x14667, +0x22165,0xe242c,0xe242d,0x00000,0x22263,0x22264,0xe266b,0x00000, +0x00000,0xe2669,0x22466,0xe2666,0xe2667,0x22462,0xe266a,0x22461, +0x14e6d,0x22465,0x14b2a,0x22463,0x14b29,0x22467,0x22464,0xe2668, +0x00000,0x22821,0x22b7e,0x2277d,0x22826,0xe2a26,0x14e6e,0xe2a2a, +0x14e71,0x22827,0x22823,0xe2a27,0x22824,0x00000,0x2277c,0x14e70, +0x2277e,0x14e6f,0x22825,0xe2a28,0x22822,0x00000,0x00000,0x22c24, +0x15240,0x15241,0xe2d75,0x22c27,0x22c21,0xe2d74,0x22c26,0xe2d70, +0x22c22,0x1523f,0x22c25,0x22c23,0xe2d73,0xe2d71,0x00000,0x00000, +0x00000,0x00000,0x00000,0x23069,0x23066,0xe3238,0x23068,0x1565b, +0x1565a,0x15658,0x23065,0x2306a,0x15657,0x15659,0x23067,0x2372c, +0x23064,0x2306b,0xe3239,0x00000,0x00000,0x00000,0xe3d26,0x23727, +0x2372b,0x00000,0x2372a,0x23d72,0x23d7d,0x00000,0xe373b,0x2372d, +0xe373a,0x23728,0x23d71,0x15b79,0x00000,0x00000,0x15b78,0x23726, +0x23729,0x15b7a,0xe3739,0x15b77,0x15b76,0x23725,0x2372e,0x00000, +0x00000,0x00000,0x23d74,0x23d7b,0xe3d27,0x1605a,0x23d7a,0x23d77, +0xe3d2e,0x1605c,0xe3d29,0xe3d2b,0xe3d2a,0x23d79,0xe4261,0xe3d2d, +0x23d73,0x23d75,0x23d78,0x23d76,0x1605b,0x23d7c,0x16059,0x16527, +0xe3d28,0x00000,0x24471,0x24470,0x2446e,0x00000,0x1652a,0x16529, +0x24472,0xe425f,0x2446f,0x24b70,0x16962,0x16528,0xe4262,0xe6562, +0xe6563,0x24474,0x24473,0xe4d30,0x24b73,0x24b71,0x16d64,0xe4779, +0x16963,0x24b72,0x2517e,0xe4778,0xe477a,0xe4777,0x00000,0x16d65, +0x2517d,0x25228,0x25227,0x25225,0x00000,0x25224,0x25221,0x25222, +0x25223,0x25226,0x25229,0x00000,0x00000,0x2584b,0x25848,0x25849, +0x17141,0x25847,0x2584d,0x2584c,0x2584a,0x00000,0x25d50,0x25d51, +0x1743c,0xe5549,0x1743d,0x25d4f,0x00000,0x17665,0x2622c,0x17664, +0x1784b,0x00000,0x1784c,0x17978,0x2693d,0x2693c,0x26b6b,0x26d5d, +0x17b66,0x26f37,0x26f36,0x26f38,0x14668,0x22c28,0x1565c,0x15b7b, +0x2372f,0x14669,0x22166,0x1455e,0xe225a,0xe216b,0x22265,0xe242f, +0x00000,0x00000,0x2246c,0x2246a,0x2246b,0x22468,0x14b2b,0x22469, +0xe266e,0x00000,0x00000,0x00000,0xe2a33,0x2282f,0xe2a2d,0x14e74, +0x2282d,0x22829,0x2282c,0xe2a2c,0x22828,0x14e76,0x2282b,0xe2a2b, +0x14e73,0x14e72,0xe2a32,0x14e75,0x2282e,0x2282a,0x00000,0xe2a2f, +0x00000,0x00000,0x15245,0x15248,0x22c30,0x22c2f,0x22c2e,0x15242, +0x22c37,0x22c2d,0x00000,0x15244,0x23070,0xe2d78,0x22c34,0x22c32, +0x15247,0xe2d7b,0x22c2a,0x22c35,0xe2d77,0x22c2c,0x22c36,0x22c33, +0x22c2b,0xe2d7a,0x15243,0x22c38,0x22c29,0x15246,0xe2d7e,0xe2d79, +0xe2d7c,0x00000,0x23075,0x2306c,0x23077,0xe323e,0x2306f,0x2307a, +0x2307b,0x2306d,0x23079,0x23076,0x23074,0x23078,0x15662,0xe3240, +0x15660,0xe3247,0xe323c,0x23072,0xe3246,0x2306e,0xe3241,0x23071, +0x2307c,0x23073,0x15661,0x22c31,0xe323d,0x1565d,0x1565f,0xe6564, +0x00000,0x00000,0x00000,0xe373d,0x2373d,0x23732,0x23730,0xe3d38, +0x23731,0xe323f,0x23738,0xe3740,0x23739,0x23735,0x15c22,0x2373a, +0x23737,0x23734,0xe373c,0x15b7e,0x23733,0x15b7c,0x15c21,0x23736, +0x2373e,0x1565e,0x15b7d,0x2373c,0x2373b,0x15c23,0x00000,0x00000, +0x00000,0x00000,0xe6565,0x00000,0xe3d36,0xe3d3a,0x23e24,0xe3d2f, +0xe3d3b,0xe3d32,0x23e25,0x16066,0xe3d39,0x23e2b,0xe426d,0xe3d35, +0x23e2d,0x23e26,0x16060,0x23e2a,0x23e29,0x16061,0x16067,0xe4264, +0x16068,0x23e2c,0x1605e,0x23e23,0x23e21,0x23e27,0x23d7e,0x16065, +0x23e22,0x23e28,0x23e2e,0x1605f,0x16064,0x16062,0x16063,0x00000, +0xe3d33,0xe3d3c,0x1605d,0xe6566,0xe3d37,0xe4268,0xe4275,0x16531, +0x2447b,0x16530,0x24521,0xe426f,0x24475,0xe4274,0x24522,0xe426e, +0xe4266,0xe4271,0x24476,0x24477,0xe4273,0x24523,0x2447e,0x2447c, +0x2447d,0x24479,0x24478,0xe4267,0x24524,0x1652d,0xe426b,0x2447a, +0xe4270,0x16532,0x1652c,0x16533,0x16534,0xe426a,0x1652f,0x1652e, +0xe4825,0xe477e,0x24b74,0x16965,0x16964,0xe477c,0xe477d,0x24b79, +0xe4822,0x16d66,0x16966,0xe4821,0xe477b,0x16968,0x24b7a,0x1652b, +0x16967,0x24b76,0x24b78,0x24b75,0xe4827,0x24b77,0xe4823,0x00000, +0x00000,0x25233,0xe4d31,0xe4d3b,0x25232,0x2522f,0x16d69,0x2584e, +0x16d6a,0x2522e,0xe4d39,0x16d68,0xe4d36,0x25230,0x2522d,0x2522a, +0x25231,0x2522b,0x2522c,0x16d67,0xe4d35,0xe6568,0x00000,0x00000, +0x25d55,0x00000,0x25852,0xe4d3a,0x25851,0x25853,0xe516a,0x25d52, +0x17144,0xe6375,0x2584f,0xe5167,0x17142,0xe516c,0x17146,0x17145, +0x25850,0x25854,0xe516b,0x17143,0xe6567,0x25d59,0x17440,0x17666, +0x17441,0x1743e,0x25d56,0x25d54,0xe554f,0x25d57,0xe554b,0x25d5a, +0x1743f,0x25d58,0x25d53,0xe554d,0xe6569,0x2622f,0x26232,0x26621, +0x2622d,0xe582f,0x2693e,0x26233,0xe5830,0x1784d,0x26231,0x17667, +0x2622e,0x26230,0x26234,0x26622,0xe5a5a,0x2657e,0x00000,0xe5a5c, +0xe5a5d,0xe5a5b,0x1784e,0x2657d,0xe5c5e,0xe5c5c,0xe5c5f,0x17979, +0xe5c5d,0xe5c60,0x00000,0xe5e3d,0x17a78,0x26d5f,0x17a77,0x26d61, +0x26d5e,0x26d60,0x17c3c,0x27040,0x1466a,0x22830,0x2307d,0x2307e, +0x15c24,0x24525,0x17147,0x1784f,0x17b67,0x27041,0x1466b,0x00000, +0x22831,0x12322,0x00000,0xe2e22,0x22c39,0xe2e21,0x22c3a,0xe2e24, +0x00000,0x00000,0x00000,0xe3248,0x23121,0x23122,0x15c25,0x15c26, +0x00000,0xe3d3d,0x00000,0x23e2f,0x00000,0x24528,0x24527,0x24526, +0x24b7b,0xe4277,0x24b7c,0x24b7d,0x16969,0x00000,0xe4828,0x25235, +0x25234,0xe4d3d,0xe516d,0x25855,0x17148,0x17149,0xe516e,0x25d5e, +0x25d5b,0x25d5c,0x25d5d,0x26236,0x26235,0x17668,0x26623,0x26b6c, +0x1466c,0x00000,0x15249,0xe3744,0x15c27,0x24529,0xe4278,0x1466d, +0x00000,0x23123,0x15c28,0xe3745,0xe3d3e,0x16069,0x1606a,0x00000, +0x1466e,0x1466f,0x22266,0x14b2d,0x14b2c,0x1524a,0x22c3b,0x23e30, +0x14670,0x14671,0x14672,0x14673,0x00000,0x00000,0x00000,0x14b2e, +0x14b2f,0x2246e,0x2246d,0xe2a37,0x00000,0x14e77,0x22834,0x22832, +0x22833,0xe2a38,0xe2a35,0x00000,0xe2a36,0x00000,0xe2e27,0x22c3c, +0x22c3d,0xe2e25,0xe2e28,0x1524e,0x1524c,0xe2e2a,0x1524d,0x1524b, +0xe2e26,0x00000,0x00000,0x00000,0x15663,0xe324e,0xe324d,0xe3250, +0xe324f,0x15667,0x15666,0x23124,0x15665,0x15664,0xe3251,0x23125, +0x00000,0xe3746,0x15c2b,0x23740,0x2373f,0x15c29,0x15c2a,0xe3749, +0xe3747,0x00000,0x1606c,0x1606b,0x23e32,0xe3d43,0xe3d42,0x23e31, +0x15c2c,0xe3d44,0x00000,0x00000,0x00000,0x00000,0x16535,0x2452b, +0x16536,0x2452a,0xe427b,0x00000,0x00000,0x24b7e,0x25236,0x16d6b, +0x25856,0xe5170,0x00000,0xe5552,0x25d5f,0x00000,0x17851,0x17850, +0x00000,0xe5c62,0x17b68,0x14674,0x22835,0x00000,0xe3d45,0x15c2d, +0x24c21,0x1696a,0xe225b,0xe2673,0x2246f,0x22470,0x00000,0x00000, +0x22836,0x14e79,0x14e7a,0xe2a3a,0x00000,0x14e78,0xe2a3b,0x00000, +0x00000,0x00000,0x15252,0x15253,0x15250,0x15251,0xe2e2b,0x22c3e, +0xe2e2f,0x00000,0x22c3f,0x1524f,0x00000,0x00000,0x00000,0x00000, +0x23126,0xe3257,0x1566b,0x1566c,0xe3255,0x15c30,0x2312c,0x00000, +0x15671,0x1566f,0x2312d,0x23128,0x1566e,0x1566d,0x15668,0x2312b, +0x2312a,0x23127,0x15670,0xe3252,0x23129,0x15669,0x00000,0x1566a, +0x00000,0x00000,0x15c31,0x23744,0x23745,0x15c32,0x23741,0x23743, +0x23747,0x23746,0x23742,0xe374a,0x15c2e,0x15c2f,0x00000,0x23e3a, +0x16071,0x16070,0x23e34,0x1606e,0x00000,0x23e37,0x16072,0x23e38, +0x16073,0x23e35,0x1606d,0x1606f,0x23e39,0xe3d47,0x23e36,0x23e33, +0x00000,0x00000,0x00000,0x00000,0x00000,0x24538,0xe427c,0x2452d, +0x16538,0x1653b,0x1653a,0x1653f,0x1653e,0x24539,0x24537,0x24530, +0x24534,0x24533,0x1653c,0x24536,0x24532,0x2453a,0x24531,0x1653d, +0x16537,0x16539,0xe427d,0x2452f,0x00000,0x00000,0x00000,0xe482b, +0x24c23,0x1696e,0x24c27,0x1696d,0x24c24,0x1696c,0xe4829,0x2452e, +0x24535,0x24c26,0x00000,0x1696f,0x24c28,0x24c25,0x24c22,0x00000, +0x00000,0x25239,0x2523d,0x2523f,0x2523b,0x2523a,0x25238,0x16d6e, +0x16d6c,0x16d71,0x16d72,0x2523c,0x16d6f,0x25237,0x16d70,0x1696b, +0x2523e,0x16d6d,0x00000,0x00000,0xe5171,0x25858,0x00000,0x25857, +0x2585f,0x25859,0x2585e,0x2585b,0x1714a,0x2585d,0xe5173,0xe5172, +0x1714b,0x00000,0x1714c,0xe5174,0x2585c,0x2585a,0x00000,0x00000, +0x00000,0x00000,0x17443,0x25d60,0xe5555,0xe5553,0x17442,0x25d63, +0x25d61,0x25d62,0x00000,0x00000,0x17444,0x00000,0xe5554,0xe5834, +0x2623a,0xe5833,0x1766b,0x2623b,0x00000,0x00000,0x17669,0x2623c, +0x1766a,0x26239,0x2623d,0xe5832,0x26237,0x00000,0x00000,0x17852, +0x26624,0x17853,0x1797a,0x00000,0x26238,0x1797b,0x00000,0xe5e3f, +0xe5e3e,0x17a79,0x26b6d,0x00000,0x17b6a,0x26d62,0x17b69,0xe603b, +0x26f39,0x17c61,0x17c62,0xe656a,0x00000,0x2723a,0xe225c,0xe656b, +0x15254,0x22c40,0x00000,0x16074,0x16075,0x14675,0x1484b,0x22267, +0xe2674,0x22471,0x14b30,0xe2676,0x14e7b,0x00000,0x15255,0x15256, +0x15257,0x23749,0x2312e,0x15672,0x00000,0x00000,0x15c33,0x23748, +0xe374d,0x00000,0x23e3c,0x16077,0xe3d4c,0x23e3b,0x16076,0xe427e, +0xe4321,0x2453b,0x16d73,0x25243,0x25240,0x25241,0x25242,0x00000, +0x00000,0xe5176,0x00000,0xe5556,0x25d64,0xe5557,0x2623e,0x00000, +0x00000,0xe5a5e,0x26940,0x2693f,0x00000,0x26d63,0x14676,0x22837, +0x15673,0x00000,0x00000,0xe3d4d,0x16078,0x2453c,0x00000,0xe4830, +0x24c29,0xe482e,0x16d74,0x25860,0xe656c,0x2623f,0x26941,0x14677, +0xe2677,0xe2678,0x14e7c,0x1525a,0x22c41,0x1525b,0x15259,0xe2e32, +0x15258,0x2312f,0x15674,0xe325a,0xe325b,0x15675,0x15676,0x00000, +0x00000,0x00000,0x15c35,0x2374a,0x15c34,0xe3750,0xe3752,0xe3751, +0x00000,0xe3d4f,0x23e3d,0x15c36,0x16079,0x2453d,0x16540,0x16541, +0x00000,0x16970,0xe4831,0x16971,0x16d75,0x1714e,0x25861,0x1714d, +0x00000,0x25d65,0x17445,0xe5835,0x26240,0x26942,0x14678,0x14b31, +0x2283a,0x22839,0x14e7d,0x22838,0x14e7e,0x2283b,0x00000,0x22c47, +0x1525e,0x1525d,0x22c49,0x22c48,0x15262,0xe2e35,0x15261,0xe2e33, +/* 0x7700 */ +0x00000,0x1525c,0x00000,0x22c43,0x22c44,0x22c45,0xe626c,0x15263, +0x22c42,0x1525f,0x22c46,0x15260,0x00000,0x00000,0xe3264,0xe325f, +0x23132,0x23136,0x23134,0x23133,0x00000,0x23137,0xe325e,0x00000, +0xe3268,0x23138,0x23139,0x23131,0x00000,0x23130,0xe3759,0x15678, +0x15679,0xe3267,0x2313a,0x23135,0xe3265,0x23753,0xe3755,0x2313b, +0x1567a,0x15677,0xe325c,0xe3263,0x00000,0x2374d,0x00000,0x2374c, +0xe3753,0x2374e,0x2374f,0x23751,0x23750,0x23755,0x15c3a,0x15c37, +0x15c3b,0x2374b,0x15c3c,0x23754,0x15c39,0x23752,0x15c38,0xe3262, +0xe3757,0x00000,0xe3d56,0xe3d53,0x23e40,0x23e42,0x23e3e,0x23e3f, +0xe3d51,0xe3d52,0x23e43,0x23e45,0x23e46,0x23e41,0x23e44,0x1607a, +0x00000,0x00000,0x24541,0xe4327,0x24546,0x2453e,0x24542,0x00000, +0xe4328,0x24547,0x24543,0x16542,0x1654a,0xe4325,0x16545,0x2453f, +0x24540,0x16975,0x1654d,0x16546,0xe4326,0x1654b,0x16544,0x24545, +0x1654c,0x24544,0x16548,0x16543,0x16549,0x24548,0x24c2e,0x24c30, +0x00000,0xe4839,0x00000,0x00000,0xe4833,0xe4836,0xe4835,0xe4834, +0xe4838,0x16547,0xe483b,0xe483d,0x24c2b,0x16973,0x24c31,0x16974, +0x24c2f,0x24c2a,0x24c2d,0x24c32,0x16972,0x24c2c,0x00000,0x16d77, +0x25247,0x25246,0xe4d44,0x16d7a,0x16d78,0x25244,0x16d76,0x25245, +0xe4d46,0x16d79,0x00000,0x00000,0x00000,0x25869,0xe517b,0x2586b, +0xe5179,0x2586a,0x25862,0x25866,0x25865,0x25863,0x17150,0x17151, +0x1714f,0x25864,0x25867,0x25868,0xe5559,0x17152,0xe5558,0x1744a, +0x25d6d,0xe555b,0x17447,0x25d67,0x17449,0x1744b,0x00000,0xe555c, +0x17448,0x25d6c,0x25d68,0x17446,0x25d6b,0x25d66,0x25d6a,0x25d69, +0xe5836,0xe5838,0x26242,0x1766e,0x1766f,0x1766c,0xe583b,0x1766d, +0xe583a,0xe5839,0x26241,0x00000,0x26627,0xe5a60,0xe5a5f,0x17854, +0x00000,0x26625,0x26626,0x00000,0x26943,0x26946,0x26944,0x26945, +0x26b6e,0xe5e42,0x00000,0x17a7a,0x26f3a,0x27042,0xe6432,0x17c63, +0x27128,0x27129,0x17d33,0x14679,0x15264,0xe3269,0x23e47,0xe3d57, +0x24549,0x00000,0x1467a,0x14b32,0x00000,0x14f21,0xe2e36,0x22c4a, +0x22c4b,0x1567b,0x00000,0x00000,0x23e48,0x1607b,0x1654e,0x1744c, +0x25d6e,0x26628,0x26947,0x1467b,0xe267b,0xe267c,0x00000,0x22841, +0x2283c,0x2283e,0x22840,0x2283f,0x2283d,0x14f22,0x00000,0x00000, +/* 0x7800 */ +0x00000,0x00000,0x15265,0x22c54,0xe2e39,0x22c4f,0x22c4c,0xe2e3b, +0xe2e3e,0x22c53,0xe2e37,0xe2e3a,0x15267,0x15268,0x22c52,0x22c51, +0x22c50,0x22c4d,0x22c4e,0x22c55,0x15266,0xe2e3d,0x00000,0x00000, +0x00000,0xe656d,0x00000,0xe656e,0x00000,0x15721,0xe667c,0x15727, +0x15726,0x23144,0x2313e,0x2313c,0xe326c,0x15724,0x2375c,0x1567d, +0x23141,0x23145,0x23147,0x23143,0x2313d,0x15725,0x23142,0x23140, +0x1567c,0x23148,0x15728,0x23146,0x15722,0x2313f,0xe326d,0x15723, +0x1567e,0x00000,0x00000,0x00000,0x00000,0xe656f,0x00000,0x00000, +0x00000,0x00000,0xe3762,0x15c3e,0x00000,0x2375d,0xe3763,0xe375d, +0x23756,0x23758,0x2375a,0xe375f,0x2375b,0x23759,0x15c3f,0xe3761, +0x2375e,0xe3760,0x23757,0xe6570,0xe6571,0x00000,0x00000,0x00000, +0xe6572,0x00000,0x00000,0x00000,0x23e4c,0x1607c,0x23e54,0xe3d5c, +0x23e49,0x00000,0x23e55,0xe3d59,0x23e4a,0x23e4b,0xe3d5d,0x00000, +0x23e53,0x23e52,0x23e4f,0x15c3d,0x1607d,0x23e4d,0x23e50,0x1607e, +0x23e51,0x23e4e,0x00000,0x00000,0x00000,0x00000,0xe3d5a,0x00000, +0xe4331,0x24554,0xe432d,0x24558,0x16555,0xe432e,0x24c38,0x16558, +0x24556,0xe4337,0xe4329,0x24553,0x2454e,0x24550,0x24551,0x2454a, +0xe4335,0x16554,0xe432b,0xe4330,0x16553,0xe4334,0x1654f,0x2454d, +0xe432a,0x16556,0xe4336,0x16557,0x2454c,0x2454f,0x24557,0x16551, +0x16552,0x24555,0x2454b,0x00000,0x00000,0x00000,0x24c3a,0x16977, +0x24c3c,0x24552,0x24c3e,0x1697b,0x24c3f,0x24c3b,0xe483e,0x16978, +0x24c37,0x1697a,0x24c34,0x24c39,0x24c3d,0x24c36,0xe483f,0xe4845, +0x16550,0xe4844,0x24c33,0x16979,0x24c35,0x00000,0x00000,0xe6573, +0xe4840,0x00000,0x16d7d,0x25249,0x16e23,0x00000,0x16e21,0x00000, +0xe4d4a,0x16976,0xe4d4d,0x25250,0x25251,0x16d7c,0xe4d48,0xe4d4c, +0x2524f,0x25252,0x16d7e,0x16d7b,0x2524b,0x25248,0x2524d,0x2524a, +0x16e24,0x2524c,0xe4d4b,0xe4d49,0x2524e,0x16e22,0xe5221,0x00000, +0xe6574,0x00000,0x17154,0x25872,0xe5224,0x2586c,0x25870,0x25876, +0x25877,0x25873,0x25874,0x25871,0x00000,0x2586e,0x00000,0x17156, +0x17153,0x2586d,0x2586f,0xe5222,0x17155,0x25875,0xe6575,0x17450, +0xe5560,0xe5562,0x25d75,0x25d6f,0x1744f,0x00000,0x00000,0x1744d, +0xe5561,0x25d77,0x1744e,0x25d72,0x25d73,0x25d70,0x25d78,0x25d74, +/* 0x7900 */ +0x00000,0x17451,0x25d71,0x00000,0x25d79,0x25d76,0xe5843,0xe583e, +0xe5840,0x26246,0xe583f,0xe583c,0x26243,0xe5842,0x17670,0x00000, +0x26247,0x26249,0x26248,0x26244,0x26245,0xe5844,0x00000,0x2662d, +0xe5a61,0x17855,0xe5a62,0x2662a,0x2662c,0x26629,0x2662e,0x00000, +0xe5a63,0x2662b,0xe6576,0x26949,0x2694c,0x26948,0x1797c,0x2694a, +0x2694b,0x2694d,0x1797d,0x17a21,0x1797e,0x26b6f,0xe5e45,0x26b71, +0xe5e43,0x26b70,0xe5e44,0x00000,0x00000,0x26d64,0x00000,0xe603c, +0x27043,0x2712a,0x1467c,0x00000,0xe2433,0x22472,0x14f23,0x22843, +0x14f24,0x14f25,0x22842,0x00000,0x22c5a,0x22c59,0x15269,0x1526c, +0x1526b,0x1526a,0x22c56,0x22c58,0x22c57,0xe6577,0x00000,0x2314b, +0x1572a,0x2314f,0x2314e,0x2314d,0x23149,0x15729,0x1572d,0x15730, +0xe326f,0xe3270,0x15731,0x2314a,0x2314c,0x1572f,0x1572e,0x1572c, +0x1572b,0x23765,0xe3272,0x23763,0x2375f,0x15c40,0xe3d5e,0x23760, +0x15c41,0x23761,0x23762,0x23764,0xe3766,0x15c42,0xe3765,0x00000, +0x23e59,0xe3d5f,0x23e58,0x23e57,0x23e56,0xe3d64,0xe3d62,0x00000, +0x00000,0x2455c,0x16559,0x00000,0x24559,0x2455b,0xe4338,0x1655a, +0xe433d,0x1655b,0x2455a,0xe4339,0xe3d63,0x00000,0xe6578,0xe4848, +0x24c48,0xe4847,0x24c41,0x24c42,0x00000,0x1697e,0x1697c,0x1697d, +0x24c4a,0x00000,0x24c49,0x24c46,0x24c45,0x24c44,0x24c43,0x24c47, +0x24c40,0xe6579,0x25253,0x25258,0x25256,0xe4d50,0xe4d51,0xe4d4f, +0x25255,0x25254,0x25257,0xe657a,0x25878,0xe5226,0x17157,0x17452, +0x25d7b,0xe5227,0x17453,0x25d7a,0x2624b,0x2624a,0x17671,0xe5845, +0x2662f,0x17856,0x2694e,0x17b6b,0x26d65,0xe603d,0x27045,0x27044, +0x22167,0x1526d,0x1526e,0x23766,0xe657b,0x1655d,0x1467d,0x14b35, +0x14b34,0x14b33,0x00000,0xe2a3e,0xe2a3d,0x22844,0xe2a3f,0xe2a42, +0x14f27,0x14f26,0xe2a44,0x15271,0xe654c,0x22c5c,0x22c5f,0x22c5d, +0xe2e42,0x1526f,0x15270,0xe2e40,0xe2e41,0x22c5b,0x22c5e,0xe2e43, +0x15738,0xe3274,0xe3273,0xe3279,0x23156,0x23158,0x23157,0x15735, +0x23152,0xe3276,0xe327b,0x15733,0x15732,0xe3277,0x15736,0x15734, +0xe3278,0x15737,0x23155,0x23150,0x23151,0x23154,0x23153,0x00000, +0xe327c,0xe3769,0xe3767,0xe376b,0x00000,0xe376a,0x23769,0x2376a, +0x23768,0xe376c,0x23767,0x15c43,0x00000,0x00000,0x00000,0xe3d65, +0x16125,0x00000,0x23e5a,0x23e5c,0x23e5e,0x16124,0x00000,0xe3d66, +0x16122,0xe3d69,0x23e5b,0x16123,0x23e5d,0x16121,0xe3d68,0xe4341, +0x24566,0x2455d,0x24560,0x24564,0x16561,0x24562,0x00000,0x24561, +0x2455e,0x2455f,0x1655f,0x24565,0x1655e,0xe4344,0x16563,0x16562, +0x16560,0x00000,0x24563,0x00000,0x00000,0xe6524,0x24c50,0x00000, +0x24c4f,0xe484b,0xe484d,0x24c4b,0xe4850,0xe484f,0x16a21,0x24c4e, +0x24c4d,0x16a22,0xe4852,0x00000,0x00000,0x00000,0x00000,0x16e29, +0xe4d55,0x2525a,0xe4d56,0x16e2a,0x16e26,0x16e28,0xe4d5a,0x16e25, +0x16e27,0xe4d53,0xe4d57,0x00000,0x25879,0xe522a,0x1715a,0x2587b, +0x2587a,0xe5564,0x24c4c,0x1715c,0x1715b,0x17158,0x17159,0xe522c, +0x00000,0x00000,0x00000,0xe5229,0x25e22,0x00000,0x25d7e,0x17454, +0x25e21,0x00000,0x25e23,0x25d7d,0x25d7c,0x00000,0x00000,0x2624c, +0x17674,0x17672,0x17673,0x00000,0xe5a66,0x00000,0xe5a65,0x26630, +0x26631,0x17858,0xe5a67,0x17857,0x26950,0x26951,0x2694f,0xe5c64, +0x26d66,0x26d67,0xe6076,0xe6077,0x1467e,0x22268,0x14b36,0x00000, +0x22845,0x14f29,0x14f28,0x22846,0xe2e44,0xe2e47,0x22c61,0x15272, +0x22c60,0x15273,0xe2e49,0xe2e48,0x15739,0x2315b,0x23159,0x2315f, +0x1573a,0x2315a,0x2315e,0x2315c,0x2315d,0x00000,0x00000,0x2376b, +0x2376d,0xe3772,0x15c44,0xe3771,0x2376c,0x15c45,0x16128,0x16127, +0x16126,0x23e5f,0xe3770,0x00000,0x00000,0x00000,0x24569,0x16564, +0x16565,0xe4346,0x24568,0x24567,0xe4347,0x00000,0x00000,0xe657c, +0x24c51,0x16a24,0x16a23,0x24c52,0x24c53,0x00000,0x16e2c,0x16e2b, +0xe4d5b,0x25921,0x2525b,0x2525d,0x2525c,0x2587e,0x2587c,0x25922, +0x2587d,0x00000,0x1715d,0xe522f,0x00000,0xe522e,0x25e24,0x17455, +0x25e25,0x25e26,0xe5568,0x00000,0x17675,0x17676,0x00000,0x17a22, +0xe5e49,0xe5e48,0x17c3d,0x14721,0xe267e,0xe2721,0x00000,0xe2a47, +0xe2e4e,0x22c62,0xe2e4f,0xe2e4d,0xe2e4b,0xe2e4c,0x00000,0x00000, +0x23160,0x1573b,0xe3323,0xe3326,0xe3327,0xe3324,0x00000,0x15d7e, +0x15d7d,0xe3773,0xe3d71,0x1612a,0x23e61,0x16129,0x23e60,0xe3d70, +0x00000,0xe4349,0xe434a,0x2456a,0xe4854,0x16a25,0x24c54,0x16a26, +0xe4855,0xe5230,0xe5569,0xe556a,0x00000,0xe5849,0x17a23,0x26952, +0xe5f55,0x1484c,0x14f2a,0x22847,0xe2e51,0x15275,0xe2e50,0x15274, +0x22c63,0x22c64,0x00000,0x00000,0x23162,0x23164,0x1573c,0x00000, +0x23166,0x23169,0x23167,0xe332b,0x00000,0xe332a,0x23168,0x23165, +0x23161,0x1573d,0x2316a,0x23163,0xe332c,0x00000,0xe3778,0xe3779, +0x23776,0x15c4b,0x23821,0x15c48,0xe3777,0x23778,0x15c4c,0xe377b, +0x15c46,0xe3776,0x23773,0x23822,0x23774,0x23771,0x15c4a,0x00000, +0x15c47,0xe632d,0x23777,0x2377a,0x15c49,0x2377b,0x15c4d,0x2377c, +0x23772,0x23779,0x2377d,0x23775,0x23770,0x2376e,0xe377a,0xe657d, +0x2377e,0x00000,0x00000,0x2376f,0x00000,0x00000,0x00000,0x00000, +0x23e68,0xe3d7b,0xe3d78,0xe3d75,0x23e64,0x23e6a,0x1612d,0x23e63, +0x23e65,0x1612b,0x23e62,0x16132,0x23e66,0x16131,0x23e67,0x16133, +0x1612e,0x16134,0x1612f,0xe3d79,0x16130,0xe3d72,0x1612c,0xe3d76, +0x23e69,0xe657e,0x00000,0x00000,0x00000,0x00000,0xe434f,0x00000, +0x16568,0x24575,0xe434c,0x24578,0x2456c,0x24571,0x2456b,0x1656a, +0xe4355,0x2456f,0x00000,0xe434d,0xe3d77,0x2456d,0x16569,0xe4354, +0x24574,0x24573,0x24570,0x24572,0x2456e,0x16a2a,0x24577,0x16566, +0x24576,0xe4351,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0xe4856,0x24c64,0xe4858,0x16a31,0x24c5f,0xe4860,0x16a30, +0x24c55,0x00000,0x24c57,0x16a29,0x24c5c,0x24c5b,0x24c5e,0x16a2e, +0x24c59,0x24c58,0xe485a,0xe485e,0x16a2d,0x16a28,0x24c5a,0x16a2b, +0x24c60,0x24c62,0x00000,0x24c5d,0x24c56,0x16a2c,0xe4857,0xe485d, +0x16e34,0x16a27,0x00000,0xe485c,0x24c63,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x25261,0x16e2d,0xe4d5c,0x25263, +0x00000,0x16e2e,0xe4d65,0xe4d5d,0x16e30,0x25266,0x00000,0x2525e, +0x16a2f,0x25264,0x00000,0x00000,0x00000,0x00000,0x25260,0xe4d60, +0x16567,0x16e33,0xe6367,0xe6366,0x16e2f,0x00000,0x16e31,0x16e32, +0x00000,0x17160,0x25265,0x2525f,0x16e35,0xe4d63,0x25262,0x00000, +0xe6621,0x00000,0x00000,0x00000,0x2592c,0x25927,0x00000,0x00000, +0x25931,0x1715e,0x25929,0x17162,0x2592f,0x25926,0x25923,0x25932, +0x1745b,0x17163,0x2592e,0x25924,0x17161,0x25928,0x17165,0x25925, +0x2592a,0x17164,0x2592d,0x25930,0xe5233,0xe5234,0x00000,0x00000, +0x25e38,0x25e39,0x25e29,0x25e30,0x25e2e,0x00000,0xe556d,0x17459, +0x25e35,0x2592b,0xe556b,0x25e2c,0xe556e,0x25e36,0x17458,0x25e2b, +0x25e2a,0x25e34,0x25e31,0x25e33,0x00000,0x25e27,0x25e37,0x17456, +0xe5570,0x25e32,0x25e3b,0x25e2f,0x1745a,0x17457,0x25e2d,0x25e28, +0x25e3a,0x1715f,0xe5571,0x00000,0x00000,0x00000,0x00000,0x00000, +0xe556f,0x2624f,0xe5850,0xe584e,0x2624d,0x26253,0x1767a,0x26251, +0x26250,0x1767c,0x26256,0x1767b,0xe5851,0x26257,0x26254,0x17678, +0x26255,0x2624e,0x17679,0x17677,0x26635,0x26252,0xe584c,0xe6622, +0x26258,0x00000,0xe6623,0x26632,0xe5a6f,0xe5a6e,0x00000,0x1785d, +0x1785b,0x26634,0x00000,0x26636,0x26633,0x1785c,0x17859,0x1785a, +0x1785e,0x00000,0xe6624,0x17a25,0xe5c66,0x26957,0x00000,0x26956, +0x26954,0x26953,0x26955,0xe5c65,0x17a24,0x17a26,0xe6625,0x00000, +0x17a7b,0xe5e4c,0x00000,0x26b73,0x26b72,0x00000,0xe5e4b,0x26d68, +0xe5f58,0x26d6a,0x26d6c,0x26d6b,0x26d69,0xe5f57,0xe603f,0x17b6d, +0x17b6c,0x00000,0xe603e,0x17c3f,0x17c3e,0x17c40,0x26f3c,0x26f3b, +0xe6626,0x2712b,0x27046,0x2712c,0x17d25,0xe6144,0x17d26,0x2715c, +0x00000,0xe623a,0x17d4b,0x1484d,0xe2a49,0x22848,0xe2a48,0xe2e52, +0x22c66,0x22c67,0x22c65,0xe2e54,0xe2e53,0x15276,0x00000,0x22c68, +0x22c69,0x22c6a,0x00000,0xe3331,0x2316b,0x23171,0xe332e,0xe3330, +0x2316f,0x1573e,0x2316d,0xe3332,0x2316e,0x23170,0xe332d,0x00000, +0x00000,0x2316c,0x15c4e,0xe377d,0x23823,0x15c50,0x23825,0x15c4f, +0x23824,0xe377e,0xe3821,0xe383e,0xe3822,0x00000,0x23e6c,0x16135, +0xe3e21,0x23e6e,0x23e6b,0x23826,0xe3e23,0x16136,0xe3e22,0xe3d7e, +0x23e6d,0xe6627,0x00000,0x00000,0x00000,0x00000,0xe4358,0x2457b, +0xe435c,0x1656b,0x24579,0x1656c,0x2457a,0x1656d,0x00000,0xe4862, +0xe4861,0x16a32,0x24c68,0x24c65,0x24c67,0x16a33,0x16a34,0x24c66, +0x00000,0x00000,0xe4d6f,0xe4d71,0xe4d6d,0x25267,0xe4d70,0xe4d73, +0x25268,0xe4d72,0x16e36,0x2526a,0x25269,0xe4d6e,0x12323,0x00000, +0x25936,0x25937,0x25933,0xe5237,0x25934,0x17166,0x17167,0x25935, +0x00000,0x17461,0xe5575,0xe5574,0x1745d,0x17462,0x1745e,0x17460, +0x1745c,0xe5239,0x1745f,0xe5855,0x00000,0x00000,0xe5854,0x1767d, +0x25e3c,0x00000,0x26638,0x00000,0x26637,0xe6628,0x26958,0x17a27, +0x17a28,0x26d6e,0x26b74,0xe6169,0x26d6d,0xe6040,0x2712d,0x27172, +0x1484e,0x00000,0xe2722,0x14b37,0xe2a4b,0x22849,0x14f2b,0xe2a4a, +0x15279,0x22c6d,0x15277,0x22c6b,0x1527c,0x15278,0x1527d,0x1527b, +0x22c6c,0x1527a,0x15742,0x15741,0x2317c,0x1574a,0x23175,0x2317b, +0x15746,0x23174,0x2317a,0x23178,0x15745,0x15747,0x23177,0x15740, +0x23176,0x1574b,0x15748,0x1574c,0x15749,0x23173,0x23172,0x23179, +0x15743,0x1573f,0x15744,0x00000,0xe3337,0xe333b,0x00000,0x00000, +0x23835,0x2382e,0x00000,0x1613b,0x2382d,0xe3829,0x15c54,0x15c5b, +0x15c58,0x15c5e,0x15c5d,0x15c59,0xe3826,0x23827,0x2382a,0xe3827, +0x23829,0x15c55,0x2382b,0x23834,0x15c56,0x23828,0x23831,0x23832, +0x15c57,0x2382f,0x15c5c,0x15c52,0x15c5a,0x2382c,0x15c51,0x23830, +0xe382e,0xe3824,0x23833,0x00000,0xe382b,0xe3e34,0x23f21,0x23e76, +0x16138,0x23e7d,0x23e7a,0x23e72,0x23e7b,0x1613a,0x23e73,0xe3e29, +0x23e6f,0xe3e26,0xe3e2e,0x16573,0x23e78,0xe3e2f,0x16137,0x23e7e, +0xe3e28,0x1613e,0x16140,0x23e71,0xe3e2c,0x00000,0x1613f,0x23e74, +0x16139,0x23e7c,0x23e75,0x23e79,0xe3e2a,0x23e77,0x1613c,0x23e70, +0x16141,0x15c53,0x1613d,0x16142,0xe3e24,0xe3e35,0xe3e33,0x00000, +0xe4367,0x1656f,0x24624,0x24626,0x24628,0x2462c,0xe3e2b,0x24622, +0x2457e,0x16571,0x00000,0x24627,0x2462b,0x24623,0x2457d,0xe4366, +0x2457c,0xe4369,0xe4360,0xe4362,0x24629,0x24621,0x24625,0x16572, +0xe435e,0x16570,0x2462d,0x1656e,0x2462a,0xe4364,0x24c79,0xe4368, +0xe436a,0xe4363,0x00000,0x00000,0x16a37,0x24c71,0x16e43,0x24c7b, +0x16a3a,0x24d21,0x16a40,0x24c6c,0xe4874,0x00000,0x24c7c,0x24c69, +0xe486d,0x24c7e,0x24c6d,0xe486e,0x16a47,0x16a44,0x24c7d,0x24c77, +0x16a36,0x16a3e,0x16a3d,0xe4870,0x16a3c,0x16a42,0xe4869,0x24c6a, +0x16a43,0x24c78,0x16a3f,0x16a35,0x24c7a,0x16a38,0x16a39,0x16a41, +0x24c6f,0x24c6e,0x24c6b,0x00000,0x24c73,0x24c70,0x24c74,0x16a46, +0xe4868,0x24d22,0x16a3b,0x24c75,0x24c76,0xe4871,0x24c72,0xe4873, +0xe6629,0xe486b,0x16a45,0xe662b,0x00000,0x00000,0xe4e22,0x2526f, +0x16e3b,0x16e44,0x16e40,0x2526c,0xe4d7c,0x16e3d,0x16e41,0x25278, +0x16e37,0x25270,0xe4d78,0x16e3f,0xe4e24,0xe4e2f,0x25273,0x2526e, +0x16e3e,0x16e42,0x2526d,0xe4e2e,0x16e3c,0xe4d77,0x25277,0x16e39, +0x25276,0x25275,0x16e45,0x2503b,0x16e38,0xe4e2b,0x25274,0x2526b, +0xe4d75,0x16e46,0x25272,0x16e3a,0xe4e28,0xe4e29,0xe4e25,0xe4e2c, +0xe4e27,0xe4d7e,0xe4d7d,0x25271,0x00000,0x00000,0x00000,0xe662a, +0x1716a,0x1716f,0x17168,0x25944,0x2593b,0x25947,0x2593f,0x25945, +0x17170,0x17169,0x25938,0x2593e,0x25948,0x25941,0x25946,0x2593a, +0x00000,0xe523b,0x25942,0x1716b,0x25940,0x1716e,0x1716d,0x2593c, +0x2593d,0x25939,0x25943,0x1716c,0x2594a,0x25949,0xe5240,0xe523f, +0x00000,0x25e47,0x25e43,0x17469,0xe5579,0x25e3d,0x17463,0x17473, +0x25e49,0x1746b,0x17467,0x25e40,0x1746e,0x17471,0x25e4b,0x17466, +0x25e42,0x1746f,0x25e4d,0x25e4a,0x25e3e,0x1746a,0x17464,0x17472, +0x25e45,0x1746d,0x25e3f,0x17468,0x25e4c,0x1746c,0x17465,0x25e46, +0x17470,0x25e44,0x00000,0x00000,0x25e48,0xe557a,0x00000,0xe5859, +0x2625a,0x26260,0x17725,0x26263,0x1767e,0x17721,0x2625b,0x26262, +0x2625d,0x17726,0x17723,0xe585b,0x26259,0xe5858,0x17722,0x2625f, +0x26261,0x17724,0x2625e,0x2625c,0xe662c,0x00000,0xe585a,0x00000, +0x26642,0x17862,0x17863,0x1785f,0xe5a72,0x17860,0xe5a74,0x2663e, +0x2663c,0xe5a75,0x26640,0x17864,0x26641,0x2663a,0x26639,0x2663d, +0x2663b,0x17861,0x2663f,0x26959,0x17a2b,0x17a2a,0x2695a,0xe5c6c, +0x2695c,0x2695b,0x17a2c,0x00000,0xe5e53,0xe5e50,0x26b79,0x26b76, +0x26b77,0xe5e51,0x26b75,0x26b78,0x17a7d,0x26b7a,0xe5e52,0x17a7c, +0x00000,0x26d6f,0xe5f5a,0x17c41,0x17c43,0x26f3d,0x17c42,0x27047, +0x2712f,0x27131,0x2712e,0x27130,0x17d39,0x00000,0xe6235,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +/* 0x7f00 */ +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x1484f,0x00000, +0x1527e,0x23052,0x1574d,0xe3831,0x00000,0x15c5f,0x23f22,0x23f23, +0xe662d,0xe4877,0x00000,0x2594b,0x17474,0x25e4e,0xe557d,0xe585c, +0x17727,0x00000,0x26644,0x26643,0x17a2d,0x26b7b,0xe5f5b,0x26d70, +0x17c64,0x22269,0x00000,0x00000,0x14f2c,0x14b38,0x00000,0x00000, +0x22c6e,0xe2a4e,0x00000,0x23224,0x2317d,0x23223,0x23221,0x1574e, +0x23222,0x2317e,0xe333c,0x23836,0x00000,0x23f24,0x23f25,0x24630, +0x24631,0x16575,0x16576,0x2462f,0x24632,0x2462e,0x16574,0xe4878, +0x16a48,0xe4879,0x16577,0x24d23,0x00000,0x16e47,0x25279,0x16e48, +0xe4e30,0x17171,0x2594e,0x2594c,0x2594d,0x25e51,0x25e50,0x25e4f, +0x00000,0x00000,0x00000,0x26645,0xe6422,0x17865,0x26646,0x26d71, +0x17c65,0x27048,0x14850,0x14f2e,0x14f2d,0x22c70,0x15321,0xe2e5d, +0x00000,0x22c6f,0x23226,0xe333d,0x1574f,0x23837,0x23225,0xe333f, +0x00000,0xe333e,0x15c61,0x2383a,0x23838,0x23839,0x15c60,0x00000, +0x23f27,0x23f28,0x23f26,0xe436e,0x1657a,0x24634,0x24633,0x24635, +0x16579,0x16578,0x00000,0x00000,0x2527a,0x2527c,0xe4e31,0x16e49, +0x2527b,0x2594f,0x17172,0x26265,0xe585d,0x26264,0x17866,0x26647, +0x17868,0x17867,0x2695d,0x26b7c,0x17a7e,0x14851,0x22c71,0x15322, +0x23229,0x15751,0x23228,0x23227,0xe3342,0x15750,0xe3343,0x23840, +0x00000,0x23842,0x2383b,0x2383c,0x15c62,0x2383d,0x15c63,0x23841, +0x2383e,0x2383f,0x15c64,0xe3e37,0x16144,0x16145,0xe3e38,0x23f29, +0x00000,0x00000,0x00000,0x24636,0x24637,0xe4372,0x24d27,0x16a4b, +0x16a49,0x16a4a,0x24d24,0x24d25,0x00000,0x24d26,0x25323,0xe4e32, +0x25324,0x16e4a,0x25321,0x2527e,0x25322,0x2527d,0x17175,0x25950, +0x17173,0x17174,0x25e53,0x17475,0x25e52,0x26134,0xe557e,0x26266, +0x26267,0x17728,0xe5861,0x17729,0x17476,0x26648,0x26649,0x2695e, +0x17a2e,0x14852,0xe667b,0x14853,0x15753,0x14f2f,0x15752,0x22c72, +0xe3836,0x00000,0xe3344,0x16146,0x14854,0x15324,0x22c73,0x22c74, +0x15323,0x15325,0x14855,0x00000,0x22c75,0x15755,0x2322a,0x15757, +0x15754,0x15756,0xe3837,0x23845,0x15c65,0xe3839,0x23844,0x23843, +0x00000,0x24638,0x00000,0xe4922,0x24d28,0x00000,0x16e4b,0x00000, +0x17176,0x25952,0x25951,0xe5621,0x25e54,0x00000,0xe5862,0xe5c6f, +0x26b7d,0x00000,0x00000,0x14856,0x22473,0x2284a,0x15326,0x22c76, +0x00000,0x2322c,0x00000,0xe3349,0xe3348,0x15758,0x2322b,0x15759, +0xe3347,0xe662f,0x00000,0x23847,0xe383d,0xe383c,0x15c67,0x23846, +0x23848,0xe383b,0x15c66,0x00000,0x00000,0x00000,0xe3e3c,0x23f2b, +0x23f2c,0x23f2a,0x16147,0xe6729,0x00000,0x00000,0x1657b,0xe4373, +0x1657c,0xe6356,0x16a4d,0xe4923,0x24d2a,0x24d29,0x16a4c,0xe4926, +0xe3e3b,0xe4925,0x00000,0xe6630,0x25325,0xe4e34,0xe4e36,0x25326, +0xe4e37,0x00000,0xe4e35,0xe4e38,0x25953,0x00000,0xe5243,0x1747a, +0x17479,0x17477,0x17478,0x1747b,0xe5622,0x26268,0x1772b,0x1772a, +0x2664a,0x2695f,0xe5c70,0xe5c71,0xe5c72,0x17b6f,0x17b6e,0x14857, +0x00000,0x00000,0x22f7d,0x00000,0x1657e,0x16148,0x1657d,0x16a4e, +0x00000,0x14858,0x22168,0x14859,0x1485a,0xe2435,0xe2436,0x2284b, +0x22476,0xe2724,0x22477,0x14b3a,0xe2726,0x22474,0x14b39,0xe2725, +0x14b3c,0x22475,0x14b3e,0x14b3d,0x22478,0x14b3b,0x00000,0xe2723, +0x00000,0x14f34,0x14f32,0x2284d,0xe2a56,0x14f31,0xe2a5b,0xe2a58, +0xe2a4f,0x14f36,0x14f38,0x14f35,0xe2a59,0x22850,0x2284c,0x14f39, +0xe2a52,0x14f33,0x14b3f,0xe2a54,0x14f37,0x2284f,0xe2a57,0x00000, +0x2284e,0x00000,0x14f30,0xe6631,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x22c7c,0x1532a,0x1532b,0x22c7e,0xe2e66,0x22c78, +0x22c7b,0x22d26,0x22d24,0xe2e60,0x1532c,0x22d2a,0x1532f,0x22d27, +0x22c7d,0x22c7a,0xe2e61,0xe2e5e,0x23f2e,0x22d25,0x15327,0x22d28, +0x22c77,0x22d22,0x15329,0x1532e,0x22d23,0x15332,0x15330,0xe2e65, +0x22c79,0x1532d,0xe2e64,0x22d21,0x15331,0x15328,0x22d29,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x1575e,0xe334c,0x15767, +0x1575c,0x1575a,0x2322e,0x15762,0x1575f,0x23230,0xe334a,0xe3352, +0x15761,0x2322f,0x2322d,0x23232,0x15766,0x15764,0x23f2d,0xe334b, +0x23233,0x23231,0x1575b,0xe334e,0xe334d,0x1575d,0x15760,0xe334f, +0x15763,0xe2e63,0x15765,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0xe3e44,0x23852,0x15c69,0xe3849, +0x23849,0x2384b,0xe3847,0x2384c,0x00000,0x23854,0x23850,0x2384e, +0x00000,0x23851,0x23855,0x15c6a,0x15c6e,0x2384a,0x00000,0x23853, +0xe632e,0x15c6c,0xe3841,0x15c6b,0x2384f,0x2384d,0xe3842,0x15c68, +0x15c6d,0xe3845,0x00000,0x00000,0xe3848,0x00000,0x00000,0x00000, +0x00000,0x1614e,0x23f36,0xe3e3e,0x00000,0x23f34,0x16150,0x00000, +0xe3e43,0xe3e45,0xe3e41,0x23f2f,0x24646,0xe3e3d,0x1614f,0x23f33, +0xe3e40,0xe3e42,0x23f30,0x1614b,0x16151,0x23f35,0x1614d,0x23f32, +0x16a4f,0x1614c,0x23f31,0x16152,0x1614a,0x16149,0x00000,0x00000, +0x00000,0x00000,0x00000,0x2463e,0x2463c,0xe437b,0x24642,0xe437e, +0x2463a,0x24647,0x2463f,0xe4375,0x24639,0x16624,0x1662a,0x24644, +0x00000,0x2463d,0xe4376,0x16627,0xe4377,0xe4423,0x16625,0x24645, +0x16622,0x16621,0x24640,0x16626,0x16153,0xe437c,0x24643,0x2463b, +0x16623,0x16628,0x16629,0x00000,0x00000,0xe4422,0x00000,0x16a54, +0x16a50,0xe4927,0x16a55,0x24d2d,0xe492a,0x00000,0x24d2c,0x24d2e, +0x16a52,0x24d2b,0x16a53,0x24d31,0x24d30,0x24d2f,0x00000,0x16a51, +0x00000,0x00000,0xe4e3b,0xe4e3d,0xe4e39,0x2532a,0xe4e3c,0x2532d, +0x16e51,0x2532c,0x16e50,0x16e4c,0x16e4d,0x16e4e,0x25329,0x25328, +0x16e4f,0xe4e3a,0x2532b,0x25327,0x00000,0x00000,0x25955,0x2595f, +0x17179,0x17178,0xe5249,0x25959,0x2595b,0xe5247,0x25956,0xe5244, +0x2595a,0x25954,0x2595d,0x17177,0x2595c,0x25958,0x00000,0x2595e, +0xe5623,0x25957,0x1747e,0x25e55,0x25e5b,0x17524,0x17526,0x17523, +0x17522,0x00000,0x17521,0x1747d,0x25e56,0x25e59,0x1747c,0x25e5a, +0xe5624,0x17525,0x25e58,0x00000,0x25e57,0x1772c,0xe5865,0x1772d, +0x2626b,0x26269,0x2626a,0x00000,0xe5a77,0x2664c,0xe5a78,0x2664b, +0x17869,0x26961,0x17a2f,0x26960,0x00000,0x26b7e,0x26d72,0x17b70, +0x27132,0x27133,0x17c44,0x1485b,0x00000,0x14f3a,0x23f37,0x16a56, +0x17527,0x25e5c,0x1485c,0x00000,0x15769,0x15768,0x23f38,0xe3e47, +0x00000,0x00000,0x25960,0x1485d,0x15333,0x00000,0xe3e48,0x23f39, +0x23f3a,0x23f3b,0x16a57,0x1717a,0x1485e,0x00000,0x14f3b,0x22d2b, +0x1576a,0x23234,0x15c6f,0xe3e49,0x23f3c,0x1662b,0x00000,0x16a58, +0x1717b,0x17528,0x1772e,0x2664d,0x1485f,0x14f3c,0xe2a5d,0x00000, +0x1576b,0x23856,0x16154,0xe492b,0x16a59,0x24d32,0x2532e,0x00000, +0xe524a,0xe5868,0xe5a79,0x14860,0x16155,0x24648,0x16a5a,0x14861, +0x22851,0x22d2c,0x15334,0x00000,0xe2e68,0x23236,0x00000,0xe3357, +0x1576e,0xe3358,0x1576c,0x1576d,0x1576f,0xe3355,0x00000,0x23235, +0x00000,0x00000,0x2385b,0x23858,0x2385a,0x15c70,0x15c72,0x15c71, +0x23857,0x15c73,0x23859,0x00000,0x23f3d,0x23f3e,0x00000,0x23f3f, +0x2464b,0xe4426,0x2464c,0x00000,0x2464a,0x2464d,0x00000,0x1662c, +0xe6634,0x24649,0xe492d,0x16a5b,0xe492e,0x00000,0x25333,0x2532f, +0x25332,0x25334,0x25331,0x25330,0x00000,0x25961,0x25962,0x25963, +0x1717c,0x1717d,0x25e5e,0x25e5d,0x25e5f,0x00000,0x2626d,0x2626c, +0x00000,0x2664f,0xe5a7a,0x26650,0x2664e,0xe5a7b,0x17a30,0x00000, +0x26962,0x26963,0xe5e55,0x26d73,0x26f3e,0x27049,0x14862,0x14b40, +0x00000,0x17529,0x14863,0x00000,0x2385c,0x23f40,0xe5a7c,0x17c6c, +0x2226a,0x00000,0x00000,0xe2438,0x2226b,0x2226d,0x14864,0x2226e, +0x2226c,0x00000,0x00000,0x22522,0x22523,0x2247b,0xe2728,0x00000, +0x00000,0x00000,0x22521,0x14b42,0xe2729,0x14b43,0x2247c,0x2247a, +0x22479,0x2247d,0x14b41,0x2247e,0x22d2d,0xe272b,0x00000,0x00000, +0x22856,0x14f3f,0x22855,0x22857,0xe2a60,0x14f3e,0x2285c,0x14f42, +0x22852,0x22860,0x22866,0x14f49,0x22863,0x14f46,0xe2a6b,0x22859, +0x2285f,0x22861,0xe2a66,0x22854,0x14f45,0x14f40,0x2285a,0x14f47, +0x14f4a,0x14f44,0xe2a6c,0x14f3d,0x2285e,0x22858,0x22865,0x14f4c, +0x14f48,0x14f43,0x2285d,0x15770,0x2285b,0x14f41,0x14f4b,0x00000, +0x22853,0x00000,0x22862,0x22864,0xe2a5e,0x00000,0x00000,0x00000, +0x00000,0xe2a68,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0xe2e76,0x15345,0x1533f,0x15347,0x15344,0x22d34,0x22d37,0x15340, +0xe2e6a,0x22d2e,0x00000,0x15339,0x15343,0xe2e6b,0x15346,0x15348, +0x22d43,0x22d3a,0xe2e78,0x15338,0x22d42,0x1533c,0x1533a,0x15335, +0x22d32,0xe2e72,0x22d41,0x22d36,0x22d39,0x22d46,0xe2e74,0x15349, +0x22d40,0x15341,0x22d3b,0x22d45,0x22d38,0x22d3c,0x22d3f,0xe2e69, +0xe2e6e,0x22d30,0x22d44,0x22d3e,0xe2e6f,0xe2e7a,0x22d2f,0x00000, +0x22d33,0x15342,0x1533d,0x15336,0x1533b,0x15337,0x1534a,0x22d31, +0x23247,0x1533e,0x00000,0xe2e79,0x22d3d,0x22942,0xe2e77,0x00000, +0xe6635,0x00000,0xe6637,0x00000,0x00000,0x00000,0x2324a,0x1577e, +0xe3362,0x2323a,0x00000,0x23245,0x23241,0xe384d,0x23254,0xe3359, +0x2324c,0xe335f,0x23242,0xe385b,0x2324b,0x2323c,0x23240,0x23257, +0x15823,0x2324f,0x23246,0x15771,0x23255,0x23238,0x00000,0x2324e, +0x00000,0x15822,0x1577b,0x23237,0x15779,0x15778,0x1577d,0x2324d, +0x15775,0x1577c,0x22d35,0x23f41,0x23248,0x00000,0xe2a5f,0x2323e, +0x15821,0x2323f,0x23243,0x15824,0x23239,0x23251,0xe3e57,0x23250, +0x23258,0x15777,0x15774,0x23256,0x23252,0x23249,0x23244,0x1577a, +0x15776,0x2323b,0x15772,0x23253,0x15773,0x00000,0x2323d,0xe335a, +0xe3363,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0xe6636,0xe2d33,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0xe384e,0xe3851,0x23862,0x23864,0x23869,0x2387d,0x15d23, +0x15c77,0xe3854,0x23861,0x15d24,0x15d25,0x2386c,0x23873,0x23879, +0xe3850,0x23866,0x00000,0x2386d,0xe384f,0xe385d,0x15d26,0x2387b, +0x23876,0x15d21,0x15c7d,0x23872,0x2386e,0x23860,0x15c74,0x23865, +0x2385d,0xe3855,0x15c7c,0x15c7e,0x2386a,0x23867,0x15c79,0x23877, +0x15c76,0x23868,0x23f6a,0x23870,0xe385e,0x2386f,0x15c75,0xe3857, +0x15d22,0xe3852,0x15c78,0x2385e,0x23863,0x23874,0x2387a,0x15d27, +0x2385f,0x2386b,0x23871,0x15c7b,0x00000,0xe3858,0x2387c,0x23875, +0x23878,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0xe385f, +0x00000,0x00000,0x00000,0x00000,0x00000,0x15c7a,0x00000,0x23f51, +0x23f45,0x1615d,0x23f62,0x23f6b,0x23f6e,0x1615b,0x23f4d,0x23f66, +0x23f4e,0x23f5c,0x16168,0x23f58,0x16165,0xe3e5e,0x23f59,0x23f42, +0x00000,0x23f67,0xe3e4f,0xe3e59,0x1616e,0x23f64,0x23f5a,0x23f70, +0x23f55,0x2466d,0xe3e4d,0x23f73,0x1616c,0x23f53,0x23f5f,0x1616f, +0x1615a,0x23f57,0x23f71,0x23f50,0x23f49,0x23f54,0xe3e5f,0x23f48, +0x23f46,0x16156,0x23f68,0x23f4f,0x23f6c,0xe3e4b,0x23f6d,0x1615e, +0x16163,0x1615f,0x16167,0x23f63,0x16160,0x23f5b,0x23f4b,0x00000, +0x16158,0x23f43,0x23f65,0x23f6f,0x23f4a,0x16166,0x23f74,0x23f56, +0xe3e52,0x23f52,0xe3e5c,0x16157,0x1616b,0xe3e5a,0x23f61,0x1616d, +0xe3e50,0x23f5d,0x16162,0x1615c,0x16164,0x16159,0x1616a,0x23f5e, +0x23f4c,0x23f60,0x23f47,0x23f69,0xe3e58,0x00000,0xe3e5d,0xe3e56, +0xe3e4e,0x00000,0x00000,0x23f72,0x00000,0x00000,0xe6639,0xe3e5b, +0x00000,0xe6638,0x00000,0x23f44,0x00000,0x00000,0x00000,0x00000, +0x00000,0x2466c,0xe442d,0x24724,0x1655c,0x24671,0xe4431,0x2466f, +0x2465a,0x16630,0x2466a,0x2467e,0x24666,0x16638,0x2467d,0x24664, +0x16169,0x24674,0x24665,0x2467b,0x16637,0x1662f,0xe443a,0x2464f, +0x24657,0xe4435,0x24670,0x24668,0x24723,0x2466b,0x1663d,0x2467c, +0xe442c,0x16634,0xe443e,0x2466e,0x24676,0x2465b,0x24675,0xe4427, +0x24728,0x24656,0x24677,0xe4433,0x24726,0xe443f,0x24650,0x16161, +0xe4440,0x2465e,0x2465d,0x16636,0xe4432,0x24661,0x24663,0x24672, +0x24725,0x16639,0xe4438,0x1663a,0xe4430,0x24655,0x16632,0x24659, +0x24721,0x1663b,0x00000,0x16633,0x16635,0x1663c,0x24727,0x24678, +0x24673,0xe443c,0xe442f,0x24660,0x2465f,0x16631,0x24651,0x1662e, +0x24669,0x24652,0x24667,0xe442e,0x00000,0x2465c,0x24722,0xe442a, +0xe4439,0x00000,0x1662d,0xe443b,0xe4428,0x00000,0x24658,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x24654,0x2467a,0x24653, +0x16a68,0x24d5a,0xe4935,0xe4944,0x24d49,0xe4933,0xe4938,0x24d33, +0x24d51,0x16a60,0x24d42,0x24d4c,0x16a63,0x24d45,0x16a61,0x24d36, +0x24d54,0x24d35,0x24d48,0xe493c,0x24d34,0xe4939,0x00000,0x24d46, +0x24d4f,0x24d4d,0x24d41,0x24d3c,0x24d3a,0xe4942,0x24d3b,0x24d4e, +0x24d59,0x24d43,0x16a62,0xe493b,0x24d3e,0xe493a,0x24d52,0xe4941, +0x16a65,0x24d3d,0x24d37,0x24d47,0x16a69,0xe4932,0x00000,0x16a5d, +0x16a66,0x24d3f,0x24d39,0xe4936,0x16a5f,0x24679,0x16a5e,0x24d4a, +0xe4436,0x16a5c,0x16a6b,0x16a64,0x24d4b,0x24d40,0x24d38,0x24d53, +0x24d44,0x16a6a,0x24d57,0x16a67,0x24d56,0xe493f,0x24d50,0x24d55, +0xe493e,0x00000,0xe4943,0x24d58,0x00000,0x00000,0xe663b,0x00000, +0x00000,0xe663c,0xe663a,0x00000,0xe493d,0x00000,0x00000,0x2535c, +0x2535d,0x25350,0x2534f,0x2534b,0x16e5d,0xe4e4f,0x16e55,0x2535f, +0x2535e,0x2464e,0x25348,0x2534c,0x25346,0xe4e44,0x25359,0x2534a, +0xe4e42,0x25360,0x25343,0x25341,0x2534d,0x25357,0x25352,0x16e5f, +0x25338,0xe4e40,0x25356,0xe4e4c,0xe4e46,0xe4e54,0x16e60,0x24662, +0x25344,0x2533b,0x2533e,0x25364,0x25345,0x2533c,0x2533a,0x25337, +0x00000,0x16e59,0x2534e,0x16e58,0x16e5c,0x25349,0x25351,0x16e52, +0x25361,0x25365,0x16e54,0xe4e4b,0x25340,0x25354,0x25358,0x2533d, +0x25362,0x16e5b,0x00000,0x16e5a,0x25335,0x16e5e,0x2535b,0x2533f, +0x25353,0x25339,0x25347,0x25342,0x16e56,0x16e57,0x25355,0x25366, +0x25363,0x2535a,0x00000,0xe4e4d,0xe4e4e,0xe4e52,0x00000,0x00000, +0x00000,0x00000,0x00000,0x25336,0x00000,0x16e53,0x25974,0xe525a, +0x2596b,0x2596e,0xe5252,0x17225,0x25970,0x25965,0x2596c,0x25972, +0x17222,0x17226,0x1717e,0xe5259,0xe5250,0x25967,0x25977,0x00000, +0x00000,0x25971,0x00000,0x25968,0x25a22,0x2597a,0x25964,0x25e72, +0x2596a,0x17221,0xe5258,0x25975,0xe5254,0x25a21,0x17229,0xe5256, +0x2597c,0x25969,0x2596f,0x25973,0x2596d,0x25a23,0x2597e,0x2597b, +0x17223,0x17224,0x17228,0x25966,0x25a24,0x17227,0x25978,0xe524f, +0xe5255,0x25976,0x00000,0xe663d,0x00000,0x25979,0x25f21,0x25e6c, +0x25e71,0x25e7e,0x25e70,0x25e68,0x25e6d,0x00000,0x1752c,0xe562b, +0x25e61,0x25e79,0x25e7b,0x25e60,0x1752b,0x25e7d,0x25e75,0x17532, +0x25e7c,0x25e6e,0x17534,0x25e66,0x2597d,0x25e76,0x25e73,0x25e62, +0x25f23,0x1752e,0xe5628,0xe5629,0x1752f,0x25e64,0x25e74,0xe562d, +0x25f22,0x25e77,0x25e6a,0x17531,0x1752d,0x25e78,0x25e6b,0x25f24, +0x25e65,0x25e6f,0x25e7a,0x25e67,0x25e69,0x00000,0x17535,0x25e63, +0x17533,0x17730,0x1752a,0xe562c,0xe5630,0x00000,0x00000,0x17530, +0x17734,0x2627d,0xe586c,0x26273,0x2626e,0x26274,0x2627e,0x26324, +0x26323,0x17736,0x17735,0xe586e,0x00000,0x26275,0x26325,0x26278, +0x26270,0xe586f,0x26272,0x26271,0x26277,0x2627c,0x2626f,0x26276, +0x2627b,0x17733,0x00000,0x26279,0xe586b,0x17731,0x2627a,0x1772f, +0x17732,0x26660,0x26321,0x00000,0xe663e,0x1786d,0xe5a7e,0x26658, +0x2665c,0x26654,0x26657,0xe5a7d,0x2665f,0x1786b,0x26664,0x2665d, +0x00000,0x26655,0x26665,0x2665e,0x1786e,0x1786f,0x26662,0xe5b22, +0x26656,0x1786a,0x1786c,0x26651,0x26659,0x26653,0xe5c7b,0x26663, +0x26661,0x26652,0x2665a,0x00000,0xe5b25,0xe663f,0x2696a,0x17870, +0x2665b,0x17a32,0x17a34,0x17a31,0xe5c76,0x2696f,0x26967,0x26965, +0x26969,0x26966,0xe5c78,0xe5c7c,0x2696b,0x2696d,0x17a35,0x17a37, +0xe5d22,0x2696c,0x17a38,0x17a36,0x2696e,0xe5c7e,0x00000,0xe5d23, +0xe5c77,0x17a33,0x00000,0xe5d21,0x00000,0xe5e5b,0xe5e5a,0x17b21, +0x26c21,0x26c27,0x17b23,0x26968,0x26c26,0xe5e5c,0x26c2d,0x26c24, +0x26c2b,0x26c2a,0x26964,0x26c25,0x26322,0x26c2e,0x26c23,0x26c28, +0xe5e58,0x26c2c,0x26c22,0xe5e56,0x26d77,0x17b22,0x26c29,0xe5e57, +0x00000,0x26f43,0x26d78,0x26d76,0x26d74,0x26d75,0x26d79,0xe6640, +0x17c45,0x26f41,0x26f3f,0x26f44,0x26f42,0xe6043,0x26f45,0x17c46, +0x26f40,0xe602f,0xe6146,0x2704a,0x00000,0xe6641,0x27134,0x27135, +0x27136,0xe6147,0xe617c,0x27235,0x2722d,0x2226f,0x14f4d,0x00000, +0x1534b,0x00000,0x2325a,0x23259,0x15825,0x15d28,0x23921,0xe3863, +0xe3860,0x2387e,0xe3861,0x16170,0x1663f,0xe3e61,0x1663e,0x16640, +0x00000,0x24d5b,0x25367,0x25a25,0x25a27,0x25a26,0x00000,0x17536, +0x25f25,0x26326,0x27173,0x14865,0xe272d,0x22869,0x2286a,0x22868, +0x22867,0x14f4e,0xe6642,0x22d4a,0x22d48,0xe2f23,0xe2e7c,0x22d47, +0xe2e7e,0x1534c,0x1534e,0x1534d,0x22d49,0xe2f24,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0xe3369,0x23266,0x23263,0x23261, +0x00000,0xe336c,0x15826,0x23264,0x1582b,0x2325e,0x2326d,0xe336f, +0x2326f,0x2325f,0xe336e,0x15828,0x23270,0x2326b,0x2325d,0x23262, +0x2326c,0x23268,0x23265,0xe336b,0x1582d,0x2326e,0x23260,0xe336a, +0xe3370,0x23269,0x2325b,0x1582c,0x15829,0x23267,0xe336d,0x2326a, +0x2325c,0x1582a,0x15827,0x00000,0x00000,0x00000,0xe3866,0x15d32, +0x23928,0x15d31,0xe3864,0x2392b,0x2392e,0x15d2e,0x15d2c,0x23923, +0x2392c,0x2392a,0x23927,0x2392f,0x23930,0x23932,0x23933,0x23922, +0x15d2b,0x23925,0x23924,0x23931,0x15d2d,0x23926,0x15d2f,0x15d2a, +0x23929,0x15d33,0x00000,0x15d30,0x2392d,0x00000,0x00000,0x00000, +0x16177,0x24025,0x00000,0x23f78,0x16174,0xe3e62,0x2472e,0x24023, +0x23f75,0x16172,0x23f7a,0x16175,0x23f7e,0x23f7c,0x16178,0x16171, +0x00000,0xe3e63,0x23f76,0x23f79,0x16176,0x00000,0x23f77,0x00000, +0x24024,0x24022,0x23f7b,0x23f7d,0x24021,0x16173,0xe3e68,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x2472f,0x24735,0x2472b, +0x24731,0x16641,0x2472d,0x16647,0xe4444,0xe4445,0x16646,0xe4449, +0x16645,0x24734,0x16648,0x16649,0x2472a,0x24737,0x1664a,0x16644, +0x16643,0x24733,0x1664b,0x24729,0x2472c,0x24736,0x24732,0x00000, +0x00000,0x24d7b,0x24d70,0x16642,0x00000,0xe4446,0xe4448,0x00000, +0x16a72,0x24d64,0x24d79,0x24d65,0x16a6d,0xe494f,0x24d62,0x00000, +0x24d6b,0x24d63,0x16a6f,0x24d5d,0x24d78,0x16a70,0x24d75,0x24d76, +0x24d5e,0x16a75,0x24d6d,0xe494a,0x24d67,0x24d6e,0x24d61,0x00000, +0x24d7a,0x24d72,0x24d6c,0x24d5c,0x16a71,0x24d73,0xe4945,0x16a74, +0x24d77,0xe494c,0x24d71,0x16a6e,0x24d6f,0xe4949,0x24d69,0x16a6c, +0x24d60,0x24d68,0x24d74,0x24d66,0x00000,0xe494e,0x24d6a,0xe494b, +0x00000,0x00000,0xe6643,0x00000,0x16e6a,0x24730,0x25379,0x25424, +0x25378,0x25374,0x25371,0x16e6b,0x2536f,0x16a73,0x25368,0x16e69, +0x2536e,0x16e68,0x25373,0x25370,0x25422,0x2537b,0x25375,0x2537a, +0x16e64,0x25372,0x25427,0x25369,0x2536a,0x25423,0x16e65,0x25428, +0x16e67,0x25429,0x25377,0x24d5f,0x2537d,0x25376,0x25421,0x2537c, +0x00000,0xe4e5d,0x00000,0x2536d,0x16e62,0x25426,0x16e63,0x2536b, +0x16e66,0x25a32,0x2537e,0x25425,0x00000,0xe4e59,0x00000,0x00000, +0x00000,0x25a2f,0x16e61,0x1722a,0x25a39,0x25a35,0x00000,0x25a33, +0x25a2e,0x25a3d,0xe525b,0xe525d,0x00000,0x1722e,0xe525f,0x25a2a, +0x25a36,0x25a37,0x25a2d,0x25a2c,0x25a3a,0x00000,0x25a30,0x25a2b, +0x25a31,0xe5262,0x25a3c,0x25a29,0x25a3b,0x25a38,0x1722c,0x1722b, +0x00000,0xe525e,0x1722d,0x25a34,0x25a28,0xe6645,0x00000,0x00000, +0x00000,0xe6644,0x25f27,0x1753c,0x25f2b,0x25f28,0x25f2f,0x25f35, +0x25f2a,0xe563a,0x25f3e,0x17539,0x25f38,0x25f2d,0x25f39,0x25f34, +0x25f3b,0x25f2c,0x1753e,0x1753d,0x25f2e,0x25f3c,0x25f26,0x25f3a, +0x17537,0xe5639,0x25f32,0x25f31,0x25f36,0x25f29,0x1753b,0xe563b, +0x1753f,0x25f30,0x25f37,0x17540,0x25f33,0xe5636,0xe5634,0x00000, +0x00000,0x17538,0x1753a,0x26333,0x26331,0xe5b28,0xe5876,0x26337, +0x26335,0x26338,0xe5878,0x2632a,0x26332,0x2633c,0x25f3d,0x2632e, +0x1773a,0x2536c,0x26329,0x26336,0x26330,0x2632d,0x26328,0x26327, +0x2633b,0xe5873,0x2632c,0x2632b,0x17738,0x26334,0xe5874,0x17737, +0xe5875,0x00000,0x17739,0x2632f,0x2633a,0xe6646,0x26669,0x2666a, +0xe5b2c,0x17874,0x26667,0x17871,0x2666f,0xe5b27,0x17875,0x26671, +0x26666,0x26339,0x26673,0x26668,0x00000,0x17872,0x2666e,0xe5b29, +0x26670,0x2666b,0x26672,0x2666d,0x2666c,0x17873,0xe5877,0xe5b2b, +0x26971,0x26972,0xe5d25,0x26974,0x17a39,0x17a3a,0x26975,0x26973, +0xe5d24,0x26970,0xe5e5d,0x26c31,0x26c34,0x26c30,0x00000,0x17b27, +0x26c32,0x17b26,0x17b25,0x17b24,0x26c33,0x26d7e,0x26d7c,0xe5f5f, +0x26d7b,0x26c2f,0x26d7d,0x26c35,0x26d7a,0xe6045,0x26f48,0x26f26, +0x26f46,0x17c47,0x26f47,0x26f49,0xe6647,0x2704d,0x17c66,0x2704c, +0x2704b,0x17c67,0x00000,0x17d27,0x2715d,0x27175,0x27174,0x27176, +0x14866,0x22d4b,0xe2f26,0x23271,0x23272,0xe386a,0xe3e6a,0xe3e69, +0x24026,0x00000,0x26c36,0x2704e,0x14867,0x1534f,0x22d4c,0xe3371, +0xe6648,0x00000,0x23934,0x15d34,0x00000,0x24028,0x24027,0x16179, +0xe444d,0x1664c,0x2542a,0x16e6c,0xe4e5f,0x16e6d,0xe5263,0xe5264, +0x00000,0x1722f,0x17c68,0x14868,0x00000,0x00000,0xe2f27,0x22d4d, +0x14f50,0x22d4f,0x22d4e,0x15350,0x00000,0x23273,0xe3374,0x2327a, +0x1582e,0x23278,0x23276,0xe3377,0x2327d,0x23274,0x23275,0x1582f, +0xe3372,0x15833,0xe3373,0xe3375,0x2327e,0x15832,0x2327c,0x23279, +0x23277,0x15830,0x15831,0x2327b,0xe3376,0x00000,0x00000,0xe6649, +0x15d36,0x23935,0xe3872,0x15d3b,0x23945,0x15d3a,0x23947,0xe386e, +0xe3874,0x2393b,0x15d38,0x23946,0xe386c,0x23936,0x15d39,0x23942, +0x2393e,0x23940,0x2393a,0x23941,0xe386b,0x00000,0x15d35,0x2393d, +0xe3873,0x2393c,0x23938,0xe386d,0x23943,0xe386f,0xe3871,0x2393f, +0x23937,0xe3870,0x23939,0x15d37,0x23944,0x00000,0x00000,0x00000, +0x00000,0x1617c,0x24033,0x00000,0xe3e70,0xe3e72,0x2402f,0x24031, +0x2402c,0x2402b,0x24029,0xe3e6d,0x24030,0x24032,0x2402e,0xe3e6f, +0x2402d,0x1617a,0x1617b,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x24035,0x16654,0x24739,0x2473f,0x2473a,0x2473b,0xe444e, +0x24740,0x00000,0x16656,0x00000,0x1664e,0x16655,0x24738,0x2402a, +0x16651,0x1664f,0x2473e,0x2473d,0x16650,0x16652,0x2473c,0x1664d, +0xe444f,0x16653,0x00000,0x00000,0x00000,0x00000,0xe4e60,0x24d7d, +0x16a7c,0xe4959,0xe4952,0x24e2a,0x24e29,0xe4957,0x24e24,0x16a7e, +0x24e28,0x24d7e,0x24e21,0x16a76,0x16a78,0xe4954,0x24e26,0x24d7c, +0x16a7a,0x16a79,0x24e22,0x24e27,0x24e25,0x16a7b,0x24e23,0xe4951, +0xe4956,0x24034,0x16a77,0xe4958,0x00000,0x2542b,0x25432,0x16e6f, +0x00000,0x25436,0x16e73,0x2542e,0x2542c,0x00000,0x25435,0xe4e61, +0x16e6e,0x25434,0x16e70,0x16e71,0x2542d,0x16e72,0x25433,0x2542f, +0x25430,0x25431,0x16a7d,0xe4e62,0x00000,0x00000,0x25a3e,0x25a4a, +0x00000,0x17234,0x25a45,0x25a47,0xe5265,0x17232,0x25a3f,0x25a43, +0x00000,0x25a46,0x17230,0x17233,0x25a49,0x25a41,0x25a42,0x25a48, +0x25a40,0x25a44,0x17231,0x25f40,0x00000,0x25f3f,0x17542,0x25f45, +0x17544,0xe5640,0x00000,0x17541,0x25f41,0x17545,0x25f42,0xe563f, +0xe563d,0x25f43,0x25f46,0xe5642,0x17543,0x00000,0x26341,0x00000, +0xe5879,0x26344,0xe587a,0x2633e,0x26340,0xe587c,0xe587b,0x2633f, +0x26342,0x26343,0x25f44,0x2633d,0xe664a,0x00000,0x17878,0x26677, +0x2667a,0x2667c,0x26675,0x26676,0x26679,0x2667b,0x17879,0x17877, +0x17876,0x26678,0x26674,0x26976,0x17a3b,0xe5d29,0x26977,0xe5d28, +0x00000,0x26c38,0x17b28,0x26c3a,0x17b29,0x26c37,0x26c39,0x17b72, +0x00000,0x26e21,0x17b71,0x26f4c,0x26f4b,0x00000,0x26f4a,0x00000, +0xe6149,0x27137,0x27138,0x2713a,0x27139,0xe617d,0x22270,0x14869, +0x00000,0x15351,0x23948,0x1617d,0xe664b,0x24741,0x1773b,0xe5b2f, +0x2667d,0xe6046,0xe614a,0x14b44,0xe2f29,0x00000,0x00000,0x15d3d, +0x00000,0xe3876,0xe3875,0x15d3c,0xe3877,0x24036,0x1617e,0x24038, +0x24037,0x00000,0xe3e74,0x24742,0x16657,0x24e2b,0x24e2e,0x24e2d, +0x00000,0x24e2c,0x25437,0x25439,0x25438,0xe4e65,0x17236,0xe5266, +0x00000,0xe4e64,0x17235,0xe5646,0x17546,0x25f47,0x25f49,0x25f48, +0xe587e,0xe587d,0x1773c,0xe5921,0x00000,0xe5b31,0x26721,0x2667e, +0x00000,0x26978,0x17a3c,0xe5d2a,0xe5e61,0x17b2a,0x26e23,0x26e22, +0x17d28,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x14b45,0x22d50,0x15352,0x2394b,0x23949,0x00000, +0x00000,0x2394a,0x2403a,0x2403b,0x24749,0x24039,0x00000,0x24743, +0x24747,0x24746,0x24748,0x16658,0x24745,0x24744,0x2474a,0xe4454, +0x24e31,0x24e2f,0xe495c,0x24e30,0x2543c,0x2543a,0xe4e66,0x00000, +0x2543b,0x25a4b,0x25f4a,0x25f4b,0x1773d,0xe5b32,0x26722,0x26979, +0x17a3d,0x00000,0x26c3b,0x26e24,0x17b73,0x00000,0x26f4d,0x2713b, +0x14b46,0x00000,0x15354,0x15355,0x22d51,0xe2f2a,0xe2f2c,0x22d52, +0x15353,0x00000,0x15839,0xe337b,0x15837,0xe337a,0x15836,0x1583d, +0x15835,0x1583e,0x23321,0x1583b,0x00000,0x15838,0x1583c,0x1583a, +0x15834,0xe337c,0x00000,0x15d45,0xe387e,0x15d3f,0x2394f,0x15d44, +0xe3923,0xe3929,0x15d46,0x15d40,0x00000,0x15d41,0xe3879,0x2394d, +0xe387b,0xe3925,0x15d3e,0xe3922,0x2394e,0x15d43,0xe6330,0x00000, +0x2394c,0x15d42,0xe387a,0x00000,0x1622b,0xe3e7c,0x1622d,0x00000, +0xe3e7d,0x2403e,0x1622c,0x16221,0x16225,0xe3f24,0x1666b,0x2474f, +0x24040,0x16226,0xe3e7e,0xe3e75,0x24043,0x24044,0x1622a,0x00000, +0x24046,0xe3f21,0x24048,0xe3f23,0x24049,0x2403d,0x2403c,0x2404a, +0x16229,0x24047,0x24045,0x00000,0x16227,0x16223,0x1622e,0x24041, +0x24042,0x2403f,0xe3e78,0x16228,0x00000,0xe3f22,0x16224,0x00000, +0x16222,0x2474e,0x16666,0x16661,0xe4460,0xe4459,0x1665c,0xe4463, +0x1666c,0x1665d,0xe4455,0x16659,0x16668,0x16665,0x16667,0xe4458, +0x1665e,0x16663,0x1665a,0x1665b,0x24756,0x24753,0x2474b,0x24750, +0xe445b,0x16669,0x24757,0x1666a,0x16660,0xe445c,0xe4461,0x2474d, +0xe4456,0x24755,0x24751,0x24754,0x24752,0x16664,0x2474c,0x1665f, +0xe445d,0x00000,0x00000,0x24e34,0x16b22,0x16b25,0xe495f,0x24e36, +0xe4964,0x16b2d,0x24e35,0x16b27,0xe4963,0x16e78,0x24e37,0x00000, +0x16b2c,0x24e33,0x16b2e,0xe495e,0xe4962,0xe496b,0x16b23,0xe4968, +0x16662,0x16b26,0xe4960,0x16b24,0x16b28,0x16b2a,0x16b21,0x16b2f, +0x16b2b,0xe4965,0x16b29,0x24e32,0xe4966,0x00000,0x00000,0xe4e74, +0x16f21,0xe4e67,0x16e7b,0xe4e72,0xe4e70,0xe4e6e,0x16f24,0xe4e6c, +0x2543f,0x16f25,0x2544b,0x25444,0x16e74,0x2544c,0x25446,0x16e7e, +0x25447,0xe4e73,0x16e7d,0x2544a,0x16e77,0x25448,0x2543e,0x16e76, +0x25a56,0x16e7c,0xe4e75,0x16e79,0xe4e69,0x16f23,0xe4e6a,0x2543d, +0xe4e76,0x25441,0x16e75,0x25440,0x25442,0x25443,0x16f22,0x25445, +0x25449,0x2544d,0x00000,0x16f26,0x1723c,0x25a51,0x25a57,0x25a54, +0x25a4c,0x25a58,0x25a4d,0xe526a,0x25a53,0xe526b,0x17237,0x1723d, +0x25a59,0xe4e6f,0xe5267,0x17239,0xe526e,0x17243,0x1723e,0x25a5b, +0x25a55,0x1723a,0x25a4e,0x17244,0x25a4f,0x25a50,0x17245,0x17242, +0x16e7a,0xe5269,0x17238,0x25a5c,0x17246,0xe5268,0x1723f,0x25a5a, +0x1723b,0x17240,0x17241,0xe664c,0x1754e,0x25f50,0x25f59,0x25f56, +0x25f58,0xe5649,0x1754b,0x25f51,0xe564a,0x25f57,0x17547,0x25f53, +0x1754f,0x25f4f,0x25f54,0x25f5b,0x25a52,0x25f55,0x25f4e,0x17548, +0x25f4d,0x17549,0x25f5c,0x1754a,0x25f5a,0x1754d,0x25f4c,0xe5648, +0x1754c,0x00000,0x25f52,0x26347,0x26355,0x26350,0x26352,0x26346, +0x1773e,0xe592a,0x26345,0x17741,0x17740,0xe5926,0x26354,0x2634c, +0x26349,0x2634f,0xe5924,0x26348,0xe5928,0x2634a,0x26353,0x26351, +0xe5923,0x1773f,0x26358,0x26356,0x2634d,0x26357,0x2634e,0xe5b34, +0x26726,0x1787a,0x2672d,0xe5b35,0x00000,0x26c3e,0x17923,0x2634b, +0x26724,0x1787d,0x26725,0x2672a,0xe5b36,0xe5d33,0x17921,0x17922, +0x26723,0x2672c,0x2672e,0x26727,0x26729,0x2672b,0x26728,0x2672f, +0x1787c,0x17924,0x1787e,0x00000,0x1787b,0x2697c,0x00000,0x17a42, +0x2697a,0xe5d30,0xe5d2c,0x2697e,0xe5d32,0x26a21,0x17a40,0x26a22, +0x2697d,0xe5d2b,0x2697b,0x17a43,0x17a3f,0x26a23,0xe5d2e,0x17a41, +0x17a3e,0xe5c6d,0x00000,0xe642d,0x17b2b,0xe5e62,0x00000,0x17b2c, +0x26c3d,0x26c3c,0x26c3f,0x26c40,0xe5e63,0x17b2d,0x26e25,0x26e2a, +0x17b74,0xe5f61,0x26e27,0xe5f62,0x26e26,0x26e29,0x26e28,0xe6048, +0x26f51,0x00000,0x17c48,0x26f50,0x26f4e,0xe6047,0x26f4f,0x00000, +0xe6049,0xe607b,0x17c6a,0x17c69,0x2704f,0x27050,0x17c6b,0xe614b, +0x2713c,0x2713d,0x17d34,0xe616b,0x17d3a,0xe617e,0x27177,0x27236, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +/* 0x8c00 */ +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x14b47, +0x00000,0x23950,0xe392a,0x23951,0x24758,0x24e38,0x2544e,0x17551, +0xe564d,0x17550,0x26359,0x26730,0xe5f64,0x26f52,0x14b48,0x23322, +0x1583f,0x15d47,0x2475a,0x24759,0x16f27,0x2544f,0x16f28,0x25f5d, +0x17742,0xe5d34,0xe664d,0xe6221,0x17d43,0x14b49,0x2286b,0x23323, +0xe392d,0x00000,0x15d48,0xe392c,0x23952,0x23953,0xe3f2a,0x2404b, +0xe3f29,0x1622f,0x1666d,0xe4464,0x2475c,0x2475b,0x2475d,0xe496d, +0x24e39,0x24e3a,0x16b30,0x17247,0x16f29,0x17248,0x00000,0x25f61, +0x25f5e,0x25f60,0x25f5f,0x17552,0xe592b,0x2635a,0x26732,0x26731, +0x22524,0x15841,0x15840,0x23324,0xe392e,0x23954,0xe3f2c,0xe3f2b, +0x2404d,0x2404c,0x16230,0xe3f2d,0x2475f,0x24760,0x2475e,0xe634a, +0xe4465,0x1666f,0x1666e,0x00000,0x16b32,0x16b31,0xe4e7a,0x25450, +0x25a5f,0x25a5d,0x25a5e,0x17249,0x25f63,0x25f62,0xe564f,0x2635d, +0x2635c,0x2635b,0x26733,0xe614d,0x27178,0x14b4a,0x15356,0xe2f2e, +0x15357,0x15842,0x15843,0x23326,0x23325,0x23955,0xe3930,0x15d4e, +0x15d4c,0x15d49,0x15d4d,0x15d4b,0x15d4a,0xe3932,0xe3931,0x16231, +0x24050,0xe3f2f,0x16674,0x16233,0x16238,0x24052,0x1623a,0x16239, +0x1623c,0x24051,0x2404e,0x16236,0x16232,0x16234,0x2404f,0x1623b, +0x16237,0x16235,0x16676,0x16675,0x16673,0x16677,0x00000,0x16671, +0x16672,0xe4469,0x16670,0x00000,0x24761,0xe4467,0x00000,0x24e3c, +0xe4970,0x16b34,0x16b35,0x16b33,0xe4972,0x24e3b,0xe4971,0x24e3d, +0xe664e,0x25453,0x25455,0xe4e7e,0x16f32,0x25456,0x16f2b,0x25452, +0x16f2a,0x16f34,0x16f30,0x16f31,0x16f2d,0x25451,0x16f2c,0x25457, +0x25454,0xe4e7d,0x16f33,0xe4f22,0x16f2e,0x16f2f,0x25a61,0xe5275, +0x25a63,0x25a62,0xe5273,0x25a64,0x1724a,0x25a60,0xe5651,0xe5652, +0x17556,0x25f64,0x17553,0x17557,0x17555,0x17554,0x2635e,0x00000, +0x26361,0x00000,0x26360,0xe592e,0x2635f,0x17743,0x26734,0x26735, +0x17925,0x26736,0x17926,0xe5b38,0xe664f,0x17a45,0xe6428,0x17a44, +0x26c41,0xe5e65,0xe5e66,0x17b2e,0x26c42,0x26e2b,0x17b75,0x17b76, +0xe6650,0x26f53,0xe604a,0x17c6d,0xe614e,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x14b4b,0xe3933,0x15d50,0x15d4f, +0x24762,0x24763,0x00000,0x16b36,0x25a65,0x16f35,0x25a66,0x25f65, +0x14b4c,0xe243a,0x22d53,0x15359,0x15358,0x00000,0x23327,0x15844, +0x23328,0x23958,0xe3939,0x23957,0xe3937,0x23956,0xe3935,0xe3938, +0x24054,0x1623f,0xe3f39,0xe3f34,0x24053,0x1623e,0xe3f37,0xe3f30, +0xe3f33,0x24055,0x1623d,0xe3f38,0x24765,0x24768,0x24766,0x24767, +0x2476b,0x24764,0x2476c,0x24769,0x2476a,0x16b38,0x24e3e,0xe4975, +0xe4973,0x16b37,0xe4974,0x2545b,0x25459,0xe4f26,0x00000,0x16f36, +0x25458,0x2545a,0xe4f25,0x16f37,0xe4f23,0x25a67,0xe5277,0x25a68, +0x17558,0xe5931,0x26738,0x2673a,0x26737,0x26739,0x26a24,0x26c43, +0xe6651,0x00000,0x2715e,0x14b4d,0x1535a,0x23329,0x2332b,0x2332a, +0x00000,0x2395b,0x15d52,0xe393e,0x23959,0xe393a,0x15d51,0x2395c, +0xe393d,0x2395d,0x2395a,0x00000,0x00000,0x24061,0x16247,0x24059, +0x2405f,0xe3f3f,0xe3f3a,0x16242,0x16245,0x24058,0x16240,0x2405c, +0x24772,0x16244,0xe3f3b,0x24057,0xe3f3e,0x2405d,0x2405a,0x24060, +0x24056,0x2405e,0x16243,0x16246,0x2405b,0x16241,0x00000,0x16679, +0x2476e,0x16678,0x24775,0x24774,0x16721,0x00000,0x16722,0x24776, +0x1667a,0x24773,0x1667e,0x24778,0x2476f,0xe446b,0x24771,0x1667b, +0x2476d,0x24770,0x24777,0x1667c,0x24779,0x00000,0x00000,0x00000, +0x00000,0x00000,0x1667d,0x00000,0x16b39,0x24e43,0x24e49,0x24e41, +0x24e4a,0xe497b,0x24e40,0x24e45,0x24e4b,0x24e48,0x24e47,0x24e46, +0xe497a,0x24e3f,0x24e44,0xe4979,0x00000,0x24e42,0x00000,0x16f3c, +0x16f39,0x25464,0x25469,0x2546b,0x25468,0x25461,0x25463,0x2546d, +0x2546a,0x25465,0x2546e,0x25462,0x2546c,0x16f3a,0x16f40,0x16f3e, +0x2545c,0x16f3f,0x16f3b,0x2545d,0x2545f,0x2545e,0x25466,0x25467, +0xe4f2c,0x16f3d,0xe4f2b,0x16f38,0x00000,0x00000,0x25460,0x00000, +0x25a72,0x1724c,0xe527e,0x25a69,0x1724d,0x17250,0x25a6e,0x00000, +0x25a6b,0x1724f,0x00000,0xe527b,0x25a6f,0x25a70,0x25a6a,0x25a73, +0x25a6c,0x25a71,0x1724e,0xe527c,0x1724b,0x25a6d,0xe5654,0x25f6b, +0x1755b,0x17559,0x1755c,0x1755a,0x25f6a,0x25f67,0x25f66,0xe5655, +0x25f69,0x00000,0x00000,0x25f68,0x2636f,0x17749,0x26366,0x26365, +0xe5932,0x17744,0x2636b,0x2636a,0x26362,0x2636d,0x26367,0x17748, +0x26364,0x2636c,0x26363,0x17745,0x17747,0x26368,0x17746,0x26369, +0xe5b3a,0x2636e,0x2673e,0xe5b39,0x1792b,0x2673b,0x00000,0x2673f, +0xe5b3b,0x00000,0x17928,0x2673d,0x1792d,0xe5b3c,0x1792a,0xe5b3d, +0x2673c,0x00000,0x1792c,0x26740,0x17927,0x00000,0x00000,0x00000, +0x00000,0x17a47,0x17a49,0xe5d37,0x26a27,0x17a48,0x26a25,0x17929, +0x26a26,0x17a46,0x17b2f,0x17b31,0x26c45,0x17b30,0x26c44,0x00000, +0x26e30,0x17b77,0x26e2f,0x17b78,0x26e2d,0x26e2c,0x26e31,0x26e32, +0x26f54,0xe604b,0x26e2e,0x00000,0x00000,0x27054,0x27051,0x27052, +0x27053,0x17d29,0xe6150,0x27140,0x2713f,0x2713e,0x2715f,0xe616c, +0x2722e,0x27179,0x17d3b,0x14b4e,0x15845,0xe393f,0x00000,0xe3940, +0xe3f40,0xe4473,0x16723,0xe497d,0xe497c,0x00000,0xe4f30,0xe4f32, +0xe4f2f,0xe4f31,0x16f41,0x00000,0xe6652,0x25a74,0x00000,0xe5935, +0x1774a,0xe5936,0x26741,0xe5b3f,0x00000,0x00000,0xe5d38,0x00000, +0x00000,0x2717a,0x14b4f,0x14f51,0x1535c,0x1535b,0x00000,0x15848, +0x00000,0x2332c,0x15846,0x2332d,0x15847,0xe6653,0xe3941,0x23962, +0x2395e,0xe3947,0x00000,0x15d53,0x23961,0x23960,0x2395f,0x15d54, +0x23963,0x23964,0x00000,0x00000,0xe3f45,0x24068,0x24066,0x2406a, +0x2406b,0x24071,0xe3f47,0x2406d,0x2406f,0x00000,0x24067,0x24062, +0x00000,0x2406e,0xe3f44,0xe3f46,0x24070,0x24069,0x2406c,0x24063, +0x16249,0x24065,0x24064,0x16248,0x1624a,0xe3f49,0x16726,0x2477b, +0x2477d,0x2477c,0x24823,0x16724,0xe4476,0x2477e,0x2477a,0x24821, +0x24822,0x16725,0x16727,0x24824,0x00000,0x24e4f,0x24e4e,0x00000, +0x24e4c,0x24e4d,0x16b3b,0x16b3d,0x16b3a,0x16b3c,0x25475,0x25476, +0x25471,0xe4f36,0x25472,0x16f43,0x16f48,0x16f42,0x16f49,0x16f44, +0x25473,0x00000,0xe4f33,0x25474,0x25470,0x16f4a,0x16f46,0xe4f35, +0x00000,0x16f45,0x16f47,0xe4f34,0x2546f,0xe5324,0x25a76,0x17252, +0xe5322,0xe5321,0x25a78,0x17254,0x25a7b,0x25a77,0x25a75,0x25a7a, +0x17253,0x25a79,0x00000,0x17251,0xe5325,0xe5659,0x1755e,0x17561, +0x25f6d,0xe565a,0x1755f,0x25f6c,0x1755d,0x17560,0x26370,0x26371, +0x26372,0x1774b,0xe5937,0x26373,0x00000,0x1774c,0x1792f,0x26744, +0x26745,0x26743,0x26742,0x26746,0x1792e,0x26a2b,0x26a29,0x26a2a, +0x26a2c,0x26a28,0x26a2d,0x26c47,0xe5e67,0x26c48,0x26c46,0x17b32, +0x26e33,0x17b79,0x26e34,0x26f56,0x26f55,0xe6222,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x14b50,0x1624b,0xe3f4b,0xe4477,0x16728, +0xe4478,0xe4a21,0xe4a22,0x16b3e,0xe4f37,0xe5327,0x17256,0xe5326, +0x17255,0x00000,0xe6654,0x00000,0xe5938,0x17930,0x17a29,0x17b33, +0x14b51,0x15849,0x16729,0xe4f39,0x26747,0xe272f,0x00000,0x00000, +0x00000,0xe243b,0x00000,0x00000,0x00000,0x00000,0xe2730,0x22526, +0x00000,0xe2733,0x14b52,0x00000,0x14b55,0x14b54,0x14b53,0xe2731, +0x00000,0x22525,0xe2a72,0x2286d,0xe2a70,0x2286f,0x14f52,0xe2a74, +0x00000,0x14f54,0x2286c,0x2286e,0x14f53,0x22871,0x22870,0x22872, +0xe2a73,0xe2a71,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x22d57,0x22d55,0x1535f,0x22d54,0x15364,0x15361,0x1535e,0xe2f31, +0x15365,0xe2f32,0x15360,0x15363,0x00000,0x15362,0x22d56,0xe2f33, +0x1535d,0xe2f30,0x00000,0x00000,0x1584f,0x2332f,0x23335,0x1584c, +0x15853,0xe3425,0x1584e,0x23332,0x23334,0x15851,0x2332e,0x23331, +0x1584d,0x1584a,0x23330,0x15850,0x23333,0x15852,0x1584b,0x00000, +0xe3427,0xe3426,0x00000,0x23966,0x23969,0x15d56,0xe394b,0x15d60, +0x15d5c,0x23967,0xe394a,0xe394e,0x15d64,0x15d5d,0x15d62,0x15d58, +0x00000,0x15d55,0x15d57,0x15d63,0x23968,0x15d5b,0x15d5e,0x15d5a, +0x15d5f,0x2396a,0x15d61,0x15d59,0x23965,0xe394c,0x00000,0x00000, +0xe3f4f,0xe3f50,0xe3f4d,0xe3f4c,0xe3f51,0x24072,0x1624c,0x24074, +0xe3f55,0x1624e,0x16250,0x00000,0x24073,0x1624d,0x16251,0xe3f56, +0x1624f,0x00000,0xe3f54,0xe3f57,0x1672f,0x24829,0x16737,0x24826, +0xe447d,0x16738,0x1672d,0xe4479,0x24827,0xe447c,0xe447a,0x16732, +0xe447b,0x24828,0x1672b,0x1672a,0xe447e,0x16735,0x16734,0x16733, +0x16731,0x16736,0x24825,0x1672c,0x1672e,0x16730,0x00000,0x00000, +0x16b40,0x16b43,0xe4a24,0x16b47,0x16b41,0x16b46,0x16b44,0xe4a27, +0x16b3f,0xe4a26,0x16b45,0x16b42,0x00000,0x00000,0x00000,0x2547a, +0x16f4d,0x16f4b,0xe4f3c,0x2547b,0x00000,0x16f4e,0x16f4c,0x25479, +0x25478,0xe4f3b,0x1725a,0x25477,0x17258,0x17257,0x25a7c,0x16f4f, +0x17259,0x25a7d,0x1725c,0x25a7e,0x1725b,0x17563,0x25f6f,0x17562, +0x17567,0x17565,0x17566,0x1774e,0x17564,0x25f6e,0x25b21,0x1774d, +0x1774f,0xe593a,0x17931,0x17932,0x00000,0x26a2e,0x00000,0x17c4a, +0x17c49,0x14b57,0xe225e,0xe225d,0x22275,0x15854,0xe243c,0x22272, +0x22273,0x22271,0xe243d,0x22274,0xe6655,0x00000,0x2252a,0x22527, +0x2252c,0x22528,0x14b58,0x14b5b,0xe2735,0x22529,0x14b5a,0x2252b, +0xe2739,0xe2734,0x14b59,0xe3951,0x00000,0xe2a77,0x00000,0x22875, +0x22877,0x14f57,0x22873,0x22876,0x22874,0x14f55,0x14f58,0xe2a75, +0x14f56,0xe2a78,0x00000,0x00000,0xe2f35,0x22d59,0x22d5d,0x22d5a, +0xe2f38,0x15368,0xe2f34,0x15369,0xe2f3e,0x22d5c,0xe2f37,0x22d5e, +0x22d60,0xe2f3c,0x15366,0x22d5f,0x00000,0xe2f3b,0x15367,0x00000, +0x00000,0x00000,0x00000,0x00000,0x23971,0x22d5b,0x23336,0x2333f, +0x2333d,0x23338,0x23339,0x2333e,0x23340,0x15856,0xe3429,0x2333b, +0x23337,0x15855,0x15857,0x2333a,0x23341,0x2333c,0x00000,0x00000, +0x15d65,0x23974,0x2396c,0x23972,0x23973,0x15d66,0xe394f,0x2396b, +0x2396d,0x22d58,0x2396f,0x23970,0x2396e,0x16253,0xe636c,0xe3952, +0x00000,0x2407b,0x25b22,0x2407c,0x24079,0x15d67,0x16255,0x24078, +0x2407e,0x2407d,0x16252,0x24123,0x24077,0x24122,0x24075,0x24121, +0x2407a,0x16254,0xe3f59,0x24830,0xe4523,0x2482b,0x24831,0x2482c, +0x2482a,0x2482d,0x16739,0xe4524,0x2482f,0xe4525,0x2482e,0x1673a, +0x16b49,0x16b48,0x24e56,0x24e59,0x24e51,0x24e55,0x16b4a,0x24e54, +0x24e52,0x24e58,0x24e53,0x24e50,0x24e57,0xe4a2a,0x25523,0x16f52, +0x26374,0x2547e,0x25521,0x2547d,0x24076,0x16f51,0x25524,0x2547c, +0x16f50,0x16f53,0x25522,0x25b23,0x1725d,0x25b24,0x25b25,0xe532b, +0x25f70,0x17568,0x26375,0x26376,0xe593c,0xe593b,0x26377,0x26749, +0x26748,0x26a30,0x00000,0x26a2f,0x26c4a,0x26c4b,0x26c49,0x26e35, +0x17b7a,0x14b5c,0x1536b,0x1536a,0x1585a,0x15859,0x23343,0x23344, +0x23342,0xe342a,0x15858,0x23978,0xe3955,0x23979,0x23975,0x15d68, +0x23976,0xe3954,0x23977,0x00000,0xe6657,0x00000,0x00000,0x24126, +0x24128,0x24124,0x24127,0x16256,0x24125,0x16257,0x00000,0xe4528, +0x24279,0x1673d,0x1673c,0xe4527,0x1673b,0x00000,0x24832,0x24833, +0x00000,0x00000,0x24e5b,0x24e5d,0x16b4e,0x16b4b,0xe4a2c,0x16b4d, +0x16b4c,0x24e5c,0x24e5a,0xe4a2b,0xe4a2d,0x00000,0x00000,0x00000, +0x2552b,0x25528,0x25529,0x16f57,0x2552a,0x25525,0x25526,0x16f54, +0xe4f3f,0x16f55,0x25527,0x16f56,0xe4f40,0x25b29,0xe532d,0x25b2a, +0x25b27,0x25b28,0x1725e,0x25b26,0x00000,0xe532c,0xe532f,0x00000, +0x00000,0x25f74,0x25f71,0x25f73,0x1756b,0x25f77,0x1756a,0x25f75, +0x25f78,0x25f76,0x25f72,0x17569,0x00000,0x26379,0x00000,0x2637a, +0x26378,0xe593d,0x2637c,0x17750,0x17751,0x2674b,0x17934,0x2637b, +0x2674a,0x17933,0x26a33,0x26a34,0x17a4a,0x26a32,0x00000,0x26a31, +0x00000,0x26c4c,0x17b34,0xe5e68,0x26f57,0x27056,0x27055,0xe607e, +0x17c6e,0x17d2a,0x27057,0x27160,0xe616d,0x17d3c,0x14b5d,0x14f59, +0x00000,0x1673e,0x00000,0x17a4b,0x14b5e,0x1536c,0x15d69,0x16258, +0x17752,0x14f5a,0x00000,0x22d62,0x22d61,0x23345,0xe3430,0x1585d, +0x1585b,0x1585f,0x23347,0xe342d,0x1585e,0x1585c,0xe342f,0xe342e, +0xe3431,0x00000,0x23346,0x15d6c,0x23a21,0xe3958,0x15d6b,0x15d6d, +0x23a26,0x15d6f,0x23a23,0x23a24,0x2397a,0x15d6e,0x23a27,0x00000, +0xe3957,0x2397c,0xe3956,0x2397d,0x2397b,0x15d6a,0xe3959,0x23a25, +0x2397e,0x23a22,0x00000,0x00000,0x00000,0x24134,0xe3f5d,0x24133, +0x24131,0x24129,0x24138,0x2412c,0x24136,0x2413d,0x24135,0x16260, +0xe3f66,0x1625c,0x2412a,0xe3f60,0x24130,0x1625e,0xe3f68,0x2412f, +0x1625f,0x16261,0x24132,0xe3f69,0x16259,0x1625a,0x2413e,0x2413c, +0xe3f62,0x2413b,0x2412d,0xe3f65,0x24139,0x00000,0x1625d,0x00000, +0xe3f5e,0xe6659,0xe3f63,0x1625b,0x2413a,0x2412b,0x2412e,0x24137, +0x00000,0x00000,0x00000,0xe6658,0x00000,0x24f22,0x2483d,0xe452e, +0x24836,0x24849,0x24852,0x24839,0x16749,0xe452b,0x24846,0x1673f, +0x16741,0x1674d,0x24837,0xe4537,0xe452f,0x16742,0x16744,0x1674e, +0x16743,0xe4539,0x00000,0x00000,0xe4538,0x1674c,0x2483f,0x00000, +0x24834,0x1674a,0x2483e,0x16746,0x24850,0x1674b,0x2484e,0x24842, +0x2484c,0x16748,0x24835,0x2484f,0x2484a,0xe452a,0x24851,0x16740, +0x00000,0xe452d,0x1674f,0x16745,0xe4531,0xe4529,0x2483b,0xe4534, +0x24843,0x24847,0xe4533,0x2484b,0x16747,0x2483a,0x24838,0x24844, +0x00000,0x00000,0xe4532,0xe4535,0x24841,0x24840,0xe4536,0x24845, +0x24848,0x00000,0x2484d,0xe665a,0x00000,0x00000,0x24e60,0x00000, +0x16b4f,0x24e6a,0x24e62,0x16b55,0x16b59,0x24e73,0x24e7b,0x24e6c, +0x16b51,0xe4a34,0x24e70,0x2483c,0xe4a35,0x16b52,0x24e77,0x24e7c, +0x24e74,0xe4a2f,0x24e76,0x24f21,0x24e78,0x24e66,0x24e6f,0xe4530, +0xe4a38,0x16b5a,0xe4a33,0x16b56,0x24e64,0x24e71,0x16b54,0x24e6b, +0x16b53,0x24e79,0x24e68,0x24e61,0x16b57,0x24e7e,0xe4a39,0x00000, +0x24e63,0x24e75,0x24e72,0x24e6d,0x24e5f,0x24e5e,0x24e67,0x24e7a, +0x16b58,0x24e7d,0x24e65,0x24e69,0x16b50,0xe4a32,0xe4a37,0x00000, +0xe672a,0xe4a31,0x16f63,0x16f5e,0x2554d,0x25549,0x25531,0x16f5a, +0xe4f42,0xe4f50,0x00000,0x16f59,0x16f5f,0x00000,0xe4f43,0xe4f41, +0x2552f,0x16f5d,0x2553b,0x2552d,0x2552e,0x16f58,0x2554c,0x16f61, +0x2553e,0x25543,0x2553d,0x25b3c,0x25539,0x25541,0x2553f,0x25532, +0x2552c,0x25547,0x16f60,0x25548,0xe4f48,0x25542,0xe4f49,0x25537, +0x25535,0x25530,0xe4f4b,0xe4f4e,0xe4f44,0x25538,0x25545,0x25534, +0x25544,0x2554a,0xe4f51,0x00000,0x16f5c,0xe4f45,0x25540,0x25546, +0x2553c,0x25536,0x16f5b,0xe4f52,0x00000,0xe4f4c,0x24e6e,0x2553a, +0x16f62,0x25533,0x00000,0xe4f4d,0xe665b,0xe665c,0xe4a30,0x25b41, +0x17261,0x25b40,0x25b3e,0x25b50,0x17265,0xe5335,0x25b4d,0x25b45, +0x25b4f,0x25b37,0x25b43,0xe533d,0x17267,0xe533e,0x25b2f,0xe5338, +0x25b2d,0x25b4e,0xe5332,0x25b4c,0x25b4b,0x25b3b,0x25b3a,0x25b30, +0x17269,0x00000,0x25b36,0x25b3f,0x25b4a,0x1726c,0x25b51,0xe5336, +0x17573,0x1726e,0x17268,0x25b34,0xe5337,0x25b3d,0x25b2c,0x25b2e, +0x1725f,0x1726b,0x17264,0x25b35,0x25b44,0x2554b,0x1726a,0x25b2b, +0x1756e,0x25b46,0x25b49,0x17266,0xe533b,0x25b39,0x1726d,0x17263, +0xe533c,0xe5339,0xe533a,0x17262,0x25b42,0x25b48,0x17260,0x00000, +0x25b32,0x25b47,0x00000,0x00000,0x25b33,0x00000,0x00000,0xe665d, +0x00000,0x00000,0xe665e,0x00000,0x00000,0xe5331,0x25b38,0x25f7e, +0xe5665,0x26025,0x17570,0x17572,0x2602b,0x1756c,0x26039,0x26031, +0x26026,0x26027,0x26030,0xe5666,0x17579,0x2602f,0x25f7d,0x2602e, +0x26022,0x2603a,0x17578,0x17576,0x26023,0xe565d,0x26036,0xe5667, +0x26028,0x26035,0xe5664,0x26037,0x25f7c,0x17571,0xe565b,0x26038, +0xe5668,0xe565e,0x2602c,0xe566b,0x17575,0x26029,0xe5661,0x00000, +0x17577,0x26032,0xe5662,0xe5663,0xe565f,0x1756f,0x26024,0x26033, +0xe565c,0x2602d,0x25b31,0x26034,0x26021,0xe5660,0x17574,0xe566a, +0x2642f,0x00000,0x1756d,0x25f7a,0x00000,0x00000,0xe665f,0x00000, +0x2642c,0x26425,0x17754,0xe5943,0x2637e,0x26430,0x26427,0x2602a, +0xe5940,0x26432,0x26421,0xe5942,0x17753,0x2642b,0x17755,0x1775d, +0x1775b,0x2642d,0x1775c,0x26423,0xe5949,0x26424,0x26429,0x2642e, +0xe593e,0x25f79,0x17756,0x26437,0x26434,0x26761,0x2642a,0x26426, +0x26435,0x26756,0x26428,0x00000,0x17759,0xe5944,0x17758,0x25f7b, +0x1775a,0x26431,0x26433,0x17757,0x26436,0x2637d,0x00000,0x26422, +0xe5946,0x00000,0x00000,0xe5945,0xe6661,0xe6662,0xe6660,0x00000, +0x2675f,0xe5b50,0x2674f,0x17938,0x2675d,0xe5b44,0xe5b45,0x2674d, +0x17939,0x00000,0x26758,0xe5b43,0x26754,0x1793e,0x2675e,0x2674e, +0x26751,0x17936,0x26760,0xe5b48,0x26759,0x2675c,0x1793c,0x17941, +0x1793f,0x26755,0x26750,0xe5b4d,0x1793a,0x1793b,0x2674c,0x17937, +0xe5b4f,0x17935,0x1793d,0x2675b,0x17940,0xe5b4a,0x26757,0x26762, +0x17942,0xe5b41,0xe5b42,0xe5b4e,0x26753,0xe5b47,0x2675a,0xe6665, +0x00000,0xe6663,0xe6664,0xe5d41,0xe5e6a,0x26a41,0x26a50,0x26a43, +0x26a4a,0x26752,0x26a48,0x26a37,0x26a4e,0x17a4e,0x26a3b,0x26a4d, +0x26a42,0x00000,0xe5d43,0x17a4d,0xe5d3c,0xe5d3f,0x26a52,0x26a44, +0xe5d3e,0x26a49,0x26a4c,0x26a35,0x26a4f,0x26a40,0x26a45,0x26a39, +0x26a3d,0x26a51,0x26a47,0x26a36,0x26a3a,0x26a3c,0x26a46,0xe5d3d, +0x17a4c,0x26a3f,0xe5d44,0xe5d45,0xe5d47,0x00000,0xe5d42,0xe5d3a, +0x26a38,0x00000,0xe6666,0xe6667,0xe6668,0x00000,0x00000,0xe5d46, +0x26a3e,0x26c50,0x26c54,0x17b3b,0x26c56,0xe5e6d,0x17b35,0x00000, +0x26c52,0x26c58,0x17b3a,0x17b36,0x00000,0x17b37,0x26c4f,0x26c55, +0x17b39,0x26c53,0x17b38,0x26c4e,0x26a4b,0x26c51,0x00000,0x26c4d, +0x26c57,0x00000,0xe5f69,0xe5f6e,0x17b7b,0x26e3c,0x26e3f,0x26e3b, +0x26e3d,0x26e3e,0x26e38,0x26e39,0x26e36,0xe5f6a,0xe5f6c,0x26e3a, +0x26e37,0x17b7c,0x17b7d,0x00000,0xe5f6b,0x26f59,0xe6052,0x26f5b, +0xe6431,0x00000,0xe6055,0xe6054,0xe6056,0x26f5a,0x26f5c,0xe604f, +0x17c4c,0xe6053,0x26f58,0x17c4b,0x17c4d,0xe6057,0xe666a,0xe6669, +0x27059,0x2705a,0x17c6f,0x27058,0xe6122,0x27142,0x27141,0x27143, +0x17d2c,0x27144,0x17d2b,0x27145,0x27161,0x27164,0x27163,0x17d35, +0x27162,0x00000,0xe616f,0xe6223,0x17d3f,0x17d3d,0x17d3e,0x17d44, +0x27230,0x27231,0x2722f,0x27237,0xe6236,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +/* 0x9500 */ +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x14f5b, +0x00000,0xe6323,0x23a28,0x2413f,0x2554e,0x26763,0x00000,0x00000, +0x14f5c,0xe2f40,0x1536d,0x15860,0x00000,0xe3432,0x23a29,0xe395c, +0x23a2a,0x15d70,0x00000,0x16264,0x24141,0x24140,0x16268,0x16263, +0x24142,0x16265,0x16267,0x16266,0x16262,0xe3f6c,0x00000,0xe666b, +0x16750,0xe453c,0xe453a,0x24856,0x24854,0x00000,0x24855,0x24853, +0x00000,0x16b5b,0xe4a3d,0x16b5e,0x16b60,0x16b5f,0x00000,0xe4a3e, +0x16b5c,0x16b5d,0x00000,0x25550,0x2554f,0x16f64,0x25551,0xe4f53, +0x25552,0x16f65,0xe4f55,0xe4f56,0x00000,0x25b59,0x25b57,0x26040, +0xe5342,0x25b55,0x25b56,0x1726f,0x25b52,0x25b5a,0x25b54,0x25b58, +0x2603c,0xe5344,0xe5340,0x2603e,0xe566d,0x2603f,0x1757e,0x2603b, +0x1757d,0x2603d,0x1757a,0x1757b,0x1757c,0x25b53,0xe666c,0x00000, +0x17760,0x2643a,0x26438,0x26439,0x1775e,0x17761,0x1775f,0xe594b, +0xe594a,0x00000,0x26764,0x26765,0x17943,0xe5b53,0x26a53,0x26a55, +0x26a54,0x17a4f,0x17b3c,0x26c5b,0x26c5a,0x26c59,0x00000,0xe666d, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +/* 0x9600 */ +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x14f5d,0xe2143,0x22169,0x00000, +0x22278,0x1486a,0x22276,0x22279,0x22277,0x00000,0xe273b,0xe273a, +0x2252e,0xe273f,0x14b62,0xe273c,0x14b63,0x22530,0x14b60,0x2252f, +0x2252d,0x14b61,0x14b5f,0xe273d,0xe273e,0x00000,0x00000,0xe2a79, +0x00000,0x22878,0x2287b,0x14f60,0x2287a,0x22879,0xe2a7c,0x14f5f, +0x14f5e,0xe2a7b,0x14f62,0x2287c,0x14f61,0x00000,0x00000,0x00000, +0x00000,0x00000,0x22d67,0x1536f,0x15370,0x15371,0x22d68,0x22d64, +0x1536e,0x22d65,0x00000,0x22d66,0x22d63,0x00000,0xe3436,0x00000, +0x15867,0xe3434,0xe395e,0x15864,0x23348,0x15865,0x15868,0x23349, +0xe3433,0x15863,0x15861,0x15862,0x15866,0x00000,0x00000,0x00000, +0x00000,0x00000,0x15d71,0x23a2d,0x15d79,0x23a2c,0xe3961,0x23a2f, +0x15d75,0x23a2e,0x16270,0x15d73,0x15d76,0x15d72,0x15d77,0x15d78, +0x15d74,0xe3965,0x00000,0xe3f71,0x23a2b,0x1626c,0x24144,0xe3f72, +0x24148,0xe3f73,0xe3f75,0x24147,0x16271,0x1626d,0x1626e,0x24143, +0x24145,0x24146,0x16269,0x1626b,0xe3f70,0x1626f,0x1626a,0xe4540, +0x00000,0x24859,0x24857,0x24858,0x16752,0x16753,0xe4542,0x2485a, +0x16751,0x16b61,0x00000,0x16b63,0x16b62,0xe4a45,0x24f23,0xe4a46, +0xe4a44,0x24f24,0x25554,0xe4f5a,0x25553,0xe4f5b,0x00000,0x17270, +0x17271,0x25b5b,0x17272,0xe5348,0x26043,0xe5670,0x26041,0xe566f, +0x26042,0x17621,0xe5671,0x2643b,0x17944,0xe5d49,0xe2a7d,0xe5349, +0x17622,0x14f63,0xe6325,0x15869,0x2334a,0xe3439,0x00000,0x23a30, +0x15d7a,0x16272,0x24149,0x2414b,0x16274,0x16273,0x16275,0x16276, +0x2414a,0x16756,0x16757,0x16755,0x16b64,0x16754,0x2485b,0x00000, +0xe4a47,0xe4a49,0x16b65,0x25555,0x25b5c,0x17273,0x17623,0x2643c, +0x26440,0x17764,0x2643d,0x17765,0x17763,0x26441,0x17766,0x2643f, +0x00000,0x26766,0x17762,0x17945,0xe5e70,0x2705b,0xe6125,0xe622f, +0x14f64,0x15d7c,0x15d7b,0x00000,0xe3f7e,0xe3f7c,0xe3f7b,0x16277, +0x2414d,0x2414c,0x16278,0x00000,0xe4546,0x2485f,0x1675b,0x16758, +0x2485e,0x1675a,0x2485c,0x16759,0xe4547,0x2485d,0x00000,0x24f25, +0x16b66,0x00000,0x25558,0x00000,0x16f66,0x25556,0x16f67,0x16f68, +0x25557,0x16f69,0xe4f60,0x25b5d,0xe5350,0x17277,0x17274,0x17279, +0x25b5f,0x17275,0x25b5e,0x17278,0xe534d,0xe534c,0x17276,0xe5351, +0x26046,0x26048,0xe5674,0xe5675,0x17624,0x26047,0x17625,0x26045, +0x26044,0x00000,0x26443,0x26442,0x17767,0x26444,0x2676b,0x17947, +0x2676a,0x26767,0x17946,0x26768,0x26769,0x00000,0x26a56,0x26a57, +0x17a50,0xe5d4f,0x17b3f,0xe5d4c,0xe5d4e,0x26c5c,0xe5e72,0xe5e71, +0x17b3d,0x17b3e,0x26c5d,0xe666e,0xe5f71,0x17b7e,0x17c21,0x26e40, +0xe5f72,0xe6059,0x17c70,0x2705d,0x17c72,0xe6126,0x2705c,0x2705e, +0x17c71,0x27146,0x00000,0x2717b,0x00000,0xe666f,0x00000,0x00000, +0xe6245,0xe2a7e,0x14f65,0x00000,0x00000,0xe4549,0x1675c,0x00000, +0x24f26,0xe4a4c,0x25559,0x1727a,0x1727b,0xe594f,0x14f66,0xe4021, +0x16f6a,0x17948,0x15372,0xe2b21,0xe4a4e,0x00000,0x1727c,0xe5e73, +0x17c4e,0x15373,0x23a31,0x00000,0x2414e,0xe4024,0x24150,0xe4022, +0x2414f,0x00000,0x24863,0x24860,0x1675d,0x00000,0x1675e,0x24861, +0x24862,0xe454b,0x24f28,0x24f2d,0x16b67,0x24f27,0x24f29,0x24f30, +0x24f2b,0x24f2f,0x24f2c,0x24f2a,0x24f2e,0x16b68,0x00000,0xe4f62, +0x2555c,0xe4f63,0x2555a,0x16f6c,0xe4f64,0x16f6b,0x2555b,0x16f6d, +0x00000,0x00000,0x00000,0xe5353,0x25b62,0x00000,0x00000,0x25b61, +0x1727d,0x25b60,0x26049,0xe567a,0x2604b,0x2604d,0x2604c,0xe567b, +0x17626,0x2604a,0x2644b,0x17768,0x26449,0x2644c,0x17769,0x00000, +0x26447,0xe5950,0x2644a,0x26448,0x26445,0x1776a,0x26446,0x00000, +0x00000,0xe5b5f,0xe5b5d,0x2676c,0xe5b5e,0xe5b60,0x2676e,0x2676d, +0xe5d50,0x26a58,0xe5d51,0x26a59,0x00000,0xe5e75,0xe5e74,0x26c5e, +0xe5f73,0x17c23,0x00000,0x17c22,0x26f5d,0x26f5e,0x17c73,0x2705f, +0xe6128,0x17d36,0xe623b,0x15374,0x16279,0x24f32,0x24f31,0x2555e, +0x2555d,0x00000,0xe5355,0x17627,0x2604f,0x2604e,0x2644f,0x2644d, +0x26450,0x2644e,0xe5951,0x00000,0x17949,0x2676f,0x26770,0x26771, +0x00000,0x26c5f,0xe5e76,0x26e41,0xe6129,0x27060,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x15375,0xe454f,0xe4f65, +0x25b63,0x26050,0xe5b61,0x15376,0x00000,0xe4550,0x16b69,0x00000, +0x25b64,0x1776b,0x26451,0x1794a,0xe5d53,0x26a5a,0x26a5b,0x17b40, +0x26f5f,0x15377,0x15e21,0x15e22,0x23a32,0x1627a,0x1627b,0x24151, +0x1627c,0x00000,0x16762,0xe4552,0x16764,0x24865,0x24866,0x24864, +0x1675f,0x16760,0x16763,0x16761,0xe4a54,0xe4a55,0x24f33,0x16b6a, +0x16b6b,0xe4a52,0xe4a56,0x25565,0x16f70,0x25560,0x2555f,0xe4f69, +0x25564,0x16f6e,0xe4f67,0xe636e,0x17326,0x00000,0x25561,0x25566, +0x25563,0x25562,0xe4f66,0x16f6f,0x00000,0x17324,0xe535c,0x25b66, +0x1727e,0xe5359,0x25b67,0xe535a,0xe5228,0x25b65,0xe5358,0x17323, +0x17321,0x17325,0xe535d,0x17322,0xe535b,0xe535f,0x00000,0xe595b, +0xe5726,0x26051,0xe637b,0x26056,0x26052,0x26055,0x17628,0xe5728, +0x25e41,0x26054,0x26053,0xe5959,0x1776e,0x1776c,0x1776f,0x1776d, +0x26452,0x26453,0x26454,0x17770,0xe5956,0xe5958,0xe5b65,0x26775, +0x1794c,0x26773,0x00000,0x1794d,0x26772,0x26774,0x1794b,0x26a5f, +0x26a5c,0xe642a,0x26a5d,0x26a5e,0x26c60,0x17b42,0xe5e78,0x17b41, +0xe5e77,0x26e43,0x26e42,0x17c24,0xe605d,0xe605e,0xe605c,0x17c4f, +0x17c74,0x17d2d,0x27147,0x2717c,0x2717d,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x15378,0x24152,0x00000,0x00000,0x24867,0x24f34,0x24f35,0x16b6c, +0x00000,0x16b6d,0x25567,0x16f71,0x00000,0xe5361,0x17629,0xe572a, +0x26455,0xe595c,0x17771,0x26778,0x1794e,0x26777,0x26779,0x26776, +0x26c63,0x26a60,0x26a61,0xe5d56,0x17a51,0x00000,0x26c62,0xe5e7b, +0xe5e79,0x26c61,0xe5e7a,0x26e44,0x2717e,0xe6225,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x15379,0xe5e7c,0xe6226,0x00000,0x1537a, +0x00000,0xe3967,0x1586a,0x2334b,0xe6670,0x23a33,0xe3968,0x1627d, +0x00000,0x16322,0x1627e,0x24153,0xe455b,0x16324,0x00000,0x16321, +0xe402b,0xe455c,0x16323,0xe4554,0x16766,0xe4559,0x24868,0xe4557, +0xe4a5d,0x24869,0x25569,0x00000,0x16765,0x16767,0x16768,0xe4558, +0x24f37,0xe4a5e,0x24f36,0x16b6e,0x00000,0x16b6f,0xe4a5b,0x24f38, +0x25568,0x16b71,0x16f72,0x00000,0x16b70,0x00000,0xe667a,0x00000, +0x17327,0x2556a,0x16f74,0x16f73,0x2556b,0x2556e,0x2556c,0x2556d, +0x16f75,0xe4f6b,0x1732c,0x1732a,0xe5365,0xe5366,0x17329,0x25b69, +0xe5364,0x1732b,0xe5362,0xe5363,0x25b68,0x26057,0x00000,0x25b6a, +0x17328,0x25b6b,0x2605a,0x26058,0x26059,0x2605e,0x17775,0x2605d, +0x26060,0x2605f,0x2605c,0x2605b,0x00000,0x1762a,0xe5962,0x00000, +0xe5961,0xe5966,0x26458,0xe5965,0x26457,0x17774,0x17772,0x17773, +0xe5963,0x26456,0xe6671,0x2677c,0xe5b69,0x1794f,0x00000,0x2677b, +0x2677a,0x17950,0x00000,0x26a66,0x26a65,0xe5d58,0x26a63,0xe5e7e, +0x26a62,0x17a53,0x17a52,0x26a67,0x26e45,0x17c25,0x26c65,0x17b43, +0x26c64,0x26a64,0xe5f78,0x26e46,0x17c50,0xe612a,0x17d2e,0x27148, +0x00000,0x27221,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x1537b,0x23a34, +0x26061,0x1537c,0xe455f,0x00000,0x24f3a,0x24f39,0x25b6c,0x00000, +0xe5368,0x26063,0xe5730,0x26062,0xe5967,0x17776,0x2677d,0x2677e, +0x17a54,0xe5f21,0xe6060,0x27222,0x1586b,0x16326,0x16325,0x2486a, +0x2486c,0x1676a,0x2486b,0x16769,0x1676b,0x2486d,0xe4a63,0xe4a62, +0xe4a66,0x24f3c,0x24f3e,0x24f3d,0xe4a61,0x24f40,0xe4a60,0xe4a6c, +0xe4a64,0x16b72,0x24f3f,0x24f3b,0xe4a6a,0x00000,0x00000,0x24f41, +0xe4f73,0x25575,0xe4f6d,0x25578,0x2557a,0x25570,0x25574,0x25571, +0x16f77,0x16f7a,0x16f7c,0x25572,0x25573,0x16f7b,0x25576,0x25579, +0x25577,0x16f7d,0xe4f6e,0x16f79,0x2556f,0x16f76,0xe4f72,0x16f78, +0xe4f74,0xe5370,0x1732e,0x25b72,0x25b70,0x25b6f,0xe5371,0x25b75, +0xe536b,0x25b74,0x25b73,0xe536c,0x25b6e,0x1732d,0x25b6d,0xe536a, +0x25b71,0x1732f,0x00000,0xe5734,0x26066,0xe5737,0x2606a,0x26067, +0x26069,0x26068,0x26065,0x2606b,0x2606e,0x2606c,0x2606d,0x1762c, +0xe5733,0x1762b,0x26064,0x2606f,0x2645d,0x26460,0x26462,0x26461, +0xe596a,0x2645b,0x2645f,0x2645a,0xe596b,0x2645c,0x17777,0x26459, +0xe596d,0x2645e,0x00000,0x00000,0x2682d,0x26822,0x17951,0xe5b6f, +0xe5b6d,0x17952,0x26821,0x26826,0x2682c,0x26824,0x2682b,0xe5b6c, +0x26828,0xe5b6e,0x26827,0x2682a,0x26825,0x26823,0xe5b6b,0x26829, +0x00000,0x26a6e,0x26a6c,0x17a55,0x26a6b,0x26a71,0x26a6f,0xe5d5a, +0x17a56,0x26a6a,0x26a68,0x00000,0x26a69,0x17a58,0x26a6d,0x17a57, +0x26a70,0x26c66,0x26c6c,0xe5f24,0xe5f22,0x26c67,0x17b47,0x26c6d, +0x17b46,0x26c6b,0x26c6a,0x17b45,0x26c69,0x17b44,0x26c68,0x00000, +0x26e4c,0x26e4e,0x26e4d,0x00000,0x26e4a,0x17c27,0x26e47,0x26e4b, +0x26e50,0xe5f79,0x26e4f,0x26e48,0x26e49,0x17c26,0x26f60,0x17c53, +0xe6062,0x26f61,0x17c51,0x17c52,0xe6061,0x00000,0x27061,0x17c75, +0x27165,0xe6172,0x17d37,0xe6173,0x27223,0x17d38,0x27224,0x27225, +0x27233,0x27232,0x17d47,0x2723b,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x1586c,0xe402f,0x00000,0x2486f,0x00000,0x2486e,0x00000,0x16b73, +0x16b74,0x24f42,0x00000,0x2557b,0x25b78,0xe4f77,0xe4f76,0x16f7e, +0x17330,0x25b76,0x00000,0x25b79,0x17331,0xe573a,0x26070,0x25b77, +0x26463,0x17778,0x2682e,0x00000,0xe5d61,0x00000,0x26a74,0x26a72, +0xe5d60,0xe5d5e,0x26a73,0x00000,0x00000,0x26c6e,0xe5f25,0x17b48, +0x26e51,0x17c56,0x17c28,0x17c54,0x17c55,0x27062,0x17d2f,0xe6174, +0x1586d,0xe6334,0xe4a6e,0x00000,0x26464,0xe5f7b,0xe6063,0x2334c, +0xe4032,0x1676c,0xe4561,0x24f43,0xe4a6f,0xe4a73,0x16b75,0x24f44, +0xe4a71,0xe4a70,0xe4a72,0x2557d,0x2557c,0x17333,0x17021,0x17022, +0x00000,0x25622,0x25621,0x2557e,0xe4f79,0xe5375,0x25b7a,0x25b7d, +0xe5374,0x25b7c,0x25b7b,0x17332,0x26074,0x26072,0x26071,0x00000, +0xe573b,0x26073,0xe573c,0x17779,0x26466,0x26467,0x1777a,0xe596f, +0x26465,0xe5b71,0x26830,0x2682f,0x26832,0x17953,0x26831,0x00000, +0x26a75,0x26a77,0x26a76,0x00000,0xe5f27,0x26c6f,0x26c72,0x26c70, +0x26c71,0x26e52,0x17c29,0x00000,0x00000,0xe6672,0x26f62,0x26f63, +0x26f64,0xe612c,0x17c76,0x17d30,0x27226,0x1586e,0xe4a75,0x17023, +0x17334,0x26468,0xe5d62,0x26e53,0xe612e,0xe6433,0x27166,0x2334d, +0xe6228,0x17d48,0x1586f,0x25b7e,0xe573e,0x26469,0x00000,0x26833, +0xe5d63,0x00000,0x26c73,0x26e54,0x15870,0xe4562,0x24f45,0x24f46, +0xe4a78,0x16b76,0x16b77,0x25624,0x17025,0x17024,0x25623,0x00000, +0x26075,0xe573f,0x2646a,0x2646c,0x2646b,0x1777d,0x1777c,0x1777b, +0xe5d64,0x17b4a,0x26c74,0xe5f28,0x17b49,0x26e56,0x26e55,0xe612f, +0x17c77,0x27063,0x15e23,0x24870,0x00000,0xe4563,0x00000,0x24f49, +0x24f47,0x24f48,0x00000,0xe4f7e,0x2562d,0x00000,0x25628,0x25625, +0x2562c,0xe4f7c,0x00000,0xe4f7b,0x2562e,0x00000,0x00000,0x17027, +0x2562b,0x25627,0xe4f7d,0x00000,0x25626,0x2562a,0x25629,0x17026, +0x00000,0x00000,0x25c2b,0x25c26,0x25c24,0x25c2d,0x25c25,0x00000, +0x25c21,0x00000,0x25c27,0xe5378,0xe537a,0x25c22,0x2607e,0x25c23, +0x25c2e,0xe5423,0x00000,0xe537c,0xe5421,0x00000,0xe5425,0xe537d, +0x25c2a,0x17335,0x25c29,0x25c28,0xe5379,0x25c2c,0x00000,0x00000, +0xe6673,0xe5744,0x26076,0x26079,0x00000,0xe5745,0x26078,0xe5740, +0x26122,0x2607b,0x26121,0xe5742,0x2607d,0x2607c,0x2607a,0x00000, +0x26077,0x00000,0x1762f,0x1762e,0x00000,0x17630,0x1762d,0x26123, +0x00000,0x00000,0x00000,0x00000,0x00000,0x26472,0x26475,0x00000, +0x26473,0x26477,0x00000,0xe5974,0x00000,0x26478,0x00000,0x26470, +0x17824,0x26471,0xe5973,0x2646f,0x26476,0xe5b74,0x2646e,0x2646d, +0x17823,0x17821,0x1777e,0xe5976,0xe5975,0xe5743,0x00000,0x00000, +0x00000,0x00000,0xe5971,0x26474,0x2683c,0x26842,0x17956,0x2683d, +0x00000,0x26840,0x26844,0x17957,0x2683f,0x00000,0x26837,0xe5b75, +0x26836,0x26843,0x2683a,0xe5b77,0x26838,0x26841,0x26839,0x17955, +0x17954,0xe5b79,0x26834,0x26835,0x2683e,0x00000,0xe5b7a,0x00000, +0x2683b,0x00000,0x00000,0x00000,0x00000,0x00000,0xe5d6f,0x26a7a, +0x26a7d,0xe5d71,0x00000,0xe5d67,0xe5d69,0x17822,0xe5d6a,0xe5d74, +0xe5d75,0x00000,0xe5d6e,0x00000,0xe5d68,0x26a7b,0x26b23,0x26b21, +0x26a79,0x26b26,0xe5d66,0x26a78,0xe5d76,0x17a5a,0x26b22,0x00000, +0xe5d73,0x00000,0x26a7c,0x17a59,0x26b25,0xe5d72,0x00000,0x26b24, +0x00000,0x00000,0x00000,0xe5d70,0x26c77,0x26c76,0x00000,0xe5f2c, +0x00000,0x26c7d,0x00000,0x26c79,0x26c7c,0x17b4c,0x00000,0xe642f, +0x26c7a,0x26c7b,0x00000,0x26c75,0x26c78,0x17b4b,0xe5f2a,0x00000, +0x00000,0x17c2b,0x26e61,0x26e5c,0x26e60,0xe6025,0x26e63,0x26e5f, +0xe5f7e,0x26e5b,0xe6023,0x17c2d,0x26e5e,0x26e62,0x17c2c,0x26e59, +0x26a7e,0x26e5d,0x00000,0x00000,0x26e5a,0xe6022,0x26e57,0x00000, +0x26e58,0x17c2a,0x26f68,0x26f6a,0x26f6d,0x26f69,0x26f6e,0xe6065, +0x26f67,0xe6066,0x26f65,0xe6068,0x17c57,0x26f6b,0x17c59,0x17c58, +0x26f66,0x26f6c,0x00000,0x00000,0x00000,0xe6132,0x27068,0x17c78, +0x27069,0xe6133,0x27067,0x27064,0x00000,0xe6134,0x27066,0x27065, +0x27149,0x00000,0x00000,0x00000,0xe6159,0x2714b,0x2714a,0xe615b, +0x00000,0x27169,0x00000,0x27168,0x27167,0x2716a,0xe6175,0x17d40, +0x17d41,0x27238,0x2723c,0xe6241,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x15e24,0x24154,0x24873, +0xe4564,0x1676d,0x24871,0xe4566,0xe2f42,0x24872,0xe4568,0xe4567, +0x00000,0x24f4a,0x24f4b,0x16b7a,0x16b78,0x24f4c,0x16b79,0x25633, +0xe5027,0x25636,0x25630,0x25637,0x2562f,0x25631,0xe502a,0x25632, +0x25635,0xe5024,0xe502b,0x1702a,0x2563a,0x25639,0x17028,0x25634, +0x25638,0x17029,0xe542d,0x00000,0xe5025,0xe5022,0x00000,0xe542a, +0x25c38,0x00000,0x1733a,0xe542c,0x25c33,0x17336,0xe5436,0x25c30, +0x25c36,0x25c39,0xe5433,0x1733b,0x00000,0x25c35,0x25c32,0x25c3a, +0x25c31,0xe5437,0x25c37,0x17337,0xe5429,0x25c2f,0x17338,0xe5435, +0x17339,0x25c34,0xe5432,0x00000,0x00000,0x26135,0x26128,0x26129, +0x2612c,0x2612a,0x00000,0x26124,0x00000,0xe574d,0x26127,0x26131, +0x2612b,0xe5748,0x00000,0x17631,0x00000,0x26133,0x26130,0x17632, +0x26132,0x26125,0x2612e,0x2612f,0xe574a,0x2612d,0x00000,0x00000, +0x00000,0xe6675,0x2647c,0x2647e,0x26523,0xe5979,0xe597b,0x2647b, +0xe597d,0x17825,0x26525,0x2647a,0x26526,0xe597e,0x26522,0x26524, +0x26528,0x26521,0x26529,0x2647d,0x26479,0x17826,0xe5a22,0x26527, +0x17827,0x17959,0x00000,0xe597a,0x00000,0x00000,0xe5b7d,0x26126, +0x2685e,0x26855,0x1795b,0x26851,0x1795c,0xe5c27,0xe5c22,0x2685a, +0x26854,0x2684a,0x1795a,0x26857,0x26852,0x26853,0xe5c25,0x26845, +0x2684c,0x2685b,0xe5b7e,0x26858,0x00000,0x26850,0xe5c26,0x2685c, +0x2684b,0x26846,0x26859,0xe5c24,0x26848,0x26856,0x2684d,0x2685d, +0x26849,0x17958,0x26847,0x2684e,0x2684f,0x00000,0x00000,0x00000, +0x26b2d,0xe5c23,0x26b2b,0x00000,0x26b30,0xe5d79,0x26b3c,0x26b33, +0x26b2c,0x26b28,0x26b35,0x26b2e,0x26b31,0x26b2a,0x26b38,0x26b27, +0x26b2f,0x26b34,0x26b36,0x26b39,0x26b29,0xe5d7a,0x26b3d,0x26b3e, +0x26b37,0x26b3b,0x26b32,0x00000,0x26d2f,0x26d32,0xe5f35,0x17b4d, +0xe5f31,0x26d31,0x26d36,0x26d34,0x17b4e,0x26d2b,0x26d21,0x26c7e, +0x17b50,0x26d2d,0x26d2e,0x26d2a,0x26d22,0xe5f32,0x26d27,0x26b3a, +0x00000,0x26d23,0x17b4f,0x26d29,0xe5f36,0x26d28,0x00000,0x26d24, +0x26d30,0x00000,0x26d25,0x26e68,0x26d33,0x26d35,0x26d2c,0x26d26, +0x26e69,0x26e6b,0x26e65,0x17c2e,0x00000,0x26e72,0x26e70,0x17c2f, +0x26e6f,0x26e6e,0x26e67,0x26e64,0x26e6a,0x26e73,0x26e66,0x26e6c, +0x00000,0x26f77,0x26f7c,0x26f72,0x26f75,0x17c5a,0x26f79,0x00000, +0x27022,0x26e6d,0x00000,0x26f73,0x26f7d,0x27023,0x26f78,0x26f71, +0x26f7b,0x00000,0x26f7a,0x27021,0x26f7e,0x26e71,0x26f76,0x26f70, +0x26f74,0x17c79,0x17c7a,0x26f6f,0xe606c,0x27074,0x2706b,0x27073, +0x27070,0x27071,0x2706a,0x2706d,0x27075,0x2706f,0x2706e,0x2706c, +0xe6135,0x27072,0x00000,0x2714c,0x00000,0x2714d,0xe615d,0x2714f, +0x2714e,0x27151,0x27150,0x2716c,0x2716b,0x27227,0xe6229,0x27228, +0xe6230,0x27234,0x17d45,0x17d49,0xe6238,0x2723d,0x17d4a,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x15e25,0x00000,0x00000, +0x00000,0x17a5b,0x26d37,0xe5f37,0x17c7b,0x17c7c,0x00000,0x15e26, +0x24874,0xe4569,0x1676e,0x2563b,0xe502c,0xe5439,0x25c3c,0x25c3d, +0x25c3b,0x26137,0x26136,0x17633,0x2652b,0x26138,0x2652a,0x00000, +0xe5a24,0x26860,0x1795d,0x1795f,0x2685f,0xe5c29,0x00000,0x1795e, +0xe5e21,0x26b3f,0x26b41,0x26b40,0x26d38,0x17b51,0xe5f3a,0x17c5b, +0x27076,0x27152,0xe6231,0xe623f,0x27241,0x15e27,0xe2547,0x24f4d, +0x00000,0x1702b,0xe502f,0xe502e,0xe543a,0x25c3f,0x25c3e,0xe5750, +0x26139,0xe5a26,0xe5a25,0x00000,0x17960,0x17a5c,0x26e74,0x27239, +0x00000,0x00000,0x00000,0x15e28,0x16b7b,0xe4b22,0x1702c,0x00000, +0x26861,0xe5e22,0x27024,0x16327,0xe396a,0xe543c,0xe543b,0x00000, +0x2613a,0x00000,0xe5a28,0x00000,0x17d31,0x16328,0x1702d,0x17634, +0x27025,0x16329,0xe396b,0x2563c,0x1733d,0x25c40,0x25c41,0xe543d, +0x1733c,0x00000,0x2613b,0x17638,0x17636,0x17637,0x17635,0x2652c, +0x17828,0x00000,0x00000,0xe5c2a,0x26b43,0x26b42,0x26b45,0x26b44, +0x17a5d,0x00000,0x00000,0x26d39,0x00000,0x26d3b,0x26d3a,0x17b52, +0x26e75,0xe6029,0x27026,0x27027,0x17c5c,0x27153,0x2716d,0x17d42, +0x00000,0x24155,0x25c42,0x2613c,0x26862,0x24875,0xe2772,0x2613d, +0x2652e,0x2652d,0xe5a29,0xe5c2d,0xe5c2e,0xe5f3c,0x27028,0x17c7d, +0xe615f,0x27154,0x2716e,0x00000,0x00000,0x00000,0x1676f,0x2563d, +0x2563e,0x00000,0x25c43,0x16770,0xe456a,0x17829,0x2652f,0xe5c30, +0x26d3d,0x17b53,0x26d3e,0x26d3c,0x27029,0xe6160,0x27077,0x00000, +0x16771,0x00000,0x26140,0x2613f,0x2613e,0x26530,0xe5a2b,0xe5a2a, +0x26534,0x26533,0x26532,0x26531,0x1782a,0x26863,0x26b47,0x17a5e, +0x26b46,0x26d3f,0x26e78,0x26e77,0x17c30,0x26e76,0x2702c,0x2702b, +0x2702a,0xe606d,0x00000,0x16b7c,0x00000,0x25c44,0x17639,0x00000, +0x26864,0x26865,0x26e79,0x2702d,0x00000,0xe613b,0x27078,0x27155, +0x27229,0x27243,0x16b7d,0x1763a,0x26535,0x26866,0x26d40,0x2702e, +0xe2370,0x00000,0x1702f,0xe543e,0x26141,0x26536,0x26867,0x26868, +0x26869,0x26b4c,0xe5e24,0x26b48,0x17b54,0x26b4b,0x26b4a,0x17a5f, +0x26b49,0x17a61,0x00000,0x17a60,0x26d42,0x26d41,0x17b55,0x17b56, +0x00000,0xe5f3e,0x17c32,0x26e7a,0x17c31,0x00000,0x27031,0x27032, +0x27030,0x2702f,0x17d21,0x00000,0x27079,0x2707a,0x2707b,0x17c7e, +0x27156,0x27159,0x27158,0x27157,0xe6233,0x00000,0x27242,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x1733e,0xe5755,0x00000, +0x17832,0x26b4d,0x26d43,0xe602b,0x17c33,0x26e7b,0x00000,0xe6242, +0x27244,0x00000,0x00000,0x00000,0x1733f,0xe5e47,0x00000,0x00000, +0x26142,0xe5f3f,0x26e7c,0xe6161,0x2716f,0xe6177}; + +static const int ucs_i_cns11643_table_min = 0x4d00; +static const int ucs_i_cns11643_table_max = 0x4d00 + (sizeof (ucs_i_cns11643_table) / sizeof (unsigned int)); + +static const unsigned int ucs_r_cns11643_table[] = { +/* 0xfe00 */ +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x1212b,0x12136,0x12138,0x00000,0x00000,0x12140,0x12141,0x12144, +0x12145,0x12148,0x12149,0x1214c,0x1214d,0x12150,0x12151,0x12154, +0x12155,0x12158,0x12159,0x1215c,0x1215d,0x00000,0x00000,0x00000, +0x00000,0x12227,0x12228,0x1222b,0x1222c,0x12229,0x1222a,0x00000, +0x1212e,0x1212f,0x12130,0x00000,0x12132,0x12133,0x12134,0x12135, +0x00000,0x1215e,0x1215f,0x12160,0x12161,0x12162,0x12163,0x1222d, +0x1222e,0x1222f,0x1223f,0x12240,0x12241,0x12243,0x12242,0x00000, +0x12262,0x1226c,0x1226d,0x1226e,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +/* 0xff00 */ +0x00000,0x1212a,0x00000,0x1216c,0x12263,0x12268,0x1216d,0x00000, +0x1213e,0x1213f,0x1216e,0x12230,0x12122,0x12231,0x12125,0x1225f, +0x12421,0x12422,0x12423,0x12424,0x12425,0x12426,0x12427,0x12428, +0x12429,0x1242a,0x12128,0x12127,0x12236,0x12238,0x12237,0x12129, +0x12269,0x12441,0x12442,0x12443,0x12444,0x12445,0x12446,0x12447, +0x12448,0x12449,0x1244a,0x1244b,0x1244c,0x1244d,0x1244e,0x1244f, +0x12450,0x12451,0x12452,0x12453,0x12454,0x12455,0x12456,0x12457, +0x12458,0x12459,0x1245a,0x00000,0x12260,0x00000,0x00000,0x12225, +0x00000,0x1245b,0x1245c,0x1245d,0x1245e,0x1245f,0x12460,0x12461, +0x12462,0x12463,0x12464,0x12465,0x12466,0x12467,0x12468,0x12469, +0x1246a,0x1246b,0x1246c,0x1246d,0x1246e,0x1246f,0x12470,0x12471, +0x12472,0x12473,0x12474,0x12142,0x1225e,0x12143,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000, +0x12266,0x12267,0x00000,0x00000,0x00000,0x12264}; + +static const int ucs_r_cns11643_table_min = 0xfe00; +static const int ucs_r_cns11643_table_max = 0xfe00 + (sizeof (ucs_r_cns11643_table) / sizeof (unsigned int)); + + +#endif /* UNICODE_TABLE_CNS11643_H */ diff --git a/ext/mbstring/libmbfl/filters/unicode_table_cp1251.h b/ext/mbstring/libmbfl/filters/unicode_table_cp1251.h new file mode 100644 index 0000000..99ec985 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/unicode_table_cp1251.h @@ -0,0 +1,51 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The authors of this file: PHP3 internationalization team + * You can contact the primary author 研 <sgk@happysize.co.jp>. + * + */ + +#ifndef UNICODE_TABLE_CP1251_H + +/* cp1251 to Unicode table */ +static const unsigned short cp1251_ucs_table[] = { + 0x0402, 0x0403, 0x201a, 0x0453, 0x201e, 0x2026, 0x2020, 0x2021, + 0x20ac, 0x2030, 0x0409, 0x2039, 0x040a, 0x040c, 0x040b, 0x040f, + 0x0452, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, + 0x003f, 0x2122, 0x0459, 0x203a, 0x045a, 0x045c, 0x045b, 0x045f, + 0x00a0, 0x040e, 0x045e, 0x0408, 0x00a4, 0x0490, 0x00a6, 0x00a7, + 0x0401, 0x00a9, 0x0404, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x0407, + 0x00b0, 0x00b1, 0x0406, 0x0456, 0x0491, 0x00b5, 0x00b6, 0x00b7, + 0x0451, 0x2116, 0x0454, 0x00bb, 0x0458, 0x0405, 0x0455, 0x0457, + 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, + 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, + 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, + 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, + 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, + 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, + 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, + 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f +}; +static const int cp1251_ucs_table_min = 0x80; +static const int cp1251_ucs_table_len = (sizeof (cp1251_ucs_table) / sizeof (unsigned short)); +static const int cp1251_ucs_table_max = 0x80 + (sizeof (cp1251_ucs_table) / sizeof (unsigned short)); + +#endif /* UNICODE_TABLE_CP1251_H */ diff --git a/ext/mbstring/libmbfl/filters/unicode_table_cp1252.h b/ext/mbstring/libmbfl/filters/unicode_table_cp1252.h new file mode 100644 index 0000000..8a33920 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/unicode_table_cp1252.h @@ -0,0 +1,40 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The authors of this file: PHP3 internationalization team + * You can contact the primary author 研 <sgk@happysize.co.jp>. + * + */ + +#ifndef UNICODE_TABLE_CP1252_H +#define UNICODE_TABLE_CP1252_H + +/* Windows CodePage 1252 - it's the same as iso-8859-1 but + * defines extra symbols in the range 0x80-0x9f. + * This table differs from the rest of the unicode tables below + * as it only covers this range, while the rest cover 0xa0 onwards */ + +static const unsigned short cp1252_ucs_table[] = { + 0x20ac,0xfffe,0x201a,0x0192,0x201e,0x2026,0x2020,0x2021, + 0x02c6,0x2030,0x0160,0x2039,0x0152,0xfffe,0x017d,0xfffe, + 0xfffe,0x2018,0x2019,0x201c,0x201d,0x2022,0x2013,0x2014, + 0x02dc,0x2122,0x0161,0x203a,0x0153,0xfffe,0x017e,0x0178 +}; +#endif /* UNICODE_TABLE_CP1252_H */ diff --git a/ext/mbstring/libmbfl/filters/unicode_table_cp1254.h b/ext/mbstring/libmbfl/filters/unicode_table_cp1254.h new file mode 100644 index 0000000..644053c --- /dev/null +++ b/ext/mbstring/libmbfl/filters/unicode_table_cp1254.h @@ -0,0 +1,51 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The authors of this file: PHP3 internationalization team + * You can contact the primary author 研 <sgk@happysize.co.jp>. + * + */ + +#ifndef UNICODE_TABLE_CP1254_H + +/* cp1254 to Unicode table */ +static const unsigned short cp1254_ucs_table[] = { + 0x20ac, 0xfffe, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, + 0x02c6, 0x2030, 0x0160, 0x2039, 0x0152, 0xfffe, 0xfffe, 0xfffe, + 0xfffe, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, + 0x02dc, 0x2122, 0x0161, 0x203a, 0x0153, 0xfffe, 0xfffe, 0x0178, + 0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, + 0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, + 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, + 0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, + 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, + 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, + 0x011e, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7, + 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x0130, 0x015e, 0x00df, + 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, + 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, + 0x011f, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7, + 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x0131, 0x015f, 0x00ff +}; +static const int cp1254_ucs_table_min = 0x80; +static const int cp1254_ucs_table_len = (sizeof (cp1254_ucs_table) / sizeof (unsigned short)); +static const int cp1254_ucs_table_max = 0x80 + (sizeof (cp1254_ucs_table) / sizeof (unsigned short)); + +#endif /* UNICODE_TABLE_CP1254_H */ diff --git a/ext/mbstring/libmbfl/filters/unicode_table_cp850.h b/ext/mbstring/libmbfl/filters/unicode_table_cp850.h new file mode 100644 index 0000000..6c60ae0 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/unicode_table_cp850.h @@ -0,0 +1,52 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this part: Den V. Tsopa <tdv@edisoft.ru> + * Adaption for CP850: D. Giffeler <dg@artegic.de> + * + */ + +#ifndef UNICODE_TABLE_CP850_H +#define UNICODE_TABLE_CP850_H + +/* cp850_DOS to Unicode table */ +static const unsigned short cp850_ucs_table[] = { + 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7 +, 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5 +, 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9 +, 0x00ff, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x00d7, 0x0192 +, 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba +, 0x00bf, 0x00ae, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb +, 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00c1, 0x00c2, 0x00c0 +, 0x00a9, 0x2563, 0x2551, 0x2557, 0x255d, 0x00a2, 0x00a5, 0x2510 +, 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x00e3, 0x00c3 +, 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4 +, 0x00f0, 0x00d0, 0x00ca, 0x00cb, 0x00c8, 0x0131, 0x00cd, 0x00ce +, 0x00cf, 0x2518, 0x250c, 0x2588, 0x2584, 0x00a6, 0x00cc, 0x2580 +, 0x00d3, 0x00df, 0x00d4, 0x00d2, 0x00f5, 0x00d5, 0x00b5, 0x00fe +, 0x00de, 0x00da, 0x00db, 0x00d9, 0x00fd, 0x00dd, 0x00af, 0x00b4 +, 0x00ad, 0x00b1, 0x2017, 0x00be, 0x00b6, 0x00a7, 0x00f7, 0x00b8 +, 0x00b0, 0x00a8, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0 +}; +static const int cp850_ucs_table_min = 0x80; +static const int cp850_ucs_table_len = (sizeof (cp850_ucs_table) / sizeof (unsigned short)); +static const int cp850_ucs_table_max = 0x80 + (sizeof (cp850_ucs_table) / sizeof (unsigned short)); + +#endif /* UNICODE_TABLE_CP850_H */ diff --git a/ext/mbstring/libmbfl/filters/unicode_table_cp866.h b/ext/mbstring/libmbfl/filters/unicode_table_cp866.h new file mode 100644 index 0000000..5674932 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/unicode_table_cp866.h @@ -0,0 +1,51 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The original author of this file: Den V. Tsopa <tdv@edisoft.ru> + * + */ + +#ifndef UNICODE_TABLE_CP866_H +#define UNICODE_TABLE_CP866_H + +/* cp866_DOSCyrillicRussian to Unicode table */ +static const unsigned short cp866_ucs_table[] = { + 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, + 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, + 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, + 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, + 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, + 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, + 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, + 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, + 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, + 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, + 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, + 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, + 0x0401, 0x0451, 0x0404, 0x0454, 0x0407, 0x0457, 0x040e, 0x045e, + 0x00b0, 0x2219, 0x00b7, 0x221a, 0x2116, 0x00a4, 0x25a0, 0x00a0 +}; +static const int cp866_ucs_table_min = 0x80; +static const int cp866_ucs_table_len = (sizeof (cp866_ucs_table) / sizeof (unsigned short)); +static const int cp866_ucs_table_max = 0x80 + (sizeof (cp866_ucs_table) / sizeof (unsigned short)); + +#endif /* UNICODE_TABLE_CP866_H */ diff --git a/ext/mbstring/libmbfl/filters/unicode_table_cp932_ext.h b/ext/mbstring/libmbfl/filters/unicode_table_cp932_ext.h new file mode 100644 index 0000000..b685713 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/unicode_table_cp932_ext.h @@ -0,0 +1,187 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: Rui Hirokawa <hirokawa@php.net> + * + */ + +#ifndef UNICODE_TABLE_CP932_EXT_H +#define UNICODE_TABLE_CP932_EXT_H + +#ifdef UNICODE_TABLE_CP932_DEF + +const unsigned short cp932ext1_ucs_table[] = { + /* ku 13 */ + 0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467, + 0x2468,0x2469,0x246A,0x246B,0x246C,0x246D,0x246E,0x246F, + 0x2470,0x2471,0x2472,0x2473,0x2160,0x2161,0x2162,0x2163, + 0x2164,0x2165,0x2166,0x2167,0x2168,0x2169,0x0000,0x3349, + 0x3314,0x3322,0x334D,0x3318,0x3327,0x3303,0x3336,0x3351, + 0x3357,0x330D,0x3326,0x3323,0x332B,0x334A,0x333B,0x339C, + 0x339D,0x339E,0x338E,0x338F,0x33C4,0x33A1,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x337B,0x301D, + 0x301F,0x2116,0x33CD,0x2121,0x32A4,0x32A5,0x32A6,0x32A7, + 0x32A8,0x3231,0x3232,0x3239,0x337E,0x337D,0x337C,0x2252, + 0x2261,0x222B,0x222E,0x2211,0x221A,0x22A5,0x2220,0x221F, + 0x22BF,0x2235,0x2229,0x222A,0x0000,0x0000 +}; +const int cp932ext1_ucs_table_min = (13 - 1)*94; +const int cp932ext1_ucs_table_max = (13 - 1)*94 + (sizeof (cp932ext1_ucs_table) / sizeof (unsigned short)); + +const unsigned short cp932ext2_ucs_table[] = { + /* ku 89 */ + 0x7E8A,0x891C,0x9348,0x9288,0x84DC,0x4FC9,0x70BB,0x6631, + 0x68C8,0x92F9,0x66FB,0x5F45,0x4E28,0x4EE1,0x4EFC,0x4F00, + 0x4F03,0x4F39,0x4F56,0x4F92,0x4F8A,0x4F9A,0x4F94,0x4FCD, + 0x5040,0x5022,0x4FFF,0x501E,0x5046,0x5070,0x5042,0x5094, + 0x50F4,0x50D8,0x514A,0x5164,0x519D,0x51BE,0x51EC,0x5215, + 0x529C,0x52A6,0x52C0,0x52DB,0x5300,0x5307,0x5324,0x5372, + 0x5393,0x53B2,0x53DD,0xFA0E,0x549C,0x548A,0x54A9,0x54FF, + 0x5586,0x5759,0x5765,0x57AC,0x57C8,0x57C7,0xFA0F,0xFA10, + 0x589E,0x58B2,0x590B,0x5953,0x595B,0x595D,0x5963,0x59A4, + 0x59BA,0x5B56,0x5BC0,0x752F,0x5BD8,0x5BEC,0x5C1E,0x5CA6, + 0x5CBA,0x5CF5,0x5D27,0x5D53,0xFA11,0x5D42,0x5D6D,0x5DB8, + 0x5DB9,0x5DD0,0x5F21,0x5F34,0x5F67,0x5FB7, + + /* ku 90 */ + 0x5FDE,0x605D,0x6085,0x608A,0x60DE,0x60D5,0x6120,0x60F2, + 0x6111,0x6137,0x6130,0x6198,0x6213,0x62A6,0x63F5,0x6460, + 0x649D,0x64CE,0x654E,0x6600,0x6615,0x663B,0x6609,0x662E, + 0x661E,0x6624,0x6665,0x6657,0x6659,0xFA12,0x6673,0x6699, + 0x66A0,0x66B2,0x66BF,0x66FA,0x670E,0xF929,0x6766,0x67BB, + 0x6852,0x67C0,0x6801,0x6844,0x68CF,0xFA13,0x6968,0xFA14, + 0x6998,0x69E2,0x6A30,0x6A6B,0x6A46,0x6A73,0x6A7E,0x6AE2, + 0x6AE4,0x6BD6,0x6C3F,0x6C5C,0x6C86,0x6C6F,0x6CDA,0x6D04, + 0x6D87,0x6D6F,0x6D96,0x6DAC,0x6DCF,0x6DF8,0x6DF2,0x6DFC, + 0x6E39,0x6E5C,0x6E27,0x6E3C,0x6EBF,0x6F88,0x6FB5,0x6FF5, + 0x7005,0x7007,0x7028,0x7085,0x70AB,0x710F,0x7104,0x715C, + 0x7146,0x7147,0xFA15,0x71C1,0x71FE,0x72B1, + + /* ku 91 */ + 0x72BE,0x7324,0xFA16,0x7377,0x73BD,0x73C9,0x73D6,0x73E3, + 0x73D2,0x7407,0x73F5,0x7426,0x742A,0x7429,0x742E,0x7462, + 0x7489,0x749F,0x7501,0x756F,0x7682,0x769C,0x769E,0x769B, + 0x76A6,0xFA17,0x7746,0x52AF,0x7821,0x784E,0x7864,0x787A, + 0x7930,0xFA18,0xFA19,0xFA1A,0x7994,0xFA1B,0x799B,0x7AD1, + 0x7AE7,0xFA1C,0x7AEB,0x7B9E,0xFA1D,0x7D48,0x7D5C,0x7DB7, + 0x7DA0,0x7DD6,0x7E52,0x7F47,0x7FA1,0xFA1E,0x8301,0x8362, + 0x837F,0x83C7,0x83F6,0x8448,0x84B4,0x8553,0x8559,0x856B, + 0xFA1F,0x85B0,0xFA20,0xFA21,0x8807,0x88F5,0x8A12,0x8A37, + 0x8A79,0x8AA7,0x8ABE,0x8ADF,0xFA22,0x8AF6,0x8B53,0x8B7F, + 0x8CF0,0x8CF4,0x8D12,0x8D76,0xFA23,0x8ECF,0xFA24,0xFA25, + 0x9067,0x90DE,0xFA26,0x9115,0x9127,0x91DA, + + /* ku 92 */ + 0x91D7,0x91DE,0x91ED,0x91EE,0x91E4,0x91E5,0x9206,0x9210, + 0x920A,0x923A,0x9240,0x923C,0x924E,0x9259,0x9251,0x9239, + 0x9267,0x92A7,0x9277,0x9278,0x92E7,0x92D7,0x92D9,0x92D0, + 0xFA27,0x92D5,0x92E0,0x92D3,0x9325,0x9321,0x92FB,0xFA28, + 0x931E,0x92FF,0x931D,0x9302,0x9370,0x9357,0x93A4,0x93C6, + 0x93DE,0x93F8,0x9431,0x9445,0x9448,0x9592,0xF9DC,0xFA29, + 0x969D,0x96AF,0x9733,0x973B,0x9743,0x974D,0x974F,0x9751, + 0x9755,0x9857,0x9865,0xFA2A,0xFA2B,0x9927,0xFA2C,0x999E, + 0x9A4E,0x9AD9,0x9ADC,0x9B75,0x9B72,0x9B8F,0x9BB1,0x9BBB, + 0x9C00,0x9D70,0x9D6B,0xFA2D,0x9E19,0x9ED1,0x0000,0x0000, + 0x2170,0x2171,0x2172,0x2173,0x2174,0x2175,0x2176,0x2177, + 0x2178,0x2179,0xFFE2,0xFFE4,0xFF07,0xFF02 +}; +const int cp932ext2_ucs_table_min = (89 - 1)*94; +const int cp932ext2_ucs_table_max = (89 - 1)*94 + (sizeof (cp932ext2_ucs_table) / sizeof (unsigned short)); + +const unsigned short cp932ext3_ucs_table[] = { + /* ku 115 */ + 0x2170,0x2171,0x2172,0x2173,0x2174,0x2175,0x2176,0x2177, + 0x2178,0x2179,0x2160,0x2161,0x2162,0x2163,0x2164,0x2165, + 0x2166,0x2167,0x2168,0x2169,0xFFE2,0xFFE4,0xFF07,0xFF02, + 0x3231,0x2116,0x2121,0x2235,0x7E8A,0x891C,0x9348,0x9288, + 0x84DC,0x4FC9,0x70BB,0x6631,0x68C8,0x92F9,0x66FB,0x5F45, + 0x4E28,0x4EE1,0x4EFC,0x4F00,0x4F03,0x4F39,0x4F56,0x4F92, + 0x4F8A,0x4F9A,0x4F94,0x4FCD,0x5040,0x5022,0x4FFF,0x501E, + 0x5046,0x5070,0x5042,0x5094,0x50F4,0x50D8,0x514A,0x5164, + 0x519D,0x51BE,0x51EC,0x5215,0x529C,0x52A6,0x52C0,0x52DB, + 0x5300,0x5307,0x5324,0x5372,0x5393,0x53B2,0x53DD,0xFA0E, + 0x549C,0x548A,0x54A9,0x54FF,0x5586,0x5759,0x5765,0x57AC, + 0x57C8,0x57C7,0xFA0F,0xFA10,0x589E,0x58B2, + + /* ku 116 */ + 0x590B,0x5953,0x595B,0x595D,0x5963,0x59A4,0x59BA,0x5B56, + 0x5BC0,0x752F,0x5BD8,0x5BEC,0x5C1E,0x5CA6,0x5CBA,0x5CF5, + 0x5D27,0x5D53,0xFA11,0x5D42,0x5D6D,0x5DB8,0x5DB9,0x5DD0, + 0x5F21,0x5F34,0x5F67,0x5FB7,0x5FDE,0x605D,0x6085,0x608A, + 0x60DE,0x60D5,0x6120,0x60F2,0x6111,0x6137,0x6130,0x6198, + 0x6213,0x62A6,0x63F5,0x6460,0x649D,0x64CE,0x654E,0x6600, + 0x6615,0x663B,0x6609,0x662E,0x661E,0x6624,0x6665,0x6657, + 0x6659,0xFA12,0x6673,0x6699,0x66A0,0x66B2,0x66BF,0x66FA, + 0x670E,0xF929,0x6766,0x67BB,0x6852,0x67C0,0x6801,0x6844, + 0x68CF,0xFA13,0x6968,0xFA14,0x6998,0x69E2,0x6A30,0x6A6B, + 0x6A46,0x6A73,0x6A7E,0x6AE2,0x6AE4,0x6BD6,0x6C3F,0x6C5C, + 0x6C86,0x6C6F,0x6CDA,0x6D04,0x6D87,0x6D6F, + + /* ku 117 */ + 0x6D96,0x6DAC,0x6DCF,0x6DF8,0x6DF2,0x6DFC,0x6E39,0x6E5C, + 0x6E27,0x6E3C,0x6EBF,0x6F88,0x6FB5,0x6FF5,0x7005,0x7007, + 0x7028,0x7085,0x70AB,0x710F,0x7104,0x715C,0x7146,0x7147, + 0xFA15,0x71C1,0x71FE,0x72B1,0x72BE,0x7324,0xFA16,0x7377, + 0x73BD,0x73C9,0x73D6,0x73E3,0x73D2,0x7407,0x73F5,0x7426, + 0x742A,0x7429,0x742E,0x7462,0x7489,0x749F,0x7501,0x756F, + 0x7682,0x769C,0x769E,0x769B,0x76A6,0xFA17,0x7746,0x52AF, + 0x7821,0x784E,0x7864,0x787A,0x7930,0xFA18,0xFA19,0xFA1A, + 0x7994,0xFA1B,0x799B,0x7AD1,0x7AE7,0xFA1C,0x7AEB,0x7B9E, + 0xFA1D,0x7D48,0x7D5C,0x7DB7,0x7DA0,0x7DD6,0x7E52,0x7F47, + 0x7FA1,0xFA1E,0x8301,0x8362,0x837F,0x83C7,0x83F6,0x8448, + 0x84B4,0x8553,0x8559,0x856B,0xFA1F,0x85B0, + + /* ku 118 */ + 0xFA20,0xFA21,0x8807,0x88F5,0x8A12,0x8A37,0x8A79,0x8AA7, + 0x8ABE,0x8ADF,0xFA22,0x8AF6,0x8B53,0x8B7F,0x8CF0,0x8CF4, + 0x8D12,0x8D76,0xFA23,0x8ECF,0xFA24,0xFA25,0x9067,0x90DE, + 0xFA26,0x9115,0x9127,0x91DA,0x91D7,0x91DE,0x91ED,0x91EE, + 0x91E4,0x91E5,0x9206,0x9210,0x920A,0x923A,0x9240,0x923C, + 0x924E,0x9259,0x9251,0x9239,0x9267,0x92A7,0x9277,0x9278, + 0x92E7,0x92D7,0x92D9,0x92D0,0xFA27,0x92D5,0x92E0,0x92D3, + 0x9325,0x9321,0x92FB,0xFA28,0x931E,0x92FF,0x931D,0x9302, + 0x9370,0x9357,0x93A4,0x93C6,0x93DE,0x93F8,0x9431,0x9445, + 0x9448,0x9592,0xF9DC,0xFA29,0x969D,0x96AF,0x9733,0x973B, + 0x9743,0x974D,0x974F,0x9751,0x9755,0x9857,0x9865,0xFA2A, + 0xFA2B,0x9927,0xFA2C,0x999E,0x9A4E,0x9AD9, + + /* ku 119 */ + 0x9ADC,0x9B75,0x9B72,0x9B8F,0x9BB1,0x9BBB,0x9C00,0x9D70, + 0x9D6B,0xFA2D,0x9E19,0x9ED1 +}; +const int cp932ext3_ucs_table_min = (115 - 1)*94; +const int cp932ext3_ucs_table_max = (115 - 1)*94 + (sizeof (cp932ext3_ucs_table) / sizeof (unsigned short)); + +#else + +extern const unsigned short cp932ext1_ucs_table[]; +extern const unsigned short cp932ext2_ucs_table[]; +extern const unsigned short cp932ext3_ucs_table[]; + +extern const int cp932ext1_ucs_table_min; +extern const int cp932ext1_ucs_table_max; +extern const int cp932ext2_ucs_table_min; +extern const int cp932ext2_ucs_table_max; +extern const int cp932ext3_ucs_table_min; +extern const int cp932ext3_ucs_table_max; + +#endif + +#endif /* UNICODE_TABLE_CP932_EXT_H */ diff --git a/ext/mbstring/libmbfl/filters/unicode_table_cp936.h b/ext/mbstring/libmbfl/filters/unicode_table_cp936.h new file mode 100644 index 0000000..173c8f4 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/unicode_table_cp936.h @@ -0,0 +1,6552 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: Rui Hirokawa <hirokawa@php.net> + * + */ + +#ifndef UNICODE_TABLE_CP936_H +#define UNICODE_TABLE_CP936_H + +/* + * Unicode table + */ +#ifdef UNICODE_TABLE_CP936_DEF + +const unsigned short cp936_ucs_table[] = { +/* 0x8100 */ +0x4e02,0x4e04,0x4e05,0x4e06,0x4e0f,0x4e12,0x4e17,0x4e1f, +0x4e20,0x4e21,0x4e23,0x4e26,0x4e29,0x4e2e,0x4e2f,0x4e31, +0x4e33,0x4e35,0x4e37,0x4e3c,0x4e40,0x4e41,0x4e42,0x4e44, +0x4e46,0x4e4a,0x4e51,0x4e55,0x4e57,0x4e5a,0x4e5b,0x4e62, +0x4e63,0x4e64,0x4e65,0x4e67,0x4e68,0x4e6a,0x4e6b,0x4e6c, +0x4e6d,0x4e6e,0x4e6f,0x4e72,0x4e74,0x4e75,0x4e76,0x4e77, +0x4e78,0x4e79,0x4e7a,0x4e7b,0x4e7c,0x4e7d,0x4e7f,0x4e80, +0x4e81,0x4e82,0x4e83,0x4e84,0x4e85,0x4e87,0x4e8a,0x0000, +0x4e90,0x4e96,0x4e97,0x4e99,0x4e9c,0x4e9d,0x4e9e,0x4ea3, +0x4eaa,0x4eaf,0x4eb0,0x4eb1,0x4eb4,0x4eb6,0x4eb7,0x4eb8, +0x4eb9,0x4ebc,0x4ebd,0x4ebe,0x4ec8,0x4ecc,0x4ecf,0x4ed0, +0x4ed2,0x4eda,0x4edb,0x4edc,0x4ee0,0x4ee2,0x4ee6,0x4ee7, +0x4ee9,0x4eed,0x4eee,0x4eef,0x4ef1,0x4ef4,0x4ef8,0x4ef9, +0x4efa,0x4efc,0x4efe,0x4f00,0x4f02,0x4f03,0x4f04,0x4f05, +0x4f06,0x4f07,0x4f08,0x4f0b,0x4f0c,0x4f12,0x4f13,0x4f14, +0x4f15,0x4f16,0x4f1c,0x4f1d,0x4f21,0x4f23,0x4f28,0x4f29, +0x4f2c,0x4f2d,0x4f2e,0x4f31,0x4f33,0x4f35,0x4f37,0x4f39, +0x4f3b,0x4f3e,0x4f3f,0x4f40,0x4f41,0x4f42,0x4f44,0x4f45, +0x4f47,0x4f48,0x4f49,0x4f4a,0x4f4b,0x4f4c,0x4f52,0x4f54, +0x4f56,0x4f61,0x4f62,0x4f66,0x4f68,0x4f6a,0x4f6b,0x4f6d, +0x4f6e,0x4f71,0x4f72,0x4f75,0x4f77,0x4f78,0x4f79,0x4f7a, +0x4f7d,0x4f80,0x4f81,0x4f82,0x4f85,0x4f86,0x4f87,0x4f8a, +0x4f8c,0x4f8e,0x4f90,0x4f92,0x4f93,0x4f95,0x4f96,0x4f98, +0x4f99,0x4f9a,0x4f9c,0x4f9e,0x4f9f,0x4fa1,0x4fa2,0x0000, +/* 0x8200 */ +0x4fa4,0x4fab,0x4fad,0x4fb0,0x4fb1,0x4fb2,0x4fb3,0x4fb4, +0x4fb6,0x4fb7,0x4fb8,0x4fb9,0x4fba,0x4fbb,0x4fbc,0x4fbd, +0x4fbe,0x4fc0,0x4fc1,0x4fc2,0x4fc6,0x4fc7,0x4fc8,0x4fc9, +0x4fcb,0x4fcc,0x4fcd,0x4fd2,0x4fd3,0x4fd4,0x4fd5,0x4fd6, +0x4fd9,0x4fdb,0x4fe0,0x4fe2,0x4fe4,0x4fe5,0x4fe7,0x4feb, +0x4fec,0x4ff0,0x4ff2,0x4ff4,0x4ff5,0x4ff6,0x4ff7,0x4ff9, +0x4ffb,0x4ffc,0x4ffd,0x4fff,0x5000,0x5001,0x5002,0x5003, +0x5004,0x5005,0x5006,0x5007,0x5008,0x5009,0x500a,0x0000, +0x500b,0x500e,0x5010,0x5011,0x5013,0x5015,0x5016,0x5017, +0x501b,0x501d,0x501e,0x5020,0x5022,0x5023,0x5024,0x5027, +0x502b,0x502f,0x5030,0x5031,0x5032,0x5033,0x5034,0x5035, +0x5036,0x5037,0x5038,0x5039,0x503b,0x503d,0x503f,0x5040, +0x5041,0x5042,0x5044,0x5045,0x5046,0x5049,0x504a,0x504b, +0x504d,0x5050,0x5051,0x5052,0x5053,0x5054,0x5056,0x5057, +0x5058,0x5059,0x505b,0x505d,0x505e,0x505f,0x5060,0x5061, +0x5062,0x5063,0x5064,0x5066,0x5067,0x5068,0x5069,0x506a, +0x506b,0x506d,0x506e,0x506f,0x5070,0x5071,0x5072,0x5073, +0x5074,0x5075,0x5078,0x5079,0x507a,0x507c,0x507d,0x5081, +0x5082,0x5083,0x5084,0x5086,0x5087,0x5089,0x508a,0x508b, +0x508c,0x508e,0x508f,0x5090,0x5091,0x5092,0x5093,0x5094, +0x5095,0x5096,0x5097,0x5098,0x5099,0x509a,0x509b,0x509c, +0x509d,0x509e,0x509f,0x50a0,0x50a1,0x50a2,0x50a4,0x50a6, +0x50aa,0x50ab,0x50ad,0x50ae,0x50af,0x50b0,0x50b1,0x50b3, +0x50b4,0x50b5,0x50b6,0x50b7,0x50b8,0x50b9,0x50bc,0x0000, +/* 0x8300 */ +0x50bd,0x50be,0x50bf,0x50c0,0x50c1,0x50c2,0x50c3,0x50c4, +0x50c5,0x50c6,0x50c7,0x50c8,0x50c9,0x50ca,0x50cb,0x50cc, +0x50cd,0x50ce,0x50d0,0x50d1,0x50d2,0x50d3,0x50d4,0x50d5, +0x50d7,0x50d8,0x50d9,0x50db,0x50dc,0x50dd,0x50de,0x50df, +0x50e0,0x50e1,0x50e2,0x50e3,0x50e4,0x50e5,0x50e8,0x50e9, +0x50ea,0x50eb,0x50ef,0x50f0,0x50f1,0x50f2,0x50f4,0x50f6, +0x50f7,0x50f8,0x50f9,0x50fa,0x50fc,0x50fd,0x50fe,0x50ff, +0x5100,0x5101,0x5102,0x5103,0x5104,0x5105,0x5108,0x0000, +0x5109,0x510a,0x510c,0x510d,0x510e,0x510f,0x5110,0x5111, +0x5113,0x5114,0x5115,0x5116,0x5117,0x5118,0x5119,0x511a, +0x511b,0x511c,0x511d,0x511e,0x511f,0x5120,0x5122,0x5123, +0x5124,0x5125,0x5126,0x5127,0x5128,0x5129,0x512a,0x512b, +0x512c,0x512d,0x512e,0x512f,0x5130,0x5131,0x5132,0x5133, +0x5134,0x5135,0x5136,0x5137,0x5138,0x5139,0x513a,0x513b, +0x513c,0x513d,0x513e,0x5142,0x5147,0x514a,0x514c,0x514e, +0x514f,0x5150,0x5152,0x5153,0x5157,0x5158,0x5159,0x515b, +0x515d,0x515e,0x515f,0x5160,0x5161,0x5163,0x5164,0x5166, +0x5167,0x5169,0x516a,0x516f,0x5172,0x517a,0x517e,0x517f, +0x5183,0x5184,0x5186,0x5187,0x518a,0x518b,0x518e,0x518f, +0x5190,0x5191,0x5193,0x5194,0x5198,0x519a,0x519d,0x519e, +0x519f,0x51a1,0x51a3,0x51a6,0x51a7,0x51a8,0x51a9,0x51aa, +0x51ad,0x51ae,0x51b4,0x51b8,0x51b9,0x51ba,0x51be,0x51bf, +0x51c1,0x51c2,0x51c3,0x51c5,0x51c8,0x51ca,0x51cd,0x51ce, +0x51d0,0x51d2,0x51d3,0x51d4,0x51d5,0x51d6,0x51d7,0x0000, +/* 0x8400 */ +0x51d8,0x51d9,0x51da,0x51dc,0x51de,0x51df,0x51e2,0x51e3, +0x51e5,0x51e6,0x51e7,0x51e8,0x51e9,0x51ea,0x51ec,0x51ee, +0x51f1,0x51f2,0x51f4,0x51f7,0x51fe,0x5204,0x5205,0x5209, +0x520b,0x520c,0x520f,0x5210,0x5213,0x5214,0x5215,0x521c, +0x521e,0x521f,0x5221,0x5222,0x5223,0x5225,0x5226,0x5227, +0x522a,0x522c,0x522f,0x5231,0x5232,0x5234,0x5235,0x523c, +0x523e,0x5244,0x5245,0x5246,0x5247,0x5248,0x5249,0x524b, +0x524e,0x524f,0x5252,0x5253,0x5255,0x5257,0x5258,0x0000, +0x5259,0x525a,0x525b,0x525d,0x525f,0x5260,0x5262,0x5263, +0x5264,0x5266,0x5268,0x526b,0x526c,0x526d,0x526e,0x5270, +0x5271,0x5273,0x5274,0x5275,0x5276,0x5277,0x5278,0x5279, +0x527a,0x527b,0x527c,0x527e,0x5280,0x5283,0x5284,0x5285, +0x5286,0x5287,0x5289,0x528a,0x528b,0x528c,0x528d,0x528e, +0x528f,0x5291,0x5292,0x5294,0x5295,0x5296,0x5297,0x5298, +0x5299,0x529a,0x529c,0x52a4,0x52a5,0x52a6,0x52a7,0x52ae, +0x52af,0x52b0,0x52b4,0x52b5,0x52b6,0x52b7,0x52b8,0x52b9, +0x52ba,0x52bb,0x52bc,0x52bd,0x52c0,0x52c1,0x52c2,0x52c4, +0x52c5,0x52c6,0x52c8,0x52ca,0x52cc,0x52cd,0x52ce,0x52cf, +0x52d1,0x52d3,0x52d4,0x52d5,0x52d7,0x52d9,0x52da,0x52db, +0x52dc,0x52dd,0x52de,0x52e0,0x52e1,0x52e2,0x52e3,0x52e5, +0x52e6,0x52e7,0x52e8,0x52e9,0x52ea,0x52eb,0x52ec,0x52ed, +0x52ee,0x52ef,0x52f1,0x52f2,0x52f3,0x52f4,0x52f5,0x52f6, +0x52f7,0x52f8,0x52fb,0x52fc,0x52fd,0x5301,0x5302,0x5303, +0x5304,0x5307,0x5309,0x530a,0x530b,0x530c,0x530e,0x0000, +/* 0x8500 */ +0x5311,0x5312,0x5313,0x5314,0x5318,0x531b,0x531c,0x531e, +0x531f,0x5322,0x5324,0x5325,0x5327,0x5328,0x5329,0x532b, +0x532c,0x532d,0x532f,0x5330,0x5331,0x5332,0x5333,0x5334, +0x5335,0x5336,0x5337,0x5338,0x533c,0x533d,0x5340,0x5342, +0x5344,0x5346,0x534b,0x534c,0x534d,0x5350,0x5354,0x5358, +0x5359,0x535b,0x535d,0x5365,0x5368,0x536a,0x536c,0x536d, +0x5372,0x5376,0x5379,0x537b,0x537c,0x537d,0x537e,0x5380, +0x5381,0x5383,0x5387,0x5388,0x538a,0x538e,0x538f,0x0000, +0x5390,0x5391,0x5392,0x5393,0x5394,0x5396,0x5397,0x5399, +0x539b,0x539c,0x539e,0x53a0,0x53a1,0x53a4,0x53a7,0x53aa, +0x53ab,0x53ac,0x53ad,0x53af,0x53b0,0x53b1,0x53b2,0x53b3, +0x53b4,0x53b5,0x53b7,0x53b8,0x53b9,0x53ba,0x53bc,0x53bd, +0x53be,0x53c0,0x53c3,0x53c4,0x53c5,0x53c6,0x53c7,0x53ce, +0x53cf,0x53d0,0x53d2,0x53d3,0x53d5,0x53da,0x53dc,0x53dd, +0x53de,0x53e1,0x53e2,0x53e7,0x53f4,0x53fa,0x53fe,0x53ff, +0x5400,0x5402,0x5405,0x5407,0x540b,0x5414,0x5418,0x5419, +0x541a,0x541c,0x5422,0x5424,0x5425,0x542a,0x5430,0x5433, +0x5436,0x5437,0x543a,0x543d,0x543f,0x5441,0x5442,0x5444, +0x5445,0x5447,0x5449,0x544c,0x544d,0x544e,0x544f,0x5451, +0x545a,0x545d,0x545e,0x545f,0x5460,0x5461,0x5463,0x5465, +0x5467,0x5469,0x546a,0x546b,0x546c,0x546d,0x546e,0x546f, +0x5470,0x5474,0x5479,0x547a,0x547e,0x547f,0x5481,0x5483, +0x5485,0x5487,0x5488,0x5489,0x548a,0x548d,0x5491,0x5493, +0x5497,0x5498,0x549c,0x549e,0x549f,0x54a0,0x54a1,0x0000, +/* 0x8600 */ +0x54a2,0x54a5,0x54ae,0x54b0,0x54b2,0x54b5,0x54b6,0x54b7, +0x54b9,0x54ba,0x54bc,0x54be,0x54c3,0x54c5,0x54ca,0x54cb, +0x54d6,0x54d8,0x54db,0x54e0,0x54e1,0x54e2,0x54e3,0x54e4, +0x54eb,0x54ec,0x54ef,0x54f0,0x54f1,0x54f4,0x54f5,0x54f6, +0x54f7,0x54f8,0x54f9,0x54fb,0x54fe,0x5500,0x5502,0x5503, +0x5504,0x5505,0x5508,0x550a,0x550b,0x550c,0x550d,0x550e, +0x5512,0x5513,0x5515,0x5516,0x5517,0x5518,0x5519,0x551a, +0x551c,0x551d,0x551e,0x551f,0x5521,0x5525,0x5526,0x0000, +0x5528,0x5529,0x552b,0x552d,0x5532,0x5534,0x5535,0x5536, +0x5538,0x5539,0x553a,0x553b,0x553d,0x5540,0x5542,0x5545, +0x5547,0x5548,0x554b,0x554c,0x554d,0x554e,0x554f,0x5551, +0x5552,0x5553,0x5554,0x5557,0x5558,0x5559,0x555a,0x555b, +0x555d,0x555e,0x555f,0x5560,0x5562,0x5563,0x5568,0x5569, +0x556b,0x556f,0x5570,0x5571,0x5572,0x5573,0x5574,0x5579, +0x557a,0x557d,0x557f,0x5585,0x5586,0x558c,0x558d,0x558e, +0x5590,0x5592,0x5593,0x5595,0x5596,0x5597,0x559a,0x559b, +0x559e,0x55a0,0x55a1,0x55a2,0x55a3,0x55a4,0x55a5,0x55a6, +0x55a8,0x55a9,0x55aa,0x55ab,0x55ac,0x55ad,0x55ae,0x55af, +0x55b0,0x55b2,0x55b4,0x55b6,0x55b8,0x55ba,0x55bc,0x55bf, +0x55c0,0x55c1,0x55c2,0x55c3,0x55c6,0x55c7,0x55c8,0x55ca, +0x55cb,0x55ce,0x55cf,0x55d0,0x55d5,0x55d7,0x55d8,0x55d9, +0x55da,0x55db,0x55de,0x55e0,0x55e2,0x55e7,0x55e9,0x55ed, +0x55ee,0x55f0,0x55f1,0x55f4,0x55f6,0x55f8,0x55f9,0x55fa, +0x55fb,0x55fc,0x55ff,0x5602,0x5603,0x5604,0x5605,0x0000, +/* 0x8700 */ +0x5606,0x5607,0x560a,0x560b,0x560d,0x5610,0x5611,0x5612, +0x5613,0x5614,0x5615,0x5616,0x5617,0x5619,0x561a,0x561c, +0x561d,0x5620,0x5621,0x5622,0x5625,0x5626,0x5628,0x5629, +0x562a,0x562b,0x562e,0x562f,0x5630,0x5633,0x5635,0x5637, +0x5638,0x563a,0x563c,0x563d,0x563e,0x5640,0x5641,0x5642, +0x5643,0x5644,0x5645,0x5646,0x5647,0x5648,0x5649,0x564a, +0x564b,0x564f,0x5650,0x5651,0x5652,0x5653,0x5655,0x5656, +0x565a,0x565b,0x565d,0x565e,0x565f,0x5660,0x5661,0x0000, +0x5663,0x5665,0x5666,0x5667,0x566d,0x566e,0x566f,0x5670, +0x5672,0x5673,0x5674,0x5675,0x5677,0x5678,0x5679,0x567a, +0x567d,0x567e,0x567f,0x5680,0x5681,0x5682,0x5683,0x5684, +0x5687,0x5688,0x5689,0x568a,0x568b,0x568c,0x568d,0x5690, +0x5691,0x5692,0x5694,0x5695,0x5696,0x5697,0x5698,0x5699, +0x569a,0x569b,0x569c,0x569d,0x569e,0x569f,0x56a0,0x56a1, +0x56a2,0x56a4,0x56a5,0x56a6,0x56a7,0x56a8,0x56a9,0x56aa, +0x56ab,0x56ac,0x56ad,0x56ae,0x56b0,0x56b1,0x56b2,0x56b3, +0x56b4,0x56b5,0x56b6,0x56b8,0x56b9,0x56ba,0x56bb,0x56bd, +0x56be,0x56bf,0x56c0,0x56c1,0x56c2,0x56c3,0x56c4,0x56c5, +0x56c6,0x56c7,0x56c8,0x56c9,0x56cb,0x56cc,0x56cd,0x56ce, +0x56cf,0x56d0,0x56d1,0x56d2,0x56d3,0x56d5,0x56d6,0x56d8, +0x56d9,0x56dc,0x56e3,0x56e5,0x56e6,0x56e7,0x56e8,0x56e9, +0x56ea,0x56ec,0x56ee,0x56ef,0x56f2,0x56f3,0x56f6,0x56f7, +0x56f8,0x56fb,0x56fc,0x5700,0x5701,0x5702,0x5705,0x5707, +0x570b,0x570c,0x570d,0x570e,0x570f,0x5710,0x5711,0x0000, +/* 0x8800 */ +0x5712,0x5713,0x5714,0x5715,0x5716,0x5717,0x5718,0x5719, +0x571a,0x571b,0x571d,0x571e,0x5720,0x5721,0x5722,0x5724, +0x5725,0x5726,0x5727,0x572b,0x5731,0x5732,0x5734,0x5735, +0x5736,0x5737,0x5738,0x573c,0x573d,0x573f,0x5741,0x5743, +0x5744,0x5745,0x5746,0x5748,0x5749,0x574b,0x5752,0x5753, +0x5754,0x5755,0x5756,0x5758,0x5759,0x5762,0x5763,0x5765, +0x5767,0x576c,0x576e,0x5770,0x5771,0x5772,0x5774,0x5775, +0x5778,0x5779,0x577a,0x577d,0x577e,0x577f,0x5780,0x0000, +0x5781,0x5787,0x5788,0x5789,0x578a,0x578d,0x578e,0x578f, +0x5790,0x5791,0x5794,0x5795,0x5796,0x5797,0x5798,0x5799, +0x579a,0x579c,0x579d,0x579e,0x579f,0x57a5,0x57a8,0x57aa, +0x57ac,0x57af,0x57b0,0x57b1,0x57b3,0x57b5,0x57b6,0x57b7, +0x57b9,0x57ba,0x57bb,0x57bc,0x57bd,0x57be,0x57bf,0x57c0, +0x57c1,0x57c4,0x57c5,0x57c6,0x57c7,0x57c8,0x57c9,0x57ca, +0x57cc,0x57cd,0x57d0,0x57d1,0x57d3,0x57d6,0x57d7,0x57db, +0x57dc,0x57de,0x57e1,0x57e2,0x57e3,0x57e5,0x57e6,0x57e7, +0x57e8,0x57e9,0x57ea,0x57eb,0x57ec,0x57ee,0x57f0,0x57f1, +0x57f2,0x57f3,0x57f5,0x57f6,0x57f7,0x57fb,0x57fc,0x57fe, +0x57ff,0x5801,0x5803,0x5804,0x5805,0x5808,0x5809,0x580a, +0x580c,0x580e,0x580f,0x5810,0x5812,0x5813,0x5814,0x5816, +0x5817,0x5818,0x581a,0x581b,0x581c,0x581d,0x581f,0x5822, +0x5823,0x5825,0x5826,0x5827,0x5828,0x5829,0x582b,0x582c, +0x582d,0x582e,0x582f,0x5831,0x5832,0x5833,0x5834,0x5836, +0x5837,0x5838,0x5839,0x583a,0x583b,0x583c,0x583d,0x0000, +/* 0x8900 */ +0x583e,0x583f,0x5840,0x5841,0x5842,0x5843,0x5845,0x5846, +0x5847,0x5848,0x5849,0x584a,0x584b,0x584e,0x584f,0x5850, +0x5852,0x5853,0x5855,0x5856,0x5857,0x5859,0x585a,0x585b, +0x585c,0x585d,0x585f,0x5860,0x5861,0x5862,0x5863,0x5864, +0x5866,0x5867,0x5868,0x5869,0x586a,0x586d,0x586e,0x586f, +0x5870,0x5871,0x5872,0x5873,0x5874,0x5875,0x5876,0x5877, +0x5878,0x5879,0x587a,0x587b,0x587c,0x587d,0x587f,0x5882, +0x5884,0x5886,0x5887,0x5888,0x588a,0x588b,0x588c,0x0000, +0x588d,0x588e,0x588f,0x5890,0x5891,0x5894,0x5895,0x5896, +0x5897,0x5898,0x589b,0x589c,0x589d,0x58a0,0x58a1,0x58a2, +0x58a3,0x58a4,0x58a5,0x58a6,0x58a7,0x58aa,0x58ab,0x58ac, +0x58ad,0x58ae,0x58af,0x58b0,0x58b1,0x58b2,0x58b3,0x58b4, +0x58b5,0x58b6,0x58b7,0x58b8,0x58b9,0x58ba,0x58bb,0x58bd, +0x58be,0x58bf,0x58c0,0x58c2,0x58c3,0x58c4,0x58c6,0x58c7, +0x58c8,0x58c9,0x58ca,0x58cb,0x58cc,0x58cd,0x58ce,0x58cf, +0x58d0,0x58d2,0x58d3,0x58d4,0x58d6,0x58d7,0x58d8,0x58d9, +0x58da,0x58db,0x58dc,0x58dd,0x58de,0x58df,0x58e0,0x58e1, +0x58e2,0x58e3,0x58e5,0x58e6,0x58e7,0x58e8,0x58e9,0x58ea, +0x58ed,0x58ef,0x58f1,0x58f2,0x58f4,0x58f5,0x58f7,0x58f8, +0x58fa,0x58fb,0x58fc,0x58fd,0x58fe,0x58ff,0x5900,0x5901, +0x5903,0x5905,0x5906,0x5908,0x5909,0x590a,0x590b,0x590c, +0x590e,0x5910,0x5911,0x5912,0x5913,0x5917,0x5918,0x591b, +0x591d,0x591e,0x5920,0x5921,0x5922,0x5923,0x5926,0x5928, +0x592c,0x5930,0x5932,0x5933,0x5935,0x5936,0x593b,0x0000, +/* 0x8a00 */ +0x593d,0x593e,0x593f,0x5940,0x5943,0x5945,0x5946,0x594a, +0x594c,0x594d,0x5950,0x5952,0x5953,0x5959,0x595b,0x595c, +0x595d,0x595e,0x595f,0x5961,0x5963,0x5964,0x5966,0x5967, +0x5968,0x5969,0x596a,0x596b,0x596c,0x596d,0x596e,0x596f, +0x5970,0x5971,0x5972,0x5975,0x5977,0x597a,0x597b,0x597c, +0x597e,0x597f,0x5980,0x5985,0x5989,0x598b,0x598c,0x598e, +0x598f,0x5990,0x5991,0x5994,0x5995,0x5998,0x599a,0x599b, +0x599c,0x599d,0x599f,0x59a0,0x59a1,0x59a2,0x59a6,0x0000, +0x59a7,0x59ac,0x59ad,0x59b0,0x59b1,0x59b3,0x59b4,0x59b5, +0x59b6,0x59b7,0x59b8,0x59ba,0x59bc,0x59bd,0x59bf,0x59c0, +0x59c1,0x59c2,0x59c3,0x59c4,0x59c5,0x59c7,0x59c8,0x59c9, +0x59cc,0x59cd,0x59ce,0x59cf,0x59d5,0x59d6,0x59d9,0x59db, +0x59de,0x59df,0x59e0,0x59e1,0x59e2,0x59e4,0x59e6,0x59e7, +0x59e9,0x59ea,0x59eb,0x59ed,0x59ee,0x59ef,0x59f0,0x59f1, +0x59f2,0x59f3,0x59f4,0x59f5,0x59f6,0x59f7,0x59f8,0x59fa, +0x59fc,0x59fd,0x59fe,0x5a00,0x5a02,0x5a0a,0x5a0b,0x5a0d, +0x5a0e,0x5a0f,0x5a10,0x5a12,0x5a14,0x5a15,0x5a16,0x5a17, +0x5a19,0x5a1a,0x5a1b,0x5a1d,0x5a1e,0x5a21,0x5a22,0x5a24, +0x5a26,0x5a27,0x5a28,0x5a2a,0x5a2b,0x5a2c,0x5a2d,0x5a2e, +0x5a2f,0x5a30,0x5a33,0x5a35,0x5a37,0x5a38,0x5a39,0x5a3a, +0x5a3b,0x5a3d,0x5a3e,0x5a3f,0x5a41,0x5a42,0x5a43,0x5a44, +0x5a45,0x5a47,0x5a48,0x5a4b,0x5a4c,0x5a4d,0x5a4e,0x5a4f, +0x5a50,0x5a51,0x5a52,0x5a53,0x5a54,0x5a56,0x5a57,0x5a58, +0x5a59,0x5a5b,0x5a5c,0x5a5d,0x5a5e,0x5a5f,0x5a60,0x0000, +/* 0x8b00 */ +0x5a61,0x5a63,0x5a64,0x5a65,0x5a66,0x5a68,0x5a69,0x5a6b, +0x5a6c,0x5a6d,0x5a6e,0x5a6f,0x5a70,0x5a71,0x5a72,0x5a73, +0x5a78,0x5a79,0x5a7b,0x5a7c,0x5a7d,0x5a7e,0x5a80,0x5a81, +0x5a82,0x5a83,0x5a84,0x5a85,0x5a86,0x5a87,0x5a88,0x5a89, +0x5a8a,0x5a8b,0x5a8c,0x5a8d,0x5a8e,0x5a8f,0x5a90,0x5a91, +0x5a93,0x5a94,0x5a95,0x5a96,0x5a97,0x5a98,0x5a99,0x5a9c, +0x5a9d,0x5a9e,0x5a9f,0x5aa0,0x5aa1,0x5aa2,0x5aa3,0x5aa4, +0x5aa5,0x5aa6,0x5aa7,0x5aa8,0x5aa9,0x5aab,0x5aac,0x0000, +0x5aad,0x5aae,0x5aaf,0x5ab0,0x5ab1,0x5ab4,0x5ab6,0x5ab7, +0x5ab9,0x5aba,0x5abb,0x5abc,0x5abd,0x5abf,0x5ac0,0x5ac3, +0x5ac4,0x5ac5,0x5ac6,0x5ac7,0x5ac8,0x5aca,0x5acb,0x5acd, +0x5ace,0x5acf,0x5ad0,0x5ad1,0x5ad3,0x5ad5,0x5ad7,0x5ad9, +0x5ada,0x5adb,0x5add,0x5ade,0x5adf,0x5ae2,0x5ae4,0x5ae5, +0x5ae7,0x5ae8,0x5aea,0x5aec,0x5aed,0x5aee,0x5aef,0x5af0, +0x5af2,0x5af3,0x5af4,0x5af5,0x5af6,0x5af7,0x5af8,0x5af9, +0x5afa,0x5afb,0x5afc,0x5afd,0x5afe,0x5aff,0x5b00,0x5b01, +0x5b02,0x5b03,0x5b04,0x5b05,0x5b06,0x5b07,0x5b08,0x5b0a, +0x5b0b,0x5b0c,0x5b0d,0x5b0e,0x5b0f,0x5b10,0x5b11,0x5b12, +0x5b13,0x5b14,0x5b15,0x5b18,0x5b19,0x5b1a,0x5b1b,0x5b1c, +0x5b1d,0x5b1e,0x5b1f,0x5b20,0x5b21,0x5b22,0x5b23,0x5b24, +0x5b25,0x5b26,0x5b27,0x5b28,0x5b29,0x5b2a,0x5b2b,0x5b2c, +0x5b2d,0x5b2e,0x5b2f,0x5b30,0x5b31,0x5b33,0x5b35,0x5b36, +0x5b38,0x5b39,0x5b3a,0x5b3b,0x5b3c,0x5b3d,0x5b3e,0x5b3f, +0x5b41,0x5b42,0x5b43,0x5b44,0x5b45,0x5b46,0x5b47,0x0000, +/* 0x8c00 */ +0x5b48,0x5b49,0x5b4a,0x5b4b,0x5b4c,0x5b4d,0x5b4e,0x5b4f, +0x5b52,0x5b56,0x5b5e,0x5b60,0x5b61,0x5b67,0x5b68,0x5b6b, +0x5b6d,0x5b6e,0x5b6f,0x5b72,0x5b74,0x5b76,0x5b77,0x5b78, +0x5b79,0x5b7b,0x5b7c,0x5b7e,0x5b7f,0x5b82,0x5b86,0x5b8a, +0x5b8d,0x5b8e,0x5b90,0x5b91,0x5b92,0x5b94,0x5b96,0x5b9f, +0x5ba7,0x5ba8,0x5ba9,0x5bac,0x5bad,0x5bae,0x5baf,0x5bb1, +0x5bb2,0x5bb7,0x5bba,0x5bbb,0x5bbc,0x5bc0,0x5bc1,0x5bc3, +0x5bc8,0x5bc9,0x5bca,0x5bcb,0x5bcd,0x5bce,0x5bcf,0x0000, +0x5bd1,0x5bd4,0x5bd5,0x5bd6,0x5bd7,0x5bd8,0x5bd9,0x5bda, +0x5bdb,0x5bdc,0x5be0,0x5be2,0x5be3,0x5be6,0x5be7,0x5be9, +0x5bea,0x5beb,0x5bec,0x5bed,0x5bef,0x5bf1,0x5bf2,0x5bf3, +0x5bf4,0x5bf5,0x5bf6,0x5bf7,0x5bfd,0x5bfe,0x5c00,0x5c02, +0x5c03,0x5c05,0x5c07,0x5c08,0x5c0b,0x5c0c,0x5c0d,0x5c0e, +0x5c10,0x5c12,0x5c13,0x5c17,0x5c19,0x5c1b,0x5c1e,0x5c1f, +0x5c20,0x5c21,0x5c23,0x5c26,0x5c28,0x5c29,0x5c2a,0x5c2b, +0x5c2d,0x5c2e,0x5c2f,0x5c30,0x5c32,0x5c33,0x5c35,0x5c36, +0x5c37,0x5c43,0x5c44,0x5c46,0x5c47,0x5c4c,0x5c4d,0x5c52, +0x5c53,0x5c54,0x5c56,0x5c57,0x5c58,0x5c5a,0x5c5b,0x5c5c, +0x5c5d,0x5c5f,0x5c62,0x5c64,0x5c67,0x5c68,0x5c69,0x5c6a, +0x5c6b,0x5c6c,0x5c6d,0x5c70,0x5c72,0x5c73,0x5c74,0x5c75, +0x5c76,0x5c77,0x5c78,0x5c7b,0x5c7c,0x5c7d,0x5c7e,0x5c80, +0x5c83,0x5c84,0x5c85,0x5c86,0x5c87,0x5c89,0x5c8a,0x5c8b, +0x5c8e,0x5c8f,0x5c92,0x5c93,0x5c95,0x5c9d,0x5c9e,0x5c9f, +0x5ca0,0x5ca1,0x5ca4,0x5ca5,0x5ca6,0x5ca7,0x5ca8,0x0000, +/* 0x8d00 */ +0x5caa,0x5cae,0x5caf,0x5cb0,0x5cb2,0x5cb4,0x5cb6,0x5cb9, +0x5cba,0x5cbb,0x5cbc,0x5cbe,0x5cc0,0x5cc2,0x5cc3,0x5cc5, +0x5cc6,0x5cc7,0x5cc8,0x5cc9,0x5cca,0x5ccc,0x5ccd,0x5cce, +0x5ccf,0x5cd0,0x5cd1,0x5cd3,0x5cd4,0x5cd5,0x5cd6,0x5cd7, +0x5cd8,0x5cda,0x5cdb,0x5cdc,0x5cdd,0x5cde,0x5cdf,0x5ce0, +0x5ce2,0x5ce3,0x5ce7,0x5ce9,0x5ceb,0x5cec,0x5cee,0x5cef, +0x5cf1,0x5cf2,0x5cf3,0x5cf4,0x5cf5,0x5cf6,0x5cf7,0x5cf8, +0x5cf9,0x5cfa,0x5cfc,0x5cfd,0x5cfe,0x5cff,0x5d00,0x0000, +0x5d01,0x5d04,0x5d05,0x5d08,0x5d09,0x5d0a,0x5d0b,0x5d0c, +0x5d0d,0x5d0f,0x5d10,0x5d11,0x5d12,0x5d13,0x5d15,0x5d17, +0x5d18,0x5d19,0x5d1a,0x5d1c,0x5d1d,0x5d1f,0x5d20,0x5d21, +0x5d22,0x5d23,0x5d25,0x5d28,0x5d2a,0x5d2b,0x5d2c,0x5d2f, +0x5d30,0x5d31,0x5d32,0x5d33,0x5d35,0x5d36,0x5d37,0x5d38, +0x5d39,0x5d3a,0x5d3b,0x5d3c,0x5d3f,0x5d40,0x5d41,0x5d42, +0x5d43,0x5d44,0x5d45,0x5d46,0x5d48,0x5d49,0x5d4d,0x5d4e, +0x5d4f,0x5d50,0x5d51,0x5d52,0x5d53,0x5d54,0x5d55,0x5d56, +0x5d57,0x5d59,0x5d5a,0x5d5c,0x5d5e,0x5d5f,0x5d60,0x5d61, +0x5d62,0x5d63,0x5d64,0x5d65,0x5d66,0x5d67,0x5d68,0x5d6a, +0x5d6d,0x5d6e,0x5d70,0x5d71,0x5d72,0x5d73,0x5d75,0x5d76, +0x5d77,0x5d78,0x5d79,0x5d7a,0x5d7b,0x5d7c,0x5d7d,0x5d7e, +0x5d7f,0x5d80,0x5d81,0x5d83,0x5d84,0x5d85,0x5d86,0x5d87, +0x5d88,0x5d89,0x5d8a,0x5d8b,0x5d8c,0x5d8d,0x5d8e,0x5d8f, +0x5d90,0x5d91,0x5d92,0x5d93,0x5d94,0x5d95,0x5d96,0x5d97, +0x5d98,0x5d9a,0x5d9b,0x5d9c,0x5d9e,0x5d9f,0x5da0,0x0000, +/* 0x8e00 */ +0x5da1,0x5da2,0x5da3,0x5da4,0x5da5,0x5da6,0x5da7,0x5da8, +0x5da9,0x5daa,0x5dab,0x5dac,0x5dad,0x5dae,0x5daf,0x5db0, +0x5db1,0x5db2,0x5db3,0x5db4,0x5db5,0x5db6,0x5db8,0x5db9, +0x5dba,0x5dbb,0x5dbc,0x5dbd,0x5dbe,0x5dbf,0x5dc0,0x5dc1, +0x5dc2,0x5dc3,0x5dc4,0x5dc6,0x5dc7,0x5dc8,0x5dc9,0x5dca, +0x5dcb,0x5dcc,0x5dce,0x5dcf,0x5dd0,0x5dd1,0x5dd2,0x5dd3, +0x5dd4,0x5dd5,0x5dd6,0x5dd7,0x5dd8,0x5dd9,0x5dda,0x5ddc, +0x5ddf,0x5de0,0x5de3,0x5de4,0x5dea,0x5dec,0x5ded,0x0000, +0x5df0,0x5df5,0x5df6,0x5df8,0x5df9,0x5dfa,0x5dfb,0x5dfc, +0x5dff,0x5e00,0x5e04,0x5e07,0x5e09,0x5e0a,0x5e0b,0x5e0d, +0x5e0e,0x5e12,0x5e13,0x5e17,0x5e1e,0x5e1f,0x5e20,0x5e21, +0x5e22,0x5e23,0x5e24,0x5e25,0x5e28,0x5e29,0x5e2a,0x5e2b, +0x5e2c,0x5e2f,0x5e30,0x5e32,0x5e33,0x5e34,0x5e35,0x5e36, +0x5e39,0x5e3a,0x5e3e,0x5e3f,0x5e40,0x5e41,0x5e43,0x5e46, +0x5e47,0x5e48,0x5e49,0x5e4a,0x5e4b,0x5e4d,0x5e4e,0x5e4f, +0x5e50,0x5e51,0x5e52,0x5e53,0x5e56,0x5e57,0x5e58,0x5e59, +0x5e5a,0x5e5c,0x5e5d,0x5e5f,0x5e60,0x5e63,0x5e64,0x5e65, +0x5e66,0x5e67,0x5e68,0x5e69,0x5e6a,0x5e6b,0x5e6c,0x5e6d, +0x5e6e,0x5e6f,0x5e70,0x5e71,0x5e75,0x5e77,0x5e79,0x5e7e, +0x5e81,0x5e82,0x5e83,0x5e85,0x5e88,0x5e89,0x5e8c,0x5e8d, +0x5e8e,0x5e92,0x5e98,0x5e9b,0x5e9d,0x5ea1,0x5ea2,0x5ea3, +0x5ea4,0x5ea8,0x5ea9,0x5eaa,0x5eab,0x5eac,0x5eae,0x5eaf, +0x5eb0,0x5eb1,0x5eb2,0x5eb4,0x5eba,0x5ebb,0x5ebc,0x5ebd, +0x5ebf,0x5ec0,0x5ec1,0x5ec2,0x5ec3,0x5ec4,0x5ec5,0x0000, +/* 0x8f00 */ +0x5ec6,0x5ec7,0x5ec8,0x5ecb,0x5ecc,0x5ecd,0x5ece,0x5ecf, +0x5ed0,0x5ed4,0x5ed5,0x5ed7,0x5ed8,0x5ed9,0x5eda,0x5edc, +0x5edd,0x5ede,0x5edf,0x5ee0,0x5ee1,0x5ee2,0x5ee3,0x5ee4, +0x5ee5,0x5ee6,0x5ee7,0x5ee9,0x5eeb,0x5eec,0x5eed,0x5eee, +0x5eef,0x5ef0,0x5ef1,0x5ef2,0x5ef3,0x5ef5,0x5ef8,0x5ef9, +0x5efb,0x5efc,0x5efd,0x5f05,0x5f06,0x5f07,0x5f09,0x5f0c, +0x5f0d,0x5f0e,0x5f10,0x5f12,0x5f14,0x5f16,0x5f19,0x5f1a, +0x5f1c,0x5f1d,0x5f1e,0x5f21,0x5f22,0x5f23,0x5f24,0x0000, +0x5f28,0x5f2b,0x5f2c,0x5f2e,0x5f30,0x5f32,0x5f33,0x5f34, +0x5f35,0x5f36,0x5f37,0x5f38,0x5f3b,0x5f3d,0x5f3e,0x5f3f, +0x5f41,0x5f42,0x5f43,0x5f44,0x5f45,0x5f46,0x5f47,0x5f48, +0x5f49,0x5f4a,0x5f4b,0x5f4c,0x5f4d,0x5f4e,0x5f4f,0x5f51, +0x5f54,0x5f59,0x5f5a,0x5f5b,0x5f5c,0x5f5e,0x5f5f,0x5f60, +0x5f63,0x5f65,0x5f67,0x5f68,0x5f6b,0x5f6e,0x5f6f,0x5f72, +0x5f74,0x5f75,0x5f76,0x5f78,0x5f7a,0x5f7d,0x5f7e,0x5f7f, +0x5f83,0x5f86,0x5f8d,0x5f8e,0x5f8f,0x5f91,0x5f93,0x5f94, +0x5f96,0x5f9a,0x5f9b,0x5f9d,0x5f9e,0x5f9f,0x5fa0,0x5fa2, +0x5fa3,0x5fa4,0x5fa5,0x5fa6,0x5fa7,0x5fa9,0x5fab,0x5fac, +0x5faf,0x5fb0,0x5fb1,0x5fb2,0x5fb3,0x5fb4,0x5fb6,0x5fb8, +0x5fb9,0x5fba,0x5fbb,0x5fbe,0x5fbf,0x5fc0,0x5fc1,0x5fc2, +0x5fc7,0x5fc8,0x5fca,0x5fcb,0x5fce,0x5fd3,0x5fd4,0x5fd5, +0x5fda,0x5fdb,0x5fdc,0x5fde,0x5fdf,0x5fe2,0x5fe3,0x5fe5, +0x5fe6,0x5fe8,0x5fe9,0x5fec,0x5fef,0x5ff0,0x5ff2,0x5ff3, +0x5ff4,0x5ff6,0x5ff7,0x5ff9,0x5ffa,0x5ffc,0x6007,0x0000, +/* 0x9000 */ +0x6008,0x6009,0x600b,0x600c,0x6010,0x6011,0x6013,0x6017, +0x6018,0x601a,0x601e,0x601f,0x6022,0x6023,0x6024,0x602c, +0x602d,0x602e,0x6030,0x6031,0x6032,0x6033,0x6034,0x6036, +0x6037,0x6038,0x6039,0x603a,0x603d,0x603e,0x6040,0x6044, +0x6045,0x6046,0x6047,0x6048,0x6049,0x604a,0x604c,0x604e, +0x604f,0x6051,0x6053,0x6054,0x6056,0x6057,0x6058,0x605b, +0x605c,0x605e,0x605f,0x6060,0x6061,0x6065,0x6066,0x606e, +0x6071,0x6072,0x6074,0x6075,0x6077,0x607e,0x6080,0x0000, +0x6081,0x6082,0x6085,0x6086,0x6087,0x6088,0x608a,0x608b, +0x608e,0x608f,0x6090,0x6091,0x6093,0x6095,0x6097,0x6098, +0x6099,0x609c,0x609e,0x60a1,0x60a2,0x60a4,0x60a5,0x60a7, +0x60a9,0x60aa,0x60ae,0x60b0,0x60b3,0x60b5,0x60b6,0x60b7, +0x60b9,0x60ba,0x60bd,0x60be,0x60bf,0x60c0,0x60c1,0x60c2, +0x60c3,0x60c4,0x60c7,0x60c8,0x60c9,0x60cc,0x60cd,0x60ce, +0x60cf,0x60d0,0x60d2,0x60d3,0x60d4,0x60d6,0x60d7,0x60d9, +0x60db,0x60de,0x60e1,0x60e2,0x60e3,0x60e4,0x60e5,0x60ea, +0x60f1,0x60f2,0x60f5,0x60f7,0x60f8,0x60fb,0x60fc,0x60fd, +0x60fe,0x60ff,0x6102,0x6103,0x6104,0x6105,0x6107,0x610a, +0x610b,0x610c,0x6110,0x6111,0x6112,0x6113,0x6114,0x6116, +0x6117,0x6118,0x6119,0x611b,0x611c,0x611d,0x611e,0x6121, +0x6122,0x6125,0x6128,0x6129,0x612a,0x612c,0x612d,0x612e, +0x612f,0x6130,0x6131,0x6132,0x6133,0x6134,0x6135,0x6136, +0x6137,0x6138,0x6139,0x613a,0x613b,0x613c,0x613d,0x613e, +0x6140,0x6141,0x6142,0x6143,0x6144,0x6145,0x6146,0x0000, +/* 0x9100 */ +0x6147,0x6149,0x614b,0x614d,0x614f,0x6150,0x6152,0x6153, +0x6154,0x6156,0x6157,0x6158,0x6159,0x615a,0x615b,0x615c, +0x615e,0x615f,0x6160,0x6161,0x6163,0x6164,0x6165,0x6166, +0x6169,0x616a,0x616b,0x616c,0x616d,0x616e,0x616f,0x6171, +0x6172,0x6173,0x6174,0x6176,0x6178,0x6179,0x617a,0x617b, +0x617c,0x617d,0x617e,0x617f,0x6180,0x6181,0x6182,0x6183, +0x6184,0x6185,0x6186,0x6187,0x6188,0x6189,0x618a,0x618c, +0x618d,0x618f,0x6190,0x6191,0x6192,0x6193,0x6195,0x0000, +0x6196,0x6197,0x6198,0x6199,0x619a,0x619b,0x619c,0x619e, +0x619f,0x61a0,0x61a1,0x61a2,0x61a3,0x61a4,0x61a5,0x61a6, +0x61aa,0x61ab,0x61ad,0x61ae,0x61af,0x61b0,0x61b1,0x61b2, +0x61b3,0x61b4,0x61b5,0x61b6,0x61b8,0x61b9,0x61ba,0x61bb, +0x61bc,0x61bd,0x61bf,0x61c0,0x61c1,0x61c3,0x61c4,0x61c5, +0x61c6,0x61c7,0x61c9,0x61cc,0x61cd,0x61ce,0x61cf,0x61d0, +0x61d3,0x61d5,0x61d6,0x61d7,0x61d8,0x61d9,0x61da,0x61db, +0x61dc,0x61dd,0x61de,0x61df,0x61e0,0x61e1,0x61e2,0x61e3, +0x61e4,0x61e5,0x61e7,0x61e8,0x61e9,0x61ea,0x61eb,0x61ec, +0x61ed,0x61ee,0x61ef,0x61f0,0x61f1,0x61f2,0x61f3,0x61f4, +0x61f6,0x61f7,0x61f8,0x61f9,0x61fa,0x61fb,0x61fc,0x61fd, +0x61fe,0x6200,0x6201,0x6202,0x6203,0x6204,0x6205,0x6207, +0x6209,0x6213,0x6214,0x6219,0x621c,0x621d,0x621e,0x6220, +0x6223,0x6226,0x6227,0x6228,0x6229,0x622b,0x622d,0x622f, +0x6230,0x6231,0x6232,0x6235,0x6236,0x6238,0x6239,0x623a, +0x623b,0x623c,0x6242,0x6244,0x6245,0x6246,0x624a,0x0000, +/* 0x9200 */ +0x624f,0x6250,0x6255,0x6256,0x6257,0x6259,0x625a,0x625c, +0x625d,0x625e,0x625f,0x6260,0x6261,0x6262,0x6264,0x6265, +0x6268,0x6271,0x6272,0x6274,0x6275,0x6277,0x6278,0x627a, +0x627b,0x627d,0x6281,0x6282,0x6283,0x6285,0x6286,0x6287, +0x6288,0x628b,0x628c,0x628d,0x628e,0x628f,0x6290,0x6294, +0x6299,0x629c,0x629d,0x629e,0x62a3,0x62a6,0x62a7,0x62a9, +0x62aa,0x62ad,0x62ae,0x62af,0x62b0,0x62b2,0x62b3,0x62b4, +0x62b6,0x62b7,0x62b8,0x62ba,0x62be,0x62c0,0x62c1,0x0000, +0x62c3,0x62cb,0x62cf,0x62d1,0x62d5,0x62dd,0x62de,0x62e0, +0x62e1,0x62e4,0x62ea,0x62eb,0x62f0,0x62f2,0x62f5,0x62f8, +0x62f9,0x62fa,0x62fb,0x6300,0x6303,0x6304,0x6305,0x6306, +0x630a,0x630b,0x630c,0x630d,0x630f,0x6310,0x6312,0x6313, +0x6314,0x6315,0x6317,0x6318,0x6319,0x631c,0x6326,0x6327, +0x6329,0x632c,0x632d,0x632e,0x6330,0x6331,0x6333,0x6334, +0x6335,0x6336,0x6337,0x6338,0x633b,0x633c,0x633e,0x633f, +0x6340,0x6341,0x6344,0x6347,0x6348,0x634a,0x6351,0x6352, +0x6353,0x6354,0x6356,0x6357,0x6358,0x6359,0x635a,0x635b, +0x635c,0x635d,0x6360,0x6364,0x6365,0x6366,0x6368,0x636a, +0x636b,0x636c,0x636f,0x6370,0x6372,0x6373,0x6374,0x6375, +0x6378,0x6379,0x637c,0x637d,0x637e,0x637f,0x6381,0x6383, +0x6384,0x6385,0x6386,0x638b,0x638d,0x6391,0x6393,0x6394, +0x6395,0x6397,0x6399,0x639a,0x639b,0x639c,0x639d,0x639e, +0x639f,0x63a1,0x63a4,0x63a6,0x63ab,0x63af,0x63b1,0x63b2, +0x63b5,0x63b6,0x63b9,0x63bb,0x63bd,0x63bf,0x63c0,0x0000, +/* 0x9300 */ +0x63c1,0x63c2,0x63c3,0x63c5,0x63c7,0x63c8,0x63ca,0x63cb, +0x63cc,0x63d1,0x63d3,0x63d4,0x63d5,0x63d7,0x63d8,0x63d9, +0x63da,0x63db,0x63dc,0x63dd,0x63df,0x63e2,0x63e4,0x63e5, +0x63e6,0x63e7,0x63e8,0x63eb,0x63ec,0x63ee,0x63ef,0x63f0, +0x63f1,0x63f3,0x63f5,0x63f7,0x63f9,0x63fa,0x63fb,0x63fc, +0x63fe,0x6403,0x6404,0x6406,0x6407,0x6408,0x6409,0x640a, +0x640d,0x640e,0x6411,0x6412,0x6415,0x6416,0x6417,0x6418, +0x6419,0x641a,0x641d,0x641f,0x6422,0x6423,0x6424,0x0000, +0x6425,0x6427,0x6428,0x6429,0x642b,0x642e,0x642f,0x6430, +0x6431,0x6432,0x6433,0x6435,0x6436,0x6437,0x6438,0x6439, +0x643b,0x643c,0x643e,0x6440,0x6442,0x6443,0x6449,0x644b, +0x644c,0x644d,0x644e,0x644f,0x6450,0x6451,0x6453,0x6455, +0x6456,0x6457,0x6459,0x645a,0x645b,0x645c,0x645d,0x645f, +0x6460,0x6461,0x6462,0x6463,0x6464,0x6465,0x6466,0x6468, +0x646a,0x646b,0x646c,0x646e,0x646f,0x6470,0x6471,0x6472, +0x6473,0x6474,0x6475,0x6476,0x6477,0x647b,0x647c,0x647d, +0x647e,0x647f,0x6480,0x6481,0x6483,0x6486,0x6488,0x6489, +0x648a,0x648b,0x648c,0x648d,0x648e,0x648f,0x6490,0x6493, +0x6494,0x6497,0x6498,0x649a,0x649b,0x649c,0x649d,0x649f, +0x64a0,0x64a1,0x64a2,0x64a3,0x64a5,0x64a6,0x64a7,0x64a8, +0x64aa,0x64ab,0x64af,0x64b1,0x64b2,0x64b3,0x64b4,0x64b6, +0x64b9,0x64bb,0x64bd,0x64be,0x64bf,0x64c1,0x64c3,0x64c4, +0x64c6,0x64c7,0x64c8,0x64c9,0x64ca,0x64cb,0x64cc,0x64cf, +0x64d1,0x64d3,0x64d4,0x64d5,0x64d6,0x64d9,0x64da,0x0000, +/* 0x9400 */ +0x64db,0x64dc,0x64dd,0x64df,0x64e0,0x64e1,0x64e3,0x64e5, +0x64e7,0x64e8,0x64e9,0x64ea,0x64eb,0x64ec,0x64ed,0x64ee, +0x64ef,0x64f0,0x64f1,0x64f2,0x64f3,0x64f4,0x64f5,0x64f6, +0x64f7,0x64f8,0x64f9,0x64fa,0x64fb,0x64fc,0x64fd,0x64fe, +0x64ff,0x6501,0x6502,0x6503,0x6504,0x6505,0x6506,0x6507, +0x6508,0x650a,0x650b,0x650c,0x650d,0x650e,0x650f,0x6510, +0x6511,0x6513,0x6514,0x6515,0x6516,0x6517,0x6519,0x651a, +0x651b,0x651c,0x651d,0x651e,0x651f,0x6520,0x6521,0x0000, +0x6522,0x6523,0x6524,0x6526,0x6527,0x6528,0x6529,0x652a, +0x652c,0x652d,0x6530,0x6531,0x6532,0x6533,0x6537,0x653a, +0x653c,0x653d,0x6540,0x6541,0x6542,0x6543,0x6544,0x6546, +0x6547,0x654a,0x654b,0x654d,0x654e,0x6550,0x6552,0x6553, +0x6554,0x6557,0x6558,0x655a,0x655c,0x655f,0x6560,0x6561, +0x6564,0x6565,0x6567,0x6568,0x6569,0x656a,0x656d,0x656e, +0x656f,0x6571,0x6573,0x6575,0x6576,0x6578,0x6579,0x657a, +0x657b,0x657c,0x657d,0x657e,0x657f,0x6580,0x6581,0x6582, +0x6583,0x6584,0x6585,0x6586,0x6588,0x6589,0x658a,0x658d, +0x658e,0x658f,0x6592,0x6594,0x6595,0x6596,0x6598,0x659a, +0x659d,0x659e,0x65a0,0x65a2,0x65a3,0x65a6,0x65a8,0x65aa, +0x65ac,0x65ae,0x65b1,0x65b2,0x65b3,0x65b4,0x65b5,0x65b6, +0x65b7,0x65b8,0x65ba,0x65bb,0x65be,0x65bf,0x65c0,0x65c2, +0x65c7,0x65c8,0x65c9,0x65ca,0x65cd,0x65d0,0x65d1,0x65d3, +0x65d4,0x65d5,0x65d8,0x65d9,0x65da,0x65db,0x65dc,0x65dd, +0x65de,0x65df,0x65e1,0x65e3,0x65e4,0x65ea,0x65eb,0x0000, +/* 0x9500 */ +0x65f2,0x65f3,0x65f4,0x65f5,0x65f8,0x65f9,0x65fb,0x65fc, +0x65fd,0x65fe,0x65ff,0x6601,0x6604,0x6605,0x6607,0x6608, +0x6609,0x660b,0x660d,0x6610,0x6611,0x6612,0x6616,0x6617, +0x6618,0x661a,0x661b,0x661c,0x661e,0x6621,0x6622,0x6623, +0x6624,0x6626,0x6629,0x662a,0x662b,0x662c,0x662e,0x6630, +0x6632,0x6633,0x6637,0x6638,0x6639,0x663a,0x663b,0x663d, +0x663f,0x6640,0x6642,0x6644,0x6645,0x6646,0x6647,0x6648, +0x6649,0x664a,0x664d,0x664e,0x6650,0x6651,0x6658,0x0000, +0x6659,0x665b,0x665c,0x665d,0x665e,0x6660,0x6662,0x6663, +0x6665,0x6667,0x6669,0x666a,0x666b,0x666c,0x666d,0x6671, +0x6672,0x6673,0x6675,0x6678,0x6679,0x667b,0x667c,0x667d, +0x667f,0x6680,0x6681,0x6683,0x6685,0x6686,0x6688,0x6689, +0x668a,0x668b,0x668d,0x668e,0x668f,0x6690,0x6692,0x6693, +0x6694,0x6695,0x6698,0x6699,0x669a,0x669b,0x669c,0x669e, +0x669f,0x66a0,0x66a1,0x66a2,0x66a3,0x66a4,0x66a5,0x66a6, +0x66a9,0x66aa,0x66ab,0x66ac,0x66ad,0x66af,0x66b0,0x66b1, +0x66b2,0x66b3,0x66b5,0x66b6,0x66b7,0x66b8,0x66ba,0x66bb, +0x66bc,0x66bd,0x66bf,0x66c0,0x66c1,0x66c2,0x66c3,0x66c4, +0x66c5,0x66c6,0x66c7,0x66c8,0x66c9,0x66ca,0x66cb,0x66cc, +0x66cd,0x66ce,0x66cf,0x66d0,0x66d1,0x66d2,0x66d3,0x66d4, +0x66d5,0x66d6,0x66d7,0x66d8,0x66da,0x66de,0x66df,0x66e0, +0x66e1,0x66e2,0x66e3,0x66e4,0x66e5,0x66e7,0x66e8,0x66ea, +0x66eb,0x66ec,0x66ed,0x66ee,0x66ef,0x66f1,0x66f5,0x66f6, +0x66f8,0x66fa,0x66fb,0x66fd,0x6701,0x6702,0x6703,0x0000, +/* 0x9600 */ +0x6704,0x6705,0x6706,0x6707,0x670c,0x670e,0x670f,0x6711, +0x6712,0x6713,0x6716,0x6718,0x6719,0x671a,0x671c,0x671e, +0x6720,0x6721,0x6722,0x6723,0x6724,0x6725,0x6727,0x6729, +0x672e,0x6730,0x6732,0x6733,0x6736,0x6737,0x6738,0x6739, +0x673b,0x673c,0x673e,0x673f,0x6741,0x6744,0x6745,0x6747, +0x674a,0x674b,0x674d,0x6752,0x6754,0x6755,0x6757,0x6758, +0x6759,0x675a,0x675b,0x675d,0x6762,0x6763,0x6764,0x6766, +0x6767,0x676b,0x676c,0x676e,0x6771,0x6774,0x6776,0x0000, +0x6778,0x6779,0x677a,0x677b,0x677d,0x6780,0x6782,0x6783, +0x6785,0x6786,0x6788,0x678a,0x678c,0x678d,0x678e,0x678f, +0x6791,0x6792,0x6793,0x6794,0x6796,0x6799,0x679b,0x679f, +0x67a0,0x67a1,0x67a4,0x67a6,0x67a9,0x67ac,0x67ae,0x67b1, +0x67b2,0x67b4,0x67b9,0x67ba,0x67bb,0x67bc,0x67bd,0x67be, +0x67bf,0x67c0,0x67c2,0x67c5,0x67c6,0x67c7,0x67c8,0x67c9, +0x67ca,0x67cb,0x67cc,0x67cd,0x67ce,0x67d5,0x67d6,0x67d7, +0x67db,0x67df,0x67e1,0x67e3,0x67e4,0x67e6,0x67e7,0x67e8, +0x67ea,0x67eb,0x67ed,0x67ee,0x67f2,0x67f5,0x67f6,0x67f7, +0x67f8,0x67f9,0x67fa,0x67fb,0x67fc,0x67fe,0x6801,0x6802, +0x6803,0x6804,0x6806,0x680d,0x6810,0x6812,0x6814,0x6815, +0x6818,0x6819,0x681a,0x681b,0x681c,0x681e,0x681f,0x6820, +0x6822,0x6823,0x6824,0x6825,0x6826,0x6827,0x6828,0x682b, +0x682c,0x682d,0x682e,0x682f,0x6830,0x6831,0x6834,0x6835, +0x6836,0x683a,0x683b,0x683f,0x6847,0x684b,0x684d,0x684f, +0x6852,0x6856,0x6857,0x6858,0x6859,0x685a,0x685b,0x0000, +/* 0x9700 */ +0x685c,0x685d,0x685e,0x685f,0x686a,0x686c,0x686d,0x686e, +0x686f,0x6870,0x6871,0x6872,0x6873,0x6875,0x6878,0x6879, +0x687a,0x687b,0x687c,0x687d,0x687e,0x687f,0x6880,0x6882, +0x6884,0x6887,0x6888,0x6889,0x688a,0x688b,0x688c,0x688d, +0x688e,0x6890,0x6891,0x6892,0x6894,0x6895,0x6896,0x6898, +0x6899,0x689a,0x689b,0x689c,0x689d,0x689e,0x689f,0x68a0, +0x68a1,0x68a3,0x68a4,0x68a5,0x68a9,0x68aa,0x68ab,0x68ac, +0x68ae,0x68b1,0x68b2,0x68b4,0x68b6,0x68b7,0x68b8,0x0000, +0x68b9,0x68ba,0x68bb,0x68bc,0x68bd,0x68be,0x68bf,0x68c1, +0x68c3,0x68c4,0x68c5,0x68c6,0x68c7,0x68c8,0x68ca,0x68cc, +0x68ce,0x68cf,0x68d0,0x68d1,0x68d3,0x68d4,0x68d6,0x68d7, +0x68d9,0x68db,0x68dc,0x68dd,0x68de,0x68df,0x68e1,0x68e2, +0x68e4,0x68e5,0x68e6,0x68e7,0x68e8,0x68e9,0x68ea,0x68eb, +0x68ec,0x68ed,0x68ef,0x68f2,0x68f3,0x68f4,0x68f6,0x68f7, +0x68f8,0x68fb,0x68fd,0x68fe,0x68ff,0x6900,0x6902,0x6903, +0x6904,0x6906,0x6907,0x6908,0x6909,0x690a,0x690c,0x690f, +0x6911,0x6913,0x6914,0x6915,0x6916,0x6917,0x6918,0x6919, +0x691a,0x691b,0x691c,0x691d,0x691e,0x6921,0x6922,0x6923, +0x6925,0x6926,0x6927,0x6928,0x6929,0x692a,0x692b,0x692c, +0x692e,0x692f,0x6931,0x6932,0x6933,0x6935,0x6936,0x6937, +0x6938,0x693a,0x693b,0x693c,0x693e,0x6940,0x6941,0x6943, +0x6944,0x6945,0x6946,0x6947,0x6948,0x6949,0x694a,0x694b, +0x694c,0x694d,0x694e,0x694f,0x6950,0x6951,0x6952,0x6953, +0x6955,0x6956,0x6958,0x6959,0x695b,0x695c,0x695f,0x0000, +/* 0x9800 */ +0x6961,0x6962,0x6964,0x6965,0x6967,0x6968,0x6969,0x696a, +0x696c,0x696d,0x696f,0x6970,0x6972,0x6973,0x6974,0x6975, +0x6976,0x697a,0x697b,0x697d,0x697e,0x697f,0x6981,0x6983, +0x6985,0x698a,0x698b,0x698c,0x698e,0x698f,0x6990,0x6991, +0x6992,0x6993,0x6996,0x6997,0x6999,0x699a,0x699d,0x699e, +0x699f,0x69a0,0x69a1,0x69a2,0x69a3,0x69a4,0x69a5,0x69a6, +0x69a9,0x69aa,0x69ac,0x69ae,0x69af,0x69b0,0x69b2,0x69b3, +0x69b5,0x69b6,0x69b8,0x69b9,0x69ba,0x69bc,0x69bd,0x0000, +0x69be,0x69bf,0x69c0,0x69c2,0x69c3,0x69c4,0x69c5,0x69c6, +0x69c7,0x69c8,0x69c9,0x69cb,0x69cd,0x69cf,0x69d1,0x69d2, +0x69d3,0x69d5,0x69d6,0x69d7,0x69d8,0x69d9,0x69da,0x69dc, +0x69dd,0x69de,0x69e1,0x69e2,0x69e3,0x69e4,0x69e5,0x69e6, +0x69e7,0x69e8,0x69e9,0x69ea,0x69eb,0x69ec,0x69ee,0x69ef, +0x69f0,0x69f1,0x69f3,0x69f4,0x69f5,0x69f6,0x69f7,0x69f8, +0x69f9,0x69fa,0x69fb,0x69fc,0x69fe,0x6a00,0x6a01,0x6a02, +0x6a03,0x6a04,0x6a05,0x6a06,0x6a07,0x6a08,0x6a09,0x6a0b, +0x6a0c,0x6a0d,0x6a0e,0x6a0f,0x6a10,0x6a11,0x6a12,0x6a13, +0x6a14,0x6a15,0x6a16,0x6a19,0x6a1a,0x6a1b,0x6a1c,0x6a1d, +0x6a1e,0x6a20,0x6a22,0x6a23,0x6a24,0x6a25,0x6a26,0x6a27, +0x6a29,0x6a2b,0x6a2c,0x6a2d,0x6a2e,0x6a30,0x6a32,0x6a33, +0x6a34,0x6a36,0x6a37,0x6a38,0x6a39,0x6a3a,0x6a3b,0x6a3c, +0x6a3f,0x6a40,0x6a41,0x6a42,0x6a43,0x6a45,0x6a46,0x6a48, +0x6a49,0x6a4a,0x6a4b,0x6a4c,0x6a4d,0x6a4e,0x6a4f,0x6a51, +0x6a52,0x6a53,0x6a54,0x6a55,0x6a56,0x6a57,0x6a5a,0x0000, +/* 0x9900 */ +0x6a5c,0x6a5d,0x6a5e,0x6a5f,0x6a60,0x6a62,0x6a63,0x6a64, +0x6a66,0x6a67,0x6a68,0x6a69,0x6a6a,0x6a6b,0x6a6c,0x6a6d, +0x6a6e,0x6a6f,0x6a70,0x6a72,0x6a73,0x6a74,0x6a75,0x6a76, +0x6a77,0x6a78,0x6a7a,0x6a7b,0x6a7d,0x6a7e,0x6a7f,0x6a81, +0x6a82,0x6a83,0x6a85,0x6a86,0x6a87,0x6a88,0x6a89,0x6a8a, +0x6a8b,0x6a8c,0x6a8d,0x6a8f,0x6a92,0x6a93,0x6a94,0x6a95, +0x6a96,0x6a98,0x6a99,0x6a9a,0x6a9b,0x6a9c,0x6a9d,0x6a9e, +0x6a9f,0x6aa1,0x6aa2,0x6aa3,0x6aa4,0x6aa5,0x6aa6,0x0000, +0x6aa7,0x6aa8,0x6aaa,0x6aad,0x6aae,0x6aaf,0x6ab0,0x6ab1, +0x6ab2,0x6ab3,0x6ab4,0x6ab5,0x6ab6,0x6ab7,0x6ab8,0x6ab9, +0x6aba,0x6abb,0x6abc,0x6abd,0x6abe,0x6abf,0x6ac0,0x6ac1, +0x6ac2,0x6ac3,0x6ac4,0x6ac5,0x6ac6,0x6ac7,0x6ac8,0x6ac9, +0x6aca,0x6acb,0x6acc,0x6acd,0x6ace,0x6acf,0x6ad0,0x6ad1, +0x6ad2,0x6ad3,0x6ad4,0x6ad5,0x6ad6,0x6ad7,0x6ad8,0x6ad9, +0x6ada,0x6adb,0x6adc,0x6add,0x6ade,0x6adf,0x6ae0,0x6ae1, +0x6ae2,0x6ae3,0x6ae4,0x6ae5,0x6ae6,0x6ae7,0x6ae8,0x6ae9, +0x6aea,0x6aeb,0x6aec,0x6aed,0x6aee,0x6aef,0x6af0,0x6af1, +0x6af2,0x6af3,0x6af4,0x6af5,0x6af6,0x6af7,0x6af8,0x6af9, +0x6afa,0x6afb,0x6afc,0x6afd,0x6afe,0x6aff,0x6b00,0x6b01, +0x6b02,0x6b03,0x6b04,0x6b05,0x6b06,0x6b07,0x6b08,0x6b09, +0x6b0a,0x6b0b,0x6b0c,0x6b0d,0x6b0e,0x6b0f,0x6b10,0x6b11, +0x6b12,0x6b13,0x6b14,0x6b15,0x6b16,0x6b17,0x6b18,0x6b19, +0x6b1a,0x6b1b,0x6b1c,0x6b1d,0x6b1e,0x6b1f,0x6b25,0x6b26, +0x6b28,0x6b29,0x6b2a,0x6b2b,0x6b2c,0x6b2d,0x6b2e,0x0000, +/* 0x9a00 */ +0x6b2f,0x6b30,0x6b31,0x6b33,0x6b34,0x6b35,0x6b36,0x6b38, +0x6b3b,0x6b3c,0x6b3d,0x6b3f,0x6b40,0x6b41,0x6b42,0x6b44, +0x6b45,0x6b48,0x6b4a,0x6b4b,0x6b4d,0x6b4e,0x6b4f,0x6b50, +0x6b51,0x6b52,0x6b53,0x6b54,0x6b55,0x6b56,0x6b57,0x6b58, +0x6b5a,0x6b5b,0x6b5c,0x6b5d,0x6b5e,0x6b5f,0x6b60,0x6b61, +0x6b68,0x6b69,0x6b6b,0x6b6c,0x6b6d,0x6b6e,0x6b6f,0x6b70, +0x6b71,0x6b72,0x6b73,0x6b74,0x6b75,0x6b76,0x6b77,0x6b78, +0x6b7a,0x6b7d,0x6b7e,0x6b7f,0x6b80,0x6b85,0x6b88,0x0000, +0x6b8c,0x6b8e,0x6b8f,0x6b90,0x6b91,0x6b94,0x6b95,0x6b97, +0x6b98,0x6b99,0x6b9c,0x6b9d,0x6b9e,0x6b9f,0x6ba0,0x6ba2, +0x6ba3,0x6ba4,0x6ba5,0x6ba6,0x6ba7,0x6ba8,0x6ba9,0x6bab, +0x6bac,0x6bad,0x6bae,0x6baf,0x6bb0,0x6bb1,0x6bb2,0x6bb6, +0x6bb8,0x6bb9,0x6bba,0x6bbb,0x6bbc,0x6bbd,0x6bbe,0x6bc0, +0x6bc3,0x6bc4,0x6bc6,0x6bc7,0x6bc8,0x6bc9,0x6bca,0x6bcc, +0x6bce,0x6bd0,0x6bd1,0x6bd8,0x6bda,0x6bdc,0x6bdd,0x6bde, +0x6bdf,0x6be0,0x6be2,0x6be3,0x6be4,0x6be5,0x6be6,0x6be7, +0x6be8,0x6be9,0x6bec,0x6bed,0x6bee,0x6bf0,0x6bf1,0x6bf2, +0x6bf4,0x6bf6,0x6bf7,0x6bf8,0x6bfa,0x6bfb,0x6bfc,0x6bfe, +0x6bff,0x6c00,0x6c01,0x6c02,0x6c03,0x6c04,0x6c08,0x6c09, +0x6c0a,0x6c0b,0x6c0c,0x6c0e,0x6c12,0x6c17,0x6c1c,0x6c1d, +0x6c1e,0x6c20,0x6c23,0x6c25,0x6c2b,0x6c2c,0x6c2d,0x6c31, +0x6c33,0x6c36,0x6c37,0x6c39,0x6c3a,0x6c3b,0x6c3c,0x6c3e, +0x6c3f,0x6c43,0x6c44,0x6c45,0x6c48,0x6c4b,0x6c4c,0x6c4d, +0x6c4e,0x6c4f,0x6c51,0x6c52,0x6c53,0x6c56,0x6c58,0x0000, +/* 0x9b00 */ +0x6c59,0x6c5a,0x6c62,0x6c63,0x6c65,0x6c66,0x6c67,0x6c6b, +0x6c6c,0x6c6d,0x6c6e,0x6c6f,0x6c71,0x6c73,0x6c75,0x6c77, +0x6c78,0x6c7a,0x6c7b,0x6c7c,0x6c7f,0x6c80,0x6c84,0x6c87, +0x6c8a,0x6c8b,0x6c8d,0x6c8e,0x6c91,0x6c92,0x6c95,0x6c96, +0x6c97,0x6c98,0x6c9a,0x6c9c,0x6c9d,0x6c9e,0x6ca0,0x6ca2, +0x6ca8,0x6cac,0x6caf,0x6cb0,0x6cb4,0x6cb5,0x6cb6,0x6cb7, +0x6cba,0x6cc0,0x6cc1,0x6cc2,0x6cc3,0x6cc6,0x6cc7,0x6cc8, +0x6ccb,0x6ccd,0x6cce,0x6ccf,0x6cd1,0x6cd2,0x6cd8,0x0000, +0x6cd9,0x6cda,0x6cdc,0x6cdd,0x6cdf,0x6ce4,0x6ce6,0x6ce7, +0x6ce9,0x6cec,0x6ced,0x6cf2,0x6cf4,0x6cf9,0x6cff,0x6d00, +0x6d02,0x6d03,0x6d05,0x6d06,0x6d08,0x6d09,0x6d0a,0x6d0d, +0x6d0f,0x6d10,0x6d11,0x6d13,0x6d14,0x6d15,0x6d16,0x6d18, +0x6d1c,0x6d1d,0x6d1f,0x6d20,0x6d21,0x6d22,0x6d23,0x6d24, +0x6d26,0x6d28,0x6d29,0x6d2c,0x6d2d,0x6d2f,0x6d30,0x6d34, +0x6d36,0x6d37,0x6d38,0x6d3a,0x6d3f,0x6d40,0x6d42,0x6d44, +0x6d49,0x6d4c,0x6d50,0x6d55,0x6d56,0x6d57,0x6d58,0x6d5b, +0x6d5d,0x6d5f,0x6d61,0x6d62,0x6d64,0x6d65,0x6d67,0x6d68, +0x6d6b,0x6d6c,0x6d6d,0x6d70,0x6d71,0x6d72,0x6d73,0x6d75, +0x6d76,0x6d79,0x6d7a,0x6d7b,0x6d7d,0x6d7e,0x6d7f,0x6d80, +0x6d81,0x6d83,0x6d84,0x6d86,0x6d87,0x6d8a,0x6d8b,0x6d8d, +0x6d8f,0x6d90,0x6d92,0x6d96,0x6d97,0x6d98,0x6d99,0x6d9a, +0x6d9c,0x6da2,0x6da5,0x6dac,0x6dad,0x6db0,0x6db1,0x6db3, +0x6db4,0x6db6,0x6db7,0x6db9,0x6dba,0x6dbb,0x6dbc,0x6dbd, +0x6dbe,0x6dc1,0x6dc2,0x6dc3,0x6dc8,0x6dc9,0x6dca,0x0000, +/* 0x9c00 */ +0x6dcd,0x6dce,0x6dcf,0x6dd0,0x6dd2,0x6dd3,0x6dd4,0x6dd5, +0x6dd7,0x6dda,0x6ddb,0x6ddc,0x6ddf,0x6de2,0x6de3,0x6de5, +0x6de7,0x6de8,0x6de9,0x6dea,0x6ded,0x6def,0x6df0,0x6df2, +0x6df4,0x6df5,0x6df6,0x6df8,0x6dfa,0x6dfd,0x6dfe,0x6dff, +0x6e00,0x6e01,0x6e02,0x6e03,0x6e04,0x6e06,0x6e07,0x6e08, +0x6e09,0x6e0b,0x6e0f,0x6e12,0x6e13,0x6e15,0x6e18,0x6e19, +0x6e1b,0x6e1c,0x6e1e,0x6e1f,0x6e22,0x6e26,0x6e27,0x6e28, +0x6e2a,0x6e2c,0x6e2e,0x6e30,0x6e31,0x6e33,0x6e35,0x0000, +0x6e36,0x6e37,0x6e39,0x6e3b,0x6e3c,0x6e3d,0x6e3e,0x6e3f, +0x6e40,0x6e41,0x6e42,0x6e45,0x6e46,0x6e47,0x6e48,0x6e49, +0x6e4a,0x6e4b,0x6e4c,0x6e4f,0x6e50,0x6e51,0x6e52,0x6e55, +0x6e57,0x6e59,0x6e5a,0x6e5c,0x6e5d,0x6e5e,0x6e60,0x6e61, +0x6e62,0x6e63,0x6e64,0x6e65,0x6e66,0x6e67,0x6e68,0x6e69, +0x6e6a,0x6e6c,0x6e6d,0x6e6f,0x6e70,0x6e71,0x6e72,0x6e73, +0x6e74,0x6e75,0x6e76,0x6e77,0x6e78,0x6e79,0x6e7a,0x6e7b, +0x6e7c,0x6e7d,0x6e80,0x6e81,0x6e82,0x6e84,0x6e87,0x6e88, +0x6e8a,0x6e8b,0x6e8c,0x6e8d,0x6e8e,0x6e91,0x6e92,0x6e93, +0x6e94,0x6e95,0x6e96,0x6e97,0x6e99,0x6e9a,0x6e9b,0x6e9d, +0x6e9e,0x6ea0,0x6ea1,0x6ea3,0x6ea4,0x6ea6,0x6ea8,0x6ea9, +0x6eab,0x6eac,0x6ead,0x6eae,0x6eb0,0x6eb3,0x6eb5,0x6eb8, +0x6eb9,0x6ebc,0x6ebe,0x6ebf,0x6ec0,0x6ec3,0x6ec4,0x6ec5, +0x6ec6,0x6ec8,0x6ec9,0x6eca,0x6ecc,0x6ecd,0x6ece,0x6ed0, +0x6ed2,0x6ed6,0x6ed8,0x6ed9,0x6edb,0x6edc,0x6edd,0x6ee3, +0x6ee7,0x6eea,0x6eeb,0x6eec,0x6eed,0x6eee,0x6eef,0x0000, +/* 0x9d00 */ +0x6ef0,0x6ef1,0x6ef2,0x6ef3,0x6ef5,0x6ef6,0x6ef7,0x6ef8, +0x6efa,0x6efb,0x6efc,0x6efd,0x6efe,0x6eff,0x6f00,0x6f01, +0x6f03,0x6f04,0x6f05,0x6f07,0x6f08,0x6f0a,0x6f0b,0x6f0c, +0x6f0d,0x6f0e,0x6f10,0x6f11,0x6f12,0x6f16,0x6f17,0x6f18, +0x6f19,0x6f1a,0x6f1b,0x6f1c,0x6f1d,0x6f1e,0x6f1f,0x6f21, +0x6f22,0x6f23,0x6f25,0x6f26,0x6f27,0x6f28,0x6f2c,0x6f2e, +0x6f30,0x6f32,0x6f34,0x6f35,0x6f37,0x6f38,0x6f39,0x6f3a, +0x6f3b,0x6f3c,0x6f3d,0x6f3f,0x6f40,0x6f41,0x6f42,0x0000, +0x6f43,0x6f44,0x6f45,0x6f48,0x6f49,0x6f4a,0x6f4c,0x6f4e, +0x6f4f,0x6f50,0x6f51,0x6f52,0x6f53,0x6f54,0x6f55,0x6f56, +0x6f57,0x6f59,0x6f5a,0x6f5b,0x6f5d,0x6f5f,0x6f60,0x6f61, +0x6f63,0x6f64,0x6f65,0x6f67,0x6f68,0x6f69,0x6f6a,0x6f6b, +0x6f6c,0x6f6f,0x6f70,0x6f71,0x6f73,0x6f75,0x6f76,0x6f77, +0x6f79,0x6f7b,0x6f7d,0x6f7e,0x6f7f,0x6f80,0x6f81,0x6f82, +0x6f83,0x6f85,0x6f86,0x6f87,0x6f8a,0x6f8b,0x6f8f,0x6f90, +0x6f91,0x6f92,0x6f93,0x6f94,0x6f95,0x6f96,0x6f97,0x6f98, +0x6f99,0x6f9a,0x6f9b,0x6f9d,0x6f9e,0x6f9f,0x6fa0,0x6fa2, +0x6fa3,0x6fa4,0x6fa5,0x6fa6,0x6fa8,0x6fa9,0x6faa,0x6fab, +0x6fac,0x6fad,0x6fae,0x6faf,0x6fb0,0x6fb1,0x6fb2,0x6fb4, +0x6fb5,0x6fb7,0x6fb8,0x6fba,0x6fbb,0x6fbc,0x6fbd,0x6fbe, +0x6fbf,0x6fc1,0x6fc3,0x6fc4,0x6fc5,0x6fc6,0x6fc7,0x6fc8, +0x6fca,0x6fcb,0x6fcc,0x6fcd,0x6fce,0x6fcf,0x6fd0,0x6fd3, +0x6fd4,0x6fd5,0x6fd6,0x6fd7,0x6fd8,0x6fd9,0x6fda,0x6fdb, +0x6fdc,0x6fdd,0x6fdf,0x6fe2,0x6fe3,0x6fe4,0x6fe5,0x0000, +/* 0x9e00 */ +0x6fe6,0x6fe7,0x6fe8,0x6fe9,0x6fea,0x6feb,0x6fec,0x6fed, +0x6ff0,0x6ff1,0x6ff2,0x6ff3,0x6ff4,0x6ff5,0x6ff6,0x6ff7, +0x6ff8,0x6ff9,0x6ffa,0x6ffb,0x6ffc,0x6ffd,0x6ffe,0x6fff, +0x7000,0x7001,0x7002,0x7003,0x7004,0x7005,0x7006,0x7007, +0x7008,0x7009,0x700a,0x700b,0x700c,0x700d,0x700e,0x700f, +0x7010,0x7012,0x7013,0x7014,0x7015,0x7016,0x7017,0x7018, +0x7019,0x701c,0x701d,0x701e,0x701f,0x7020,0x7021,0x7022, +0x7024,0x7025,0x7026,0x7027,0x7028,0x7029,0x702a,0x0000, +0x702b,0x702c,0x702d,0x702e,0x702f,0x7030,0x7031,0x7032, +0x7033,0x7034,0x7036,0x7037,0x7038,0x703a,0x703b,0x703c, +0x703d,0x703e,0x703f,0x7040,0x7041,0x7042,0x7043,0x7044, +0x7045,0x7046,0x7047,0x7048,0x7049,0x704a,0x704b,0x704d, +0x704e,0x7050,0x7051,0x7052,0x7053,0x7054,0x7055,0x7056, +0x7057,0x7058,0x7059,0x705a,0x705b,0x705c,0x705d,0x705f, +0x7060,0x7061,0x7062,0x7063,0x7064,0x7065,0x7066,0x7067, +0x7068,0x7069,0x706a,0x706e,0x7071,0x7072,0x7073,0x7074, +0x7077,0x7079,0x707a,0x707b,0x707d,0x7081,0x7082,0x7083, +0x7084,0x7086,0x7087,0x7088,0x708b,0x708c,0x708d,0x708f, +0x7090,0x7091,0x7093,0x7097,0x7098,0x709a,0x709b,0x709e, +0x709f,0x70a0,0x70a1,0x70a2,0x70a3,0x70a4,0x70a5,0x70a6, +0x70a7,0x70a8,0x70a9,0x70aa,0x70b0,0x70b2,0x70b4,0x70b5, +0x70b6,0x70ba,0x70be,0x70bf,0x70c4,0x70c5,0x70c6,0x70c7, +0x70c9,0x70cb,0x70cc,0x70cd,0x70ce,0x70cf,0x70d0,0x70d1, +0x70d2,0x70d3,0x70d4,0x70d5,0x70d6,0x70d7,0x70da,0x0000, +/* 0x9f00 */ +0x70dc,0x70dd,0x70de,0x70e0,0x70e1,0x70e2,0x70e3,0x70e5, +0x70ea,0x70ee,0x70f0,0x70f1,0x70f2,0x70f3,0x70f4,0x70f5, +0x70f6,0x70f8,0x70fa,0x70fb,0x70fc,0x70fe,0x70ff,0x7100, +0x7101,0x7102,0x7103,0x7104,0x7105,0x7106,0x7107,0x7108, +0x710b,0x710c,0x710d,0x710e,0x710f,0x7111,0x7112,0x7114, +0x7117,0x711b,0x711c,0x711d,0x711e,0x711f,0x7120,0x7121, +0x7122,0x7123,0x7124,0x7125,0x7127,0x7128,0x7129,0x712a, +0x712b,0x712c,0x712d,0x712e,0x7132,0x7133,0x7134,0x0000, +0x7135,0x7137,0x7138,0x7139,0x713a,0x713b,0x713c,0x713d, +0x713e,0x713f,0x7140,0x7141,0x7142,0x7143,0x7144,0x7146, +0x7147,0x7148,0x7149,0x714b,0x714d,0x714f,0x7150,0x7151, +0x7152,0x7153,0x7154,0x7155,0x7156,0x7157,0x7158,0x7159, +0x715a,0x715b,0x715d,0x715f,0x7160,0x7161,0x7162,0x7163, +0x7165,0x7169,0x716a,0x716b,0x716c,0x716d,0x716f,0x7170, +0x7171,0x7174,0x7175,0x7176,0x7177,0x7179,0x717b,0x717c, +0x717e,0x717f,0x7180,0x7181,0x7182,0x7183,0x7185,0x7186, +0x7187,0x7188,0x7189,0x718b,0x718c,0x718d,0x718e,0x7190, +0x7191,0x7192,0x7193,0x7195,0x7196,0x7197,0x719a,0x719b, +0x719c,0x719d,0x719e,0x71a1,0x71a2,0x71a3,0x71a4,0x71a5, +0x71a6,0x71a7,0x71a9,0x71aa,0x71ab,0x71ad,0x71ae,0x71af, +0x71b0,0x71b1,0x71b2,0x71b4,0x71b6,0x71b7,0x71b8,0x71ba, +0x71bb,0x71bc,0x71bd,0x71be,0x71bf,0x71c0,0x71c1,0x71c2, +0x71c4,0x71c5,0x71c6,0x71c7,0x71c8,0x71c9,0x71ca,0x71cb, +0x71cc,0x71cd,0x71cf,0x71d0,0x71d1,0x71d2,0x71d3,0x0000, +/* 0xa000 */ +0x71d6,0x71d7,0x71d8,0x71d9,0x71da,0x71db,0x71dc,0x71dd, +0x71de,0x71df,0x71e1,0x71e2,0x71e3,0x71e4,0x71e6,0x71e8, +0x71e9,0x71ea,0x71eb,0x71ec,0x71ed,0x71ef,0x71f0,0x71f1, +0x71f2,0x71f3,0x71f4,0x71f5,0x71f6,0x71f7,0x71f8,0x71fa, +0x71fb,0x71fc,0x71fd,0x71fe,0x71ff,0x7200,0x7201,0x7202, +0x7203,0x7204,0x7205,0x7207,0x7208,0x7209,0x720a,0x720b, +0x720c,0x720d,0x720e,0x720f,0x7210,0x7211,0x7212,0x7213, +0x7214,0x7215,0x7216,0x7217,0x7218,0x7219,0x721a,0x0000, +0x721b,0x721c,0x721e,0x721f,0x7220,0x7221,0x7222,0x7223, +0x7224,0x7225,0x7226,0x7227,0x7229,0x722b,0x722d,0x722e, +0x722f,0x7232,0x7233,0x7234,0x723a,0x723c,0x723e,0x7240, +0x7241,0x7242,0x7243,0x7244,0x7245,0x7246,0x7249,0x724a, +0x724b,0x724e,0x724f,0x7250,0x7251,0x7253,0x7254,0x7255, +0x7257,0x7258,0x725a,0x725c,0x725e,0x7260,0x7263,0x7264, +0x7265,0x7268,0x726a,0x726b,0x726c,0x726d,0x7270,0x7271, +0x7273,0x7274,0x7276,0x7277,0x7278,0x727b,0x727c,0x727d, +0x7282,0x7283,0x7285,0x7286,0x7287,0x7288,0x7289,0x728c, +0x728e,0x7290,0x7291,0x7293,0x7294,0x7295,0x7296,0x7297, +0x7298,0x7299,0x729a,0x729b,0x729c,0x729d,0x729e,0x72a0, +0x72a1,0x72a2,0x72a3,0x72a4,0x72a5,0x72a6,0x72a7,0x72a8, +0x72a9,0x72aa,0x72ab,0x72ae,0x72b1,0x72b2,0x72b3,0x72b5, +0x72ba,0x72bb,0x72bc,0x72bd,0x72be,0x72bf,0x72c0,0x72c5, +0x72c6,0x72c7,0x72c9,0x72ca,0x72cb,0x72cc,0x72cf,0x72d1, +0x72d3,0x72d4,0x72d5,0x72d6,0x72d8,0x72da,0x72db,0x0000, +/* 0xa100 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x3000,0x3001,0x3002,0x00b7,0x02c9,0x02c7,0x00a8, +0x3003,0x3005,0x2014,0xff5e,0x2016,0x2026,0x2018,0x2019, +0x201c,0x201d,0x3014,0x3015,0x3008,0x3009,0x300a,0x300b, +0x300c,0x300d,0x300e,0x300f,0x3016,0x3017,0x3010,0x3011, +0x00b1,0x00d7,0x00f7,0x2236,0x2227,0x2228,0x2211,0x220f, +0x222a,0x2229,0x2208,0x2237,0x221a,0x22a5,0x2225,0x2220, +0x2312,0x2299,0x222b,0x222e,0x2261,0x224c,0x2248,0x223d, +0x221d,0x2260,0x226e,0x226f,0x2264,0x2265,0x221e,0x2235, +0x2234,0x2642,0x2640,0x00b0,0x2032,0x2033,0x2103,0xff04, +0x00a4,0xffe0,0xffe1,0x2030,0x00a7,0x2116,0x2606,0x2605, +0x25cb,0x25cf,0x25ce,0x25c7,0x25c6,0x25a1,0x25a0,0x25b3, +0x25b2,0x203b,0x2192,0x2190,0x2191,0x2193,0x3013,0x0000, +/* 0xa200 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x2170,0x2171,0x2172,0x2173,0x2174,0x2175,0x2176, +0x2177,0x2178,0x2179,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x2488,0x2489,0x248a,0x248b,0x248c,0x248d,0x248e, +0x248f,0x2490,0x2491,0x2492,0x2493,0x2494,0x2495,0x2496, +0x2497,0x2498,0x2499,0x249a,0x249b,0x2474,0x2475,0x2476, +0x2477,0x2478,0x2479,0x247a,0x247b,0x247c,0x247d,0x247e, +0x247f,0x2480,0x2481,0x2482,0x2483,0x2484,0x2485,0x2486, +0x2487,0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466, +0x2467,0x2468,0x2469,0x20ac,0x0000,0x3220,0x3221,0x3222, +0x3223,0x3224,0x3225,0x3226,0x3227,0x3228,0x3229,0x0000, +0x0000,0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166, +0x2167,0x2168,0x2169,0x216a,0x216b,0x0000,0x0000,0x0000, +/* 0xa300 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xff01,0xff02,0xff03,0xffe5,0xff05,0xff06,0xff07, +0xff08,0xff09,0xff0a,0xff0b,0xff0c,0xff0d,0xff0e,0xff0f, +0xff10,0xff11,0xff12,0xff13,0xff14,0xff15,0xff16,0xff17, +0xff18,0xff19,0xff1a,0xff1b,0xff1c,0xff1d,0xff1e,0xff1f, +0xff20,0xff21,0xff22,0xff23,0xff24,0xff25,0xff26,0xff27, +0xff28,0xff29,0xff2a,0xff2b,0xff2c,0xff2d,0xff2e,0xff2f, +0xff30,0xff31,0xff32,0xff33,0xff34,0xff35,0xff36,0xff37, +0xff38,0xff39,0xff3a,0xff3b,0xff3c,0xff3d,0xff3e,0xff3f, +0xff40,0xff41,0xff42,0xff43,0xff44,0xff45,0xff46,0xff47, +0xff48,0xff49,0xff4a,0xff4b,0xff4c,0xff4d,0xff4e,0xff4f, +0xff50,0xff51,0xff52,0xff53,0xff54,0xff55,0xff56,0xff57, +0xff58,0xff59,0xff5a,0xff5b,0xff5c,0xff5d,0xffe3,0x0000, +/* 0xa400 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x3041,0x3042,0x3043,0x3044,0x3045,0x3046,0x3047, +0x3048,0x3049,0x304a,0x304b,0x304c,0x304d,0x304e,0x304f, +0x3050,0x3051,0x3052,0x3053,0x3054,0x3055,0x3056,0x3057, +0x3058,0x3059,0x305a,0x305b,0x305c,0x305d,0x305e,0x305f, +0x3060,0x3061,0x3062,0x3063,0x3064,0x3065,0x3066,0x3067, +0x3068,0x3069,0x306a,0x306b,0x306c,0x306d,0x306e,0x306f, +0x3070,0x3071,0x3072,0x3073,0x3074,0x3075,0x3076,0x3077, +0x3078,0x3079,0x307a,0x307b,0x307c,0x307d,0x307e,0x307f, +0x3080,0x3081,0x3082,0x3083,0x3084,0x3085,0x3086,0x3087, +0x3088,0x3089,0x308a,0x308b,0x308c,0x308d,0x308e,0x308f, +0x3090,0x3091,0x3092,0x3093,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0xa500 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x30a1,0x30a2,0x30a3,0x30a4,0x30a5,0x30a6,0x30a7, +0x30a8,0x30a9,0x30aa,0x30ab,0x30ac,0x30ad,0x30ae,0x30af, +0x30b0,0x30b1,0x30b2,0x30b3,0x30b4,0x30b5,0x30b6,0x30b7, +0x30b8,0x30b9,0x30ba,0x30bb,0x30bc,0x30bd,0x30be,0x30bf, +0x30c0,0x30c1,0x30c2,0x30c3,0x30c4,0x30c5,0x30c6,0x30c7, +0x30c8,0x30c9,0x30ca,0x30cb,0x30cc,0x30cd,0x30ce,0x30cf, +0x30d0,0x30d1,0x30d2,0x30d3,0x30d4,0x30d5,0x30d6,0x30d7, +0x30d8,0x30d9,0x30da,0x30db,0x30dc,0x30dd,0x30de,0x30df, +0x30e0,0x30e1,0x30e2,0x30e3,0x30e4,0x30e5,0x30e6,0x30e7, +0x30e8,0x30e9,0x30ea,0x30eb,0x30ec,0x30ed,0x30ee,0x30ef, +0x30f0,0x30f1,0x30f2,0x30f3,0x30f4,0x30f5,0x30f6,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0xa600 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0391,0x0392,0x0393,0x0394,0x0395,0x0396,0x0397, +0x0398,0x0399,0x039a,0x039b,0x039c,0x039d,0x039e,0x039f, +0x03a0,0x03a1,0x03a3,0x03a4,0x03a5,0x03a6,0x03a7,0x03a8, +0x03a9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x03b1,0x03b2,0x03b3,0x03b4,0x03b5,0x03b6,0x03b7, +0x03b8,0x03b9,0x03ba,0x03bb,0x03bc,0x03bd,0x03be,0x03bf, +0x03c0,0x03c1,0x03c3,0x03c4,0x03c5,0x03c6,0x03c7,0x03c8, +0x03c9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xfe35,0xfe36,0xfe39,0xfe3a,0xfe3f,0xfe40,0xfe3d,0xfe3e, +0xfe41,0xfe42,0xfe43,0xfe44,0x0000,0x0000,0xfe3b,0xfe3c, +0xfe37,0xfe38,0xfe31,0x0000,0xfe33,0xfe34,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0xa700 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0401, +0x0416,0x0417,0x0418,0x0419,0x041a,0x041b,0x041c,0x041d, +0x041e,0x041f,0x0420,0x0421,0x0422,0x0423,0x0424,0x0425, +0x0426,0x0427,0x0428,0x0429,0x042a,0x042b,0x042c,0x042d, +0x042e,0x042f,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0451, +0x0436,0x0437,0x0438,0x0439,0x043a,0x043b,0x043c,0x043d, +0x043e,0x043f,0x0440,0x0441,0x0442,0x0443,0x0444,0x0445, +0x0446,0x0447,0x0448,0x0449,0x044a,0x044b,0x044c,0x044d, +0x044e,0x044f,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0xa800 */ +0x02ca,0x02cb,0x02d9,0x2013,0x2015,0x2025,0x2035,0x2105, +0x2109,0x2196,0x2197,0x2198,0x2199,0x2215,0x221f,0x2223, +0x2252,0x2266,0x2267,0x22bf,0x2550,0x2551,0x2552,0x2553, +0x2554,0x2555,0x2556,0x2557,0x2558,0x2559,0x255a,0x255b, +0x255c,0x255d,0x255e,0x255f,0x2560,0x2561,0x2562,0x2563, +0x2564,0x2565,0x2566,0x2567,0x2568,0x2569,0x256a,0x256b, +0x256c,0x256d,0x256e,0x256f,0x2570,0x2571,0x2572,0x2573, +0x2581,0x2582,0x2583,0x2584,0x2585,0x2586,0x2587,0x0000, +0x2588,0x2589,0x258a,0x258b,0x258c,0x258d,0x258e,0x258f, +0x2593,0x2594,0x2595,0x25bc,0x25bd,0x25e2,0x25e3,0x25e4, +0x25e5,0x2609,0x2295,0x3012,0x301d,0x301e,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0101,0x00e1,0x01ce,0x00e0,0x0113,0x00e9,0x011b, +0x00e8,0x012b,0x00ed,0x01d0,0x00ec,0x014d,0x00f3,0x01d2, +0x00f2,0x016b,0x00fa,0x01d4,0x00f9,0x01d6,0x01d8,0x01da, +0x01dc,0x00fc,0x00ea,0x0251,0x0000,0x0144,0x0148,0x01f9, +0x0261,0x0000,0x0000,0x0000,0x0000,0x3105,0x3106,0x3107, +0x3108,0x3109,0x310a,0x310b,0x310c,0x310d,0x310e,0x310f, +0x3110,0x3111,0x3112,0x3113,0x3114,0x3115,0x3116,0x3117, +0x3118,0x3119,0x311a,0x311b,0x311c,0x311d,0x311e,0x311f, +0x3120,0x3121,0x3122,0x3123,0x3124,0x3125,0x3126,0x3127, +0x3128,0x3129,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0xa900 */ +0x3021,0x3022,0x3023,0x3024,0x3025,0x3026,0x3027,0x3028, +0x3029,0x32a3,0x338e,0x338f,0x339c,0x339d,0x339e,0x33a1, +0x33c4,0x33ce,0x33d1,0x33d2,0x33d5,0xfe30,0xffe2,0xffe4, +0x0000,0x2121,0x3231,0x0000,0x2010,0x0000,0x0000,0x0000, +0x30fc,0x309b,0x309c,0x30fd,0x30fe,0x3006,0x309d,0x309e, +0xfe49,0xfe4a,0xfe4b,0xfe4c,0xfe4d,0xfe4e,0xfe4f,0xfe50, +0xfe51,0xfe52,0xfe54,0xfe55,0xfe56,0xfe57,0xfe59,0xfe5a, +0xfe5b,0xfe5c,0xfe5d,0xfe5e,0xfe5f,0xfe60,0xfe61,0x0000, +0xfe62,0xfe63,0xfe64,0xfe65,0xfe66,0xfe68,0xfe69,0xfe6a, +0xfe6b,0x303e,0x2ff0,0x2ff1,0x2ff2,0x2ff3,0x2ff4,0x2ff5, +0x2ff6,0x2ff7,0x2ff8,0x2ff9,0x2ffa,0x2ffb,0x3007,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x2500,0x2501,0x2502,0x2503, +0x2504,0x2505,0x2506,0x2507,0x2508,0x2509,0x250a,0x250b, +0x250c,0x250d,0x250e,0x250f,0x2510,0x2511,0x2512,0x2513, +0x2514,0x2515,0x2516,0x2517,0x2518,0x2519,0x251a,0x251b, +0x251c,0x251d,0x251e,0x251f,0x2520,0x2521,0x2522,0x2523, +0x2524,0x2525,0x2526,0x2527,0x2528,0x2529,0x252a,0x252b, +0x252c,0x252d,0x252e,0x252f,0x2530,0x2531,0x2532,0x2533, +0x2534,0x2535,0x2536,0x2537,0x2538,0x2539,0x253a,0x253b, +0x253c,0x253d,0x253e,0x253f,0x2540,0x2541,0x2542,0x2543, +0x2544,0x2545,0x2546,0x2547,0x2548,0x2549,0x254a,0x254b, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0xaa00 */ +0x72dc,0x72dd,0x72df,0x72e2,0x72e3,0x72e4,0x72e5,0x72e6, +0x72e7,0x72ea,0x72eb,0x72f5,0x72f6,0x72f9,0x72fd,0x72fe, +0x72ff,0x7300,0x7302,0x7304,0x7305,0x7306,0x7307,0x7308, +0x7309,0x730b,0x730c,0x730d,0x730f,0x7310,0x7311,0x7312, +0x7314,0x7318,0x7319,0x731a,0x731f,0x7320,0x7323,0x7324, +0x7326,0x7327,0x7328,0x732d,0x732f,0x7330,0x7332,0x7333, +0x7335,0x7336,0x733a,0x733b,0x733c,0x733d,0x7340,0x7341, +0x7342,0x7343,0x7344,0x7345,0x7346,0x7347,0x7348,0x0000, +0x7349,0x734a,0x734b,0x734c,0x734e,0x734f,0x7351,0x7353, +0x7354,0x7355,0x7356,0x7358,0x7359,0x735a,0x735b,0x735c, +0x735d,0x735e,0x735f,0x7361,0x7362,0x7363,0x7364,0x7365, +0x7366,0x7367,0x7368,0x7369,0x736a,0x736b,0x736e,0x7370, +0x7371,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0xab00 */ +0x7372,0x7373,0x7374,0x7375,0x7376,0x7377,0x7378,0x7379, +0x737a,0x737b,0x737c,0x737d,0x737f,0x7380,0x7381,0x7382, +0x7383,0x7385,0x7386,0x7388,0x738a,0x738c,0x738d,0x738f, +0x7390,0x7392,0x7393,0x7394,0x7395,0x7397,0x7398,0x7399, +0x739a,0x739c,0x739d,0x739e,0x73a0,0x73a1,0x73a3,0x73a4, +0x73a5,0x73a6,0x73a7,0x73a8,0x73aa,0x73ac,0x73ad,0x73b1, +0x73b4,0x73b5,0x73b6,0x73b8,0x73b9,0x73bc,0x73bd,0x73be, +0x73bf,0x73c1,0x73c3,0x73c4,0x73c5,0x73c6,0x73c7,0x0000, +0x73cb,0x73cc,0x73ce,0x73d2,0x73d3,0x73d4,0x73d5,0x73d6, +0x73d7,0x73d8,0x73da,0x73db,0x73dc,0x73dd,0x73df,0x73e1, +0x73e2,0x73e3,0x73e4,0x73e6,0x73e8,0x73ea,0x73eb,0x73ec, +0x73ee,0x73ef,0x73f0,0x73f1,0x73f3,0x73f4,0x73f5,0x73f6, +0x73f7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0xac00 */ +0x73f8,0x73f9,0x73fa,0x73fb,0x73fc,0x73fd,0x73fe,0x73ff, +0x7400,0x7401,0x7402,0x7404,0x7407,0x7408,0x740b,0x740c, +0x740d,0x740e,0x7411,0x7412,0x7413,0x7414,0x7415,0x7416, +0x7417,0x7418,0x7419,0x741c,0x741d,0x741e,0x741f,0x7420, +0x7421,0x7423,0x7424,0x7427,0x7429,0x742b,0x742d,0x742f, +0x7431,0x7432,0x7437,0x7438,0x7439,0x743a,0x743b,0x743d, +0x743e,0x743f,0x7440,0x7442,0x7443,0x7444,0x7445,0x7446, +0x7447,0x7448,0x7449,0x744a,0x744b,0x744c,0x744d,0x0000, +0x744e,0x744f,0x7450,0x7451,0x7452,0x7453,0x7454,0x7456, +0x7458,0x745d,0x7460,0x7461,0x7462,0x7463,0x7464,0x7465, +0x7466,0x7467,0x7468,0x7469,0x746a,0x746b,0x746c,0x746e, +0x746f,0x7471,0x7472,0x7473,0x7474,0x7475,0x7478,0x7479, +0x747a,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0xad00 */ +0x747b,0x747c,0x747d,0x747f,0x7482,0x7484,0x7485,0x7486, +0x7488,0x7489,0x748a,0x748c,0x748d,0x748f,0x7491,0x7492, +0x7493,0x7494,0x7495,0x7496,0x7497,0x7498,0x7499,0x749a, +0x749b,0x749d,0x749f,0x74a0,0x74a1,0x74a2,0x74a3,0x74a4, +0x74a5,0x74a6,0x74aa,0x74ab,0x74ac,0x74ad,0x74ae,0x74af, +0x74b0,0x74b1,0x74b2,0x74b3,0x74b4,0x74b5,0x74b6,0x74b7, +0x74b8,0x74b9,0x74bb,0x74bc,0x74bd,0x74be,0x74bf,0x74c0, +0x74c1,0x74c2,0x74c3,0x74c4,0x74c5,0x74c6,0x74c7,0x0000, +0x74c8,0x74c9,0x74ca,0x74cb,0x74cc,0x74cd,0x74ce,0x74cf, +0x74d0,0x74d1,0x74d3,0x74d4,0x74d5,0x74d6,0x74d7,0x74d8, +0x74d9,0x74da,0x74db,0x74dd,0x74df,0x74e1,0x74e5,0x74e7, +0x74e8,0x74e9,0x74ea,0x74eb,0x74ec,0x74ed,0x74f0,0x74f1, +0x74f2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0xae00 */ +0x74f3,0x74f5,0x74f8,0x74f9,0x74fa,0x74fb,0x74fc,0x74fd, +0x74fe,0x7500,0x7501,0x7502,0x7503,0x7505,0x7506,0x7507, +0x7508,0x7509,0x750a,0x750b,0x750c,0x750e,0x7510,0x7512, +0x7514,0x7515,0x7516,0x7517,0x751b,0x751d,0x751e,0x7520, +0x7521,0x7522,0x7523,0x7524,0x7526,0x7527,0x752a,0x752e, +0x7534,0x7536,0x7539,0x753c,0x753d,0x753f,0x7541,0x7542, +0x7543,0x7544,0x7546,0x7547,0x7549,0x754a,0x754d,0x7550, +0x7551,0x7552,0x7553,0x7555,0x7556,0x7557,0x7558,0x0000, +0x755d,0x755e,0x755f,0x7560,0x7561,0x7562,0x7563,0x7564, +0x7567,0x7568,0x7569,0x756b,0x756c,0x756d,0x756e,0x756f, +0x7570,0x7571,0x7573,0x7575,0x7576,0x7577,0x757a,0x757b, +0x757c,0x757d,0x757e,0x7580,0x7581,0x7582,0x7584,0x7585, +0x7587,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0xaf00 */ +0x7588,0x7589,0x758a,0x758c,0x758d,0x758e,0x7590,0x7593, +0x7595,0x7598,0x759b,0x759c,0x759e,0x75a2,0x75a6,0x75a7, +0x75a8,0x75a9,0x75aa,0x75ad,0x75b6,0x75b7,0x75ba,0x75bb, +0x75bf,0x75c0,0x75c1,0x75c6,0x75cb,0x75cc,0x75ce,0x75cf, +0x75d0,0x75d1,0x75d3,0x75d7,0x75d9,0x75da,0x75dc,0x75dd, +0x75df,0x75e0,0x75e1,0x75e5,0x75e9,0x75ec,0x75ed,0x75ee, +0x75ef,0x75f2,0x75f3,0x75f5,0x75f6,0x75f7,0x75f8,0x75fa, +0x75fb,0x75fd,0x75fe,0x7602,0x7604,0x7606,0x7607,0x0000, +0x7608,0x7609,0x760b,0x760d,0x760e,0x760f,0x7611,0x7612, +0x7613,0x7614,0x7616,0x761a,0x761c,0x761d,0x761e,0x7621, +0x7623,0x7627,0x7628,0x762c,0x762e,0x762f,0x7631,0x7632, +0x7636,0x7637,0x7639,0x763a,0x763b,0x763d,0x7641,0x7642, +0x7644,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0xb000 */ +0x7645,0x7646,0x7647,0x7648,0x7649,0x764a,0x764b,0x764e, +0x764f,0x7650,0x7651,0x7652,0x7653,0x7655,0x7657,0x7658, +0x7659,0x765a,0x765b,0x765d,0x765f,0x7660,0x7661,0x7662, +0x7664,0x7665,0x7666,0x7667,0x7668,0x7669,0x766a,0x766c, +0x766d,0x766e,0x7670,0x7671,0x7672,0x7673,0x7674,0x7675, +0x7676,0x7677,0x7679,0x767a,0x767c,0x767f,0x7680,0x7681, +0x7683,0x7685,0x7689,0x768a,0x768c,0x768d,0x768f,0x7690, +0x7692,0x7694,0x7695,0x7697,0x7698,0x769a,0x769b,0x0000, +0x769c,0x769d,0x769e,0x769f,0x76a0,0x76a1,0x76a2,0x76a3, +0x76a5,0x76a6,0x76a7,0x76a8,0x76a9,0x76aa,0x76ab,0x76ac, +0x76ad,0x76af,0x76b0,0x76b3,0x76b5,0x76b6,0x76b7,0x76b8, +0x76b9,0x76ba,0x76bb,0x76bc,0x76bd,0x76be,0x76c0,0x76c1, +0x76c3,0x554a,0x963f,0x57c3,0x6328,0x54ce,0x5509,0x54c0, +0x7691,0x764c,0x853c,0x77ee,0x827e,0x788d,0x7231,0x9698, +0x978d,0x6c28,0x5b89,0x4ffa,0x6309,0x6697,0x5cb8,0x80fa, +0x6848,0x80ae,0x6602,0x76ce,0x51f9,0x6556,0x71ac,0x7ff1, +0x8884,0x50b2,0x5965,0x61ca,0x6fb3,0x82ad,0x634c,0x6252, +0x53ed,0x5427,0x7b06,0x516b,0x75a4,0x5df4,0x62d4,0x8dcb, +0x9776,0x628a,0x8019,0x575d,0x9738,0x7f62,0x7238,0x767d, +0x67cf,0x767e,0x6446,0x4f70,0x8d25,0x62dc,0x7a17,0x6591, +0x73ed,0x642c,0x6273,0x822c,0x9881,0x677f,0x7248,0x626e, +0x62cc,0x4f34,0x74e3,0x534a,0x529e,0x7eca,0x90a6,0x5e2e, +0x6886,0x699c,0x8180,0x7ed1,0x68d2,0x78c5,0x868c,0x9551, +0x508d,0x8c24,0x82de,0x80de,0x5305,0x8912,0x5265,0x0000, +/* 0xb100 */ +0x76c4,0x76c7,0x76c9,0x76cb,0x76cc,0x76d3,0x76d5,0x76d9, +0x76da,0x76dc,0x76dd,0x76de,0x76e0,0x76e1,0x76e2,0x76e3, +0x76e4,0x76e6,0x76e7,0x76e8,0x76e9,0x76ea,0x76eb,0x76ec, +0x76ed,0x76f0,0x76f3,0x76f5,0x76f6,0x76f7,0x76fa,0x76fb, +0x76fd,0x76ff,0x7700,0x7702,0x7703,0x7705,0x7706,0x770a, +0x770c,0x770e,0x770f,0x7710,0x7711,0x7712,0x7713,0x7714, +0x7715,0x7716,0x7717,0x7718,0x771b,0x771c,0x771d,0x771e, +0x7721,0x7723,0x7724,0x7725,0x7727,0x772a,0x772b,0x0000, +0x772c,0x772e,0x7730,0x7731,0x7732,0x7733,0x7734,0x7739, +0x773b,0x773d,0x773e,0x773f,0x7742,0x7744,0x7745,0x7746, +0x7748,0x7749,0x774a,0x774b,0x774c,0x774d,0x774e,0x774f, +0x7752,0x7753,0x7754,0x7755,0x7756,0x7757,0x7758,0x7759, +0x775c,0x8584,0x96f9,0x4fdd,0x5821,0x9971,0x5b9d,0x62b1, +0x62a5,0x66b4,0x8c79,0x9c8d,0x7206,0x676f,0x7891,0x60b2, +0x5351,0x5317,0x8f88,0x80cc,0x8d1d,0x94a1,0x500d,0x72c8, +0x5907,0x60eb,0x7119,0x88ab,0x5954,0x82ef,0x672c,0x7b28, +0x5d29,0x7ef7,0x752d,0x6cf5,0x8e66,0x8ff8,0x903c,0x9f3b, +0x6bd4,0x9119,0x7b14,0x5f7c,0x78a7,0x84d6,0x853d,0x6bd5, +0x6bd9,0x6bd6,0x5e01,0x5e87,0x75f9,0x95ed,0x655d,0x5f0a, +0x5fc5,0x8f9f,0x58c1,0x81c2,0x907f,0x965b,0x97ad,0x8fb9, +0x7f16,0x8d2c,0x6241,0x4fbf,0x53d8,0x535e,0x8fa8,0x8fa9, +0x8fab,0x904d,0x6807,0x5f6a,0x8198,0x8868,0x9cd6,0x618b, +0x522b,0x762a,0x5f6c,0x658c,0x6fd2,0x6ee8,0x5bbe,0x6448, +0x5175,0x51b0,0x67c4,0x4e19,0x79c9,0x997c,0x70b3,0x0000, +/* 0xb200 */ +0x775d,0x775e,0x775f,0x7760,0x7764,0x7767,0x7769,0x776a, +0x776d,0x776e,0x776f,0x7770,0x7771,0x7772,0x7773,0x7774, +0x7775,0x7776,0x7777,0x7778,0x777a,0x777b,0x777c,0x7781, +0x7782,0x7783,0x7786,0x7787,0x7788,0x7789,0x778a,0x778b, +0x778f,0x7790,0x7793,0x7794,0x7795,0x7796,0x7797,0x7798, +0x7799,0x779a,0x779b,0x779c,0x779d,0x779e,0x77a1,0x77a3, +0x77a4,0x77a6,0x77a8,0x77ab,0x77ad,0x77ae,0x77af,0x77b1, +0x77b2,0x77b4,0x77b6,0x77b7,0x77b8,0x77b9,0x77ba,0x0000, +0x77bc,0x77be,0x77c0,0x77c1,0x77c2,0x77c3,0x77c4,0x77c5, +0x77c6,0x77c7,0x77c8,0x77c9,0x77ca,0x77cb,0x77cc,0x77ce, +0x77cf,0x77d0,0x77d1,0x77d2,0x77d3,0x77d4,0x77d5,0x77d6, +0x77d8,0x77d9,0x77da,0x77dd,0x77de,0x77df,0x77e0,0x77e1, +0x77e4,0x75c5,0x5e76,0x73bb,0x83e0,0x64ad,0x62e8,0x94b5, +0x6ce2,0x535a,0x52c3,0x640f,0x94c2,0x7b94,0x4f2f,0x5e1b, +0x8236,0x8116,0x818a,0x6e24,0x6cca,0x9a73,0x6355,0x535c, +0x54fa,0x8865,0x57e0,0x4e0d,0x5e03,0x6b65,0x7c3f,0x90e8, +0x6016,0x64e6,0x731c,0x88c1,0x6750,0x624d,0x8d22,0x776c, +0x8e29,0x91c7,0x5f69,0x83dc,0x8521,0x9910,0x53c2,0x8695, +0x6b8b,0x60ed,0x60e8,0x707f,0x82cd,0x8231,0x4ed3,0x6ca7, +0x85cf,0x64cd,0x7cd9,0x69fd,0x66f9,0x8349,0x5395,0x7b56, +0x4fa7,0x518c,0x6d4b,0x5c42,0x8e6d,0x63d2,0x53c9,0x832c, +0x8336,0x67e5,0x78b4,0x643d,0x5bdf,0x5c94,0x5dee,0x8be7, +0x62c6,0x67f4,0x8c7a,0x6400,0x63ba,0x8749,0x998b,0x8c17, +0x7f20,0x94f2,0x4ea7,0x9610,0x98a4,0x660c,0x7316,0x0000, +/* 0xb300 */ +0x77e6,0x77e8,0x77ea,0x77ef,0x77f0,0x77f1,0x77f2,0x77f4, +0x77f5,0x77f7,0x77f9,0x77fa,0x77fb,0x77fc,0x7803,0x7804, +0x7805,0x7806,0x7807,0x7808,0x780a,0x780b,0x780e,0x780f, +0x7810,0x7813,0x7815,0x7819,0x781b,0x781e,0x7820,0x7821, +0x7822,0x7824,0x7828,0x782a,0x782b,0x782e,0x782f,0x7831, +0x7832,0x7833,0x7835,0x7836,0x783d,0x783f,0x7841,0x7842, +0x7843,0x7844,0x7846,0x7848,0x7849,0x784a,0x784b,0x784d, +0x784f,0x7851,0x7853,0x7854,0x7858,0x7859,0x785a,0x0000, +0x785b,0x785c,0x785e,0x785f,0x7860,0x7861,0x7862,0x7863, +0x7864,0x7865,0x7866,0x7867,0x7868,0x7869,0x786f,0x7870, +0x7871,0x7872,0x7873,0x7874,0x7875,0x7876,0x7878,0x7879, +0x787a,0x787b,0x787d,0x787e,0x787f,0x7880,0x7881,0x7882, +0x7883,0x573a,0x5c1d,0x5e38,0x957f,0x507f,0x80a0,0x5382, +0x655e,0x7545,0x5531,0x5021,0x8d85,0x6284,0x949e,0x671d, +0x5632,0x6f6e,0x5de2,0x5435,0x7092,0x8f66,0x626f,0x64a4, +0x63a3,0x5f7b,0x6f88,0x90f4,0x81e3,0x8fb0,0x5c18,0x6668, +0x5ff1,0x6c89,0x9648,0x8d81,0x886c,0x6491,0x79f0,0x57ce, +0x6a59,0x6210,0x5448,0x4e58,0x7a0b,0x60e9,0x6f84,0x8bda, +0x627f,0x901e,0x9a8b,0x79e4,0x5403,0x75f4,0x6301,0x5319, +0x6c60,0x8fdf,0x5f1b,0x9a70,0x803b,0x9f7f,0x4f88,0x5c3a, +0x8d64,0x7fc5,0x65a5,0x70bd,0x5145,0x51b2,0x866b,0x5d07, +0x5ba0,0x62bd,0x916c,0x7574,0x8e0c,0x7a20,0x6101,0x7b79, +0x4ec7,0x7ef8,0x7785,0x4e11,0x81ed,0x521d,0x51fa,0x6a71, +0x53a8,0x8e87,0x9504,0x96cf,0x6ec1,0x9664,0x695a,0x0000, +/* 0xb400 */ +0x7884,0x7885,0x7886,0x7888,0x788a,0x788b,0x788f,0x7890, +0x7892,0x7894,0x7895,0x7896,0x7899,0x789d,0x789e,0x78a0, +0x78a2,0x78a4,0x78a6,0x78a8,0x78a9,0x78aa,0x78ab,0x78ac, +0x78ad,0x78ae,0x78af,0x78b5,0x78b6,0x78b7,0x78b8,0x78ba, +0x78bb,0x78bc,0x78bd,0x78bf,0x78c0,0x78c2,0x78c3,0x78c4, +0x78c6,0x78c7,0x78c8,0x78cc,0x78cd,0x78ce,0x78cf,0x78d1, +0x78d2,0x78d3,0x78d6,0x78d7,0x78d8,0x78da,0x78db,0x78dc, +0x78dd,0x78de,0x78df,0x78e0,0x78e1,0x78e2,0x78e3,0x0000, +0x78e4,0x78e5,0x78e6,0x78e7,0x78e9,0x78ea,0x78eb,0x78ed, +0x78ee,0x78ef,0x78f0,0x78f1,0x78f3,0x78f5,0x78f6,0x78f8, +0x78f9,0x78fb,0x78fc,0x78fd,0x78fe,0x78ff,0x7900,0x7902, +0x7903,0x7904,0x7906,0x7907,0x7908,0x7909,0x790a,0x790b, +0x790c,0x7840,0x50a8,0x77d7,0x6410,0x89e6,0x5904,0x63e3, +0x5ddd,0x7a7f,0x693d,0x4f20,0x8239,0x5598,0x4e32,0x75ae, +0x7a97,0x5e62,0x5e8a,0x95ef,0x521b,0x5439,0x708a,0x6376, +0x9524,0x5782,0x6625,0x693f,0x9187,0x5507,0x6df3,0x7eaf, +0x8822,0x6233,0x7ef0,0x75b5,0x8328,0x78c1,0x96cc,0x8f9e, +0x6148,0x74f7,0x8bcd,0x6b64,0x523a,0x8d50,0x6b21,0x806a, +0x8471,0x56f1,0x5306,0x4ece,0x4e1b,0x51d1,0x7c97,0x918b, +0x7c07,0x4fc3,0x8e7f,0x7be1,0x7a9c,0x6467,0x5d14,0x50ac, +0x8106,0x7601,0x7cb9,0x6dec,0x7fe0,0x6751,0x5b58,0x5bf8, +0x78cb,0x64ae,0x6413,0x63aa,0x632b,0x9519,0x642d,0x8fbe, +0x7b54,0x7629,0x6253,0x5927,0x5446,0x6b79,0x50a3,0x6234, +0x5e26,0x6b86,0x4ee3,0x8d37,0x888b,0x5f85,0x902e,0x0000, +/* 0xb500 */ +0x790d,0x790e,0x790f,0x7910,0x7911,0x7912,0x7914,0x7915, +0x7916,0x7917,0x7918,0x7919,0x791a,0x791b,0x791c,0x791d, +0x791f,0x7920,0x7921,0x7922,0x7923,0x7925,0x7926,0x7927, +0x7928,0x7929,0x792a,0x792b,0x792c,0x792d,0x792e,0x792f, +0x7930,0x7931,0x7932,0x7933,0x7935,0x7936,0x7937,0x7938, +0x7939,0x793d,0x793f,0x7942,0x7943,0x7944,0x7945,0x7947, +0x794a,0x794b,0x794c,0x794d,0x794e,0x794f,0x7950,0x7951, +0x7952,0x7954,0x7955,0x7958,0x7959,0x7961,0x7963,0x0000, +0x7964,0x7966,0x7969,0x796a,0x796b,0x796c,0x796e,0x7970, +0x7971,0x7972,0x7973,0x7974,0x7975,0x7976,0x7979,0x797b, +0x797c,0x797d,0x797e,0x797f,0x7982,0x7983,0x7986,0x7987, +0x7988,0x7989,0x798b,0x798c,0x798d,0x798e,0x7990,0x7991, +0x7992,0x6020,0x803d,0x62c5,0x4e39,0x5355,0x90f8,0x63b8, +0x80c6,0x65e6,0x6c2e,0x4f46,0x60ee,0x6de1,0x8bde,0x5f39, +0x86cb,0x5f53,0x6321,0x515a,0x8361,0x6863,0x5200,0x6363, +0x8e48,0x5012,0x5c9b,0x7977,0x5bfc,0x5230,0x7a3b,0x60bc, +0x9053,0x76d7,0x5fb7,0x5f97,0x7684,0x8e6c,0x706f,0x767b, +0x7b49,0x77aa,0x51f3,0x9093,0x5824,0x4f4e,0x6ef4,0x8fea, +0x654c,0x7b1b,0x72c4,0x6da4,0x7fdf,0x5ae1,0x62b5,0x5e95, +0x5730,0x8482,0x7b2c,0x5e1d,0x5f1f,0x9012,0x7f14,0x98a0, +0x6382,0x6ec7,0x7898,0x70b9,0x5178,0x975b,0x57ab,0x7535, +0x4f43,0x7538,0x5e97,0x60e6,0x5960,0x6dc0,0x6bbf,0x7889, +0x53fc,0x96d5,0x51cb,0x5201,0x6389,0x540a,0x9493,0x8c03, +0x8dcc,0x7239,0x789f,0x8776,0x8fed,0x8c0d,0x53e0,0x0000, +/* 0xb600 */ +0x7993,0x7994,0x7995,0x7996,0x7997,0x7998,0x7999,0x799b, +0x799c,0x799d,0x799e,0x799f,0x79a0,0x79a1,0x79a2,0x79a3, +0x79a4,0x79a5,0x79a6,0x79a8,0x79a9,0x79aa,0x79ab,0x79ac, +0x79ad,0x79ae,0x79af,0x79b0,0x79b1,0x79b2,0x79b4,0x79b5, +0x79b6,0x79b7,0x79b8,0x79bc,0x79bf,0x79c2,0x79c4,0x79c5, +0x79c7,0x79c8,0x79ca,0x79cc,0x79ce,0x79cf,0x79d0,0x79d3, +0x79d4,0x79d6,0x79d7,0x79d9,0x79da,0x79db,0x79dc,0x79dd, +0x79de,0x79e0,0x79e1,0x79e2,0x79e5,0x79e8,0x79ea,0x0000, +0x79ec,0x79ee,0x79f1,0x79f2,0x79f3,0x79f4,0x79f5,0x79f6, +0x79f7,0x79f9,0x79fa,0x79fc,0x79fe,0x79ff,0x7a01,0x7a04, +0x7a05,0x7a07,0x7a08,0x7a09,0x7a0a,0x7a0c,0x7a0f,0x7a10, +0x7a11,0x7a12,0x7a13,0x7a15,0x7a16,0x7a18,0x7a19,0x7a1b, +0x7a1c,0x4e01,0x76ef,0x53ee,0x9489,0x9876,0x9f0e,0x952d, +0x5b9a,0x8ba2,0x4e22,0x4e1c,0x51ac,0x8463,0x61c2,0x52a8, +0x680b,0x4f97,0x606b,0x51bb,0x6d1e,0x515c,0x6296,0x6597, +0x9661,0x8c46,0x9017,0x75d8,0x90fd,0x7763,0x6bd2,0x728a, +0x72ec,0x8bfb,0x5835,0x7779,0x8d4c,0x675c,0x9540,0x809a, +0x5ea6,0x6e21,0x5992,0x7aef,0x77ed,0x953b,0x6bb5,0x65ad, +0x7f0e,0x5806,0x5151,0x961f,0x5bf9,0x58a9,0x5428,0x8e72, +0x6566,0x987f,0x56e4,0x949d,0x76fe,0x9041,0x6387,0x54c6, +0x591a,0x593a,0x579b,0x8eb2,0x6735,0x8dfa,0x8235,0x5241, +0x60f0,0x5815,0x86fe,0x5ce8,0x9e45,0x4fc4,0x989d,0x8bb9, +0x5a25,0x6076,0x5384,0x627c,0x904f,0x9102,0x997f,0x6069, +0x800c,0x513f,0x8033,0x5c14,0x9975,0x6d31,0x4e8c,0x0000, +/* 0xb700 */ +0x7a1d,0x7a1f,0x7a21,0x7a22,0x7a24,0x7a25,0x7a26,0x7a27, +0x7a28,0x7a29,0x7a2a,0x7a2b,0x7a2c,0x7a2d,0x7a2e,0x7a2f, +0x7a30,0x7a31,0x7a32,0x7a34,0x7a35,0x7a36,0x7a38,0x7a3a, +0x7a3e,0x7a40,0x7a41,0x7a42,0x7a43,0x7a44,0x7a45,0x7a47, +0x7a48,0x7a49,0x7a4a,0x7a4b,0x7a4c,0x7a4d,0x7a4e,0x7a4f, +0x7a50,0x7a52,0x7a53,0x7a54,0x7a55,0x7a56,0x7a58,0x7a59, +0x7a5a,0x7a5b,0x7a5c,0x7a5d,0x7a5e,0x7a5f,0x7a60,0x7a61, +0x7a62,0x7a63,0x7a64,0x7a65,0x7a66,0x7a67,0x7a68,0x0000, +0x7a69,0x7a6a,0x7a6b,0x7a6c,0x7a6d,0x7a6e,0x7a6f,0x7a71, +0x7a72,0x7a73,0x7a75,0x7a7b,0x7a7c,0x7a7d,0x7a7e,0x7a82, +0x7a85,0x7a87,0x7a89,0x7a8a,0x7a8b,0x7a8c,0x7a8e,0x7a8f, +0x7a90,0x7a93,0x7a94,0x7a99,0x7a9a,0x7a9b,0x7a9e,0x7aa1, +0x7aa2,0x8d30,0x53d1,0x7f5a,0x7b4f,0x4f10,0x4e4f,0x9600, +0x6cd5,0x73d0,0x85e9,0x5e06,0x756a,0x7ffb,0x6a0a,0x77fe, +0x9492,0x7e41,0x51e1,0x70e6,0x53cd,0x8fd4,0x8303,0x8d29, +0x72af,0x996d,0x6cdb,0x574a,0x82b3,0x65b9,0x80aa,0x623f, +0x9632,0x59a8,0x4eff,0x8bbf,0x7eba,0x653e,0x83f2,0x975e, +0x5561,0x98de,0x80a5,0x532a,0x8bfd,0x5420,0x80ba,0x5e9f, +0x6cb8,0x8d39,0x82ac,0x915a,0x5429,0x6c1b,0x5206,0x7eb7, +0x575f,0x711a,0x6c7e,0x7c89,0x594b,0x4efd,0x5fff,0x6124, +0x7caa,0x4e30,0x5c01,0x67ab,0x8702,0x5cf0,0x950b,0x98ce, +0x75af,0x70fd,0x9022,0x51af,0x7f1d,0x8bbd,0x5949,0x51e4, +0x4f5b,0x5426,0x592b,0x6577,0x80a4,0x5b75,0x6276,0x62c2, +0x8f90,0x5e45,0x6c1f,0x7b26,0x4f0f,0x4fd8,0x670d,0x0000, +/* 0xb800 */ +0x7aa3,0x7aa4,0x7aa7,0x7aa9,0x7aaa,0x7aab,0x7aae,0x7aaf, +0x7ab0,0x7ab1,0x7ab2,0x7ab4,0x7ab5,0x7ab6,0x7ab7,0x7ab8, +0x7ab9,0x7aba,0x7abb,0x7abc,0x7abd,0x7abe,0x7ac0,0x7ac1, +0x7ac2,0x7ac3,0x7ac4,0x7ac5,0x7ac6,0x7ac7,0x7ac8,0x7ac9, +0x7aca,0x7acc,0x7acd,0x7ace,0x7acf,0x7ad0,0x7ad1,0x7ad2, +0x7ad3,0x7ad4,0x7ad5,0x7ad7,0x7ad8,0x7ada,0x7adb,0x7adc, +0x7add,0x7ae1,0x7ae2,0x7ae4,0x7ae7,0x7ae8,0x7ae9,0x7aea, +0x7aeb,0x7aec,0x7aee,0x7af0,0x7af1,0x7af2,0x7af3,0x0000, +0x7af4,0x7af5,0x7af6,0x7af7,0x7af8,0x7afb,0x7afc,0x7afe, +0x7b00,0x7b01,0x7b02,0x7b05,0x7b07,0x7b09,0x7b0c,0x7b0d, +0x7b0e,0x7b10,0x7b12,0x7b13,0x7b16,0x7b17,0x7b18,0x7b1a, +0x7b1c,0x7b1d,0x7b1f,0x7b21,0x7b22,0x7b23,0x7b27,0x7b29, +0x7b2d,0x6d6e,0x6daa,0x798f,0x88b1,0x5f17,0x752b,0x629a, +0x8f85,0x4fef,0x91dc,0x65a7,0x812f,0x8151,0x5e9c,0x8150, +0x8d74,0x526f,0x8986,0x8d4b,0x590d,0x5085,0x4ed8,0x961c, +0x7236,0x8179,0x8d1f,0x5bcc,0x8ba3,0x9644,0x5987,0x7f1a, +0x5490,0x5676,0x560e,0x8be5,0x6539,0x6982,0x9499,0x76d6, +0x6e89,0x5e72,0x7518,0x6746,0x67d1,0x7aff,0x809d,0x8d76, +0x611f,0x79c6,0x6562,0x8d63,0x5188,0x521a,0x94a2,0x7f38, +0x809b,0x7eb2,0x5c97,0x6e2f,0x6760,0x7bd9,0x768b,0x9ad8, +0x818f,0x7f94,0x7cd5,0x641e,0x9550,0x7a3f,0x544a,0x54e5, +0x6b4c,0x6401,0x6208,0x9e3d,0x80f3,0x7599,0x5272,0x9769, +0x845b,0x683c,0x86e4,0x9601,0x9694,0x94ec,0x4e2a,0x5404, +0x7ed9,0x6839,0x8ddf,0x8015,0x66f4,0x5e9a,0x7fb9,0x0000, +/* 0xb900 */ +0x7b2f,0x7b30,0x7b32,0x7b34,0x7b35,0x7b36,0x7b37,0x7b39, +0x7b3b,0x7b3d,0x7b3f,0x7b40,0x7b41,0x7b42,0x7b43,0x7b44, +0x7b46,0x7b48,0x7b4a,0x7b4d,0x7b4e,0x7b53,0x7b55,0x7b57, +0x7b59,0x7b5c,0x7b5e,0x7b5f,0x7b61,0x7b63,0x7b64,0x7b65, +0x7b66,0x7b67,0x7b68,0x7b69,0x7b6a,0x7b6b,0x7b6c,0x7b6d, +0x7b6f,0x7b70,0x7b73,0x7b74,0x7b76,0x7b78,0x7b7a,0x7b7c, +0x7b7d,0x7b7f,0x7b81,0x7b82,0x7b83,0x7b84,0x7b86,0x7b87, +0x7b88,0x7b89,0x7b8a,0x7b8b,0x7b8c,0x7b8e,0x7b8f,0x0000, +0x7b91,0x7b92,0x7b93,0x7b96,0x7b98,0x7b99,0x7b9a,0x7b9b, +0x7b9e,0x7b9f,0x7ba0,0x7ba3,0x7ba4,0x7ba5,0x7bae,0x7baf, +0x7bb0,0x7bb2,0x7bb3,0x7bb5,0x7bb6,0x7bb7,0x7bb9,0x7bba, +0x7bbb,0x7bbc,0x7bbd,0x7bbe,0x7bbf,0x7bc0,0x7bc2,0x7bc3, +0x7bc4,0x57c2,0x803f,0x6897,0x5de5,0x653b,0x529f,0x606d, +0x9f9a,0x4f9b,0x8eac,0x516c,0x5bab,0x5f13,0x5de9,0x6c5e, +0x62f1,0x8d21,0x5171,0x94a9,0x52fe,0x6c9f,0x82df,0x72d7, +0x57a2,0x6784,0x8d2d,0x591f,0x8f9c,0x83c7,0x5495,0x7b8d, +0x4f30,0x6cbd,0x5b64,0x59d1,0x9f13,0x53e4,0x86ca,0x9aa8, +0x8c37,0x80a1,0x6545,0x987e,0x56fa,0x96c7,0x522e,0x74dc, +0x5250,0x5be1,0x6302,0x8902,0x4e56,0x62d0,0x602a,0x68fa, +0x5173,0x5b98,0x51a0,0x89c2,0x7ba1,0x9986,0x7f50,0x60ef, +0x704c,0x8d2f,0x5149,0x5e7f,0x901b,0x7470,0x89c4,0x572d, +0x7845,0x5f52,0x9f9f,0x95fa,0x8f68,0x9b3c,0x8be1,0x7678, +0x6842,0x67dc,0x8dea,0x8d35,0x523d,0x8f8a,0x6eda,0x68cd, +0x9505,0x90ed,0x56fd,0x679c,0x88f9,0x8fc7,0x54c8,0x0000, +/* 0xba00 */ +0x7bc5,0x7bc8,0x7bc9,0x7bca,0x7bcb,0x7bcd,0x7bce,0x7bcf, +0x7bd0,0x7bd2,0x7bd4,0x7bd5,0x7bd6,0x7bd7,0x7bd8,0x7bdb, +0x7bdc,0x7bde,0x7bdf,0x7be0,0x7be2,0x7be3,0x7be4,0x7be7, +0x7be8,0x7be9,0x7beb,0x7bec,0x7bed,0x7bef,0x7bf0,0x7bf2, +0x7bf3,0x7bf4,0x7bf5,0x7bf6,0x7bf8,0x7bf9,0x7bfa,0x7bfb, +0x7bfd,0x7bff,0x7c00,0x7c01,0x7c02,0x7c03,0x7c04,0x7c05, +0x7c06,0x7c08,0x7c09,0x7c0a,0x7c0d,0x7c0e,0x7c10,0x7c11, +0x7c12,0x7c13,0x7c14,0x7c15,0x7c17,0x7c18,0x7c19,0x0000, +0x7c1a,0x7c1b,0x7c1c,0x7c1d,0x7c1e,0x7c20,0x7c21,0x7c22, +0x7c23,0x7c24,0x7c25,0x7c28,0x7c29,0x7c2b,0x7c2c,0x7c2d, +0x7c2e,0x7c2f,0x7c30,0x7c31,0x7c32,0x7c33,0x7c34,0x7c35, +0x7c36,0x7c37,0x7c39,0x7c3a,0x7c3b,0x7c3c,0x7c3d,0x7c3e, +0x7c42,0x9ab8,0x5b69,0x6d77,0x6c26,0x4ea5,0x5bb3,0x9a87, +0x9163,0x61a8,0x90af,0x97e9,0x542b,0x6db5,0x5bd2,0x51fd, +0x558a,0x7f55,0x7ff0,0x64bc,0x634d,0x65f1,0x61be,0x608d, +0x710a,0x6c57,0x6c49,0x592f,0x676d,0x822a,0x58d5,0x568e, +0x8c6a,0x6beb,0x90dd,0x597d,0x8017,0x53f7,0x6d69,0x5475, +0x559d,0x8377,0x83cf,0x6838,0x79be,0x548c,0x4f55,0x5408, +0x76d2,0x8c89,0x9602,0x6cb3,0x6db8,0x8d6b,0x8910,0x9e64, +0x8d3a,0x563f,0x9ed1,0x75d5,0x5f88,0x72e0,0x6068,0x54fc, +0x4ea8,0x6a2a,0x8861,0x6052,0x8f70,0x54c4,0x70d8,0x8679, +0x9e3f,0x6d2a,0x5b8f,0x5f18,0x7ea2,0x5589,0x4faf,0x7334, +0x543c,0x539a,0x5019,0x540e,0x547c,0x4e4e,0x5ffd,0x745a, +0x58f6,0x846b,0x80e1,0x8774,0x72d0,0x7cca,0x6e56,0x0000, +/* 0xbb00 */ +0x7c43,0x7c44,0x7c45,0x7c46,0x7c47,0x7c48,0x7c49,0x7c4a, +0x7c4b,0x7c4c,0x7c4e,0x7c4f,0x7c50,0x7c51,0x7c52,0x7c53, +0x7c54,0x7c55,0x7c56,0x7c57,0x7c58,0x7c59,0x7c5a,0x7c5b, +0x7c5c,0x7c5d,0x7c5e,0x7c5f,0x7c60,0x7c61,0x7c62,0x7c63, +0x7c64,0x7c65,0x7c66,0x7c67,0x7c68,0x7c69,0x7c6a,0x7c6b, +0x7c6c,0x7c6d,0x7c6e,0x7c6f,0x7c70,0x7c71,0x7c72,0x7c75, +0x7c76,0x7c77,0x7c78,0x7c79,0x7c7a,0x7c7e,0x7c7f,0x7c80, +0x7c81,0x7c82,0x7c83,0x7c84,0x7c85,0x7c86,0x7c87,0x0000, +0x7c88,0x7c8a,0x7c8b,0x7c8c,0x7c8d,0x7c8e,0x7c8f,0x7c90, +0x7c93,0x7c94,0x7c96,0x7c99,0x7c9a,0x7c9b,0x7ca0,0x7ca1, +0x7ca3,0x7ca6,0x7ca7,0x7ca8,0x7ca9,0x7cab,0x7cac,0x7cad, +0x7caf,0x7cb0,0x7cb4,0x7cb5,0x7cb6,0x7cb7,0x7cb8,0x7cba, +0x7cbb,0x5f27,0x864e,0x552c,0x62a4,0x4e92,0x6caa,0x6237, +0x82b1,0x54d7,0x534e,0x733e,0x6ed1,0x753b,0x5212,0x5316, +0x8bdd,0x69d0,0x5f8a,0x6000,0x6dee,0x574f,0x6b22,0x73af, +0x6853,0x8fd8,0x7f13,0x6362,0x60a3,0x5524,0x75ea,0x8c62, +0x7115,0x6da3,0x5ba6,0x5e7b,0x8352,0x614c,0x9ec4,0x78fa, +0x8757,0x7c27,0x7687,0x51f0,0x60f6,0x714c,0x6643,0x5e4c, +0x604d,0x8c0e,0x7070,0x6325,0x8f89,0x5fbd,0x6062,0x86d4, +0x56de,0x6bc1,0x6094,0x6167,0x5349,0x60e0,0x6666,0x8d3f, +0x79fd,0x4f1a,0x70e9,0x6c47,0x8bb3,0x8bf2,0x7ed8,0x8364, +0x660f,0x5a5a,0x9b42,0x6d51,0x6df7,0x8c41,0x6d3b,0x4f19, +0x706b,0x83b7,0x6216,0x60d1,0x970d,0x8d27,0x7978,0x51fb, +0x573e,0x57fa,0x673a,0x7578,0x7a3d,0x79ef,0x7b95,0x0000, +/* 0xbc00 */ +0x7cbf,0x7cc0,0x7cc2,0x7cc3,0x7cc4,0x7cc6,0x7cc9,0x7ccb, +0x7cce,0x7ccf,0x7cd0,0x7cd1,0x7cd2,0x7cd3,0x7cd4,0x7cd8, +0x7cda,0x7cdb,0x7cdd,0x7cde,0x7ce1,0x7ce2,0x7ce3,0x7ce4, +0x7ce5,0x7ce6,0x7ce7,0x7ce9,0x7cea,0x7ceb,0x7cec,0x7ced, +0x7cee,0x7cf0,0x7cf1,0x7cf2,0x7cf3,0x7cf4,0x7cf5,0x7cf6, +0x7cf7,0x7cf9,0x7cfa,0x7cfc,0x7cfd,0x7cfe,0x7cff,0x7d00, +0x7d01,0x7d02,0x7d03,0x7d04,0x7d05,0x7d06,0x7d07,0x7d08, +0x7d09,0x7d0b,0x7d0c,0x7d0d,0x7d0e,0x7d0f,0x7d10,0x0000, +0x7d11,0x7d12,0x7d13,0x7d14,0x7d15,0x7d16,0x7d17,0x7d18, +0x7d19,0x7d1a,0x7d1b,0x7d1c,0x7d1d,0x7d1e,0x7d1f,0x7d21, +0x7d23,0x7d24,0x7d25,0x7d26,0x7d28,0x7d29,0x7d2a,0x7d2c, +0x7d2d,0x7d2e,0x7d30,0x7d31,0x7d32,0x7d33,0x7d34,0x7d35, +0x7d36,0x808c,0x9965,0x8ff9,0x6fc0,0x8ba5,0x9e21,0x59ec, +0x7ee9,0x7f09,0x5409,0x6781,0x68d8,0x8f91,0x7c4d,0x96c6, +0x53ca,0x6025,0x75be,0x6c72,0x5373,0x5ac9,0x7ea7,0x6324, +0x51e0,0x810a,0x5df1,0x84df,0x6280,0x5180,0x5b63,0x4f0e, +0x796d,0x5242,0x60b8,0x6d4e,0x5bc4,0x5bc2,0x8ba1,0x8bb0, +0x65e2,0x5fcc,0x9645,0x5993,0x7ee7,0x7eaa,0x5609,0x67b7, +0x5939,0x4f73,0x5bb6,0x52a0,0x835a,0x988a,0x8d3e,0x7532, +0x94be,0x5047,0x7a3c,0x4ef7,0x67b6,0x9a7e,0x5ac1,0x6b7c, +0x76d1,0x575a,0x5c16,0x7b3a,0x95f4,0x714e,0x517c,0x80a9, +0x8270,0x5978,0x7f04,0x8327,0x68c0,0x67ec,0x78b1,0x7877, +0x62e3,0x6361,0x7b80,0x4fed,0x526a,0x51cf,0x8350,0x69db, +0x9274,0x8df5,0x8d31,0x89c1,0x952e,0x7bad,0x4ef6,0x0000, +/* 0xbd00 */ +0x7d37,0x7d38,0x7d39,0x7d3a,0x7d3b,0x7d3c,0x7d3d,0x7d3e, +0x7d3f,0x7d40,0x7d41,0x7d42,0x7d43,0x7d44,0x7d45,0x7d46, +0x7d47,0x7d48,0x7d49,0x7d4a,0x7d4b,0x7d4c,0x7d4d,0x7d4e, +0x7d4f,0x7d50,0x7d51,0x7d52,0x7d53,0x7d54,0x7d55,0x7d56, +0x7d57,0x7d58,0x7d59,0x7d5a,0x7d5b,0x7d5c,0x7d5d,0x7d5e, +0x7d5f,0x7d60,0x7d61,0x7d62,0x7d63,0x7d64,0x7d65,0x7d66, +0x7d67,0x7d68,0x7d69,0x7d6a,0x7d6b,0x7d6c,0x7d6d,0x7d6f, +0x7d70,0x7d71,0x7d72,0x7d73,0x7d74,0x7d75,0x7d76,0x0000, +0x7d78,0x7d79,0x7d7a,0x7d7b,0x7d7c,0x7d7d,0x7d7e,0x7d7f, +0x7d80,0x7d81,0x7d82,0x7d83,0x7d84,0x7d85,0x7d86,0x7d87, +0x7d88,0x7d89,0x7d8a,0x7d8b,0x7d8c,0x7d8d,0x7d8e,0x7d8f, +0x7d90,0x7d91,0x7d92,0x7d93,0x7d94,0x7d95,0x7d96,0x7d97, +0x7d98,0x5065,0x8230,0x5251,0x996f,0x6e10,0x6e85,0x6da7, +0x5efa,0x50f5,0x59dc,0x5c06,0x6d46,0x6c5f,0x7586,0x848b, +0x6868,0x5956,0x8bb2,0x5320,0x9171,0x964d,0x8549,0x6912, +0x7901,0x7126,0x80f6,0x4ea4,0x90ca,0x6d47,0x9a84,0x5a07, +0x56bc,0x6405,0x94f0,0x77eb,0x4fa5,0x811a,0x72e1,0x89d2, +0x997a,0x7f34,0x7ede,0x527f,0x6559,0x9175,0x8f7f,0x8f83, +0x53eb,0x7a96,0x63ed,0x63a5,0x7686,0x79f8,0x8857,0x9636, +0x622a,0x52ab,0x8282,0x6854,0x6770,0x6377,0x776b,0x7aed, +0x6d01,0x7ed3,0x89e3,0x59d0,0x6212,0x85c9,0x82a5,0x754c, +0x501f,0x4ecb,0x75a5,0x8beb,0x5c4a,0x5dfe,0x7b4b,0x65a4, +0x91d1,0x4eca,0x6d25,0x895f,0x7d27,0x9526,0x4ec5,0x8c28, +0x8fdb,0x9773,0x664b,0x7981,0x8fd1,0x70ec,0x6d78,0x0000, +/* 0xbe00 */ +0x7d99,0x7d9a,0x7d9b,0x7d9c,0x7d9d,0x7d9e,0x7d9f,0x7da0, +0x7da1,0x7da2,0x7da3,0x7da4,0x7da5,0x7da7,0x7da8,0x7da9, +0x7daa,0x7dab,0x7dac,0x7dad,0x7daf,0x7db0,0x7db1,0x7db2, +0x7db3,0x7db4,0x7db5,0x7db6,0x7db7,0x7db8,0x7db9,0x7dba, +0x7dbb,0x7dbc,0x7dbd,0x7dbe,0x7dbf,0x7dc0,0x7dc1,0x7dc2, +0x7dc3,0x7dc4,0x7dc5,0x7dc6,0x7dc7,0x7dc8,0x7dc9,0x7dca, +0x7dcb,0x7dcc,0x7dcd,0x7dce,0x7dcf,0x7dd0,0x7dd1,0x7dd2, +0x7dd3,0x7dd4,0x7dd5,0x7dd6,0x7dd7,0x7dd8,0x7dd9,0x0000, +0x7dda,0x7ddb,0x7ddc,0x7ddd,0x7dde,0x7ddf,0x7de0,0x7de1, +0x7de2,0x7de3,0x7de4,0x7de5,0x7de6,0x7de7,0x7de8,0x7de9, +0x7dea,0x7deb,0x7dec,0x7ded,0x7dee,0x7def,0x7df0,0x7df1, +0x7df2,0x7df3,0x7df4,0x7df5,0x7df6,0x7df7,0x7df8,0x7df9, +0x7dfa,0x5c3d,0x52b2,0x8346,0x5162,0x830e,0x775b,0x6676, +0x9cb8,0x4eac,0x60ca,0x7cbe,0x7cb3,0x7ecf,0x4e95,0x8b66, +0x666f,0x9888,0x9759,0x5883,0x656c,0x955c,0x5f84,0x75c9, +0x9756,0x7adf,0x7ade,0x51c0,0x70af,0x7a98,0x63ea,0x7a76, +0x7ea0,0x7396,0x97ed,0x4e45,0x7078,0x4e5d,0x9152,0x53a9, +0x6551,0x65e7,0x81fc,0x8205,0x548e,0x5c31,0x759a,0x97a0, +0x62d8,0x72d9,0x75bd,0x5c45,0x9a79,0x83ca,0x5c40,0x5480, +0x77e9,0x4e3e,0x6cae,0x805a,0x62d2,0x636e,0x5de8,0x5177, +0x8ddd,0x8e1e,0x952f,0x4ff1,0x53e5,0x60e7,0x70ac,0x5267, +0x6350,0x9e43,0x5a1f,0x5026,0x7737,0x5377,0x7ee2,0x6485, +0x652b,0x6289,0x6398,0x5014,0x7235,0x89c9,0x51b3,0x8bc0, +0x7edd,0x5747,0x83cc,0x94a7,0x519b,0x541b,0x5cfb,0x0000, +/* 0xbf00 */ +0x7dfb,0x7dfc,0x7dfd,0x7dfe,0x7dff,0x7e00,0x7e01,0x7e02, +0x7e03,0x7e04,0x7e05,0x7e06,0x7e07,0x7e08,0x7e09,0x7e0a, +0x7e0b,0x7e0c,0x7e0d,0x7e0e,0x7e0f,0x7e10,0x7e11,0x7e12, +0x7e13,0x7e14,0x7e15,0x7e16,0x7e17,0x7e18,0x7e19,0x7e1a, +0x7e1b,0x7e1c,0x7e1d,0x7e1e,0x7e1f,0x7e20,0x7e21,0x7e22, +0x7e23,0x7e24,0x7e25,0x7e26,0x7e27,0x7e28,0x7e29,0x7e2a, +0x7e2b,0x7e2c,0x7e2d,0x7e2e,0x7e2f,0x7e30,0x7e31,0x7e32, +0x7e33,0x7e34,0x7e35,0x7e36,0x7e37,0x7e38,0x7e39,0x0000, +0x7e3a,0x7e3c,0x7e3d,0x7e3e,0x7e3f,0x7e40,0x7e42,0x7e43, +0x7e44,0x7e45,0x7e46,0x7e48,0x7e49,0x7e4a,0x7e4b,0x7e4c, +0x7e4d,0x7e4e,0x7e4f,0x7e50,0x7e51,0x7e52,0x7e53,0x7e54, +0x7e55,0x7e56,0x7e57,0x7e58,0x7e59,0x7e5a,0x7e5b,0x7e5c, +0x7e5d,0x4fca,0x7ae3,0x6d5a,0x90e1,0x9a8f,0x5580,0x5496, +0x5361,0x54af,0x5f00,0x63e9,0x6977,0x51ef,0x6168,0x520a, +0x582a,0x52d8,0x574e,0x780d,0x770b,0x5eb7,0x6177,0x7ce0, +0x625b,0x6297,0x4ea2,0x7095,0x8003,0x62f7,0x70e4,0x9760, +0x5777,0x82db,0x67ef,0x68f5,0x78d5,0x9897,0x79d1,0x58f3, +0x54b3,0x53ef,0x6e34,0x514b,0x523b,0x5ba2,0x8bfe,0x80af, +0x5543,0x57a6,0x6073,0x5751,0x542d,0x7a7a,0x6050,0x5b54, +0x63a7,0x62a0,0x53e3,0x6263,0x5bc7,0x67af,0x54ed,0x7a9f, +0x82e6,0x9177,0x5e93,0x88e4,0x5938,0x57ae,0x630e,0x8de8, +0x80ef,0x5757,0x7b77,0x4fa9,0x5feb,0x5bbd,0x6b3e,0x5321, +0x7b50,0x72c2,0x6846,0x77ff,0x7736,0x65f7,0x51b5,0x4e8f, +0x76d4,0x5cbf,0x7aa5,0x8475,0x594e,0x9b41,0x5080,0x0000, +/* 0xc000 */ +0x7e5e,0x7e5f,0x7e60,0x7e61,0x7e62,0x7e63,0x7e64,0x7e65, +0x7e66,0x7e67,0x7e68,0x7e69,0x7e6a,0x7e6b,0x7e6c,0x7e6d, +0x7e6e,0x7e6f,0x7e70,0x7e71,0x7e72,0x7e73,0x7e74,0x7e75, +0x7e76,0x7e77,0x7e78,0x7e79,0x7e7a,0x7e7b,0x7e7c,0x7e7d, +0x7e7e,0x7e7f,0x7e80,0x7e81,0x7e83,0x7e84,0x7e85,0x7e86, +0x7e87,0x7e88,0x7e89,0x7e8a,0x7e8b,0x7e8c,0x7e8d,0x7e8e, +0x7e8f,0x7e90,0x7e91,0x7e92,0x7e93,0x7e94,0x7e95,0x7e96, +0x7e97,0x7e98,0x7e99,0x7e9a,0x7e9c,0x7e9d,0x7e9e,0x0000, +0x7eae,0x7eb4,0x7ebb,0x7ebc,0x7ed6,0x7ee4,0x7eec,0x7ef9, +0x7f0a,0x7f10,0x7f1e,0x7f37,0x7f39,0x7f3b,0x7f3c,0x7f3d, +0x7f3e,0x7f3f,0x7f40,0x7f41,0x7f43,0x7f46,0x7f47,0x7f48, +0x7f49,0x7f4a,0x7f4b,0x7f4c,0x7f4d,0x7f4e,0x7f4f,0x7f52, +0x7f53,0x9988,0x6127,0x6e83,0x5764,0x6606,0x6346,0x56f0, +0x62ec,0x6269,0x5ed3,0x9614,0x5783,0x62c9,0x5587,0x8721, +0x814a,0x8fa3,0x5566,0x83b1,0x6765,0x8d56,0x84dd,0x5a6a, +0x680f,0x62e6,0x7bee,0x9611,0x5170,0x6f9c,0x8c30,0x63fd, +0x89c8,0x61d2,0x7f06,0x70c2,0x6ee5,0x7405,0x6994,0x72fc, +0x5eca,0x90ce,0x6717,0x6d6a,0x635e,0x52b3,0x7262,0x8001, +0x4f6c,0x59e5,0x916a,0x70d9,0x6d9d,0x52d2,0x4e50,0x96f7, +0x956d,0x857e,0x78ca,0x7d2f,0x5121,0x5792,0x64c2,0x808b, +0x7c7b,0x6cea,0x68f1,0x695e,0x51b7,0x5398,0x68a8,0x7281, +0x9ece,0x7bf1,0x72f8,0x79bb,0x6f13,0x7406,0x674e,0x91cc, +0x9ca4,0x793c,0x8389,0x8354,0x540f,0x6817,0x4e3d,0x5389, +0x52b1,0x783e,0x5386,0x5229,0x5088,0x4f8b,0x4fd0,0x0000, +/* 0xc100 */ +0x7f56,0x7f59,0x7f5b,0x7f5c,0x7f5d,0x7f5e,0x7f60,0x7f63, +0x7f64,0x7f65,0x7f66,0x7f67,0x7f6b,0x7f6c,0x7f6d,0x7f6f, +0x7f70,0x7f73,0x7f75,0x7f76,0x7f77,0x7f78,0x7f7a,0x7f7b, +0x7f7c,0x7f7d,0x7f7f,0x7f80,0x7f82,0x7f83,0x7f84,0x7f85, +0x7f86,0x7f87,0x7f88,0x7f89,0x7f8b,0x7f8d,0x7f8f,0x7f90, +0x7f91,0x7f92,0x7f93,0x7f95,0x7f96,0x7f97,0x7f98,0x7f99, +0x7f9b,0x7f9c,0x7fa0,0x7fa2,0x7fa3,0x7fa5,0x7fa6,0x7fa8, +0x7fa9,0x7faa,0x7fab,0x7fac,0x7fad,0x7fae,0x7fb1,0x0000, +0x7fb3,0x7fb4,0x7fb5,0x7fb6,0x7fb7,0x7fba,0x7fbb,0x7fbe, +0x7fc0,0x7fc2,0x7fc3,0x7fc4,0x7fc6,0x7fc7,0x7fc8,0x7fc9, +0x7fcb,0x7fcd,0x7fcf,0x7fd0,0x7fd1,0x7fd2,0x7fd3,0x7fd6, +0x7fd7,0x7fd9,0x7fda,0x7fdb,0x7fdc,0x7fdd,0x7fde,0x7fe2, +0x7fe3,0x75e2,0x7acb,0x7c92,0x6ca5,0x96b6,0x529b,0x7483, +0x54e9,0x4fe9,0x8054,0x83b2,0x8fde,0x9570,0x5ec9,0x601c, +0x6d9f,0x5e18,0x655b,0x8138,0x94fe,0x604b,0x70bc,0x7ec3, +0x7cae,0x51c9,0x6881,0x7cb1,0x826f,0x4e24,0x8f86,0x91cf, +0x667e,0x4eae,0x8c05,0x64a9,0x804a,0x50da,0x7597,0x71ce, +0x5be5,0x8fbd,0x6f66,0x4e86,0x6482,0x9563,0x5ed6,0x6599, +0x5217,0x88c2,0x70c8,0x52a3,0x730e,0x7433,0x6797,0x78f7, +0x9716,0x4e34,0x90bb,0x9cde,0x6dcb,0x51db,0x8d41,0x541d, +0x62ce,0x73b2,0x83f1,0x96f6,0x9f84,0x94c3,0x4f36,0x7f9a, +0x51cc,0x7075,0x9675,0x5cad,0x9886,0x53e6,0x4ee4,0x6e9c, +0x7409,0x69b4,0x786b,0x998f,0x7559,0x5218,0x7624,0x6d41, +0x67f3,0x516d,0x9f99,0x804b,0x5499,0x7b3c,0x7abf,0x0000, +/* 0xc200 */ +0x7fe4,0x7fe7,0x7fe8,0x7fea,0x7feb,0x7fec,0x7fed,0x7fef, +0x7ff2,0x7ff4,0x7ff5,0x7ff6,0x7ff7,0x7ff8,0x7ff9,0x7ffa, +0x7ffd,0x7ffe,0x7fff,0x8002,0x8007,0x8008,0x8009,0x800a, +0x800e,0x800f,0x8011,0x8013,0x801a,0x801b,0x801d,0x801e, +0x801f,0x8021,0x8023,0x8024,0x802b,0x802c,0x802d,0x802e, +0x802f,0x8030,0x8032,0x8034,0x8039,0x803a,0x803c,0x803e, +0x8040,0x8041,0x8044,0x8045,0x8047,0x8048,0x8049,0x804e, +0x804f,0x8050,0x8051,0x8053,0x8055,0x8056,0x8057,0x0000, +0x8059,0x805b,0x805c,0x805d,0x805e,0x805f,0x8060,0x8061, +0x8062,0x8063,0x8064,0x8065,0x8066,0x8067,0x8068,0x806b, +0x806c,0x806d,0x806e,0x806f,0x8070,0x8072,0x8073,0x8074, +0x8075,0x8076,0x8077,0x8078,0x8079,0x807a,0x807b,0x807c, +0x807d,0x9686,0x5784,0x62e2,0x9647,0x697c,0x5a04,0x6402, +0x7bd3,0x6f0f,0x964b,0x82a6,0x5362,0x9885,0x5e90,0x7089, +0x63b3,0x5364,0x864f,0x9c81,0x9e93,0x788c,0x9732,0x8def, +0x8d42,0x9e7f,0x6f5e,0x7984,0x5f55,0x9646,0x622e,0x9a74, +0x5415,0x94dd,0x4fa3,0x65c5,0x5c65,0x5c61,0x7f15,0x8651, +0x6c2f,0x5f8b,0x7387,0x6ee4,0x7eff,0x5ce6,0x631b,0x5b6a, +0x6ee6,0x5375,0x4e71,0x63a0,0x7565,0x62a1,0x8f6e,0x4f26, +0x4ed1,0x6ca6,0x7eb6,0x8bba,0x841d,0x87ba,0x7f57,0x903b, +0x9523,0x7ba9,0x9aa1,0x88f8,0x843d,0x6d1b,0x9a86,0x7edc, +0x5988,0x9ebb,0x739b,0x7801,0x8682,0x9a6c,0x9a82,0x561b, +0x5417,0x57cb,0x4e70,0x9ea6,0x5356,0x8fc8,0x8109,0x7792, +0x9992,0x86ee,0x6ee1,0x8513,0x66fc,0x6162,0x6f2b,0x0000, +/* 0xc300 */ +0x807e,0x8081,0x8082,0x8085,0x8088,0x808a,0x808d,0x808e, +0x808f,0x8090,0x8091,0x8092,0x8094,0x8095,0x8097,0x8099, +0x809e,0x80a3,0x80a6,0x80a7,0x80a8,0x80ac,0x80b0,0x80b3, +0x80b5,0x80b6,0x80b8,0x80b9,0x80bb,0x80c5,0x80c7,0x80c8, +0x80c9,0x80ca,0x80cb,0x80cf,0x80d0,0x80d1,0x80d2,0x80d3, +0x80d4,0x80d5,0x80d8,0x80df,0x80e0,0x80e2,0x80e3,0x80e6, +0x80ee,0x80f5,0x80f7,0x80f9,0x80fb,0x80fe,0x80ff,0x8100, +0x8101,0x8103,0x8104,0x8105,0x8107,0x8108,0x810b,0x0000, +0x810c,0x8115,0x8117,0x8119,0x811b,0x811c,0x811d,0x811f, +0x8120,0x8121,0x8122,0x8123,0x8124,0x8125,0x8126,0x8127, +0x8128,0x8129,0x812a,0x812b,0x812d,0x812e,0x8130,0x8133, +0x8134,0x8135,0x8137,0x8139,0x813a,0x813b,0x813c,0x813d, +0x813f,0x8c29,0x8292,0x832b,0x76f2,0x6c13,0x5fd9,0x83bd, +0x732b,0x8305,0x951a,0x6bdb,0x77db,0x94c6,0x536f,0x8302, +0x5192,0x5e3d,0x8c8c,0x8d38,0x4e48,0x73ab,0x679a,0x6885, +0x9176,0x9709,0x7164,0x6ca1,0x7709,0x5a92,0x9541,0x6bcf, +0x7f8e,0x6627,0x5bd0,0x59b9,0x5a9a,0x95e8,0x95f7,0x4eec, +0x840c,0x8499,0x6aac,0x76df,0x9530,0x731b,0x68a6,0x5b5f, +0x772f,0x919a,0x9761,0x7cdc,0x8ff7,0x8c1c,0x5f25,0x7c73, +0x79d8,0x89c5,0x6ccc,0x871c,0x5bc6,0x5e42,0x68c9,0x7720, +0x7ef5,0x5195,0x514d,0x52c9,0x5a29,0x7f05,0x9762,0x82d7, +0x63cf,0x7784,0x85d0,0x79d2,0x6e3a,0x5e99,0x5999,0x8511, +0x706d,0x6c11,0x62bf,0x76bf,0x654f,0x60af,0x95fd,0x660e, +0x879f,0x9e23,0x94ed,0x540d,0x547d,0x8c2c,0x6478,0x0000, +/* 0xc400 */ +0x8140,0x8141,0x8142,0x8143,0x8144,0x8145,0x8147,0x8149, +0x814d,0x814e,0x814f,0x8152,0x8156,0x8157,0x8158,0x815b, +0x815c,0x815d,0x815e,0x815f,0x8161,0x8162,0x8163,0x8164, +0x8166,0x8168,0x816a,0x816b,0x816c,0x816f,0x8172,0x8173, +0x8175,0x8176,0x8177,0x8178,0x8181,0x8183,0x8184,0x8185, +0x8186,0x8187,0x8189,0x818b,0x818c,0x818d,0x818e,0x8190, +0x8192,0x8193,0x8194,0x8195,0x8196,0x8197,0x8199,0x819a, +0x819e,0x819f,0x81a0,0x81a1,0x81a2,0x81a4,0x81a5,0x0000, +0x81a7,0x81a9,0x81ab,0x81ac,0x81ad,0x81ae,0x81af,0x81b0, +0x81b1,0x81b2,0x81b4,0x81b5,0x81b6,0x81b7,0x81b8,0x81b9, +0x81bc,0x81bd,0x81be,0x81bf,0x81c4,0x81c5,0x81c7,0x81c8, +0x81c9,0x81cb,0x81cd,0x81ce,0x81cf,0x81d0,0x81d1,0x81d2, +0x81d3,0x6479,0x8611,0x6a21,0x819c,0x78e8,0x6469,0x9b54, +0x62b9,0x672b,0x83ab,0x58a8,0x9ed8,0x6cab,0x6f20,0x5bde, +0x964c,0x8c0b,0x725f,0x67d0,0x62c7,0x7261,0x4ea9,0x59c6, +0x6bcd,0x5893,0x66ae,0x5e55,0x52df,0x6155,0x6728,0x76ee, +0x7766,0x7267,0x7a46,0x62ff,0x54ea,0x5450,0x94a0,0x90a3, +0x5a1c,0x7eb3,0x6c16,0x4e43,0x5976,0x8010,0x5948,0x5357, +0x7537,0x96be,0x56ca,0x6320,0x8111,0x607c,0x95f9,0x6dd6, +0x5462,0x9981,0x5185,0x5ae9,0x80fd,0x59ae,0x9713,0x502a, +0x6ce5,0x5c3c,0x62df,0x4f60,0x533f,0x817b,0x9006,0x6eba, +0x852b,0x62c8,0x5e74,0x78be,0x64b5,0x637b,0x5ff5,0x5a18, +0x917f,0x9e1f,0x5c3f,0x634f,0x8042,0x5b7d,0x556e,0x954a, +0x954d,0x6d85,0x60a8,0x67e0,0x72de,0x51dd,0x5b81,0x0000, +/* 0xc500 */ +0x81d4,0x81d5,0x81d6,0x81d7,0x81d8,0x81d9,0x81da,0x81db, +0x81dc,0x81dd,0x81de,0x81df,0x81e0,0x81e1,0x81e2,0x81e4, +0x81e5,0x81e6,0x81e8,0x81e9,0x81eb,0x81ee,0x81ef,0x81f0, +0x81f1,0x81f2,0x81f5,0x81f6,0x81f7,0x81f8,0x81f9,0x81fa, +0x81fd,0x81ff,0x8203,0x8207,0x8208,0x8209,0x820a,0x820b, +0x820e,0x820f,0x8211,0x8213,0x8215,0x8216,0x8217,0x8218, +0x8219,0x821a,0x821d,0x8220,0x8224,0x8225,0x8226,0x8227, +0x8229,0x822e,0x8232,0x823a,0x823c,0x823d,0x823f,0x0000, +0x8240,0x8241,0x8242,0x8243,0x8245,0x8246,0x8248,0x824a, +0x824c,0x824d,0x824e,0x8250,0x8251,0x8252,0x8253,0x8254, +0x8255,0x8256,0x8257,0x8259,0x825b,0x825c,0x825d,0x825e, +0x8260,0x8261,0x8262,0x8263,0x8264,0x8265,0x8266,0x8267, +0x8269,0x62e7,0x6cde,0x725b,0x626d,0x94ae,0x7ebd,0x8113, +0x6d53,0x519c,0x5f04,0x5974,0x52aa,0x6012,0x5973,0x6696, +0x8650,0x759f,0x632a,0x61e6,0x7cef,0x8bfa,0x54e6,0x6b27, +0x9e25,0x6bb4,0x85d5,0x5455,0x5076,0x6ca4,0x556a,0x8db4, +0x722c,0x5e15,0x6015,0x7436,0x62cd,0x6392,0x724c,0x5f98, +0x6e43,0x6d3e,0x6500,0x6f58,0x76d8,0x78d0,0x76fc,0x7554, +0x5224,0x53db,0x4e53,0x5e9e,0x65c1,0x802a,0x80d6,0x629b, +0x5486,0x5228,0x70ae,0x888d,0x8dd1,0x6ce1,0x5478,0x80da, +0x57f9,0x88f4,0x8d54,0x966a,0x914d,0x4f69,0x6c9b,0x55b7, +0x76c6,0x7830,0x62a8,0x70f9,0x6f8e,0x5f6d,0x84ec,0x68da, +0x787c,0x7bf7,0x81a8,0x670b,0x9e4f,0x6367,0x78b0,0x576f, +0x7812,0x9739,0x6279,0x62ab,0x5288,0x7435,0x6bd7,0x0000, +/* 0xc600 */ +0x826a,0x826b,0x826c,0x826d,0x8271,0x8275,0x8276,0x8277, +0x8278,0x827b,0x827c,0x8280,0x8281,0x8283,0x8285,0x8286, +0x8287,0x8289,0x828c,0x8290,0x8293,0x8294,0x8295,0x8296, +0x829a,0x829b,0x829e,0x82a0,0x82a2,0x82a3,0x82a7,0x82b2, +0x82b5,0x82b6,0x82ba,0x82bb,0x82bc,0x82bf,0x82c0,0x82c2, +0x82c3,0x82c5,0x82c6,0x82c9,0x82d0,0x82d6,0x82d9,0x82da, +0x82dd,0x82e2,0x82e7,0x82e8,0x82e9,0x82ea,0x82ec,0x82ed, +0x82ee,0x82f0,0x82f2,0x82f3,0x82f5,0x82f6,0x82f8,0x0000, +0x82fa,0x82fc,0x82fd,0x82fe,0x82ff,0x8300,0x830a,0x830b, +0x830d,0x8310,0x8312,0x8313,0x8316,0x8318,0x8319,0x831d, +0x831e,0x831f,0x8320,0x8321,0x8322,0x8323,0x8324,0x8325, +0x8326,0x8329,0x832a,0x832e,0x8330,0x8332,0x8337,0x833b, +0x833d,0x5564,0x813e,0x75b2,0x76ae,0x5339,0x75de,0x50fb, +0x5c41,0x8b6c,0x7bc7,0x504f,0x7247,0x9a97,0x98d8,0x6f02, +0x74e2,0x7968,0x6487,0x77a5,0x62fc,0x9891,0x8d2b,0x54c1, +0x8058,0x4e52,0x576a,0x82f9,0x840d,0x5e73,0x51ed,0x74f6, +0x8bc4,0x5c4f,0x5761,0x6cfc,0x9887,0x5a46,0x7834,0x9b44, +0x8feb,0x7c95,0x5256,0x6251,0x94fa,0x4ec6,0x8386,0x8461, +0x83e9,0x84b2,0x57d4,0x6734,0x5703,0x666e,0x6d66,0x8c31, +0x66dd,0x7011,0x671f,0x6b3a,0x6816,0x621a,0x59bb,0x4e03, +0x51c4,0x6f06,0x67d2,0x6c8f,0x5176,0x68cb,0x5947,0x6b67, +0x7566,0x5d0e,0x8110,0x9f50,0x65d7,0x7948,0x7941,0x9a91, +0x8d77,0x5c82,0x4e5e,0x4f01,0x542f,0x5951,0x780c,0x5668, +0x6c14,0x8fc4,0x5f03,0x6c7d,0x6ce3,0x8bab,0x6390,0x0000, +/* 0xc700 */ +0x833e,0x833f,0x8341,0x8342,0x8344,0x8345,0x8348,0x834a, +0x834b,0x834c,0x834d,0x834e,0x8353,0x8355,0x8356,0x8357, +0x8358,0x8359,0x835d,0x8362,0x8370,0x8371,0x8372,0x8373, +0x8374,0x8375,0x8376,0x8379,0x837a,0x837e,0x837f,0x8380, +0x8381,0x8382,0x8383,0x8384,0x8387,0x8388,0x838a,0x838b, +0x838c,0x838d,0x838f,0x8390,0x8391,0x8394,0x8395,0x8396, +0x8397,0x8399,0x839a,0x839d,0x839f,0x83a1,0x83a2,0x83a3, +0x83a4,0x83a5,0x83a6,0x83a7,0x83ac,0x83ad,0x83ae,0x0000, +0x83af,0x83b5,0x83bb,0x83be,0x83bf,0x83c2,0x83c3,0x83c4, +0x83c6,0x83c8,0x83c9,0x83cb,0x83cd,0x83ce,0x83d0,0x83d1, +0x83d2,0x83d3,0x83d5,0x83d7,0x83d9,0x83da,0x83db,0x83de, +0x83e2,0x83e3,0x83e4,0x83e6,0x83e7,0x83e8,0x83eb,0x83ec, +0x83ed,0x6070,0x6d3d,0x7275,0x6266,0x948e,0x94c5,0x5343, +0x8fc1,0x7b7e,0x4edf,0x8c26,0x4e7e,0x9ed4,0x94b1,0x94b3, +0x524d,0x6f5c,0x9063,0x6d45,0x8c34,0x5811,0x5d4c,0x6b20, +0x6b49,0x67aa,0x545b,0x8154,0x7f8c,0x5899,0x8537,0x5f3a, +0x62a2,0x6a47,0x9539,0x6572,0x6084,0x6865,0x77a7,0x4e54, +0x4fa8,0x5de7,0x9798,0x64ac,0x7fd8,0x5ced,0x4fcf,0x7a8d, +0x5207,0x8304,0x4e14,0x602f,0x7a83,0x94a6,0x4fb5,0x4eb2, +0x79e6,0x7434,0x52e4,0x82b9,0x64d2,0x79bd,0x5bdd,0x6c81, +0x9752,0x8f7b,0x6c22,0x503e,0x537f,0x6e05,0x64ce,0x6674, +0x6c30,0x60c5,0x9877,0x8bf7,0x5e86,0x743c,0x7a77,0x79cb, +0x4e18,0x90b1,0x7403,0x6c42,0x56da,0x914b,0x6cc5,0x8d8b, +0x533a,0x86c6,0x66f2,0x8eaf,0x5c48,0x9a71,0x6e20,0x0000, +/* 0xc800 */ +0x83ee,0x83ef,0x83f3,0x83f4,0x83f5,0x83f6,0x83f7,0x83fa, +0x83fb,0x83fc,0x83fe,0x83ff,0x8400,0x8402,0x8405,0x8407, +0x8408,0x8409,0x840a,0x8410,0x8412,0x8413,0x8414,0x8415, +0x8416,0x8417,0x8419,0x841a,0x841b,0x841e,0x841f,0x8420, +0x8421,0x8422,0x8423,0x8429,0x842a,0x842b,0x842c,0x842d, +0x842e,0x842f,0x8430,0x8432,0x8433,0x8434,0x8435,0x8436, +0x8437,0x8439,0x843a,0x843b,0x843e,0x843f,0x8440,0x8441, +0x8442,0x8443,0x8444,0x8445,0x8447,0x8448,0x8449,0x0000, +0x844a,0x844b,0x844c,0x844d,0x844e,0x844f,0x8450,0x8452, +0x8453,0x8454,0x8455,0x8456,0x8458,0x845d,0x845e,0x845f, +0x8460,0x8462,0x8464,0x8465,0x8466,0x8467,0x8468,0x846a, +0x846e,0x846f,0x8470,0x8472,0x8474,0x8477,0x8479,0x847b, +0x847c,0x53d6,0x5a36,0x9f8b,0x8da3,0x53bb,0x5708,0x98a7, +0x6743,0x919b,0x6cc9,0x5168,0x75ca,0x62f3,0x72ac,0x5238, +0x529d,0x7f3a,0x7094,0x7638,0x5374,0x9e4a,0x69b7,0x786e, +0x96c0,0x88d9,0x7fa4,0x7136,0x71c3,0x5189,0x67d3,0x74e4, +0x58e4,0x6518,0x56b7,0x8ba9,0x9976,0x6270,0x7ed5,0x60f9, +0x70ed,0x58ec,0x4ec1,0x4eba,0x5fcd,0x97e7,0x4efb,0x8ba4, +0x5203,0x598a,0x7eab,0x6254,0x4ecd,0x65e5,0x620e,0x8338, +0x84c9,0x8363,0x878d,0x7194,0x6eb6,0x5bb9,0x7ed2,0x5197, +0x63c9,0x67d4,0x8089,0x8339,0x8815,0x5112,0x5b7a,0x5982, +0x8fb1,0x4e73,0x6c5d,0x5165,0x8925,0x8f6f,0x962e,0x854a, +0x745e,0x9510,0x95f0,0x6da6,0x82e5,0x5f31,0x6492,0x6d12, +0x8428,0x816e,0x9cc3,0x585e,0x8d5b,0x4e09,0x53c1,0x0000, +/* 0xc900 */ +0x847d,0x847e,0x847f,0x8480,0x8481,0x8483,0x8484,0x8485, +0x8486,0x848a,0x848d,0x848f,0x8490,0x8491,0x8492,0x8493, +0x8494,0x8495,0x8496,0x8498,0x849a,0x849b,0x849d,0x849e, +0x849f,0x84a0,0x84a2,0x84a3,0x84a4,0x84a5,0x84a6,0x84a7, +0x84a8,0x84a9,0x84aa,0x84ab,0x84ac,0x84ad,0x84ae,0x84b0, +0x84b1,0x84b3,0x84b5,0x84b6,0x84b7,0x84bb,0x84bc,0x84be, +0x84c0,0x84c2,0x84c3,0x84c5,0x84c6,0x84c7,0x84c8,0x84cb, +0x84cc,0x84ce,0x84cf,0x84d2,0x84d4,0x84d5,0x84d7,0x0000, +0x84d8,0x84d9,0x84da,0x84db,0x84dc,0x84de,0x84e1,0x84e2, +0x84e4,0x84e7,0x84e8,0x84e9,0x84ea,0x84eb,0x84ed,0x84ee, +0x84ef,0x84f1,0x84f2,0x84f3,0x84f4,0x84f5,0x84f6,0x84f7, +0x84f8,0x84f9,0x84fa,0x84fb,0x84fd,0x84fe,0x8500,0x8501, +0x8502,0x4f1e,0x6563,0x6851,0x55d3,0x4e27,0x6414,0x9a9a, +0x626b,0x5ac2,0x745f,0x8272,0x6da9,0x68ee,0x50e7,0x838e, +0x7802,0x6740,0x5239,0x6c99,0x7eb1,0x50bb,0x5565,0x715e, +0x7b5b,0x6652,0x73ca,0x82eb,0x6749,0x5c71,0x5220,0x717d, +0x886b,0x95ea,0x9655,0x64c5,0x8d61,0x81b3,0x5584,0x6c55, +0x6247,0x7f2e,0x5892,0x4f24,0x5546,0x8d4f,0x664c,0x4e0a, +0x5c1a,0x88f3,0x68a2,0x634e,0x7a0d,0x70e7,0x828d,0x52fa, +0x97f6,0x5c11,0x54e8,0x90b5,0x7ecd,0x5962,0x8d4a,0x86c7, +0x820c,0x820d,0x8d66,0x6444,0x5c04,0x6151,0x6d89,0x793e, +0x8bbe,0x7837,0x7533,0x547b,0x4f38,0x8eab,0x6df1,0x5a20, +0x7ec5,0x795e,0x6c88,0x5ba1,0x5a76,0x751a,0x80be,0x614e, +0x6e17,0x58f0,0x751f,0x7525,0x7272,0x5347,0x7ef3,0x0000, +/* 0xca00 */ +0x8503,0x8504,0x8505,0x8506,0x8507,0x8508,0x8509,0x850a, +0x850b,0x850d,0x850e,0x850f,0x8510,0x8512,0x8514,0x8515, +0x8516,0x8518,0x8519,0x851b,0x851c,0x851d,0x851e,0x8520, +0x8522,0x8523,0x8524,0x8525,0x8526,0x8527,0x8528,0x8529, +0x852a,0x852d,0x852e,0x852f,0x8530,0x8531,0x8532,0x8533, +0x8534,0x8535,0x8536,0x853e,0x853f,0x8540,0x8541,0x8542, +0x8544,0x8545,0x8546,0x8547,0x854b,0x854c,0x854d,0x854e, +0x854f,0x8550,0x8551,0x8552,0x8553,0x8554,0x8555,0x0000, +0x8557,0x8558,0x855a,0x855b,0x855c,0x855d,0x855f,0x8560, +0x8561,0x8562,0x8563,0x8565,0x8566,0x8567,0x8569,0x856a, +0x856b,0x856c,0x856d,0x856e,0x856f,0x8570,0x8571,0x8573, +0x8575,0x8576,0x8577,0x8578,0x857c,0x857d,0x857f,0x8580, +0x8581,0x7701,0x76db,0x5269,0x80dc,0x5723,0x5e08,0x5931, +0x72ee,0x65bd,0x6e7f,0x8bd7,0x5c38,0x8671,0x5341,0x77f3, +0x62fe,0x65f6,0x4ec0,0x98df,0x8680,0x5b9e,0x8bc6,0x53f2, +0x77e2,0x4f7f,0x5c4e,0x9a76,0x59cb,0x5f0f,0x793a,0x58eb, +0x4e16,0x67ff,0x4e8b,0x62ed,0x8a93,0x901d,0x52bf,0x662f, +0x55dc,0x566c,0x9002,0x4ed5,0x4f8d,0x91ca,0x9970,0x6c0f, +0x5e02,0x6043,0x5ba4,0x89c6,0x8bd5,0x6536,0x624b,0x9996, +0x5b88,0x5bff,0x6388,0x552e,0x53d7,0x7626,0x517d,0x852c, +0x67a2,0x68b3,0x6b8a,0x6292,0x8f93,0x53d4,0x8212,0x6dd1, +0x758f,0x4e66,0x8d4e,0x5b70,0x719f,0x85af,0x6691,0x66d9, +0x7f72,0x8700,0x9ecd,0x9f20,0x5c5e,0x672f,0x8ff0,0x6811, +0x675f,0x620d,0x7ad6,0x5885,0x5eb6,0x6570,0x6f31,0x0000, +/* 0xcb00 */ +0x8582,0x8583,0x8586,0x8588,0x8589,0x858a,0x858b,0x858c, +0x858d,0x858e,0x8590,0x8591,0x8592,0x8593,0x8594,0x8595, +0x8596,0x8597,0x8598,0x8599,0x859a,0x859d,0x859e,0x859f, +0x85a0,0x85a1,0x85a2,0x85a3,0x85a5,0x85a6,0x85a7,0x85a9, +0x85ab,0x85ac,0x85ad,0x85b1,0x85b2,0x85b3,0x85b4,0x85b5, +0x85b6,0x85b8,0x85ba,0x85bb,0x85bc,0x85bd,0x85be,0x85bf, +0x85c0,0x85c2,0x85c3,0x85c4,0x85c5,0x85c6,0x85c7,0x85c8, +0x85ca,0x85cb,0x85cc,0x85cd,0x85ce,0x85d1,0x85d2,0x0000, +0x85d4,0x85d6,0x85d7,0x85d8,0x85d9,0x85da,0x85db,0x85dd, +0x85de,0x85df,0x85e0,0x85e1,0x85e2,0x85e3,0x85e5,0x85e6, +0x85e7,0x85e8,0x85ea,0x85eb,0x85ec,0x85ed,0x85ee,0x85ef, +0x85f0,0x85f1,0x85f2,0x85f3,0x85f4,0x85f5,0x85f6,0x85f7, +0x85f8,0x6055,0x5237,0x800d,0x6454,0x8870,0x7529,0x5e05, +0x6813,0x62f4,0x971c,0x53cc,0x723d,0x8c01,0x6c34,0x7761, +0x7a0e,0x542e,0x77ac,0x987a,0x821c,0x8bf4,0x7855,0x6714, +0x70c1,0x65af,0x6495,0x5636,0x601d,0x79c1,0x53f8,0x4e1d, +0x6b7b,0x8086,0x5bfa,0x55e3,0x56db,0x4f3a,0x4f3c,0x9972, +0x5df3,0x677e,0x8038,0x6002,0x9882,0x9001,0x5b8b,0x8bbc, +0x8bf5,0x641c,0x8258,0x64de,0x55fd,0x82cf,0x9165,0x4fd7, +0x7d20,0x901f,0x7c9f,0x50f3,0x5851,0x6eaf,0x5bbf,0x8bc9, +0x8083,0x9178,0x849c,0x7b97,0x867d,0x968b,0x968f,0x7ee5, +0x9ad3,0x788e,0x5c81,0x7a57,0x9042,0x96a7,0x795f,0x5b59, +0x635f,0x7b0b,0x84d1,0x68ad,0x5506,0x7f29,0x7410,0x7d22, +0x9501,0x6240,0x584c,0x4ed6,0x5b83,0x5979,0x5854,0x0000, +/* 0xcc00 */ +0x85f9,0x85fa,0x85fc,0x85fd,0x85fe,0x8600,0x8601,0x8602, +0x8603,0x8604,0x8606,0x8607,0x8608,0x8609,0x860a,0x860b, +0x860c,0x860d,0x860e,0x860f,0x8610,0x8612,0x8613,0x8614, +0x8615,0x8617,0x8618,0x8619,0x861a,0x861b,0x861c,0x861d, +0x861e,0x861f,0x8620,0x8621,0x8622,0x8623,0x8624,0x8625, +0x8626,0x8628,0x862a,0x862b,0x862c,0x862d,0x862e,0x862f, +0x8630,0x8631,0x8632,0x8633,0x8634,0x8635,0x8636,0x8637, +0x8639,0x863a,0x863b,0x863d,0x863e,0x863f,0x8640,0x0000, +0x8641,0x8642,0x8643,0x8644,0x8645,0x8646,0x8647,0x8648, +0x8649,0x864a,0x864b,0x864c,0x8652,0x8653,0x8655,0x8656, +0x8657,0x8658,0x8659,0x865b,0x865c,0x865d,0x865f,0x8660, +0x8661,0x8663,0x8664,0x8665,0x8666,0x8667,0x8668,0x8669, +0x866a,0x736d,0x631e,0x8e4b,0x8e0f,0x80ce,0x82d4,0x62ac, +0x53f0,0x6cf0,0x915e,0x592a,0x6001,0x6c70,0x574d,0x644a, +0x8d2a,0x762b,0x6ee9,0x575b,0x6a80,0x75f0,0x6f6d,0x8c2d, +0x8c08,0x5766,0x6bef,0x8892,0x78b3,0x63a2,0x53f9,0x70ad, +0x6c64,0x5858,0x642a,0x5802,0x68e0,0x819b,0x5510,0x7cd6, +0x5018,0x8eba,0x6dcc,0x8d9f,0x70eb,0x638f,0x6d9b,0x6ed4, +0x7ee6,0x8404,0x6843,0x9003,0x6dd8,0x9676,0x8ba8,0x5957, +0x7279,0x85e4,0x817e,0x75bc,0x8a8a,0x68af,0x5254,0x8e22, +0x9511,0x63d0,0x9898,0x8e44,0x557c,0x4f53,0x66ff,0x568f, +0x60d5,0x6d95,0x5243,0x5c49,0x5929,0x6dfb,0x586b,0x7530, +0x751c,0x606c,0x8214,0x8146,0x6311,0x6761,0x8fe2,0x773a, +0x8df3,0x8d34,0x94c1,0x5e16,0x5385,0x542c,0x70c3,0x0000, +/* 0xcd00 */ +0x866d,0x866f,0x8670,0x8672,0x8673,0x8674,0x8675,0x8676, +0x8677,0x8678,0x8683,0x8684,0x8685,0x8686,0x8687,0x8688, +0x8689,0x868e,0x868f,0x8690,0x8691,0x8692,0x8694,0x8696, +0x8697,0x8698,0x8699,0x869a,0x869b,0x869e,0x869f,0x86a0, +0x86a1,0x86a2,0x86a5,0x86a6,0x86ab,0x86ad,0x86ae,0x86b2, +0x86b3,0x86b7,0x86b8,0x86b9,0x86bb,0x86bc,0x86bd,0x86be, +0x86bf,0x86c1,0x86c2,0x86c3,0x86c5,0x86c8,0x86cc,0x86cd, +0x86d2,0x86d3,0x86d5,0x86d6,0x86d7,0x86da,0x86dc,0x0000, +0x86dd,0x86e0,0x86e1,0x86e2,0x86e3,0x86e5,0x86e6,0x86e7, +0x86e8,0x86ea,0x86eb,0x86ec,0x86ef,0x86f5,0x86f6,0x86f7, +0x86fa,0x86fb,0x86fc,0x86fd,0x86ff,0x8701,0x8704,0x8705, +0x8706,0x870b,0x870c,0x870e,0x870f,0x8710,0x8711,0x8714, +0x8716,0x6c40,0x5ef7,0x505c,0x4ead,0x5ead,0x633a,0x8247, +0x901a,0x6850,0x916e,0x77b3,0x540c,0x94dc,0x5f64,0x7ae5, +0x6876,0x6345,0x7b52,0x7edf,0x75db,0x5077,0x6295,0x5934, +0x900f,0x51f8,0x79c3,0x7a81,0x56fe,0x5f92,0x9014,0x6d82, +0x5c60,0x571f,0x5410,0x5154,0x6e4d,0x56e2,0x63a8,0x9893, +0x817f,0x8715,0x892a,0x9000,0x541e,0x5c6f,0x81c0,0x62d6, +0x6258,0x8131,0x9e35,0x9640,0x9a6e,0x9a7c,0x692d,0x59a5, +0x62d3,0x553e,0x6316,0x54c7,0x86d9,0x6d3c,0x5a03,0x74e6, +0x889c,0x6b6a,0x5916,0x8c4c,0x5f2f,0x6e7e,0x73a9,0x987d, +0x4e38,0x70f7,0x5b8c,0x7897,0x633d,0x665a,0x7696,0x60cb, +0x5b9b,0x5a49,0x4e07,0x8155,0x6c6a,0x738b,0x4ea1,0x6789, +0x7f51,0x5f80,0x65fa,0x671b,0x5fd8,0x5984,0x5a01,0x0000, +/* 0xce00 */ +0x8719,0x871b,0x871d,0x871f,0x8720,0x8724,0x8726,0x8727, +0x8728,0x872a,0x872b,0x872c,0x872d,0x872f,0x8730,0x8732, +0x8733,0x8735,0x8736,0x8738,0x8739,0x873a,0x873c,0x873d, +0x8740,0x8741,0x8742,0x8743,0x8744,0x8745,0x8746,0x874a, +0x874b,0x874d,0x874f,0x8750,0x8751,0x8752,0x8754,0x8755, +0x8756,0x8758,0x875a,0x875b,0x875c,0x875d,0x875e,0x875f, +0x8761,0x8762,0x8766,0x8767,0x8768,0x8769,0x876a,0x876b, +0x876c,0x876d,0x876f,0x8771,0x8772,0x8773,0x8775,0x0000, +0x8777,0x8778,0x8779,0x877a,0x877f,0x8780,0x8781,0x8784, +0x8786,0x8787,0x8789,0x878a,0x878c,0x878e,0x878f,0x8790, +0x8791,0x8792,0x8794,0x8795,0x8796,0x8798,0x8799,0x879a, +0x879b,0x879c,0x879d,0x879e,0x87a0,0x87a1,0x87a2,0x87a3, +0x87a4,0x5dcd,0x5fae,0x5371,0x97e6,0x8fdd,0x6845,0x56f4, +0x552f,0x60df,0x4e3a,0x6f4d,0x7ef4,0x82c7,0x840e,0x59d4, +0x4f1f,0x4f2a,0x5c3e,0x7eac,0x672a,0x851a,0x5473,0x754f, +0x80c3,0x5582,0x9b4f,0x4f4d,0x6e2d,0x8c13,0x5c09,0x6170, +0x536b,0x761f,0x6e29,0x868a,0x6587,0x95fb,0x7eb9,0x543b, +0x7a33,0x7d0a,0x95ee,0x55e1,0x7fc1,0x74ee,0x631d,0x8717, +0x6da1,0x7a9d,0x6211,0x65a1,0x5367,0x63e1,0x6c83,0x5deb, +0x545c,0x94a8,0x4e4c,0x6c61,0x8bec,0x5c4b,0x65e0,0x829c, +0x68a7,0x543e,0x5434,0x6bcb,0x6b66,0x4e94,0x6342,0x5348, +0x821e,0x4f0d,0x4fae,0x575e,0x620a,0x96fe,0x6664,0x7269, +0x52ff,0x52a1,0x609f,0x8bef,0x6614,0x7199,0x6790,0x897f, +0x7852,0x77fd,0x6670,0x563b,0x5438,0x9521,0x727a,0x0000, +/* 0xcf00 */ +0x87a5,0x87a6,0x87a7,0x87a9,0x87aa,0x87ae,0x87b0,0x87b1, +0x87b2,0x87b4,0x87b6,0x87b7,0x87b8,0x87b9,0x87bb,0x87bc, +0x87be,0x87bf,0x87c1,0x87c2,0x87c3,0x87c4,0x87c5,0x87c7, +0x87c8,0x87c9,0x87cc,0x87cd,0x87ce,0x87cf,0x87d0,0x87d4, +0x87d5,0x87d6,0x87d7,0x87d8,0x87d9,0x87da,0x87dc,0x87dd, +0x87de,0x87df,0x87e1,0x87e2,0x87e3,0x87e4,0x87e6,0x87e7, +0x87e8,0x87e9,0x87eb,0x87ec,0x87ed,0x87ef,0x87f0,0x87f1, +0x87f2,0x87f3,0x87f4,0x87f5,0x87f6,0x87f7,0x87f8,0x0000, +0x87fa,0x87fb,0x87fc,0x87fd,0x87ff,0x8800,0x8801,0x8802, +0x8804,0x8805,0x8806,0x8807,0x8808,0x8809,0x880b,0x880c, +0x880d,0x880e,0x880f,0x8810,0x8811,0x8812,0x8814,0x8817, +0x8818,0x8819,0x881a,0x881c,0x881d,0x881e,0x881f,0x8820, +0x8823,0x7a00,0x606f,0x5e0c,0x6089,0x819d,0x5915,0x60dc, +0x7184,0x70ef,0x6eaa,0x6c50,0x7280,0x6a84,0x88ad,0x5e2d, +0x4e60,0x5ab3,0x559c,0x94e3,0x6d17,0x7cfb,0x9699,0x620f, +0x7ec6,0x778e,0x867e,0x5323,0x971e,0x8f96,0x6687,0x5ce1, +0x4fa0,0x72ed,0x4e0b,0x53a6,0x590f,0x5413,0x6380,0x9528, +0x5148,0x4ed9,0x9c9c,0x7ea4,0x54b8,0x8d24,0x8854,0x8237, +0x95f2,0x6d8e,0x5f26,0x5acc,0x663e,0x9669,0x73b0,0x732e, +0x53bf,0x817a,0x9985,0x7fa1,0x5baa,0x9677,0x9650,0x7ebf, +0x76f8,0x53a2,0x9576,0x9999,0x7bb1,0x8944,0x6e58,0x4e61, +0x7fd4,0x7965,0x8be6,0x60f3,0x54cd,0x4eab,0x9879,0x5df7, +0x6a61,0x50cf,0x5411,0x8c61,0x8427,0x785d,0x9704,0x524a, +0x54ee,0x56a3,0x9500,0x6d88,0x5bb5,0x6dc6,0x6653,0x0000, +/* 0xd000 */ +0x8824,0x8825,0x8826,0x8827,0x8828,0x8829,0x882a,0x882b, +0x882c,0x882d,0x882e,0x882f,0x8830,0x8831,0x8833,0x8834, +0x8835,0x8836,0x8837,0x8838,0x883a,0x883b,0x883d,0x883e, +0x883f,0x8841,0x8842,0x8843,0x8846,0x8847,0x8848,0x8849, +0x884a,0x884b,0x884e,0x884f,0x8850,0x8851,0x8852,0x8853, +0x8855,0x8856,0x8858,0x885a,0x885b,0x885c,0x885d,0x885e, +0x885f,0x8860,0x8866,0x8867,0x886a,0x886d,0x886f,0x8871, +0x8873,0x8874,0x8875,0x8876,0x8878,0x8879,0x887a,0x0000, +0x887b,0x887c,0x8880,0x8883,0x8886,0x8887,0x8889,0x888a, +0x888c,0x888e,0x888f,0x8890,0x8891,0x8893,0x8894,0x8895, +0x8897,0x8898,0x8899,0x889a,0x889b,0x889d,0x889e,0x889f, +0x88a0,0x88a1,0x88a3,0x88a5,0x88a6,0x88a7,0x88a8,0x88a9, +0x88aa,0x5c0f,0x5b5d,0x6821,0x8096,0x5578,0x7b11,0x6548, +0x6954,0x4e9b,0x6b47,0x874e,0x978b,0x534f,0x631f,0x643a, +0x90aa,0x659c,0x80c1,0x8c10,0x5199,0x68b0,0x5378,0x87f9, +0x61c8,0x6cc4,0x6cfb,0x8c22,0x5c51,0x85aa,0x82af,0x950c, +0x6b23,0x8f9b,0x65b0,0x5ffb,0x5fc3,0x4fe1,0x8845,0x661f, +0x8165,0x7329,0x60fa,0x5174,0x5211,0x578b,0x5f62,0x90a2, +0x884c,0x9192,0x5e78,0x674f,0x6027,0x59d3,0x5144,0x51f6, +0x80f8,0x5308,0x6c79,0x96c4,0x718a,0x4f11,0x4fee,0x7f9e, +0x673d,0x55c5,0x9508,0x79c0,0x8896,0x7ee3,0x589f,0x620c, +0x9700,0x865a,0x5618,0x987b,0x5f90,0x8bb8,0x84c4,0x9157, +0x53d9,0x65ed,0x5e8f,0x755c,0x6064,0x7d6e,0x5a7f,0x7eea, +0x7eed,0x8f69,0x55a7,0x5ba3,0x60ac,0x65cb,0x7384,0x0000, +/* 0xd100 */ +0x88ac,0x88ae,0x88af,0x88b0,0x88b2,0x88b3,0x88b4,0x88b5, +0x88b6,0x88b8,0x88b9,0x88ba,0x88bb,0x88bd,0x88be,0x88bf, +0x88c0,0x88c3,0x88c4,0x88c7,0x88c8,0x88ca,0x88cb,0x88cc, +0x88cd,0x88cf,0x88d0,0x88d1,0x88d3,0x88d6,0x88d7,0x88da, +0x88db,0x88dc,0x88dd,0x88de,0x88e0,0x88e1,0x88e6,0x88e7, +0x88e9,0x88ea,0x88eb,0x88ec,0x88ed,0x88ee,0x88ef,0x88f2, +0x88f5,0x88f6,0x88f7,0x88fa,0x88fb,0x88fd,0x88ff,0x8900, +0x8901,0x8903,0x8904,0x8905,0x8906,0x8907,0x8908,0x0000, +0x8909,0x890b,0x890c,0x890d,0x890e,0x890f,0x8911,0x8914, +0x8915,0x8916,0x8917,0x8918,0x891c,0x891d,0x891e,0x891f, +0x8920,0x8922,0x8923,0x8924,0x8926,0x8927,0x8928,0x8929, +0x892c,0x892d,0x892e,0x892f,0x8931,0x8932,0x8933,0x8935, +0x8937,0x9009,0x7663,0x7729,0x7eda,0x9774,0x859b,0x5b66, +0x7a74,0x96ea,0x8840,0x52cb,0x718f,0x5faa,0x65ec,0x8be2, +0x5bfb,0x9a6f,0x5de1,0x6b89,0x6c5b,0x8bad,0x8baf,0x900a, +0x8fc5,0x538b,0x62bc,0x9e26,0x9e2d,0x5440,0x4e2b,0x82bd, +0x7259,0x869c,0x5d16,0x8859,0x6daf,0x96c5,0x54d1,0x4e9a, +0x8bb6,0x7109,0x54bd,0x9609,0x70df,0x6df9,0x76d0,0x4e25, +0x7814,0x8712,0x5ca9,0x5ef6,0x8a00,0x989c,0x960e,0x708e, +0x6cbf,0x5944,0x63a9,0x773c,0x884d,0x6f14,0x8273,0x5830, +0x71d5,0x538c,0x781a,0x96c1,0x5501,0x5f66,0x7130,0x5bb4, +0x8c1a,0x9a8c,0x6b83,0x592e,0x9e2f,0x79e7,0x6768,0x626c, +0x4f6f,0x75a1,0x7f8a,0x6d0b,0x9633,0x6c27,0x4ef0,0x75d2, +0x517b,0x6837,0x6f3e,0x9080,0x8170,0x5996,0x7476,0x0000, +/* 0xd200 */ +0x8938,0x8939,0x893a,0x893b,0x893c,0x893d,0x893e,0x893f, +0x8940,0x8942,0x8943,0x8945,0x8946,0x8947,0x8948,0x8949, +0x894a,0x894b,0x894c,0x894d,0x894e,0x894f,0x8950,0x8951, +0x8952,0x8953,0x8954,0x8955,0x8956,0x8957,0x8958,0x8959, +0x895a,0x895b,0x895c,0x895d,0x8960,0x8961,0x8962,0x8963, +0x8964,0x8965,0x8967,0x8968,0x8969,0x896a,0x896b,0x896c, +0x896d,0x896e,0x896f,0x8970,0x8971,0x8972,0x8973,0x8974, +0x8975,0x8976,0x8977,0x8978,0x8979,0x897a,0x897c,0x0000, +0x897d,0x897e,0x8980,0x8982,0x8984,0x8985,0x8987,0x8988, +0x8989,0x898a,0x898b,0x898c,0x898d,0x898e,0x898f,0x8990, +0x8991,0x8992,0x8993,0x8994,0x8995,0x8996,0x8997,0x8998, +0x8999,0x899a,0x899b,0x899c,0x899d,0x899e,0x899f,0x89a0, +0x89a1,0x6447,0x5c27,0x9065,0x7a91,0x8c23,0x59da,0x54ac, +0x8200,0x836f,0x8981,0x8000,0x6930,0x564e,0x8036,0x7237, +0x91ce,0x51b6,0x4e5f,0x9875,0x6396,0x4e1a,0x53f6,0x66f3, +0x814b,0x591c,0x6db2,0x4e00,0x58f9,0x533b,0x63d6,0x94f1, +0x4f9d,0x4f0a,0x8863,0x9890,0x5937,0x9057,0x79fb,0x4eea, +0x80f0,0x7591,0x6c82,0x5b9c,0x59e8,0x5f5d,0x6905,0x8681, +0x501a,0x5df2,0x4e59,0x77e3,0x4ee5,0x827a,0x6291,0x6613, +0x9091,0x5c79,0x4ebf,0x5f79,0x81c6,0x9038,0x8084,0x75ab, +0x4ea6,0x88d4,0x610f,0x6bc5,0x5fc6,0x4e49,0x76ca,0x6ea2, +0x8be3,0x8bae,0x8c0a,0x8bd1,0x5f02,0x7ffc,0x7fcc,0x7ece, +0x8335,0x836b,0x56e0,0x6bb7,0x97f3,0x9634,0x59fb,0x541f, +0x94f6,0x6deb,0x5bc5,0x996e,0x5c39,0x5f15,0x9690,0x0000, +/* 0xd300 */ +0x89a2,0x89a3,0x89a4,0x89a5,0x89a6,0x89a7,0x89a8,0x89a9, +0x89aa,0x89ab,0x89ac,0x89ad,0x89ae,0x89af,0x89b0,0x89b1, +0x89b2,0x89b3,0x89b4,0x89b5,0x89b6,0x89b7,0x89b8,0x89b9, +0x89ba,0x89bb,0x89bc,0x89bd,0x89be,0x89bf,0x89c0,0x89c3, +0x89cd,0x89d3,0x89d4,0x89d5,0x89d7,0x89d8,0x89d9,0x89db, +0x89dd,0x89df,0x89e0,0x89e1,0x89e2,0x89e4,0x89e7,0x89e8, +0x89e9,0x89ea,0x89ec,0x89ed,0x89ee,0x89f0,0x89f1,0x89f2, +0x89f4,0x89f5,0x89f6,0x89f7,0x89f8,0x89f9,0x89fa,0x0000, +0x89fb,0x89fc,0x89fd,0x89fe,0x89ff,0x8a01,0x8a02,0x8a03, +0x8a04,0x8a05,0x8a06,0x8a08,0x8a09,0x8a0a,0x8a0b,0x8a0c, +0x8a0d,0x8a0e,0x8a0f,0x8a10,0x8a11,0x8a12,0x8a13,0x8a14, +0x8a15,0x8a16,0x8a17,0x8a18,0x8a19,0x8a1a,0x8a1b,0x8a1c, +0x8a1d,0x5370,0x82f1,0x6a31,0x5a74,0x9e70,0x5e94,0x7f28, +0x83b9,0x8424,0x8425,0x8367,0x8747,0x8fce,0x8d62,0x76c8, +0x5f71,0x9896,0x786c,0x6620,0x54df,0x62e5,0x4f63,0x81c3, +0x75c8,0x5eb8,0x96cd,0x8e0a,0x86f9,0x548f,0x6cf3,0x6d8c, +0x6c38,0x607f,0x52c7,0x7528,0x5e7d,0x4f18,0x60a0,0x5fe7, +0x5c24,0x7531,0x90ae,0x94c0,0x72b9,0x6cb9,0x6e38,0x9149, +0x6709,0x53cb,0x53f3,0x4f51,0x91c9,0x8bf1,0x53c8,0x5e7c, +0x8fc2,0x6de4,0x4e8e,0x76c2,0x6986,0x865e,0x611a,0x8206, +0x4f59,0x4fde,0x903e,0x9c7c,0x6109,0x6e1d,0x6e14,0x9685, +0x4e88,0x5a31,0x96e8,0x4e0e,0x5c7f,0x79b9,0x5b87,0x8bed, +0x7fbd,0x7389,0x57df,0x828b,0x90c1,0x5401,0x9047,0x55bb, +0x5cea,0x5fa1,0x6108,0x6b32,0x72f1,0x80b2,0x8a89,0x0000, +/* 0xd400 */ +0x8a1e,0x8a1f,0x8a20,0x8a21,0x8a22,0x8a23,0x8a24,0x8a25, +0x8a26,0x8a27,0x8a28,0x8a29,0x8a2a,0x8a2b,0x8a2c,0x8a2d, +0x8a2e,0x8a2f,0x8a30,0x8a31,0x8a32,0x8a33,0x8a34,0x8a35, +0x8a36,0x8a37,0x8a38,0x8a39,0x8a3a,0x8a3b,0x8a3c,0x8a3d, +0x8a3f,0x8a40,0x8a41,0x8a42,0x8a43,0x8a44,0x8a45,0x8a46, +0x8a47,0x8a49,0x8a4a,0x8a4b,0x8a4c,0x8a4d,0x8a4e,0x8a4f, +0x8a50,0x8a51,0x8a52,0x8a53,0x8a54,0x8a55,0x8a56,0x8a57, +0x8a58,0x8a59,0x8a5a,0x8a5b,0x8a5c,0x8a5d,0x8a5e,0x0000, +0x8a5f,0x8a60,0x8a61,0x8a62,0x8a63,0x8a64,0x8a65,0x8a66, +0x8a67,0x8a68,0x8a69,0x8a6a,0x8a6b,0x8a6c,0x8a6d,0x8a6e, +0x8a6f,0x8a70,0x8a71,0x8a72,0x8a73,0x8a74,0x8a75,0x8a76, +0x8a77,0x8a78,0x8a7a,0x8a7b,0x8a7c,0x8a7d,0x8a7e,0x8a7f, +0x8a80,0x6d74,0x5bd3,0x88d5,0x9884,0x8c6b,0x9a6d,0x9e33, +0x6e0a,0x51a4,0x5143,0x57a3,0x8881,0x539f,0x63f4,0x8f95, +0x56ed,0x5458,0x5706,0x733f,0x6e90,0x7f18,0x8fdc,0x82d1, +0x613f,0x6028,0x9662,0x66f0,0x7ea6,0x8d8a,0x8dc3,0x94a5, +0x5cb3,0x7ca4,0x6708,0x60a6,0x9605,0x8018,0x4e91,0x90e7, +0x5300,0x9668,0x5141,0x8fd0,0x8574,0x915d,0x6655,0x97f5, +0x5b55,0x531d,0x7838,0x6742,0x683d,0x54c9,0x707e,0x5bb0, +0x8f7d,0x518d,0x5728,0x54b1,0x6512,0x6682,0x8d5e,0x8d43, +0x810f,0x846c,0x906d,0x7cdf,0x51ff,0x85fb,0x67a3,0x65e9, +0x6fa1,0x86a4,0x8e81,0x566a,0x9020,0x7682,0x7076,0x71e5, +0x8d23,0x62e9,0x5219,0x6cfd,0x8d3c,0x600e,0x589e,0x618e, +0x66fe,0x8d60,0x624e,0x55b3,0x6e23,0x672d,0x8f67,0x0000, +/* 0xd500 */ +0x8a81,0x8a82,0x8a83,0x8a84,0x8a85,0x8a86,0x8a87,0x8a88, +0x8a8b,0x8a8c,0x8a8d,0x8a8e,0x8a8f,0x8a90,0x8a91,0x8a92, +0x8a94,0x8a95,0x8a96,0x8a97,0x8a98,0x8a99,0x8a9a,0x8a9b, +0x8a9c,0x8a9d,0x8a9e,0x8a9f,0x8aa0,0x8aa1,0x8aa2,0x8aa3, +0x8aa4,0x8aa5,0x8aa6,0x8aa7,0x8aa8,0x8aa9,0x8aaa,0x8aab, +0x8aac,0x8aad,0x8aae,0x8aaf,0x8ab0,0x8ab1,0x8ab2,0x8ab3, +0x8ab4,0x8ab5,0x8ab6,0x8ab7,0x8ab8,0x8ab9,0x8aba,0x8abb, +0x8abc,0x8abd,0x8abe,0x8abf,0x8ac0,0x8ac1,0x8ac2,0x0000, +0x8ac3,0x8ac4,0x8ac5,0x8ac6,0x8ac7,0x8ac8,0x8ac9,0x8aca, +0x8acb,0x8acc,0x8acd,0x8ace,0x8acf,0x8ad0,0x8ad1,0x8ad2, +0x8ad3,0x8ad4,0x8ad5,0x8ad6,0x8ad7,0x8ad8,0x8ad9,0x8ada, +0x8adb,0x8adc,0x8add,0x8ade,0x8adf,0x8ae0,0x8ae1,0x8ae2, +0x8ae3,0x94e1,0x95f8,0x7728,0x6805,0x69a8,0x548b,0x4e4d, +0x70b8,0x8bc8,0x6458,0x658b,0x5b85,0x7a84,0x503a,0x5be8, +0x77bb,0x6be1,0x8a79,0x7c98,0x6cbe,0x76cf,0x65a9,0x8f97, +0x5d2d,0x5c55,0x8638,0x6808,0x5360,0x6218,0x7ad9,0x6e5b, +0x7efd,0x6a1f,0x7ae0,0x5f70,0x6f33,0x5f20,0x638c,0x6da8, +0x6756,0x4e08,0x5e10,0x8d26,0x4ed7,0x80c0,0x7634,0x969c, +0x62db,0x662d,0x627e,0x6cbc,0x8d75,0x7167,0x7f69,0x5146, +0x8087,0x53ec,0x906e,0x6298,0x54f2,0x86f0,0x8f99,0x8005, +0x9517,0x8517,0x8fd9,0x6d59,0x73cd,0x659f,0x771f,0x7504, +0x7827,0x81fb,0x8d1e,0x9488,0x4fa6,0x6795,0x75b9,0x8bca, +0x9707,0x632f,0x9547,0x9635,0x84b8,0x6323,0x7741,0x5f81, +0x72f0,0x4e89,0x6014,0x6574,0x62ef,0x6b63,0x653f,0x0000, +/* 0xd600 */ +0x8ae4,0x8ae5,0x8ae6,0x8ae7,0x8ae8,0x8ae9,0x8aea,0x8aeb, +0x8aec,0x8aed,0x8aee,0x8aef,0x8af0,0x8af1,0x8af2,0x8af3, +0x8af4,0x8af5,0x8af6,0x8af7,0x8af8,0x8af9,0x8afa,0x8afb, +0x8afc,0x8afd,0x8afe,0x8aff,0x8b00,0x8b01,0x8b02,0x8b03, +0x8b04,0x8b05,0x8b06,0x8b08,0x8b09,0x8b0a,0x8b0b,0x8b0c, +0x8b0d,0x8b0e,0x8b0f,0x8b10,0x8b11,0x8b12,0x8b13,0x8b14, +0x8b15,0x8b16,0x8b17,0x8b18,0x8b19,0x8b1a,0x8b1b,0x8b1c, +0x8b1d,0x8b1e,0x8b1f,0x8b20,0x8b21,0x8b22,0x8b23,0x0000, +0x8b24,0x8b25,0x8b27,0x8b28,0x8b29,0x8b2a,0x8b2b,0x8b2c, +0x8b2d,0x8b2e,0x8b2f,0x8b30,0x8b31,0x8b32,0x8b33,0x8b34, +0x8b35,0x8b36,0x8b37,0x8b38,0x8b39,0x8b3a,0x8b3b,0x8b3c, +0x8b3d,0x8b3e,0x8b3f,0x8b40,0x8b41,0x8b42,0x8b43,0x8b44, +0x8b45,0x5e27,0x75c7,0x90d1,0x8bc1,0x829d,0x679d,0x652f, +0x5431,0x8718,0x77e5,0x80a2,0x8102,0x6c41,0x4e4b,0x7ec7, +0x804c,0x76f4,0x690d,0x6b96,0x6267,0x503c,0x4f84,0x5740, +0x6307,0x6b62,0x8dbe,0x53ea,0x65e8,0x7eb8,0x5fd7,0x631a, +0x63b7,0x81f3,0x81f4,0x7f6e,0x5e1c,0x5cd9,0x5236,0x667a, +0x79e9,0x7a1a,0x8d28,0x7099,0x75d4,0x6ede,0x6cbb,0x7a92, +0x4e2d,0x76c5,0x5fe0,0x949f,0x8877,0x7ec8,0x79cd,0x80bf, +0x91cd,0x4ef2,0x4f17,0x821f,0x5468,0x5dde,0x6d32,0x8bcc, +0x7ca5,0x8f74,0x8098,0x5e1a,0x5492,0x76b1,0x5b99,0x663c, +0x9aa4,0x73e0,0x682a,0x86db,0x6731,0x732a,0x8bf8,0x8bdb, +0x9010,0x7af9,0x70db,0x716e,0x62c4,0x77a9,0x5631,0x4e3b, +0x8457,0x67f1,0x52a9,0x86c0,0x8d2e,0x94f8,0x7b51,0x0000, +/* 0xd700 */ +0x8b46,0x8b47,0x8b48,0x8b49,0x8b4a,0x8b4b,0x8b4c,0x8b4d, +0x8b4e,0x8b4f,0x8b50,0x8b51,0x8b52,0x8b53,0x8b54,0x8b55, +0x8b56,0x8b57,0x8b58,0x8b59,0x8b5a,0x8b5b,0x8b5c,0x8b5d, +0x8b5e,0x8b5f,0x8b60,0x8b61,0x8b62,0x8b63,0x8b64,0x8b65, +0x8b67,0x8b68,0x8b69,0x8b6a,0x8b6b,0x8b6d,0x8b6e,0x8b6f, +0x8b70,0x8b71,0x8b72,0x8b73,0x8b74,0x8b75,0x8b76,0x8b77, +0x8b78,0x8b79,0x8b7a,0x8b7b,0x8b7c,0x8b7d,0x8b7e,0x8b7f, +0x8b80,0x8b81,0x8b82,0x8b83,0x8b84,0x8b85,0x8b86,0x0000, +0x8b87,0x8b88,0x8b89,0x8b8a,0x8b8b,0x8b8c,0x8b8d,0x8b8e, +0x8b8f,0x8b90,0x8b91,0x8b92,0x8b93,0x8b94,0x8b95,0x8b96, +0x8b97,0x8b98,0x8b99,0x8b9a,0x8b9b,0x8b9c,0x8b9d,0x8b9e, +0x8b9f,0x8bac,0x8bb1,0x8bbb,0x8bc7,0x8bd0,0x8bea,0x8c09, +0x8c1e,0x4f4f,0x6ce8,0x795d,0x9a7b,0x6293,0x722a,0x62fd, +0x4e13,0x7816,0x8f6c,0x64b0,0x8d5a,0x7bc6,0x6869,0x5e84, +0x88c5,0x5986,0x649e,0x58ee,0x72b6,0x690e,0x9525,0x8ffd, +0x8d58,0x5760,0x7f00,0x8c06,0x51c6,0x6349,0x62d9,0x5353, +0x684c,0x7422,0x8301,0x914c,0x5544,0x7740,0x707c,0x6d4a, +0x5179,0x54a8,0x8d44,0x59ff,0x6ecb,0x6dc4,0x5b5c,0x7d2b, +0x4ed4,0x7c7d,0x6ed3,0x5b50,0x81ea,0x6e0d,0x5b57,0x9b03, +0x68d5,0x8e2a,0x5b97,0x7efc,0x603b,0x7eb5,0x90b9,0x8d70, +0x594f,0x63cd,0x79df,0x8db3,0x5352,0x65cf,0x7956,0x8bc5, +0x963b,0x7ec4,0x94bb,0x7e82,0x5634,0x9189,0x6700,0x7f6a, +0x5c0a,0x9075,0x6628,0x5de6,0x4f50,0x67de,0x505a,0x4f5c, +0x5750,0x5ea7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0xd800 */ +0x8c38,0x8c39,0x8c3a,0x8c3b,0x8c3c,0x8c3d,0x8c3e,0x8c3f, +0x8c40,0x8c42,0x8c43,0x8c44,0x8c45,0x8c48,0x8c4a,0x8c4b, +0x8c4d,0x8c4e,0x8c4f,0x8c50,0x8c51,0x8c52,0x8c53,0x8c54, +0x8c56,0x8c57,0x8c58,0x8c59,0x8c5b,0x8c5c,0x8c5d,0x8c5e, +0x8c5f,0x8c60,0x8c63,0x8c64,0x8c65,0x8c66,0x8c67,0x8c68, +0x8c69,0x8c6c,0x8c6d,0x8c6e,0x8c6f,0x8c70,0x8c71,0x8c72, +0x8c74,0x8c75,0x8c76,0x8c77,0x8c7b,0x8c7c,0x8c7d,0x8c7e, +0x8c7f,0x8c80,0x8c81,0x8c83,0x8c84,0x8c86,0x8c87,0x0000, +0x8c88,0x8c8b,0x8c8d,0x8c8e,0x8c8f,0x8c90,0x8c91,0x8c92, +0x8c93,0x8c95,0x8c96,0x8c97,0x8c99,0x8c9a,0x8c9b,0x8c9c, +0x8c9d,0x8c9e,0x8c9f,0x8ca0,0x8ca1,0x8ca2,0x8ca3,0x8ca4, +0x8ca5,0x8ca6,0x8ca7,0x8ca8,0x8ca9,0x8caa,0x8cab,0x8cac, +0x8cad,0x4e8d,0x4e0c,0x5140,0x4e10,0x5eff,0x5345,0x4e15, +0x4e98,0x4e1e,0x9b32,0x5b6c,0x5669,0x4e28,0x79ba,0x4e3f, +0x5315,0x4e47,0x592d,0x723b,0x536e,0x6c10,0x56df,0x80e4, +0x9997,0x6bd3,0x777e,0x9f17,0x4e36,0x4e9f,0x9f10,0x4e5c, +0x4e69,0x4e93,0x8288,0x5b5b,0x556c,0x560f,0x4ec4,0x538d, +0x539d,0x53a3,0x53a5,0x53ae,0x9765,0x8d5d,0x531a,0x53f5, +0x5326,0x532e,0x533e,0x8d5c,0x5366,0x5363,0x5202,0x5208, +0x520e,0x522d,0x5233,0x523f,0x5240,0x524c,0x525e,0x5261, +0x525c,0x84af,0x527d,0x5282,0x5281,0x5290,0x5293,0x5182, +0x7f54,0x4ebb,0x4ec3,0x4ec9,0x4ec2,0x4ee8,0x4ee1,0x4eeb, +0x4ede,0x4f1b,0x4ef3,0x4f22,0x4f64,0x4ef5,0x4f25,0x4f27, +0x4f09,0x4f2b,0x4f5e,0x4f67,0x6538,0x4f5a,0x4f5d,0x0000, +/* 0xd900 */ +0x8cae,0x8caf,0x8cb0,0x8cb1,0x8cb2,0x8cb3,0x8cb4,0x8cb5, +0x8cb6,0x8cb7,0x8cb8,0x8cb9,0x8cba,0x8cbb,0x8cbc,0x8cbd, +0x8cbe,0x8cbf,0x8cc0,0x8cc1,0x8cc2,0x8cc3,0x8cc4,0x8cc5, +0x8cc6,0x8cc7,0x8cc8,0x8cc9,0x8cca,0x8ccb,0x8ccc,0x8ccd, +0x8cce,0x8ccf,0x8cd0,0x8cd1,0x8cd2,0x8cd3,0x8cd4,0x8cd5, +0x8cd6,0x8cd7,0x8cd8,0x8cd9,0x8cda,0x8cdb,0x8cdc,0x8cdd, +0x8cde,0x8cdf,0x8ce0,0x8ce1,0x8ce2,0x8ce3,0x8ce4,0x8ce5, +0x8ce6,0x8ce7,0x8ce8,0x8ce9,0x8cea,0x8ceb,0x8cec,0x0000, +0x8ced,0x8cee,0x8cef,0x8cf0,0x8cf1,0x8cf2,0x8cf3,0x8cf4, +0x8cf5,0x8cf6,0x8cf7,0x8cf8,0x8cf9,0x8cfa,0x8cfb,0x8cfc, +0x8cfd,0x8cfe,0x8cff,0x8d00,0x8d01,0x8d02,0x8d03,0x8d04, +0x8d05,0x8d06,0x8d07,0x8d08,0x8d09,0x8d0a,0x8d0b,0x8d0c, +0x8d0d,0x4f5f,0x4f57,0x4f32,0x4f3d,0x4f76,0x4f74,0x4f91, +0x4f89,0x4f83,0x4f8f,0x4f7e,0x4f7b,0x4faa,0x4f7c,0x4fac, +0x4f94,0x4fe6,0x4fe8,0x4fea,0x4fc5,0x4fda,0x4fe3,0x4fdc, +0x4fd1,0x4fdf,0x4ff8,0x5029,0x504c,0x4ff3,0x502c,0x500f, +0x502e,0x502d,0x4ffe,0x501c,0x500c,0x5025,0x5028,0x507e, +0x5043,0x5055,0x5048,0x504e,0x506c,0x507b,0x50a5,0x50a7, +0x50a9,0x50ba,0x50d6,0x5106,0x50ed,0x50ec,0x50e6,0x50ee, +0x5107,0x510b,0x4edd,0x6c3d,0x4f58,0x4f65,0x4fce,0x9fa0, +0x6c46,0x7c74,0x516e,0x5dfd,0x9ec9,0x9998,0x5181,0x5914, +0x52f9,0x530d,0x8a07,0x5310,0x51eb,0x5919,0x5155,0x4ea0, +0x5156,0x4eb3,0x886e,0x88a4,0x4eb5,0x8114,0x88d2,0x7980, +0x5b34,0x8803,0x7fb8,0x51ab,0x51b1,0x51bd,0x51bc,0x0000, +/* 0xda00 */ +0x8d0e,0x8d0f,0x8d10,0x8d11,0x8d12,0x8d13,0x8d14,0x8d15, +0x8d16,0x8d17,0x8d18,0x8d19,0x8d1a,0x8d1b,0x8d1c,0x8d20, +0x8d51,0x8d52,0x8d57,0x8d5f,0x8d65,0x8d68,0x8d69,0x8d6a, +0x8d6c,0x8d6e,0x8d6f,0x8d71,0x8d72,0x8d78,0x8d79,0x8d7a, +0x8d7b,0x8d7c,0x8d7d,0x8d7e,0x8d7f,0x8d80,0x8d82,0x8d83, +0x8d86,0x8d87,0x8d88,0x8d89,0x8d8c,0x8d8d,0x8d8e,0x8d8f, +0x8d90,0x8d92,0x8d93,0x8d95,0x8d96,0x8d97,0x8d98,0x8d99, +0x8d9a,0x8d9b,0x8d9c,0x8d9d,0x8d9e,0x8da0,0x8da1,0x0000, +0x8da2,0x8da4,0x8da5,0x8da6,0x8da7,0x8da8,0x8da9,0x8daa, +0x8dab,0x8dac,0x8dad,0x8dae,0x8daf,0x8db0,0x8db2,0x8db6, +0x8db7,0x8db9,0x8dbb,0x8dbd,0x8dc0,0x8dc1,0x8dc2,0x8dc5, +0x8dc7,0x8dc8,0x8dc9,0x8dca,0x8dcd,0x8dd0,0x8dd2,0x8dd3, +0x8dd4,0x51c7,0x5196,0x51a2,0x51a5,0x8ba0,0x8ba6,0x8ba7, +0x8baa,0x8bb4,0x8bb5,0x8bb7,0x8bc2,0x8bc3,0x8bcb,0x8bcf, +0x8bce,0x8bd2,0x8bd3,0x8bd4,0x8bd6,0x8bd8,0x8bd9,0x8bdc, +0x8bdf,0x8be0,0x8be4,0x8be8,0x8be9,0x8bee,0x8bf0,0x8bf3, +0x8bf6,0x8bf9,0x8bfc,0x8bff,0x8c00,0x8c02,0x8c04,0x8c07, +0x8c0c,0x8c0f,0x8c11,0x8c12,0x8c14,0x8c15,0x8c16,0x8c19, +0x8c1b,0x8c18,0x8c1d,0x8c1f,0x8c20,0x8c21,0x8c25,0x8c27, +0x8c2a,0x8c2b,0x8c2e,0x8c2f,0x8c32,0x8c33,0x8c35,0x8c36, +0x5369,0x537a,0x961d,0x9622,0x9621,0x9631,0x962a,0x963d, +0x963c,0x9642,0x9649,0x9654,0x965f,0x9667,0x966c,0x9672, +0x9674,0x9688,0x968d,0x9697,0x96b0,0x9097,0x909b,0x909d, +0x9099,0x90ac,0x90a1,0x90b4,0x90b3,0x90b6,0x90ba,0x0000, +/* 0xdb00 */ +0x8dd5,0x8dd8,0x8dd9,0x8ddc,0x8de0,0x8de1,0x8de2,0x8de5, +0x8de6,0x8de7,0x8de9,0x8ded,0x8dee,0x8df0,0x8df1,0x8df2, +0x8df4,0x8df6,0x8dfc,0x8dfe,0x8dff,0x8e00,0x8e01,0x8e02, +0x8e03,0x8e04,0x8e06,0x8e07,0x8e08,0x8e0b,0x8e0d,0x8e0e, +0x8e10,0x8e11,0x8e12,0x8e13,0x8e15,0x8e16,0x8e17,0x8e18, +0x8e19,0x8e1a,0x8e1b,0x8e1c,0x8e20,0x8e21,0x8e24,0x8e25, +0x8e26,0x8e27,0x8e28,0x8e2b,0x8e2d,0x8e30,0x8e32,0x8e33, +0x8e34,0x8e36,0x8e37,0x8e38,0x8e3b,0x8e3c,0x8e3e,0x0000, +0x8e3f,0x8e43,0x8e45,0x8e46,0x8e4c,0x8e4d,0x8e4e,0x8e4f, +0x8e50,0x8e53,0x8e54,0x8e55,0x8e56,0x8e57,0x8e58,0x8e5a, +0x8e5b,0x8e5c,0x8e5d,0x8e5e,0x8e5f,0x8e60,0x8e61,0x8e62, +0x8e63,0x8e64,0x8e65,0x8e67,0x8e68,0x8e6a,0x8e6b,0x8e6e, +0x8e71,0x90b8,0x90b0,0x90cf,0x90c5,0x90be,0x90d0,0x90c4, +0x90c7,0x90d3,0x90e6,0x90e2,0x90dc,0x90d7,0x90db,0x90eb, +0x90ef,0x90fe,0x9104,0x9122,0x911e,0x9123,0x9131,0x912f, +0x9139,0x9143,0x9146,0x520d,0x5942,0x52a2,0x52ac,0x52ad, +0x52be,0x54ff,0x52d0,0x52d6,0x52f0,0x53df,0x71ee,0x77cd, +0x5ef4,0x51f5,0x51fc,0x9b2f,0x53b6,0x5f01,0x755a,0x5def, +0x574c,0x57a9,0x57a1,0x587e,0x58bc,0x58c5,0x58d1,0x5729, +0x572c,0x572a,0x5733,0x5739,0x572e,0x572f,0x575c,0x573b, +0x5742,0x5769,0x5785,0x576b,0x5786,0x577c,0x577b,0x5768, +0x576d,0x5776,0x5773,0x57ad,0x57a4,0x578c,0x57b2,0x57cf, +0x57a7,0x57b4,0x5793,0x57a0,0x57d5,0x57d8,0x57da,0x57d9, +0x57d2,0x57b8,0x57f4,0x57ef,0x57f8,0x57e4,0x57dd,0x0000, +/* 0xdc00 */ +0x8e73,0x8e75,0x8e77,0x8e78,0x8e79,0x8e7a,0x8e7b,0x8e7d, +0x8e7e,0x8e80,0x8e82,0x8e83,0x8e84,0x8e86,0x8e88,0x8e89, +0x8e8a,0x8e8b,0x8e8c,0x8e8d,0x8e8e,0x8e91,0x8e92,0x8e93, +0x8e95,0x8e96,0x8e97,0x8e98,0x8e99,0x8e9a,0x8e9b,0x8e9d, +0x8e9f,0x8ea0,0x8ea1,0x8ea2,0x8ea3,0x8ea4,0x8ea5,0x8ea6, +0x8ea7,0x8ea8,0x8ea9,0x8eaa,0x8ead,0x8eae,0x8eb0,0x8eb1, +0x8eb3,0x8eb4,0x8eb5,0x8eb6,0x8eb7,0x8eb8,0x8eb9,0x8ebb, +0x8ebc,0x8ebd,0x8ebe,0x8ebf,0x8ec0,0x8ec1,0x8ec2,0x0000, +0x8ec3,0x8ec4,0x8ec5,0x8ec6,0x8ec7,0x8ec8,0x8ec9,0x8eca, +0x8ecb,0x8ecc,0x8ecd,0x8ecf,0x8ed0,0x8ed1,0x8ed2,0x8ed3, +0x8ed4,0x8ed5,0x8ed6,0x8ed7,0x8ed8,0x8ed9,0x8eda,0x8edb, +0x8edc,0x8edd,0x8ede,0x8edf,0x8ee0,0x8ee1,0x8ee2,0x8ee3, +0x8ee4,0x580b,0x580d,0x57fd,0x57ed,0x5800,0x581e,0x5819, +0x5844,0x5820,0x5865,0x586c,0x5881,0x5889,0x589a,0x5880, +0x99a8,0x9f19,0x61ff,0x8279,0x827d,0x827f,0x828f,0x828a, +0x82a8,0x8284,0x828e,0x8291,0x8297,0x8299,0x82ab,0x82b8, +0x82be,0x82b0,0x82c8,0x82ca,0x82e3,0x8298,0x82b7,0x82ae, +0x82cb,0x82cc,0x82c1,0x82a9,0x82b4,0x82a1,0x82aa,0x829f, +0x82c4,0x82ce,0x82a4,0x82e1,0x8309,0x82f7,0x82e4,0x830f, +0x8307,0x82dc,0x82f4,0x82d2,0x82d8,0x830c,0x82fb,0x82d3, +0x8311,0x831a,0x8306,0x8314,0x8315,0x82e0,0x82d5,0x831c, +0x8351,0x835b,0x835c,0x8308,0x8392,0x833c,0x8334,0x8331, +0x839b,0x835e,0x832f,0x834f,0x8347,0x8343,0x835f,0x8340, +0x8317,0x8360,0x832d,0x833a,0x8333,0x8366,0x8365,0x0000, +/* 0xdd00 */ +0x8ee5,0x8ee6,0x8ee7,0x8ee8,0x8ee9,0x8eea,0x8eeb,0x8eec, +0x8eed,0x8eee,0x8eef,0x8ef0,0x8ef1,0x8ef2,0x8ef3,0x8ef4, +0x8ef5,0x8ef6,0x8ef7,0x8ef8,0x8ef9,0x8efa,0x8efb,0x8efc, +0x8efd,0x8efe,0x8eff,0x8f00,0x8f01,0x8f02,0x8f03,0x8f04, +0x8f05,0x8f06,0x8f07,0x8f08,0x8f09,0x8f0a,0x8f0b,0x8f0c, +0x8f0d,0x8f0e,0x8f0f,0x8f10,0x8f11,0x8f12,0x8f13,0x8f14, +0x8f15,0x8f16,0x8f17,0x8f18,0x8f19,0x8f1a,0x8f1b,0x8f1c, +0x8f1d,0x8f1e,0x8f1f,0x8f20,0x8f21,0x8f22,0x8f23,0x0000, +0x8f24,0x8f25,0x8f26,0x8f27,0x8f28,0x8f29,0x8f2a,0x8f2b, +0x8f2c,0x8f2d,0x8f2e,0x8f2f,0x8f30,0x8f31,0x8f32,0x8f33, +0x8f34,0x8f35,0x8f36,0x8f37,0x8f38,0x8f39,0x8f3a,0x8f3b, +0x8f3c,0x8f3d,0x8f3e,0x8f3f,0x8f40,0x8f41,0x8f42,0x8f43, +0x8f44,0x8368,0x831b,0x8369,0x836c,0x836a,0x836d,0x836e, +0x83b0,0x8378,0x83b3,0x83b4,0x83a0,0x83aa,0x8393,0x839c, +0x8385,0x837c,0x83b6,0x83a9,0x837d,0x83b8,0x837b,0x8398, +0x839e,0x83a8,0x83ba,0x83bc,0x83c1,0x8401,0x83e5,0x83d8, +0x5807,0x8418,0x840b,0x83dd,0x83fd,0x83d6,0x841c,0x8438, +0x8411,0x8406,0x83d4,0x83df,0x840f,0x8403,0x83f8,0x83f9, +0x83ea,0x83c5,0x83c0,0x8426,0x83f0,0x83e1,0x845c,0x8451, +0x845a,0x8459,0x8473,0x8487,0x8488,0x847a,0x8489,0x8478, +0x843c,0x8446,0x8469,0x8476,0x848c,0x848e,0x8431,0x846d, +0x84c1,0x84cd,0x84d0,0x84e6,0x84bd,0x84d3,0x84ca,0x84bf, +0x84ba,0x84e0,0x84a1,0x84b9,0x84b4,0x8497,0x84e5,0x84e3, +0x850c,0x750d,0x8538,0x84f0,0x8539,0x851f,0x853a,0x0000, +/* 0xde00 */ +0x8f45,0x8f46,0x8f47,0x8f48,0x8f49,0x8f4a,0x8f4b,0x8f4c, +0x8f4d,0x8f4e,0x8f4f,0x8f50,0x8f51,0x8f52,0x8f53,0x8f54, +0x8f55,0x8f56,0x8f57,0x8f58,0x8f59,0x8f5a,0x8f5b,0x8f5c, +0x8f5d,0x8f5e,0x8f5f,0x8f60,0x8f61,0x8f62,0x8f63,0x8f64, +0x8f65,0x8f6a,0x8f80,0x8f8c,0x8f92,0x8f9d,0x8fa0,0x8fa1, +0x8fa2,0x8fa4,0x8fa5,0x8fa6,0x8fa7,0x8faa,0x8fac,0x8fad, +0x8fae,0x8faf,0x8fb2,0x8fb3,0x8fb4,0x8fb5,0x8fb7,0x8fb8, +0x8fba,0x8fbb,0x8fbc,0x8fbf,0x8fc0,0x8fc3,0x8fc6,0x0000, +0x8fc9,0x8fca,0x8fcb,0x8fcc,0x8fcd,0x8fcf,0x8fd2,0x8fd6, +0x8fd7,0x8fda,0x8fe0,0x8fe1,0x8fe3,0x8fe7,0x8fec,0x8fef, +0x8ff1,0x8ff2,0x8ff4,0x8ff5,0x8ff6,0x8ffa,0x8ffb,0x8ffc, +0x8ffe,0x8fff,0x9007,0x9008,0x900c,0x900e,0x9013,0x9015, +0x9018,0x8556,0x853b,0x84ff,0x84fc,0x8559,0x8548,0x8568, +0x8564,0x855e,0x857a,0x77a2,0x8543,0x8572,0x857b,0x85a4, +0x85a8,0x8587,0x858f,0x8579,0x85ae,0x859c,0x8585,0x85b9, +0x85b7,0x85b0,0x85d3,0x85c1,0x85dc,0x85ff,0x8627,0x8605, +0x8629,0x8616,0x863c,0x5efe,0x5f08,0x593c,0x5941,0x8037, +0x5955,0x595a,0x5958,0x530f,0x5c22,0x5c25,0x5c2c,0x5c34, +0x624c,0x626a,0x629f,0x62bb,0x62ca,0x62da,0x62d7,0x62ee, +0x6322,0x62f6,0x6339,0x634b,0x6343,0x63ad,0x63f6,0x6371, +0x637a,0x638e,0x63b4,0x636d,0x63ac,0x638a,0x6369,0x63ae, +0x63bc,0x63f2,0x63f8,0x63e0,0x63ff,0x63c4,0x63de,0x63ce, +0x6452,0x63c6,0x63be,0x6445,0x6441,0x640b,0x641b,0x6420, +0x640c,0x6426,0x6421,0x645e,0x6484,0x646d,0x6496,0x0000, +/* 0xdf00 */ +0x9019,0x901c,0x9023,0x9024,0x9025,0x9027,0x9028,0x9029, +0x902a,0x902b,0x902c,0x9030,0x9031,0x9032,0x9033,0x9034, +0x9037,0x9039,0x903a,0x903d,0x903f,0x9040,0x9043,0x9045, +0x9046,0x9048,0x9049,0x904a,0x904b,0x904c,0x904e,0x9054, +0x9055,0x9056,0x9059,0x905a,0x905c,0x905d,0x905e,0x905f, +0x9060,0x9061,0x9064,0x9066,0x9067,0x9069,0x906a,0x906b, +0x906c,0x906f,0x9070,0x9071,0x9072,0x9073,0x9076,0x9077, +0x9078,0x9079,0x907a,0x907b,0x907c,0x907e,0x9081,0x0000, +0x9084,0x9085,0x9086,0x9087,0x9089,0x908a,0x908c,0x908d, +0x908e,0x908f,0x9090,0x9092,0x9094,0x9096,0x9098,0x909a, +0x909c,0x909e,0x909f,0x90a0,0x90a4,0x90a5,0x90a7,0x90a8, +0x90a9,0x90ab,0x90ad,0x90b2,0x90b7,0x90bc,0x90bd,0x90bf, +0x90c0,0x647a,0x64b7,0x64b8,0x6499,0x64ba,0x64c0,0x64d0, +0x64d7,0x64e4,0x64e2,0x6509,0x6525,0x652e,0x5f0b,0x5fd2, +0x7519,0x5f11,0x535f,0x53f1,0x53fd,0x53e9,0x53e8,0x53fb, +0x5412,0x5416,0x5406,0x544b,0x5452,0x5453,0x5454,0x5456, +0x5443,0x5421,0x5457,0x5459,0x5423,0x5432,0x5482,0x5494, +0x5477,0x5471,0x5464,0x549a,0x549b,0x5484,0x5476,0x5466, +0x549d,0x54d0,0x54ad,0x54c2,0x54b4,0x54d2,0x54a7,0x54a6, +0x54d3,0x54d4,0x5472,0x54a3,0x54d5,0x54bb,0x54bf,0x54cc, +0x54d9,0x54da,0x54dc,0x54a9,0x54aa,0x54a4,0x54dd,0x54cf, +0x54de,0x551b,0x54e7,0x5520,0x54fd,0x5514,0x54f3,0x5522, +0x5523,0x550f,0x5511,0x5527,0x552a,0x5567,0x558f,0x55b5, +0x5549,0x556d,0x5541,0x5555,0x553f,0x5550,0x553c,0x0000, +/* 0xe000 */ +0x90c2,0x90c3,0x90c6,0x90c8,0x90c9,0x90cb,0x90cc,0x90cd, +0x90d2,0x90d4,0x90d5,0x90d6,0x90d8,0x90d9,0x90da,0x90de, +0x90df,0x90e0,0x90e3,0x90e4,0x90e5,0x90e9,0x90ea,0x90ec, +0x90ee,0x90f0,0x90f1,0x90f2,0x90f3,0x90f5,0x90f6,0x90f7, +0x90f9,0x90fa,0x90fb,0x90fc,0x90ff,0x9100,0x9101,0x9103, +0x9105,0x9106,0x9107,0x9108,0x9109,0x910a,0x910b,0x910c, +0x910d,0x910e,0x910f,0x9110,0x9111,0x9112,0x9113,0x9114, +0x9115,0x9116,0x9117,0x9118,0x911a,0x911b,0x911c,0x0000, +0x911d,0x911f,0x9120,0x9121,0x9124,0x9125,0x9126,0x9127, +0x9128,0x9129,0x912a,0x912b,0x912c,0x912d,0x912e,0x9130, +0x9132,0x9133,0x9134,0x9135,0x9136,0x9137,0x9138,0x913a, +0x913b,0x913c,0x913d,0x913e,0x913f,0x9140,0x9141,0x9142, +0x9144,0x5537,0x5556,0x5575,0x5576,0x5577,0x5533,0x5530, +0x555c,0x558b,0x55d2,0x5583,0x55b1,0x55b9,0x5588,0x5581, +0x559f,0x557e,0x55d6,0x5591,0x557b,0x55df,0x55bd,0x55be, +0x5594,0x5599,0x55ea,0x55f7,0x55c9,0x561f,0x55d1,0x55eb, +0x55ec,0x55d4,0x55e6,0x55dd,0x55c4,0x55ef,0x55e5,0x55f2, +0x55f3,0x55cc,0x55cd,0x55e8,0x55f5,0x55e4,0x8f94,0x561e, +0x5608,0x560c,0x5601,0x5624,0x5623,0x55fe,0x5600,0x5627, +0x562d,0x5658,0x5639,0x5657,0x562c,0x564d,0x5662,0x5659, +0x565c,0x564c,0x5654,0x5686,0x5664,0x5671,0x566b,0x567b, +0x567c,0x5685,0x5693,0x56af,0x56d4,0x56d7,0x56dd,0x56e1, +0x56f5,0x56eb,0x56f9,0x56ff,0x5704,0x570a,0x5709,0x571c, +0x5e0f,0x5e19,0x5e14,0x5e11,0x5e31,0x5e3b,0x5e3c,0x0000, +/* 0xe100 */ +0x9145,0x9147,0x9148,0x9151,0x9153,0x9154,0x9155,0x9156, +0x9158,0x9159,0x915b,0x915c,0x915f,0x9160,0x9166,0x9167, +0x9168,0x916b,0x916d,0x9173,0x917a,0x917b,0x917c,0x9180, +0x9181,0x9182,0x9183,0x9184,0x9186,0x9188,0x918a,0x918e, +0x918f,0x9193,0x9194,0x9195,0x9196,0x9197,0x9198,0x9199, +0x919c,0x919d,0x919e,0x919f,0x91a0,0x91a1,0x91a4,0x91a5, +0x91a6,0x91a7,0x91a8,0x91a9,0x91ab,0x91ac,0x91b0,0x91b1, +0x91b2,0x91b3,0x91b6,0x91b7,0x91b8,0x91b9,0x91bb,0x0000, +0x91bc,0x91bd,0x91be,0x91bf,0x91c0,0x91c1,0x91c2,0x91c3, +0x91c4,0x91c5,0x91c6,0x91c8,0x91cb,0x91d0,0x91d2,0x91d3, +0x91d4,0x91d5,0x91d6,0x91d7,0x91d8,0x91d9,0x91da,0x91db, +0x91dd,0x91de,0x91df,0x91e0,0x91e1,0x91e2,0x91e3,0x91e4, +0x91e5,0x5e37,0x5e44,0x5e54,0x5e5b,0x5e5e,0x5e61,0x5c8c, +0x5c7a,0x5c8d,0x5c90,0x5c96,0x5c88,0x5c98,0x5c99,0x5c91, +0x5c9a,0x5c9c,0x5cb5,0x5ca2,0x5cbd,0x5cac,0x5cab,0x5cb1, +0x5ca3,0x5cc1,0x5cb7,0x5cc4,0x5cd2,0x5ce4,0x5ccb,0x5ce5, +0x5d02,0x5d03,0x5d27,0x5d26,0x5d2e,0x5d24,0x5d1e,0x5d06, +0x5d1b,0x5d58,0x5d3e,0x5d34,0x5d3d,0x5d6c,0x5d5b,0x5d6f, +0x5d5d,0x5d6b,0x5d4b,0x5d4a,0x5d69,0x5d74,0x5d82,0x5d99, +0x5d9d,0x8c73,0x5db7,0x5dc5,0x5f73,0x5f77,0x5f82,0x5f87, +0x5f89,0x5f8c,0x5f95,0x5f99,0x5f9c,0x5fa8,0x5fad,0x5fb5, +0x5fbc,0x8862,0x5f61,0x72ad,0x72b0,0x72b4,0x72b7,0x72b8, +0x72c3,0x72c1,0x72ce,0x72cd,0x72d2,0x72e8,0x72ef,0x72e9, +0x72f2,0x72f4,0x72f7,0x7301,0x72f3,0x7303,0x72fa,0x0000, +/* 0xe200 */ +0x91e6,0x91e7,0x91e8,0x91e9,0x91ea,0x91eb,0x91ec,0x91ed, +0x91ee,0x91ef,0x91f0,0x91f1,0x91f2,0x91f3,0x91f4,0x91f5, +0x91f6,0x91f7,0x91f8,0x91f9,0x91fa,0x91fb,0x91fc,0x91fd, +0x91fe,0x91ff,0x9200,0x9201,0x9202,0x9203,0x9204,0x9205, +0x9206,0x9207,0x9208,0x9209,0x920a,0x920b,0x920c,0x920d, +0x920e,0x920f,0x9210,0x9211,0x9212,0x9213,0x9214,0x9215, +0x9216,0x9217,0x9218,0x9219,0x921a,0x921b,0x921c,0x921d, +0x921e,0x921f,0x9220,0x9221,0x9222,0x9223,0x9224,0x0000, +0x9225,0x9226,0x9227,0x9228,0x9229,0x922a,0x922b,0x922c, +0x922d,0x922e,0x922f,0x9230,0x9231,0x9232,0x9233,0x9234, +0x9235,0x9236,0x9237,0x9238,0x9239,0x923a,0x923b,0x923c, +0x923d,0x923e,0x923f,0x9240,0x9241,0x9242,0x9243,0x9244, +0x9245,0x72fb,0x7317,0x7313,0x7321,0x730a,0x731e,0x731d, +0x7315,0x7322,0x7339,0x7325,0x732c,0x7338,0x7331,0x7350, +0x734d,0x7357,0x7360,0x736c,0x736f,0x737e,0x821b,0x5925, +0x98e7,0x5924,0x5902,0x9963,0x9967,0x9968,0x9969,0x996a, +0x996b,0x996c,0x9974,0x9977,0x997d,0x9980,0x9984,0x9987, +0x998a,0x998d,0x9990,0x9991,0x9993,0x9994,0x9995,0x5e80, +0x5e91,0x5e8b,0x5e96,0x5ea5,0x5ea0,0x5eb9,0x5eb5,0x5ebe, +0x5eb3,0x8d53,0x5ed2,0x5ed1,0x5edb,0x5ee8,0x5eea,0x81ba, +0x5fc4,0x5fc9,0x5fd6,0x5fcf,0x6003,0x5fee,0x6004,0x5fe1, +0x5fe4,0x5ffe,0x6005,0x6006,0x5fea,0x5fed,0x5ff8,0x6019, +0x6035,0x6026,0x601b,0x600f,0x600d,0x6029,0x602b,0x600a, +0x603f,0x6021,0x6078,0x6079,0x607b,0x607a,0x6042,0x0000, +/* 0xe300 */ +0x9246,0x9247,0x9248,0x9249,0x924a,0x924b,0x924c,0x924d, +0x924e,0x924f,0x9250,0x9251,0x9252,0x9253,0x9254,0x9255, +0x9256,0x9257,0x9258,0x9259,0x925a,0x925b,0x925c,0x925d, +0x925e,0x925f,0x9260,0x9261,0x9262,0x9263,0x9264,0x9265, +0x9266,0x9267,0x9268,0x9269,0x926a,0x926b,0x926c,0x926d, +0x926e,0x926f,0x9270,0x9271,0x9272,0x9273,0x9275,0x9276, +0x9277,0x9278,0x9279,0x927a,0x927b,0x927c,0x927d,0x927e, +0x927f,0x9280,0x9281,0x9282,0x9283,0x9284,0x9285,0x0000, +0x9286,0x9287,0x9288,0x9289,0x928a,0x928b,0x928c,0x928d, +0x928f,0x9290,0x9291,0x9292,0x9293,0x9294,0x9295,0x9296, +0x9297,0x9298,0x9299,0x929a,0x929b,0x929c,0x929d,0x929e, +0x929f,0x92a0,0x92a1,0x92a2,0x92a3,0x92a4,0x92a5,0x92a6, +0x92a7,0x606a,0x607d,0x6096,0x609a,0x60ad,0x609d,0x6083, +0x6092,0x608c,0x609b,0x60ec,0x60bb,0x60b1,0x60dd,0x60d8, +0x60c6,0x60da,0x60b4,0x6120,0x6126,0x6115,0x6123,0x60f4, +0x6100,0x610e,0x612b,0x614a,0x6175,0x61ac,0x6194,0x61a7, +0x61b7,0x61d4,0x61f5,0x5fdd,0x96b3,0x95e9,0x95eb,0x95f1, +0x95f3,0x95f5,0x95f6,0x95fc,0x95fe,0x9603,0x9604,0x9606, +0x9608,0x960a,0x960b,0x960c,0x960d,0x960f,0x9612,0x9615, +0x9616,0x9617,0x9619,0x961a,0x4e2c,0x723f,0x6215,0x6c35, +0x6c54,0x6c5c,0x6c4a,0x6ca3,0x6c85,0x6c90,0x6c94,0x6c8c, +0x6c68,0x6c69,0x6c74,0x6c76,0x6c86,0x6ca9,0x6cd0,0x6cd4, +0x6cad,0x6cf7,0x6cf8,0x6cf1,0x6cd7,0x6cb2,0x6ce0,0x6cd6, +0x6cfa,0x6ceb,0x6cee,0x6cb1,0x6cd3,0x6cef,0x6cfe,0x0000, +/* 0xe400 */ +0x92a8,0x92a9,0x92aa,0x92ab,0x92ac,0x92ad,0x92af,0x92b0, +0x92b1,0x92b2,0x92b3,0x92b4,0x92b5,0x92b6,0x92b7,0x92b8, +0x92b9,0x92ba,0x92bb,0x92bc,0x92bd,0x92be,0x92bf,0x92c0, +0x92c1,0x92c2,0x92c3,0x92c4,0x92c5,0x92c6,0x92c7,0x92c9, +0x92ca,0x92cb,0x92cc,0x92cd,0x92ce,0x92cf,0x92d0,0x92d1, +0x92d2,0x92d3,0x92d4,0x92d5,0x92d6,0x92d7,0x92d8,0x92d9, +0x92da,0x92db,0x92dc,0x92dd,0x92de,0x92df,0x92e0,0x92e1, +0x92e2,0x92e3,0x92e4,0x92e5,0x92e6,0x92e7,0x92e8,0x0000, +0x92e9,0x92ea,0x92eb,0x92ec,0x92ed,0x92ee,0x92ef,0x92f0, +0x92f1,0x92f2,0x92f3,0x92f4,0x92f5,0x92f6,0x92f7,0x92f8, +0x92f9,0x92fa,0x92fb,0x92fc,0x92fd,0x92fe,0x92ff,0x9300, +0x9301,0x9302,0x9303,0x9304,0x9305,0x9306,0x9307,0x9308, +0x9309,0x6d39,0x6d27,0x6d0c,0x6d43,0x6d48,0x6d07,0x6d04, +0x6d19,0x6d0e,0x6d2b,0x6d4d,0x6d2e,0x6d35,0x6d1a,0x6d4f, +0x6d52,0x6d54,0x6d33,0x6d91,0x6d6f,0x6d9e,0x6da0,0x6d5e, +0x6d93,0x6d94,0x6d5c,0x6d60,0x6d7c,0x6d63,0x6e1a,0x6dc7, +0x6dc5,0x6dde,0x6e0e,0x6dbf,0x6de0,0x6e11,0x6de6,0x6ddd, +0x6dd9,0x6e16,0x6dab,0x6e0c,0x6dae,0x6e2b,0x6e6e,0x6e4e, +0x6e6b,0x6eb2,0x6e5f,0x6e86,0x6e53,0x6e54,0x6e32,0x6e25, +0x6e44,0x6edf,0x6eb1,0x6e98,0x6ee0,0x6f2d,0x6ee2,0x6ea5, +0x6ea7,0x6ebd,0x6ebb,0x6eb7,0x6ed7,0x6eb4,0x6ecf,0x6e8f, +0x6ec2,0x6e9f,0x6f62,0x6f46,0x6f47,0x6f24,0x6f15,0x6ef9, +0x6f2f,0x6f36,0x6f4b,0x6f74,0x6f2a,0x6f09,0x6f29,0x6f89, +0x6f8d,0x6f8c,0x6f78,0x6f72,0x6f7c,0x6f7a,0x6fd1,0x0000, +/* 0xe500 */ +0x930a,0x930b,0x930c,0x930d,0x930e,0x930f,0x9310,0x9311, +0x9312,0x9313,0x9314,0x9315,0x9316,0x9317,0x9318,0x9319, +0x931a,0x931b,0x931c,0x931d,0x931e,0x931f,0x9320,0x9321, +0x9322,0x9323,0x9324,0x9325,0x9326,0x9327,0x9328,0x9329, +0x932a,0x932b,0x932c,0x932d,0x932e,0x932f,0x9330,0x9331, +0x9332,0x9333,0x9334,0x9335,0x9336,0x9337,0x9338,0x9339, +0x933a,0x933b,0x933c,0x933d,0x933f,0x9340,0x9341,0x9342, +0x9343,0x9344,0x9345,0x9346,0x9347,0x9348,0x9349,0x0000, +0x934a,0x934b,0x934c,0x934d,0x934e,0x934f,0x9350,0x9351, +0x9352,0x9353,0x9354,0x9355,0x9356,0x9357,0x9358,0x9359, +0x935a,0x935b,0x935c,0x935d,0x935e,0x935f,0x9360,0x9361, +0x9362,0x9363,0x9364,0x9365,0x9366,0x9367,0x9368,0x9369, +0x936b,0x6fc9,0x6fa7,0x6fb9,0x6fb6,0x6fc2,0x6fe1,0x6fee, +0x6fde,0x6fe0,0x6fef,0x701a,0x7023,0x701b,0x7039,0x7035, +0x704f,0x705e,0x5b80,0x5b84,0x5b95,0x5b93,0x5ba5,0x5bb8, +0x752f,0x9a9e,0x6434,0x5be4,0x5bee,0x8930,0x5bf0,0x8e47, +0x8b07,0x8fb6,0x8fd3,0x8fd5,0x8fe5,0x8fee,0x8fe4,0x8fe9, +0x8fe6,0x8ff3,0x8fe8,0x9005,0x9004,0x900b,0x9026,0x9011, +0x900d,0x9016,0x9021,0x9035,0x9036,0x902d,0x902f,0x9044, +0x9051,0x9052,0x9050,0x9068,0x9058,0x9062,0x905b,0x66b9, +0x9074,0x907d,0x9082,0x9088,0x9083,0x908b,0x5f50,0x5f57, +0x5f56,0x5f58,0x5c3b,0x54ab,0x5c50,0x5c59,0x5b71,0x5c63, +0x5c66,0x7fbc,0x5f2a,0x5f29,0x5f2d,0x8274,0x5f3c,0x9b3b, +0x5c6e,0x5981,0x5983,0x598d,0x59a9,0x59aa,0x59a3,0x0000, +/* 0xe600 */ +0x936c,0x936d,0x936e,0x936f,0x9370,0x9371,0x9372,0x9373, +0x9374,0x9375,0x9376,0x9377,0x9378,0x9379,0x937a,0x937b, +0x937c,0x937d,0x937e,0x937f,0x9380,0x9381,0x9382,0x9383, +0x9384,0x9385,0x9386,0x9387,0x9388,0x9389,0x938a,0x938b, +0x938c,0x938d,0x938e,0x9390,0x9391,0x9392,0x9393,0x9394, +0x9395,0x9396,0x9397,0x9398,0x9399,0x939a,0x939b,0x939c, +0x939d,0x939e,0x939f,0x93a0,0x93a1,0x93a2,0x93a3,0x93a4, +0x93a5,0x93a6,0x93a7,0x93a8,0x93a9,0x93aa,0x93ab,0x0000, +0x93ac,0x93ad,0x93ae,0x93af,0x93b0,0x93b1,0x93b2,0x93b3, +0x93b4,0x93b5,0x93b6,0x93b7,0x93b8,0x93b9,0x93ba,0x93bb, +0x93bc,0x93bd,0x93be,0x93bf,0x93c0,0x93c1,0x93c2,0x93c3, +0x93c4,0x93c5,0x93c6,0x93c7,0x93c8,0x93c9,0x93cb,0x93cc, +0x93cd,0x5997,0x59ca,0x59ab,0x599e,0x59a4,0x59d2,0x59b2, +0x59af,0x59d7,0x59be,0x5a05,0x5a06,0x59dd,0x5a08,0x59e3, +0x59d8,0x59f9,0x5a0c,0x5a09,0x5a32,0x5a34,0x5a11,0x5a23, +0x5a13,0x5a40,0x5a67,0x5a4a,0x5a55,0x5a3c,0x5a62,0x5a75, +0x80ec,0x5aaa,0x5a9b,0x5a77,0x5a7a,0x5abe,0x5aeb,0x5ab2, +0x5ad2,0x5ad4,0x5ab8,0x5ae0,0x5ae3,0x5af1,0x5ad6,0x5ae6, +0x5ad8,0x5adc,0x5b09,0x5b17,0x5b16,0x5b32,0x5b37,0x5b40, +0x5c15,0x5c1c,0x5b5a,0x5b65,0x5b73,0x5b51,0x5b53,0x5b62, +0x9a75,0x9a77,0x9a78,0x9a7a,0x9a7f,0x9a7d,0x9a80,0x9a81, +0x9a85,0x9a88,0x9a8a,0x9a90,0x9a92,0x9a93,0x9a96,0x9a98, +0x9a9b,0x9a9c,0x9a9d,0x9a9f,0x9aa0,0x9aa2,0x9aa3,0x9aa5, +0x9aa7,0x7e9f,0x7ea1,0x7ea3,0x7ea5,0x7ea8,0x7ea9,0x0000, +/* 0xe700 */ +0x93ce,0x93cf,0x93d0,0x93d1,0x93d2,0x93d3,0x93d4,0x93d5, +0x93d7,0x93d8,0x93d9,0x93da,0x93db,0x93dc,0x93dd,0x93de, +0x93df,0x93e0,0x93e1,0x93e2,0x93e3,0x93e4,0x93e5,0x93e6, +0x93e7,0x93e8,0x93e9,0x93ea,0x93eb,0x93ec,0x93ed,0x93ee, +0x93ef,0x93f0,0x93f1,0x93f2,0x93f3,0x93f4,0x93f5,0x93f6, +0x93f7,0x93f8,0x93f9,0x93fa,0x93fb,0x93fc,0x93fd,0x93fe, +0x93ff,0x9400,0x9401,0x9402,0x9403,0x9404,0x9405,0x9406, +0x9407,0x9408,0x9409,0x940a,0x940b,0x940c,0x940d,0x0000, +0x940e,0x940f,0x9410,0x9411,0x9412,0x9413,0x9414,0x9415, +0x9416,0x9417,0x9418,0x9419,0x941a,0x941b,0x941c,0x941d, +0x941e,0x941f,0x9420,0x9421,0x9422,0x9423,0x9424,0x9425, +0x9426,0x9427,0x9428,0x9429,0x942a,0x942b,0x942c,0x942d, +0x942e,0x7ead,0x7eb0,0x7ebe,0x7ec0,0x7ec1,0x7ec2,0x7ec9, +0x7ecb,0x7ecc,0x7ed0,0x7ed4,0x7ed7,0x7edb,0x7ee0,0x7ee1, +0x7ee8,0x7eeb,0x7eee,0x7eef,0x7ef1,0x7ef2,0x7f0d,0x7ef6, +0x7efa,0x7efb,0x7efe,0x7f01,0x7f02,0x7f03,0x7f07,0x7f08, +0x7f0b,0x7f0c,0x7f0f,0x7f11,0x7f12,0x7f17,0x7f19,0x7f1c, +0x7f1b,0x7f1f,0x7f21,0x7f22,0x7f23,0x7f24,0x7f25,0x7f26, +0x7f27,0x7f2a,0x7f2b,0x7f2c,0x7f2d,0x7f2f,0x7f30,0x7f31, +0x7f32,0x7f33,0x7f35,0x5e7a,0x757f,0x5ddb,0x753e,0x9095, +0x738e,0x7391,0x73ae,0x73a2,0x739f,0x73cf,0x73c2,0x73d1, +0x73b7,0x73b3,0x73c0,0x73c9,0x73c8,0x73e5,0x73d9,0x987c, +0x740a,0x73e9,0x73e7,0x73de,0x73ba,0x73f2,0x740f,0x742a, +0x745b,0x7426,0x7425,0x7428,0x7430,0x742e,0x742c,0x0000, +/* 0xe800 */ +0x942f,0x9430,0x9431,0x9432,0x9433,0x9434,0x9435,0x9436, +0x9437,0x9438,0x9439,0x943a,0x943b,0x943c,0x943d,0x943f, +0x9440,0x9441,0x9442,0x9443,0x9444,0x9445,0x9446,0x9447, +0x9448,0x9449,0x944a,0x944b,0x944c,0x944d,0x944e,0x944f, +0x9450,0x9451,0x9452,0x9453,0x9454,0x9455,0x9456,0x9457, +0x9458,0x9459,0x945a,0x945b,0x945c,0x945d,0x945e,0x945f, +0x9460,0x9461,0x9462,0x9463,0x9464,0x9465,0x9466,0x9467, +0x9468,0x9469,0x946a,0x946c,0x946d,0x946e,0x946f,0x0000, +0x9470,0x9471,0x9472,0x9473,0x9474,0x9475,0x9476,0x9477, +0x9478,0x9479,0x947a,0x947b,0x947c,0x947d,0x947e,0x947f, +0x9480,0x9481,0x9482,0x9483,0x9484,0x9491,0x9496,0x9498, +0x94c7,0x94cf,0x94d3,0x94d4,0x94da,0x94e6,0x94fb,0x951c, +0x9520,0x741b,0x741a,0x7441,0x745c,0x7457,0x7455,0x7459, +0x7477,0x746d,0x747e,0x749c,0x748e,0x7480,0x7481,0x7487, +0x748b,0x749e,0x74a8,0x74a9,0x7490,0x74a7,0x74d2,0x74ba, +0x97ea,0x97eb,0x97ec,0x674c,0x6753,0x675e,0x6748,0x6769, +0x67a5,0x6787,0x676a,0x6773,0x6798,0x67a7,0x6775,0x67a8, +0x679e,0x67ad,0x678b,0x6777,0x677c,0x67f0,0x6809,0x67d8, +0x680a,0x67e9,0x67b0,0x680c,0x67d9,0x67b5,0x67da,0x67b3, +0x67dd,0x6800,0x67c3,0x67b8,0x67e2,0x680e,0x67c1,0x67fd, +0x6832,0x6833,0x6860,0x6861,0x684e,0x6862,0x6844,0x6864, +0x6883,0x681d,0x6855,0x6866,0x6841,0x6867,0x6840,0x683e, +0x684a,0x6849,0x6829,0x68b5,0x688f,0x6874,0x6877,0x6893, +0x686b,0x68c2,0x696e,0x68fc,0x691f,0x6920,0x68f9,0x0000, +/* 0xe900 */ +0x9527,0x9533,0x953d,0x9543,0x9548,0x954b,0x9555,0x955a, +0x9560,0x956e,0x9574,0x9575,0x9577,0x9578,0x9579,0x957a, +0x957b,0x957c,0x957d,0x957e,0x9580,0x9581,0x9582,0x9583, +0x9584,0x9585,0x9586,0x9587,0x9588,0x9589,0x958a,0x958b, +0x958c,0x958d,0x958e,0x958f,0x9590,0x9591,0x9592,0x9593, +0x9594,0x9595,0x9596,0x9597,0x9598,0x9599,0x959a,0x959b, +0x959c,0x959d,0x959e,0x959f,0x95a0,0x95a1,0x95a2,0x95a3, +0x95a4,0x95a5,0x95a6,0x95a7,0x95a8,0x95a9,0x95aa,0x0000, +0x95ab,0x95ac,0x95ad,0x95ae,0x95af,0x95b0,0x95b1,0x95b2, +0x95b3,0x95b4,0x95b5,0x95b6,0x95b7,0x95b8,0x95b9,0x95ba, +0x95bb,0x95bc,0x95bd,0x95be,0x95bf,0x95c0,0x95c1,0x95c2, +0x95c3,0x95c4,0x95c5,0x95c6,0x95c7,0x95c8,0x95c9,0x95ca, +0x95cb,0x6924,0x68f0,0x690b,0x6901,0x6957,0x68e3,0x6910, +0x6971,0x6939,0x6960,0x6942,0x695d,0x6984,0x696b,0x6980, +0x6998,0x6978,0x6934,0x69cc,0x6987,0x6988,0x69ce,0x6989, +0x6966,0x6963,0x6979,0x699b,0x69a7,0x69bb,0x69ab,0x69ad, +0x69d4,0x69b1,0x69c1,0x69ca,0x69df,0x6995,0x69e0,0x698d, +0x69ff,0x6a2f,0x69ed,0x6a17,0x6a18,0x6a65,0x69f2,0x6a44, +0x6a3e,0x6aa0,0x6a50,0x6a5b,0x6a35,0x6a8e,0x6a79,0x6a3d, +0x6a28,0x6a58,0x6a7c,0x6a91,0x6a90,0x6aa9,0x6a97,0x6aab, +0x7337,0x7352,0x6b81,0x6b82,0x6b87,0x6b84,0x6b92,0x6b93, +0x6b8d,0x6b9a,0x6b9b,0x6ba1,0x6baa,0x8f6b,0x8f6d,0x8f71, +0x8f72,0x8f73,0x8f75,0x8f76,0x8f78,0x8f77,0x8f79,0x8f7a, +0x8f7c,0x8f7e,0x8f81,0x8f82,0x8f84,0x8f87,0x8f8b,0x0000, +/* 0xea00 */ +0x95cc,0x95cd,0x95ce,0x95cf,0x95d0,0x95d1,0x95d2,0x95d3, +0x95d4,0x95d5,0x95d6,0x95d7,0x95d8,0x95d9,0x95da,0x95db, +0x95dc,0x95dd,0x95de,0x95df,0x95e0,0x95e1,0x95e2,0x95e3, +0x95e4,0x95e5,0x95e6,0x95e7,0x95ec,0x95ff,0x9607,0x9613, +0x9618,0x961b,0x961e,0x9620,0x9623,0x9624,0x9625,0x9626, +0x9627,0x9628,0x9629,0x962b,0x962c,0x962d,0x962f,0x9630, +0x9637,0x9638,0x9639,0x963a,0x963e,0x9641,0x9643,0x964a, +0x964e,0x964f,0x9651,0x9652,0x9653,0x9656,0x9657,0x0000, +0x9658,0x9659,0x965a,0x965c,0x965d,0x965e,0x9660,0x9663, +0x9665,0x9666,0x966b,0x966d,0x966e,0x966f,0x9670,0x9671, +0x9673,0x9678,0x9679,0x967a,0x967b,0x967c,0x967d,0x967e, +0x967f,0x9680,0x9681,0x9682,0x9683,0x9684,0x9687,0x9689, +0x968a,0x8f8d,0x8f8e,0x8f8f,0x8f98,0x8f9a,0x8ece,0x620b, +0x6217,0x621b,0x621f,0x6222,0x6221,0x6225,0x6224,0x622c, +0x81e7,0x74ef,0x74f4,0x74ff,0x750f,0x7511,0x7513,0x6534, +0x65ee,0x65ef,0x65f0,0x660a,0x6619,0x6772,0x6603,0x6615, +0x6600,0x7085,0x66f7,0x661d,0x6634,0x6631,0x6636,0x6635, +0x8006,0x665f,0x6654,0x6641,0x664f,0x6656,0x6661,0x6657, +0x6677,0x6684,0x668c,0x66a7,0x669d,0x66be,0x66db,0x66dc, +0x66e6,0x66e9,0x8d32,0x8d33,0x8d36,0x8d3b,0x8d3d,0x8d40, +0x8d45,0x8d46,0x8d48,0x8d49,0x8d47,0x8d4d,0x8d55,0x8d59, +0x89c7,0x89ca,0x89cb,0x89cc,0x89ce,0x89cf,0x89d0,0x89d1, +0x726e,0x729f,0x725d,0x7266,0x726f,0x727e,0x727f,0x7284, +0x728b,0x728d,0x728f,0x7292,0x6308,0x6332,0x63b0,0x0000, +/* 0xeb00 */ +0x968c,0x968e,0x9691,0x9692,0x9693,0x9695,0x9696,0x969a, +0x969b,0x969d,0x969e,0x969f,0x96a0,0x96a1,0x96a2,0x96a3, +0x96a4,0x96a5,0x96a6,0x96a8,0x96a9,0x96aa,0x96ab,0x96ac, +0x96ad,0x96ae,0x96af,0x96b1,0x96b2,0x96b4,0x96b5,0x96b7, +0x96b8,0x96ba,0x96bb,0x96bf,0x96c2,0x96c3,0x96c8,0x96ca, +0x96cb,0x96d0,0x96d1,0x96d3,0x96d4,0x96d6,0x96d7,0x96d8, +0x96d9,0x96da,0x96db,0x96dc,0x96dd,0x96de,0x96df,0x96e1, +0x96e2,0x96e3,0x96e4,0x96e5,0x96e6,0x96e7,0x96eb,0x0000, +0x96ec,0x96ed,0x96ee,0x96f0,0x96f1,0x96f2,0x96f4,0x96f5, +0x96f8,0x96fa,0x96fb,0x96fc,0x96fd,0x96ff,0x9702,0x9703, +0x9705,0x970a,0x970b,0x970c,0x9710,0x9711,0x9712,0x9714, +0x9715,0x9717,0x9718,0x9719,0x971a,0x971b,0x971d,0x971f, +0x9720,0x643f,0x64d8,0x8004,0x6bea,0x6bf3,0x6bfd,0x6bf5, +0x6bf9,0x6c05,0x6c07,0x6c06,0x6c0d,0x6c15,0x6c18,0x6c19, +0x6c1a,0x6c21,0x6c29,0x6c24,0x6c2a,0x6c32,0x6535,0x6555, +0x656b,0x724d,0x7252,0x7256,0x7230,0x8662,0x5216,0x809f, +0x809c,0x8093,0x80bc,0x670a,0x80bd,0x80b1,0x80ab,0x80ad, +0x80b4,0x80b7,0x80e7,0x80e8,0x80e9,0x80ea,0x80db,0x80c2, +0x80c4,0x80d9,0x80cd,0x80d7,0x6710,0x80dd,0x80eb,0x80f1, +0x80f4,0x80ed,0x810d,0x810e,0x80f2,0x80fc,0x6715,0x8112, +0x8c5a,0x8136,0x811e,0x812c,0x8118,0x8132,0x8148,0x814c, +0x8153,0x8174,0x8159,0x815a,0x8171,0x8160,0x8169,0x817c, +0x817d,0x816d,0x8167,0x584d,0x5ab5,0x8188,0x8182,0x8191, +0x6ed5,0x81a3,0x81aa,0x81cc,0x6726,0x81ca,0x81bb,0x0000, +/* 0xec00 */ +0x9721,0x9722,0x9723,0x9724,0x9725,0x9726,0x9727,0x9728, +0x9729,0x972b,0x972c,0x972e,0x972f,0x9731,0x9733,0x9734, +0x9735,0x9736,0x9737,0x973a,0x973b,0x973c,0x973d,0x973f, +0x9740,0x9741,0x9742,0x9743,0x9744,0x9745,0x9746,0x9747, +0x9748,0x9749,0x974a,0x974b,0x974c,0x974d,0x974e,0x974f, +0x9750,0x9751,0x9754,0x9755,0x9757,0x9758,0x975a,0x975c, +0x975d,0x975f,0x9763,0x9764,0x9766,0x9767,0x9768,0x976a, +0x976b,0x976c,0x976d,0x976e,0x976f,0x9770,0x9771,0x0000, +0x9772,0x9775,0x9777,0x9778,0x9779,0x977a,0x977b,0x977d, +0x977e,0x977f,0x9780,0x9781,0x9782,0x9783,0x9784,0x9786, +0x9787,0x9788,0x9789,0x978a,0x978c,0x978e,0x978f,0x9790, +0x9793,0x9795,0x9796,0x9797,0x9799,0x979a,0x979b,0x979c, +0x979d,0x81c1,0x81a6,0x6b24,0x6b37,0x6b39,0x6b43,0x6b46, +0x6b59,0x98d1,0x98d2,0x98d3,0x98d5,0x98d9,0x98da,0x6bb3, +0x5f40,0x6bc2,0x89f3,0x6590,0x9f51,0x6593,0x65bc,0x65c6, +0x65c4,0x65c3,0x65cc,0x65ce,0x65d2,0x65d6,0x7080,0x709c, +0x7096,0x709d,0x70bb,0x70c0,0x70b7,0x70ab,0x70b1,0x70e8, +0x70ca,0x7110,0x7113,0x7116,0x712f,0x7131,0x7173,0x715c, +0x7168,0x7145,0x7172,0x714a,0x7178,0x717a,0x7198,0x71b3, +0x71b5,0x71a8,0x71a0,0x71e0,0x71d4,0x71e7,0x71f9,0x721d, +0x7228,0x706c,0x7118,0x7166,0x71b9,0x623e,0x623d,0x6243, +0x6248,0x6249,0x793b,0x7940,0x7946,0x7949,0x795b,0x795c, +0x7953,0x795a,0x7962,0x7957,0x7960,0x796f,0x7967,0x797a, +0x7985,0x798a,0x799a,0x79a7,0x79b3,0x5fd1,0x5fd0,0x0000, +/* 0xed00 */ +0x979e,0x979f,0x97a1,0x97a2,0x97a4,0x97a5,0x97a6,0x97a7, +0x97a8,0x97a9,0x97aa,0x97ac,0x97ae,0x97b0,0x97b1,0x97b3, +0x97b5,0x97b6,0x97b7,0x97b8,0x97b9,0x97ba,0x97bb,0x97bc, +0x97bd,0x97be,0x97bf,0x97c0,0x97c1,0x97c2,0x97c3,0x97c4, +0x97c5,0x97c6,0x97c7,0x97c8,0x97c9,0x97ca,0x97cb,0x97cc, +0x97cd,0x97ce,0x97cf,0x97d0,0x97d1,0x97d2,0x97d3,0x97d4, +0x97d5,0x97d6,0x97d7,0x97d8,0x97d9,0x97da,0x97db,0x97dc, +0x97dd,0x97de,0x97df,0x97e0,0x97e1,0x97e2,0x97e3,0x0000, +0x97e4,0x97e5,0x97e8,0x97ee,0x97ef,0x97f0,0x97f1,0x97f2, +0x97f4,0x97f7,0x97f8,0x97f9,0x97fa,0x97fb,0x97fc,0x97fd, +0x97fe,0x97ff,0x9800,0x9801,0x9802,0x9803,0x9804,0x9805, +0x9806,0x9807,0x9808,0x9809,0x980a,0x980b,0x980c,0x980d, +0x980e,0x603c,0x605d,0x605a,0x6067,0x6041,0x6059,0x6063, +0x60ab,0x6106,0x610d,0x615d,0x61a9,0x619d,0x61cb,0x61d1, +0x6206,0x8080,0x807f,0x6c93,0x6cf6,0x6dfc,0x77f6,0x77f8, +0x7800,0x7809,0x7817,0x7818,0x7811,0x65ab,0x782d,0x781c, +0x781d,0x7839,0x783a,0x783b,0x781f,0x783c,0x7825,0x782c, +0x7823,0x7829,0x784e,0x786d,0x7856,0x7857,0x7826,0x7850, +0x7847,0x784c,0x786a,0x789b,0x7893,0x789a,0x7887,0x789c, +0x78a1,0x78a3,0x78b2,0x78b9,0x78a5,0x78d4,0x78d9,0x78c9, +0x78ec,0x78f2,0x7905,0x78f4,0x7913,0x7924,0x791e,0x7934, +0x9f9b,0x9ef9,0x9efb,0x9efc,0x76f1,0x7704,0x770d,0x76f9, +0x7707,0x7708,0x771a,0x7722,0x7719,0x772d,0x7726,0x7735, +0x7738,0x7750,0x7751,0x7747,0x7743,0x775a,0x7768,0x0000, +/* 0xee00 */ +0x980f,0x9810,0x9811,0x9812,0x9813,0x9814,0x9815,0x9816, +0x9817,0x9818,0x9819,0x981a,0x981b,0x981c,0x981d,0x981e, +0x981f,0x9820,0x9821,0x9822,0x9823,0x9824,0x9825,0x9826, +0x9827,0x9828,0x9829,0x982a,0x982b,0x982c,0x982d,0x982e, +0x982f,0x9830,0x9831,0x9832,0x9833,0x9834,0x9835,0x9836, +0x9837,0x9838,0x9839,0x983a,0x983b,0x983c,0x983d,0x983e, +0x983f,0x9840,0x9841,0x9842,0x9843,0x9844,0x9845,0x9846, +0x9847,0x9848,0x9849,0x984a,0x984b,0x984c,0x984d,0x0000, +0x984e,0x984f,0x9850,0x9851,0x9852,0x9853,0x9854,0x9855, +0x9856,0x9857,0x9858,0x9859,0x985a,0x985b,0x985c,0x985d, +0x985e,0x985f,0x9860,0x9861,0x9862,0x9863,0x9864,0x9865, +0x9866,0x9867,0x9868,0x9869,0x986a,0x986b,0x986c,0x986d, +0x986e,0x7762,0x7765,0x777f,0x778d,0x777d,0x7780,0x778c, +0x7791,0x779f,0x77a0,0x77b0,0x77b5,0x77bd,0x753a,0x7540, +0x754e,0x754b,0x7548,0x755b,0x7572,0x7579,0x7583,0x7f58, +0x7f61,0x7f5f,0x8a48,0x7f68,0x7f74,0x7f71,0x7f79,0x7f81, +0x7f7e,0x76cd,0x76e5,0x8832,0x9485,0x9486,0x9487,0x948b, +0x948a,0x948c,0x948d,0x948f,0x9490,0x9494,0x9497,0x9495, +0x949a,0x949b,0x949c,0x94a3,0x94a4,0x94ab,0x94aa,0x94ad, +0x94ac,0x94af,0x94b0,0x94b2,0x94b4,0x94b6,0x94b7,0x94b8, +0x94b9,0x94ba,0x94bc,0x94bd,0x94bf,0x94c4,0x94c8,0x94c9, +0x94ca,0x94cb,0x94cc,0x94cd,0x94ce,0x94d0,0x94d1,0x94d2, +0x94d5,0x94d6,0x94d7,0x94d9,0x94d8,0x94db,0x94de,0x94df, +0x94e0,0x94e2,0x94e4,0x94e5,0x94e7,0x94e8,0x94ea,0x0000, +/* 0xef00 */ +0x986f,0x9870,0x9871,0x9872,0x9873,0x9874,0x988b,0x988e, +0x9892,0x9895,0x9899,0x98a3,0x98a8,0x98a9,0x98aa,0x98ab, +0x98ac,0x98ad,0x98ae,0x98af,0x98b0,0x98b1,0x98b2,0x98b3, +0x98b4,0x98b5,0x98b6,0x98b7,0x98b8,0x98b9,0x98ba,0x98bb, +0x98bc,0x98bd,0x98be,0x98bf,0x98c0,0x98c1,0x98c2,0x98c3, +0x98c4,0x98c5,0x98c6,0x98c7,0x98c8,0x98c9,0x98ca,0x98cb, +0x98cc,0x98cd,0x98cf,0x98d0,0x98d4,0x98d6,0x98d7,0x98db, +0x98dc,0x98dd,0x98e0,0x98e1,0x98e2,0x98e3,0x98e4,0x0000, +0x98e5,0x98e6,0x98e9,0x98ea,0x98eb,0x98ec,0x98ed,0x98ee, +0x98ef,0x98f0,0x98f1,0x98f2,0x98f3,0x98f4,0x98f5,0x98f6, +0x98f7,0x98f8,0x98f9,0x98fa,0x98fb,0x98fc,0x98fd,0x98fe, +0x98ff,0x9900,0x9901,0x9902,0x9903,0x9904,0x9905,0x9906, +0x9907,0x94e9,0x94eb,0x94ee,0x94ef,0x94f3,0x94f4,0x94f5, +0x94f7,0x94f9,0x94fc,0x94fd,0x94ff,0x9503,0x9502,0x9506, +0x9507,0x9509,0x950a,0x950d,0x950e,0x950f,0x9512,0x9513, +0x9514,0x9515,0x9516,0x9518,0x951b,0x951d,0x951e,0x951f, +0x9522,0x952a,0x952b,0x9529,0x952c,0x9531,0x9532,0x9534, +0x9536,0x9537,0x9538,0x953c,0x953e,0x953f,0x9542,0x9535, +0x9544,0x9545,0x9546,0x9549,0x954c,0x954e,0x954f,0x9552, +0x9553,0x9554,0x9556,0x9557,0x9558,0x9559,0x955b,0x955e, +0x955f,0x955d,0x9561,0x9562,0x9564,0x9565,0x9566,0x9567, +0x9568,0x9569,0x956a,0x956b,0x956c,0x956f,0x9571,0x9572, +0x9573,0x953a,0x77e7,0x77ec,0x96c9,0x79d5,0x79ed,0x79e3, +0x79eb,0x7a06,0x5d47,0x7a03,0x7a02,0x7a1e,0x7a14,0x0000, +/* 0xf000 */ +0x9908,0x9909,0x990a,0x990b,0x990c,0x990e,0x990f,0x9911, +0x9912,0x9913,0x9914,0x9915,0x9916,0x9917,0x9918,0x9919, +0x991a,0x991b,0x991c,0x991d,0x991e,0x991f,0x9920,0x9921, +0x9922,0x9923,0x9924,0x9925,0x9926,0x9927,0x9928,0x9929, +0x992a,0x992b,0x992c,0x992d,0x992f,0x9930,0x9931,0x9932, +0x9933,0x9934,0x9935,0x9936,0x9937,0x9938,0x9939,0x993a, +0x993b,0x993c,0x993d,0x993e,0x993f,0x9940,0x9941,0x9942, +0x9943,0x9944,0x9945,0x9946,0x9947,0x9948,0x9949,0x0000, +0x994a,0x994b,0x994c,0x994d,0x994e,0x994f,0x9950,0x9951, +0x9952,0x9953,0x9956,0x9957,0x9958,0x9959,0x995a,0x995b, +0x995c,0x995d,0x995e,0x995f,0x9960,0x9961,0x9962,0x9964, +0x9966,0x9973,0x9978,0x9979,0x997b,0x997e,0x9982,0x9983, +0x9989,0x7a39,0x7a37,0x7a51,0x9ecf,0x99a5,0x7a70,0x7688, +0x768e,0x7693,0x7699,0x76a4,0x74de,0x74e0,0x752c,0x9e20, +0x9e22,0x9e28,0x9e29,0x9e2a,0x9e2b,0x9e2c,0x9e32,0x9e31, +0x9e36,0x9e38,0x9e37,0x9e39,0x9e3a,0x9e3e,0x9e41,0x9e42, +0x9e44,0x9e46,0x9e47,0x9e48,0x9e49,0x9e4b,0x9e4c,0x9e4e, +0x9e51,0x9e55,0x9e57,0x9e5a,0x9e5b,0x9e5c,0x9e5e,0x9e63, +0x9e66,0x9e67,0x9e68,0x9e69,0x9e6a,0x9e6b,0x9e6c,0x9e71, +0x9e6d,0x9e73,0x7592,0x7594,0x7596,0x75a0,0x759d,0x75ac, +0x75a3,0x75b3,0x75b4,0x75b8,0x75c4,0x75b1,0x75b0,0x75c3, +0x75c2,0x75d6,0x75cd,0x75e3,0x75e8,0x75e6,0x75e4,0x75eb, +0x75e7,0x7603,0x75f1,0x75fc,0x75ff,0x7610,0x7600,0x7605, +0x760c,0x7617,0x760a,0x7625,0x7618,0x7615,0x7619,0x0000, +/* 0xf100 */ +0x998c,0x998e,0x999a,0x999b,0x999c,0x999d,0x999e,0x999f, +0x99a0,0x99a1,0x99a2,0x99a3,0x99a4,0x99a6,0x99a7,0x99a9, +0x99aa,0x99ab,0x99ac,0x99ad,0x99ae,0x99af,0x99b0,0x99b1, +0x99b2,0x99b3,0x99b4,0x99b5,0x99b6,0x99b7,0x99b8,0x99b9, +0x99ba,0x99bb,0x99bc,0x99bd,0x99be,0x99bf,0x99c0,0x99c1, +0x99c2,0x99c3,0x99c4,0x99c5,0x99c6,0x99c7,0x99c8,0x99c9, +0x99ca,0x99cb,0x99cc,0x99cd,0x99ce,0x99cf,0x99d0,0x99d1, +0x99d2,0x99d3,0x99d4,0x99d5,0x99d6,0x99d7,0x99d8,0x0000, +0x99d9,0x99da,0x99db,0x99dc,0x99dd,0x99de,0x99df,0x99e0, +0x99e1,0x99e2,0x99e3,0x99e4,0x99e5,0x99e6,0x99e7,0x99e8, +0x99e9,0x99ea,0x99eb,0x99ec,0x99ed,0x99ee,0x99ef,0x99f0, +0x99f1,0x99f2,0x99f3,0x99f4,0x99f5,0x99f6,0x99f7,0x99f8, +0x99f9,0x761b,0x763c,0x7622,0x7620,0x7640,0x762d,0x7630, +0x763f,0x7635,0x7643,0x763e,0x7633,0x764d,0x765e,0x7654, +0x765c,0x7656,0x766b,0x766f,0x7fca,0x7ae6,0x7a78,0x7a79, +0x7a80,0x7a86,0x7a88,0x7a95,0x7aa6,0x7aa0,0x7aac,0x7aa8, +0x7aad,0x7ab3,0x8864,0x8869,0x8872,0x887d,0x887f,0x8882, +0x88a2,0x88c6,0x88b7,0x88bc,0x88c9,0x88e2,0x88ce,0x88e3, +0x88e5,0x88f1,0x891a,0x88fc,0x88e8,0x88fe,0x88f0,0x8921, +0x8919,0x8913,0x891b,0x890a,0x8934,0x892b,0x8936,0x8941, +0x8966,0x897b,0x758b,0x80e5,0x76b2,0x76b4,0x77dc,0x8012, +0x8014,0x8016,0x801c,0x8020,0x8022,0x8025,0x8026,0x8027, +0x8029,0x8028,0x8031,0x800b,0x8035,0x8043,0x8046,0x804d, +0x8052,0x8069,0x8071,0x8983,0x9878,0x9880,0x9883,0x0000, +/* 0xf200 */ +0x99fa,0x99fb,0x99fc,0x99fd,0x99fe,0x99ff,0x9a00,0x9a01, +0x9a02,0x9a03,0x9a04,0x9a05,0x9a06,0x9a07,0x9a08,0x9a09, +0x9a0a,0x9a0b,0x9a0c,0x9a0d,0x9a0e,0x9a0f,0x9a10,0x9a11, +0x9a12,0x9a13,0x9a14,0x9a15,0x9a16,0x9a17,0x9a18,0x9a19, +0x9a1a,0x9a1b,0x9a1c,0x9a1d,0x9a1e,0x9a1f,0x9a20,0x9a21, +0x9a22,0x9a23,0x9a24,0x9a25,0x9a26,0x9a27,0x9a28,0x9a29, +0x9a2a,0x9a2b,0x9a2c,0x9a2d,0x9a2e,0x9a2f,0x9a30,0x9a31, +0x9a32,0x9a33,0x9a34,0x9a35,0x9a36,0x9a37,0x9a38,0x0000, +0x9a39,0x9a3a,0x9a3b,0x9a3c,0x9a3d,0x9a3e,0x9a3f,0x9a40, +0x9a41,0x9a42,0x9a43,0x9a44,0x9a45,0x9a46,0x9a47,0x9a48, +0x9a49,0x9a4a,0x9a4b,0x9a4c,0x9a4d,0x9a4e,0x9a4f,0x9a50, +0x9a51,0x9a52,0x9a53,0x9a54,0x9a55,0x9a56,0x9a57,0x9a58, +0x9a59,0x9889,0x988c,0x988d,0x988f,0x9894,0x989a,0x989b, +0x989e,0x989f,0x98a1,0x98a2,0x98a5,0x98a6,0x864d,0x8654, +0x866c,0x866e,0x867f,0x867a,0x867c,0x867b,0x86a8,0x868d, +0x868b,0x86ac,0x869d,0x86a7,0x86a3,0x86aa,0x8693,0x86a9, +0x86b6,0x86c4,0x86b5,0x86ce,0x86b0,0x86ba,0x86b1,0x86af, +0x86c9,0x86cf,0x86b4,0x86e9,0x86f1,0x86f2,0x86ed,0x86f3, +0x86d0,0x8713,0x86de,0x86f4,0x86df,0x86d8,0x86d1,0x8703, +0x8707,0x86f8,0x8708,0x870a,0x870d,0x8709,0x8723,0x873b, +0x871e,0x8725,0x872e,0x871a,0x873e,0x8748,0x8734,0x8731, +0x8729,0x8737,0x873f,0x8782,0x8722,0x877d,0x877e,0x877b, +0x8760,0x8770,0x874c,0x876e,0x878b,0x8753,0x8763,0x877c, +0x8764,0x8759,0x8765,0x8793,0x87af,0x87a8,0x87d2,0x0000, +/* 0xf300 */ +0x9a5a,0x9a5b,0x9a5c,0x9a5d,0x9a5e,0x9a5f,0x9a60,0x9a61, +0x9a62,0x9a63,0x9a64,0x9a65,0x9a66,0x9a67,0x9a68,0x9a69, +0x9a6a,0x9a6b,0x9a72,0x9a83,0x9a89,0x9a8d,0x9a8e,0x9a94, +0x9a95,0x9a99,0x9aa6,0x9aa9,0x9aaa,0x9aab,0x9aac,0x9aad, +0x9aae,0x9aaf,0x9ab2,0x9ab3,0x9ab4,0x9ab5,0x9ab9,0x9abb, +0x9abd,0x9abe,0x9abf,0x9ac3,0x9ac4,0x9ac6,0x9ac7,0x9ac8, +0x9ac9,0x9aca,0x9acd,0x9ace,0x9acf,0x9ad0,0x9ad2,0x9ad4, +0x9ad5,0x9ad6,0x9ad7,0x9ad9,0x9ada,0x9adb,0x9adc,0x0000, +0x9add,0x9ade,0x9ae0,0x9ae2,0x9ae3,0x9ae4,0x9ae5,0x9ae7, +0x9ae8,0x9ae9,0x9aea,0x9aec,0x9aee,0x9af0,0x9af1,0x9af2, +0x9af3,0x9af4,0x9af5,0x9af6,0x9af7,0x9af8,0x9afa,0x9afc, +0x9afd,0x9afe,0x9aff,0x9b00,0x9b01,0x9b02,0x9b04,0x9b05, +0x9b06,0x87c6,0x8788,0x8785,0x87ad,0x8797,0x8783,0x87ab, +0x87e5,0x87ac,0x87b5,0x87b3,0x87cb,0x87d3,0x87bd,0x87d1, +0x87c0,0x87ca,0x87db,0x87ea,0x87e0,0x87ee,0x8816,0x8813, +0x87fe,0x880a,0x881b,0x8821,0x8839,0x883c,0x7f36,0x7f42, +0x7f44,0x7f45,0x8210,0x7afa,0x7afd,0x7b08,0x7b03,0x7b04, +0x7b15,0x7b0a,0x7b2b,0x7b0f,0x7b47,0x7b38,0x7b2a,0x7b19, +0x7b2e,0x7b31,0x7b20,0x7b25,0x7b24,0x7b33,0x7b3e,0x7b1e, +0x7b58,0x7b5a,0x7b45,0x7b75,0x7b4c,0x7b5d,0x7b60,0x7b6e, +0x7b7b,0x7b62,0x7b72,0x7b71,0x7b90,0x7ba6,0x7ba7,0x7bb8, +0x7bac,0x7b9d,0x7ba8,0x7b85,0x7baa,0x7b9c,0x7ba2,0x7bab, +0x7bb4,0x7bd1,0x7bc1,0x7bcc,0x7bdd,0x7bda,0x7be5,0x7be6, +0x7bea,0x7c0c,0x7bfe,0x7bfc,0x7c0f,0x7c16,0x7c0b,0x0000, +/* 0xf400 */ +0x9b07,0x9b09,0x9b0a,0x9b0b,0x9b0c,0x9b0d,0x9b0e,0x9b10, +0x9b11,0x9b12,0x9b14,0x9b15,0x9b16,0x9b17,0x9b18,0x9b19, +0x9b1a,0x9b1b,0x9b1c,0x9b1d,0x9b1e,0x9b20,0x9b21,0x9b22, +0x9b24,0x9b25,0x9b26,0x9b27,0x9b28,0x9b29,0x9b2a,0x9b2b, +0x9b2c,0x9b2d,0x9b2e,0x9b30,0x9b31,0x9b33,0x9b34,0x9b35, +0x9b36,0x9b37,0x9b38,0x9b39,0x9b3a,0x9b3d,0x9b3e,0x9b3f, +0x9b40,0x9b46,0x9b4a,0x9b4b,0x9b4c,0x9b4e,0x9b50,0x9b52, +0x9b53,0x9b55,0x9b56,0x9b57,0x9b58,0x9b59,0x9b5a,0x0000, +0x9b5b,0x9b5c,0x9b5d,0x9b5e,0x9b5f,0x9b60,0x9b61,0x9b62, +0x9b63,0x9b64,0x9b65,0x9b66,0x9b67,0x9b68,0x9b69,0x9b6a, +0x9b6b,0x9b6c,0x9b6d,0x9b6e,0x9b6f,0x9b70,0x9b71,0x9b72, +0x9b73,0x9b74,0x9b75,0x9b76,0x9b77,0x9b78,0x9b79,0x9b7a, +0x9b7b,0x7c1f,0x7c2a,0x7c26,0x7c38,0x7c41,0x7c40,0x81fe, +0x8201,0x8202,0x8204,0x81ec,0x8844,0x8221,0x8222,0x8223, +0x822d,0x822f,0x8228,0x822b,0x8238,0x823b,0x8233,0x8234, +0x823e,0x8244,0x8249,0x824b,0x824f,0x825a,0x825f,0x8268, +0x887e,0x8885,0x8888,0x88d8,0x88df,0x895e,0x7f9d,0x7f9f, +0x7fa7,0x7faf,0x7fb0,0x7fb2,0x7c7c,0x6549,0x7c91,0x7c9d, +0x7c9c,0x7c9e,0x7ca2,0x7cb2,0x7cbc,0x7cbd,0x7cc1,0x7cc7, +0x7ccc,0x7ccd,0x7cc8,0x7cc5,0x7cd7,0x7ce8,0x826e,0x66a8, +0x7fbf,0x7fce,0x7fd5,0x7fe5,0x7fe1,0x7fe6,0x7fe9,0x7fee, +0x7ff3,0x7cf8,0x7d77,0x7da6,0x7dae,0x7e47,0x7e9b,0x9eb8, +0x9eb4,0x8d73,0x8d84,0x8d94,0x8d91,0x8db1,0x8d67,0x8d6d, +0x8c47,0x8c49,0x914a,0x9150,0x914e,0x914f,0x9164,0x0000, +/* 0xf500 */ +0x9b7c,0x9b7d,0x9b7e,0x9b7f,0x9b80,0x9b81,0x9b82,0x9b83, +0x9b84,0x9b85,0x9b86,0x9b87,0x9b88,0x9b89,0x9b8a,0x9b8b, +0x9b8c,0x9b8d,0x9b8e,0x9b8f,0x9b90,0x9b91,0x9b92,0x9b93, +0x9b94,0x9b95,0x9b96,0x9b97,0x9b98,0x9b99,0x9b9a,0x9b9b, +0x9b9c,0x9b9d,0x9b9e,0x9b9f,0x9ba0,0x9ba1,0x9ba2,0x9ba3, +0x9ba4,0x9ba5,0x9ba6,0x9ba7,0x9ba8,0x9ba9,0x9baa,0x9bab, +0x9bac,0x9bad,0x9bae,0x9baf,0x9bb0,0x9bb1,0x9bb2,0x9bb3, +0x9bb4,0x9bb5,0x9bb6,0x9bb7,0x9bb8,0x9bb9,0x9bba,0x0000, +0x9bbb,0x9bbc,0x9bbd,0x9bbe,0x9bbf,0x9bc0,0x9bc1,0x9bc2, +0x9bc3,0x9bc4,0x9bc5,0x9bc6,0x9bc7,0x9bc8,0x9bc9,0x9bca, +0x9bcb,0x9bcc,0x9bcd,0x9bce,0x9bcf,0x9bd0,0x9bd1,0x9bd2, +0x9bd3,0x9bd4,0x9bd5,0x9bd6,0x9bd7,0x9bd8,0x9bd9,0x9bda, +0x9bdb,0x9162,0x9161,0x9170,0x9169,0x916f,0x917d,0x917e, +0x9172,0x9174,0x9179,0x918c,0x9185,0x9190,0x918d,0x9191, +0x91a2,0x91a3,0x91aa,0x91ad,0x91ae,0x91af,0x91b5,0x91b4, +0x91ba,0x8c55,0x9e7e,0x8db8,0x8deb,0x8e05,0x8e59,0x8e69, +0x8db5,0x8dbf,0x8dbc,0x8dba,0x8dc4,0x8dd6,0x8dd7,0x8dda, +0x8dde,0x8dce,0x8dcf,0x8ddb,0x8dc6,0x8dec,0x8df7,0x8df8, +0x8de3,0x8df9,0x8dfb,0x8de4,0x8e09,0x8dfd,0x8e14,0x8e1d, +0x8e1f,0x8e2c,0x8e2e,0x8e23,0x8e2f,0x8e3a,0x8e40,0x8e39, +0x8e35,0x8e3d,0x8e31,0x8e49,0x8e41,0x8e42,0x8e51,0x8e52, +0x8e4a,0x8e70,0x8e76,0x8e7c,0x8e6f,0x8e74,0x8e85,0x8e8f, +0x8e94,0x8e90,0x8e9c,0x8e9e,0x8c78,0x8c82,0x8c8a,0x8c85, +0x8c98,0x8c94,0x659b,0x89d6,0x89de,0x89da,0x89dc,0x0000, +/* 0xf600 */ +0x9bdc,0x9bdd,0x9bde,0x9bdf,0x9be0,0x9be1,0x9be2,0x9be3, +0x9be4,0x9be5,0x9be6,0x9be7,0x9be8,0x9be9,0x9bea,0x9beb, +0x9bec,0x9bed,0x9bee,0x9bef,0x9bf0,0x9bf1,0x9bf2,0x9bf3, +0x9bf4,0x9bf5,0x9bf6,0x9bf7,0x9bf8,0x9bf9,0x9bfa,0x9bfb, +0x9bfc,0x9bfd,0x9bfe,0x9bff,0x9c00,0x9c01,0x9c02,0x9c03, +0x9c04,0x9c05,0x9c06,0x9c07,0x9c08,0x9c09,0x9c0a,0x9c0b, +0x9c0c,0x9c0d,0x9c0e,0x9c0f,0x9c10,0x9c11,0x9c12,0x9c13, +0x9c14,0x9c15,0x9c16,0x9c17,0x9c18,0x9c19,0x9c1a,0x0000, +0x9c1b,0x9c1c,0x9c1d,0x9c1e,0x9c1f,0x9c20,0x9c21,0x9c22, +0x9c23,0x9c24,0x9c25,0x9c26,0x9c27,0x9c28,0x9c29,0x9c2a, +0x9c2b,0x9c2c,0x9c2d,0x9c2e,0x9c2f,0x9c30,0x9c31,0x9c32, +0x9c33,0x9c34,0x9c35,0x9c36,0x9c37,0x9c38,0x9c39,0x9c3a, +0x9c3b,0x89e5,0x89eb,0x89ef,0x8a3e,0x8b26,0x9753,0x96e9, +0x96f3,0x96ef,0x9706,0x9701,0x9708,0x970f,0x970e,0x972a, +0x972d,0x9730,0x973e,0x9f80,0x9f83,0x9f85,0x9f86,0x9f87, +0x9f88,0x9f89,0x9f8a,0x9f8c,0x9efe,0x9f0b,0x9f0d,0x96b9, +0x96bc,0x96bd,0x96ce,0x96d2,0x77bf,0x96e0,0x928e,0x92ae, +0x92c8,0x933e,0x936a,0x93ca,0x938f,0x943e,0x946b,0x9c7f, +0x9c82,0x9c85,0x9c86,0x9c87,0x9c88,0x7a23,0x9c8b,0x9c8e, +0x9c90,0x9c91,0x9c92,0x9c94,0x9c95,0x9c9a,0x9c9b,0x9c9e, +0x9c9f,0x9ca0,0x9ca1,0x9ca2,0x9ca3,0x9ca5,0x9ca6,0x9ca7, +0x9ca8,0x9ca9,0x9cab,0x9cad,0x9cae,0x9cb0,0x9cb1,0x9cb2, +0x9cb3,0x9cb4,0x9cb5,0x9cb6,0x9cb7,0x9cba,0x9cbb,0x9cbc, +0x9cbd,0x9cc4,0x9cc5,0x9cc6,0x9cc7,0x9cca,0x9ccb,0x0000, +/* 0xf700 */ +0x9c3c,0x9c3d,0x9c3e,0x9c3f,0x9c40,0x9c41,0x9c42,0x9c43, +0x9c44,0x9c45,0x9c46,0x9c47,0x9c48,0x9c49,0x9c4a,0x9c4b, +0x9c4c,0x9c4d,0x9c4e,0x9c4f,0x9c50,0x9c51,0x9c52,0x9c53, +0x9c54,0x9c55,0x9c56,0x9c57,0x9c58,0x9c59,0x9c5a,0x9c5b, +0x9c5c,0x9c5d,0x9c5e,0x9c5f,0x9c60,0x9c61,0x9c62,0x9c63, +0x9c64,0x9c65,0x9c66,0x9c67,0x9c68,0x9c69,0x9c6a,0x9c6b, +0x9c6c,0x9c6d,0x9c6e,0x9c6f,0x9c70,0x9c71,0x9c72,0x9c73, +0x9c74,0x9c75,0x9c76,0x9c77,0x9c78,0x9c79,0x9c7a,0x0000, +0x9c7b,0x9c7d,0x9c7e,0x9c80,0x9c83,0x9c84,0x9c89,0x9c8a, +0x9c8c,0x9c8f,0x9c93,0x9c96,0x9c97,0x9c98,0x9c99,0x9c9d, +0x9caa,0x9cac,0x9caf,0x9cb9,0x9cbe,0x9cbf,0x9cc0,0x9cc1, +0x9cc2,0x9cc8,0x9cc9,0x9cd1,0x9cd2,0x9cda,0x9cdb,0x9ce0, +0x9ce1,0x9ccc,0x9ccd,0x9cce,0x9ccf,0x9cd0,0x9cd3,0x9cd4, +0x9cd5,0x9cd7,0x9cd8,0x9cd9,0x9cdc,0x9cdd,0x9cdf,0x9ce2, +0x977c,0x9785,0x9791,0x9792,0x9794,0x97af,0x97ab,0x97a3, +0x97b2,0x97b4,0x9ab1,0x9ab0,0x9ab7,0x9e58,0x9ab6,0x9aba, +0x9abc,0x9ac1,0x9ac0,0x9ac5,0x9ac2,0x9acb,0x9acc,0x9ad1, +0x9b45,0x9b43,0x9b47,0x9b49,0x9b48,0x9b4d,0x9b51,0x98e8, +0x990d,0x992e,0x9955,0x9954,0x9adf,0x9ae1,0x9ae6,0x9aef, +0x9aeb,0x9afb,0x9aed,0x9af9,0x9b08,0x9b0f,0x9b13,0x9b1f, +0x9b23,0x9ebd,0x9ebe,0x7e3b,0x9e82,0x9e87,0x9e88,0x9e8b, +0x9e92,0x93d6,0x9e9d,0x9e9f,0x9edb,0x9edc,0x9edd,0x9ee0, +0x9edf,0x9ee2,0x9ee9,0x9ee7,0x9ee5,0x9eea,0x9eef,0x9f22, +0x9f2c,0x9f2f,0x9f39,0x9f37,0x9f3d,0x9f3e,0x9f44,0x0000, +/* 0xf800 */ +0x9ce3,0x9ce4,0x9ce5,0x9ce6,0x9ce7,0x9ce8,0x9ce9,0x9cea, +0x9ceb,0x9cec,0x9ced,0x9cee,0x9cef,0x9cf0,0x9cf1,0x9cf2, +0x9cf3,0x9cf4,0x9cf5,0x9cf6,0x9cf7,0x9cf8,0x9cf9,0x9cfa, +0x9cfb,0x9cfc,0x9cfd,0x9cfe,0x9cff,0x9d00,0x9d01,0x9d02, +0x9d03,0x9d04,0x9d05,0x9d06,0x9d07,0x9d08,0x9d09,0x9d0a, +0x9d0b,0x9d0c,0x9d0d,0x9d0e,0x9d0f,0x9d10,0x9d11,0x9d12, +0x9d13,0x9d14,0x9d15,0x9d16,0x9d17,0x9d18,0x9d19,0x9d1a, +0x9d1b,0x9d1c,0x9d1d,0x9d1e,0x9d1f,0x9d20,0x9d21,0x0000, +0x9d22,0x9d23,0x9d24,0x9d25,0x9d26,0x9d27,0x9d28,0x9d29, +0x9d2a,0x9d2b,0x9d2c,0x9d2d,0x9d2e,0x9d2f,0x9d30,0x9d31, +0x9d32,0x9d33,0x9d34,0x9d35,0x9d36,0x9d37,0x9d38,0x9d39, +0x9d3a,0x9d3b,0x9d3c,0x9d3d,0x9d3e,0x9d3f,0x9d40,0x9d41, +0x9d42,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0xf900 */ +0x9d43,0x9d44,0x9d45,0x9d46,0x9d47,0x9d48,0x9d49,0x9d4a, +0x9d4b,0x9d4c,0x9d4d,0x9d4e,0x9d4f,0x9d50,0x9d51,0x9d52, +0x9d53,0x9d54,0x9d55,0x9d56,0x9d57,0x9d58,0x9d59,0x9d5a, +0x9d5b,0x9d5c,0x9d5d,0x9d5e,0x9d5f,0x9d60,0x9d61,0x9d62, +0x9d63,0x9d64,0x9d65,0x9d66,0x9d67,0x9d68,0x9d69,0x9d6a, +0x9d6b,0x9d6c,0x9d6d,0x9d6e,0x9d6f,0x9d70,0x9d71,0x9d72, +0x9d73,0x9d74,0x9d75,0x9d76,0x9d77,0x9d78,0x9d79,0x9d7a, +0x9d7b,0x9d7c,0x9d7d,0x9d7e,0x9d7f,0x9d80,0x9d81,0x0000, +0x9d82,0x9d83,0x9d84,0x9d85,0x9d86,0x9d87,0x9d88,0x9d89, +0x9d8a,0x9d8b,0x9d8c,0x9d8d,0x9d8e,0x9d8f,0x9d90,0x9d91, +0x9d92,0x9d93,0x9d94,0x9d95,0x9d96,0x9d97,0x9d98,0x9d99, +0x9d9a,0x9d9b,0x9d9c,0x9d9d,0x9d9e,0x9d9f,0x9da0,0x9da1, +0x9da2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0xfa00 */ +0x9da3,0x9da4,0x9da5,0x9da6,0x9da7,0x9da8,0x9da9,0x9daa, +0x9dab,0x9dac,0x9dad,0x9dae,0x9daf,0x9db0,0x9db1,0x9db2, +0x9db3,0x9db4,0x9db5,0x9db6,0x9db7,0x9db8,0x9db9,0x9dba, +0x9dbb,0x9dbc,0x9dbd,0x9dbe,0x9dbf,0x9dc0,0x9dc1,0x9dc2, +0x9dc3,0x9dc4,0x9dc5,0x9dc6,0x9dc7,0x9dc8,0x9dc9,0x9dca, +0x9dcb,0x9dcc,0x9dcd,0x9dce,0x9dcf,0x9dd0,0x9dd1,0x9dd2, +0x9dd3,0x9dd4,0x9dd5,0x9dd6,0x9dd7,0x9dd8,0x9dd9,0x9dda, +0x9ddb,0x9ddc,0x9ddd,0x9dde,0x9ddf,0x9de0,0x9de1,0x0000, +0x9de2,0x9de3,0x9de4,0x9de5,0x9de6,0x9de7,0x9de8,0x9de9, +0x9dea,0x9deb,0x9dec,0x9ded,0x9dee,0x9def,0x9df0,0x9df1, +0x9df2,0x9df3,0x9df4,0x9df5,0x9df6,0x9df7,0x9df8,0x9df9, +0x9dfa,0x9dfb,0x9dfc,0x9dfd,0x9dfe,0x9dff,0x9e00,0x9e01, +0x9e02,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0xfb00 */ +0x9e03,0x9e04,0x9e05,0x9e06,0x9e07,0x9e08,0x9e09,0x9e0a, +0x9e0b,0x9e0c,0x9e0d,0x9e0e,0x9e0f,0x9e10,0x9e11,0x9e12, +0x9e13,0x9e14,0x9e15,0x9e16,0x9e17,0x9e18,0x9e19,0x9e1a, +0x9e1b,0x9e1c,0x9e1d,0x9e1e,0x9e24,0x9e27,0x9e2e,0x9e30, +0x9e34,0x9e3b,0x9e3c,0x9e40,0x9e4d,0x9e50,0x9e52,0x9e53, +0x9e54,0x9e56,0x9e59,0x9e5d,0x9e5f,0x9e60,0x9e61,0x9e62, +0x9e65,0x9e6e,0x9e6f,0x9e72,0x9e74,0x9e75,0x9e76,0x9e77, +0x9e78,0x9e79,0x9e7a,0x9e7b,0x9e7c,0x9e7d,0x9e80,0x0000, +0x9e81,0x9e83,0x9e84,0x9e85,0x9e86,0x9e89,0x9e8a,0x9e8c, +0x9e8d,0x9e8e,0x9e8f,0x9e90,0x9e91,0x9e94,0x9e95,0x9e96, +0x9e97,0x9e98,0x9e99,0x9e9a,0x9e9b,0x9e9c,0x9e9e,0x9ea0, +0x9ea1,0x9ea2,0x9ea3,0x9ea4,0x9ea5,0x9ea7,0x9ea8,0x9ea9, +0x9eaa,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0xfc00 */ +0x9eab,0x9eac,0x9ead,0x9eae,0x9eaf,0x9eb0,0x9eb1,0x9eb2, +0x9eb3,0x9eb5,0x9eb6,0x9eb7,0x9eb9,0x9eba,0x9ebc,0x9ebf, +0x9ec0,0x9ec1,0x9ec2,0x9ec3,0x9ec5,0x9ec6,0x9ec7,0x9ec8, +0x9eca,0x9ecb,0x9ecc,0x9ed0,0x9ed2,0x9ed3,0x9ed5,0x9ed6, +0x9ed7,0x9ed9,0x9eda,0x9ede,0x9ee1,0x9ee3,0x9ee4,0x9ee6, +0x9ee8,0x9eeb,0x9eec,0x9eed,0x9eee,0x9ef0,0x9ef1,0x9ef2, +0x9ef3,0x9ef4,0x9ef5,0x9ef6,0x9ef7,0x9ef8,0x9efa,0x9efd, +0x9eff,0x9f00,0x9f01,0x9f02,0x9f03,0x9f04,0x9f05,0x0000, +0x9f06,0x9f07,0x9f08,0x9f09,0x9f0a,0x9f0c,0x9f0f,0x9f11, +0x9f12,0x9f14,0x9f15,0x9f16,0x9f18,0x9f1a,0x9f1b,0x9f1c, +0x9f1d,0x9f1e,0x9f1f,0x9f21,0x9f23,0x9f24,0x9f25,0x9f26, +0x9f27,0x9f28,0x9f29,0x9f2a,0x9f2b,0x9f2d,0x9f2e,0x9f30, +0x9f31,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0xfd00 */ +0x9f32,0x9f33,0x9f34,0x9f35,0x9f36,0x9f38,0x9f3a,0x9f3c, +0x9f3f,0x9f40,0x9f41,0x9f42,0x9f43,0x9f45,0x9f46,0x9f47, +0x9f48,0x9f49,0x9f4a,0x9f4b,0x9f4c,0x9f4d,0x9f4e,0x9f4f, +0x9f52,0x9f53,0x9f54,0x9f55,0x9f56,0x9f57,0x9f58,0x9f59, +0x9f5a,0x9f5b,0x9f5c,0x9f5d,0x9f5e,0x9f5f,0x9f60,0x9f61, +0x9f62,0x9f63,0x9f64,0x9f65,0x9f66,0x9f67,0x9f68,0x9f69, +0x9f6a,0x9f6b,0x9f6c,0x9f6d,0x9f6e,0x9f6f,0x9f70,0x9f71, +0x9f72,0x9f73,0x9f74,0x9f75,0x9f76,0x9f77,0x9f78,0x0000, +0x9f79,0x9f7a,0x9f7b,0x9f7c,0x9f7d,0x9f7e,0x9f81,0x9f82, +0x9f8d,0x9f8e,0x9f8f,0x9f90,0x9f91,0x9f92,0x9f93,0x9f94, +0x9f95,0x9f96,0x9f97,0x9f98,0x9f9c,0x9f9d,0x9f9e,0x9fa1, +0x9fa2,0x9fa3,0x9fa4,0x9fa5,0xf92c,0xf979,0xf995,0xf9e7, +0xf9f1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0xfe00 */ +0xfa0c,0xfa0d,0xfa0e,0xfa0f,0xfa11,0xfa13,0xfa14,0xfa18, +0xfa1f,0xfa20,0xfa21,0xfa23,0xfa24,0xfa27,0xfa28,0xfa29, +0x2e81,0x0000,0x0000,0x0000,0x2e84,0x3473,0x3447,0x2e88, +0x2e8b,0x0000,0x359e,0x361a,0x360e,0x2e8c,0x2e97,0x396e, +0x3918,0x0000,0x39cf,0x39df,0x3a73,0x39d0,0x0000,0x0000, +0x3b4e,0x3c6e,0x3ce0,0x2ea7,0x0000,0x0000,0x2eaa,0x4056, +0x415f,0x2eae,0x4337,0x2eb3,0x2eb6,0x2eb7,0x0000,0x43b1, +0x43ac,0x2ebb,0x43dd,0x44d6,0x4661,0x464c,0x0000,0x0000, +0x4723,0x4729,0x477c,0x478d,0x2eca,0x4947,0x497a,0x497d, +0x4982,0x4983,0x4985,0x4986,0x499f,0x499b,0x49b7,0x49b6, +0x0000,0x0000,0x4ca3,0x4c9f,0x4ca0,0x4ca1,0x4c77,0x4ca2, +0x4d13,0x4d14,0x4d15,0x4d16,0x4d17,0x4d18,0x4d19,0x4dae, +}; + +const int cp936_ucs_table_size = (sizeof(cp936_ucs_table)/sizeof(unsigned short)); + + +/* UCS -> CP936 */ +const unsigned short ucs_a1_cp936_table[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000a,0x000b,0x000c,0x000d,0x000e,0x000f, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001a,0x001b,0x001c,0x001d,0x001e,0x001f, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002a,0x002b,0x002c,0x002d,0x002e,0x002f, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003a,0x003b,0x003c,0x003d,0x003e,0x003f, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004a,0x004b,0x004c,0x004d,0x004e,0x004f, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005a,0x005b,0x005c,0x005d,0x005e,0x005f, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006a,0x006b,0x006c,0x006d,0x006e,0x006f, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007a,0x007b,0x007c,0x007d,0x007e,0x007f, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xa1e8,0x0000,0x0000,0xa1ec, +0xa1a7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa1e3,0xa1c0,0x0000,0x0000,0x0000,0x0000,0x0000,0xa1a4, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xa1c1, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa8a4,0xa8a2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa8a8,0xa8a6,0xa8ba,0x0000,0xa8ac,0xa8aa,0x0000,0x0000, +0x0000,0x0000,0xa8b0,0xa8ae,0x0000,0x0000,0x0000,0xa1c2, +0x0000,0xa8b4,0xa8b2,0x0000,0xa8b9,0x0000,0x0000,0x0000, +/* 0x0100 */ +0x0000,0xa8a1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xa8a5,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xa8a7,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xa8a9,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xa8bd,0x0000,0x0000,0x0000, +0xa8be,0x0000,0x0000,0x0000,0x0000,0xa8ad,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xa8b1,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xa8a3,0x0000, +0xa8ab,0x0000,0xa8af,0x0000,0xa8b3,0x0000,0xa8b5,0x0000, +0xa8b6,0x0000,0xa8b7,0x0000,0xa8b8,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xa8bf,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x0200 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xa8bb,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xa8c0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xa1a6, +0x0000,0xa1a5,0xa840,0xa841,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xa842,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x0300 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xa6a1,0xa6a2,0xa6a3,0xa6a4,0xa6a5,0xa6a6,0xa6a7, +0xa6a8,0xa6a9,0xa6aa,0xa6ab,0xa6ac,0xa6ad,0xa6ae,0xa6af, +0xa6b0,0xa6b1,0x0000,0xa6b2,0xa6b3,0xa6b4,0xa6b5,0xa6b6, +0xa6b7,0xa6b8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xa6c1,0xa6c2,0xa6c3,0xa6c4,0xa6c5,0xa6c6,0xa6c7, +0xa6c8,0xa6c9,0xa6ca,0xa6cb,0xa6cc,0xa6cd,0xa6ce,0xa6cf, +0xa6d0,0xa6d1,0x0000,0xa6d2,0xa6d3,0xa6d4,0xa6d5,0xa6d6, +0xa6d7,0xa6d8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x0400 */ +0x0000,0xa7a7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa7a1,0xa7a2,0xa7a3,0xa7a4,0xa7a5,0xa7a6,0xa7a8,0xa7a9, +0xa7aa,0xa7ab,0xa7ac,0xa7ad,0xa7ae,0xa7af,0xa7b0,0xa7b1, +0xa7b2,0xa7b3,0xa7b4,0xa7b5,0xa7b6,0xa7b7,0xa7b8,0xa7b9, +0xa7ba,0xa7bb,0xa7bc,0xa7bd,0xa7be,0xa7bf,0xa7c0,0xa7c1, +0xa7d1,0xa7d2,0xa7d3,0xa7d4,0xa7d5,0xa7d6,0xa7d8,0xa7d9, +0xa7da,0xa7db,0xa7dc,0xa7dd,0xa7de,0xa7df,0xa7e0,0xa7e1, +0xa7e2,0xa7e3,0xa7e4,0xa7e5,0xa7e6,0xa7e7,0xa7e8,0xa7e9, +0xa7ea,0xa7eb,0xa7ec,0xa7ed,0xa7ee,0xa7ef,0xa7f0,0xa7f1, +0x0000,0xa7d7}; + +const int ucs_a1_cp936_table_min = 0x0000; +const int ucs_a1_cp936_table_max = 0x0000 + (sizeof (ucs_a1_cp936_table) / sizeof (unsigned short)); + +/* 0x2000 */ +const unsigned short ucs_a2_cp936_table[] = { +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa95c,0x0000,0x0000,0xa843,0xa1aa,0xa844,0xa1ac,0x0000, +0xa1ae,0xa1af,0x0000,0x0000,0xa1b0,0xa1b1,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xa845,0xa1ad,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa1eb,0x0000,0xa1e4,0xa1e5,0x0000,0xa846,0x0000,0x0000, +0x0000,0x0000,0x0000,0xa1f9,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0080,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x2100 */ +0x0000,0x0000,0x0000,0xa1e6,0x0000,0xa847,0x0000,0x0000, +0x0000,0xa848,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xa1ed,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xa959,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa2f1,0xa2f2,0xa2f3,0xa2f4,0xa2f5,0xa2f6,0xa2f7,0xa2f8, +0xa2f9,0xa2fa,0xa2fb,0xa2fc,0x0000,0x0000,0x0000,0x0000, +0xa2a1,0xa2a2,0xa2a3,0xa2a4,0xa2a5,0xa2a6,0xa2a7,0xa2a8, +0xa2a9,0xa2aa,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa1fb,0xa1fc,0xa1fa,0xa1fd,0x0000,0x0000,0xa849,0xa84a, +0xa84b,0xa84c,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x2200 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa1ca,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xa1c7, +0x0000,0xa1c6,0x0000,0x0000,0x0000,0xa84d,0x0000,0x0000, +0x0000,0x0000,0xa1cc,0x0000,0x0000,0xa1d8,0xa1de,0xa84e, +0xa1cf,0x0000,0x0000,0xa84f,0x0000,0xa1ce,0x0000,0xa1c4, +0xa1c5,0xa1c9,0xa1c8,0xa1d2,0x0000,0x0000,0xa1d3,0x0000, +0x0000,0x0000,0x0000,0x0000,0xa1e0,0xa1df,0xa1c3,0xa1cb, +0x0000,0x0000,0x0000,0x0000,0x0000,0xa1d7,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa1d6,0x0000,0x0000,0x0000,0xa1d5,0x0000,0x0000,0x0000, +0x0000,0x0000,0xa850,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa1d9,0xa1d4,0x0000,0x0000,0xa1dc,0xa1dd,0xa851,0xa852, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xa1da,0xa1db, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xa892,0x0000,0x0000, +0x0000,0xa1d1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xa1cd,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xa853, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x2300 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xa1d0,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x2400 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa2d9,0xa2da,0xa2db,0xa2dc,0xa2dd,0xa2de,0xa2df,0xa2e0, +0xa2e1,0xa2e2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xa2c5,0xa2c6,0xa2c7,0xa2c8, +0xa2c9,0xa2ca,0xa2cb,0xa2cc,0xa2cd,0xa2ce,0xa2cf,0xa2d0, +0xa2d1,0xa2d2,0xa2d3,0xa2d4,0xa2d5,0xa2d6,0xa2d7,0xa2d8, +0xa2b1,0xa2b2,0xa2b3,0xa2b4,0xa2b5,0xa2b6,0xa2b7,0xa2b8, +0xa2b9,0xa2ba,0xa2bb,0xa2bc,0xa2bd,0xa2be,0xa2bf,0xa2c0, +0xa2c1,0xa2c2,0xa2c3,0xa2c4,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x2500 */ +0xa9a4,0xa9a5,0xa9a6,0xa9a7,0xa9a8,0xa9a9,0xa9aa,0xa9ab, +0xa9ac,0xa9ad,0xa9ae,0xa9af,0xa9b0,0xa9b1,0xa9b2,0xa9b3, +0xa9b4,0xa9b5,0xa9b6,0xa9b7,0xa9b8,0xa9b9,0xa9ba,0xa9bb, +0xa9bc,0xa9bd,0xa9be,0xa9bf,0xa9c0,0xa9c1,0xa9c2,0xa9c3, +0xa9c4,0xa9c5,0xa9c6,0xa9c7,0xa9c8,0xa9c9,0xa9ca,0xa9cb, +0xa9cc,0xa9cd,0xa9ce,0xa9cf,0xa9d0,0xa9d1,0xa9d2,0xa9d3, +0xa9d4,0xa9d5,0xa9d6,0xa9d7,0xa9d8,0xa9d9,0xa9da,0xa9db, +0xa9dc,0xa9dd,0xa9de,0xa9df,0xa9e0,0xa9e1,0xa9e2,0xa9e3, +0xa9e4,0xa9e5,0xa9e6,0xa9e7,0xa9e8,0xa9e9,0xa9ea,0xa9eb, +0xa9ec,0xa9ed,0xa9ee,0xa9ef,0x0000,0x0000,0x0000,0x0000, +0xa854,0xa855,0xa856,0xa857,0xa858,0xa859,0xa85a,0xa85b, +0xa85c,0xa85d,0xa85e,0xa85f,0xa860,0xa861,0xa862,0xa863, +0xa864,0xa865,0xa866,0xa867,0xa868,0xa869,0xa86a,0xa86b, +0xa86c,0xa86d,0xa86e,0xa86f,0xa870,0xa871,0xa872,0xa873, +0xa874,0xa875,0xa876,0xa877,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xa878,0xa879,0xa87a,0xa87b,0xa87c,0xa87d,0xa87e, +0xa880,0xa881,0xa882,0xa883,0xa884,0xa885,0xa886,0xa887, +0x0000,0x0000,0x0000,0xa888,0xa889,0xa88a,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa1f6,0xa1f5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xa1f8,0xa1f7,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xa88b,0xa88c,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xa1f4,0xa1f3, +0x0000,0x0000,0x0000,0xa1f0,0x0000,0x0000,0xa1f2,0xa1f1, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xa88d,0xa88e,0xa88f,0xa890,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x2600 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0xa1ef,0xa1ee,0x0000, +0x0000,0xa891,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa1e2,0x0000,0xa1e1,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 +}; +const int ucs_a2_cp936_table_min = 0x2000; +const int ucs_a2_cp936_table_max = 0x2000 + (sizeof (ucs_a2_cp936_table) / sizeof (unsigned short)); + +const unsigned short ucs_a3_cp936_table[] = { +/* 0x2f00 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa98a,0xa98b,0xa98c,0xa98d,0xa98e,0xa98f,0xa990,0xa991, +0xa992,0xa993,0xa994,0xa995,0x0000,0x0000,0x0000,0x0000, +/* 0x3000 */ +0xa1a1,0xa1a2,0xa1a3,0xa1a8,0x0000,0xa1a9,0xa965,0xa996, +0xa1b4,0xa1b5,0xa1b6,0xa1b7,0xa1b8,0xa1b9,0xa1ba,0xa1bb, +0xa1be,0xa1bf,0xa893,0xa1fe,0xa1b2,0xa1b3,0xa1bc,0xa1bd, +0x0000,0x0000,0x0000,0x0000,0x0000,0xa894,0xa895,0x0000, +0x0000,0xa940,0xa941,0xa942,0xa943,0xa944,0xa945,0xa946, +0xa947,0xa948,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xa989,0x0000, +0x0000,0xa4a1,0xa4a2,0xa4a3,0xa4a4,0xa4a5,0xa4a6,0xa4a7, +0xa4a8,0xa4a9,0xa4aa,0xa4ab,0xa4ac,0xa4ad,0xa4ae,0xa4af, +0xa4b0,0xa4b1,0xa4b2,0xa4b3,0xa4b4,0xa4b5,0xa4b6,0xa4b7, +0xa4b8,0xa4b9,0xa4ba,0xa4bb,0xa4bc,0xa4bd,0xa4be,0xa4bf, +0xa4c0,0xa4c1,0xa4c2,0xa4c3,0xa4c4,0xa4c5,0xa4c6,0xa4c7, +0xa4c8,0xa4c9,0xa4ca,0xa4cb,0xa4cc,0xa4cd,0xa4ce,0xa4cf, +0xa4d0,0xa4d1,0xa4d2,0xa4d3,0xa4d4,0xa4d5,0xa4d6,0xa4d7, +0xa4d8,0xa4d9,0xa4da,0xa4db,0xa4dc,0xa4dd,0xa4de,0xa4df, +0xa4e0,0xa4e1,0xa4e2,0xa4e3,0xa4e4,0xa4e5,0xa4e6,0xa4e7, +0xa4e8,0xa4e9,0xa4ea,0xa4eb,0xa4ec,0xa4ed,0xa4ee,0xa4ef, +0xa4f0,0xa4f1,0xa4f2,0xa4f3,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xa961,0xa962,0xa966,0xa967,0x0000, +0x0000,0xa5a1,0xa5a2,0xa5a3,0xa5a4,0xa5a5,0xa5a6,0xa5a7, +0xa5a8,0xa5a9,0xa5aa,0xa5ab,0xa5ac,0xa5ad,0xa5ae,0xa5af, +0xa5b0,0xa5b1,0xa5b2,0xa5b3,0xa5b4,0xa5b5,0xa5b6,0xa5b7, +0xa5b8,0xa5b9,0xa5ba,0xa5bb,0xa5bc,0xa5bd,0xa5be,0xa5bf, +0xa5c0,0xa5c1,0xa5c2,0xa5c3,0xa5c4,0xa5c5,0xa5c6,0xa5c7, +0xa5c8,0xa5c9,0xa5ca,0xa5cb,0xa5cc,0xa5cd,0xa5ce,0xa5cf, +0xa5d0,0xa5d1,0xa5d2,0xa5d3,0xa5d4,0xa5d5,0xa5d6,0xa5d7, +0xa5d8,0xa5d9,0xa5da,0xa5db,0xa5dc,0xa5dd,0xa5de,0xa5df, +0xa5e0,0xa5e1,0xa5e2,0xa5e3,0xa5e4,0xa5e5,0xa5e6,0xa5e7, +0xa5e8,0xa5e9,0xa5ea,0xa5eb,0xa5ec,0xa5ed,0xa5ee,0xa5ef, +0xa5f0,0xa5f1,0xa5f2,0xa5f3,0xa5f4,0xa5f5,0xa5f6,0x0000, +0x0000,0x0000,0x0000,0x0000,0xa960,0xa963,0xa964,0x0000, +/* 0x3100 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0xa8c5,0xa8c6,0xa8c7, +0xa8c8,0xa8c9,0xa8ca,0xa8cb,0xa8cc,0xa8cd,0xa8ce,0xa8cf, +0xa8d0,0xa8d1,0xa8d2,0xa8d3,0xa8d4,0xa8d5,0xa8d6,0xa8d7, +0xa8d8,0xa8d9,0xa8da,0xa8db,0xa8dc,0xa8dd,0xa8de,0xa8df, +0xa8e0,0xa8e1,0xa8e2,0xa8e3,0xa8e4,0xa8e5,0xa8e6,0xa8e7, +0xa8e8,0xa8e9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x3200 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa2e5,0xa2e6,0xa2e7,0xa2e8,0xa2e9,0xa2ea,0xa2eb,0xa2ec, +0xa2ed,0xa2ee,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xa95a,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xa949,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x3300 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xa94a,0xa94b, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xa94c,0xa94d,0xa94e,0x0000, +0x0000,0xa94f,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xa950,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xa951,0x0000, +0x0000,0xa952,0xa953,0x0000,0x0000,0xa954,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 +}; + +const int ucs_a3_cp936_table_min = 0x2f00; +const int ucs_a3_cp936_table_max = 0x2f00 + (sizeof (ucs_a3_cp936_table) / sizeof (unsigned short)); + +/* 4d00h CJK Unified Ideographs (+ Extension A) */ +const unsigned short ucs_i_cp936_table[] = { +/* 0x4d00 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xfe98,0xfe99,0xfe9a,0xfe9b,0xfe9c, +0xfe9d,0xfe9e,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xfe9f,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xd2bb,0xb6a1,0x8140,0xc6df,0x8141,0x8142,0x8143,0xcdf2, +0xd5c9,0xc8fd,0xc9cf,0xcfc2,0xd8a2,0xb2bb,0xd3eb,0x8144, +0xd8a4,0xb3f3,0x8145,0xd7a8,0xc7d2,0xd8a7,0xcac0,0x8146, +0xc7f0,0xb1fb,0xd2b5,0xb4d4,0xb6ab,0xcbbf,0xd8a9,0x8147, +0x8148,0x8149,0xb6aa,0x814a,0xc1bd,0xd1cf,0x814b,0xc9a5, +0xd8ad,0x814c,0xb8f6,0xd1be,0xe3dc,0xd6d0,0x814d,0x814e, +0xb7e1,0x814f,0xb4ae,0x8150,0xc1d9,0x8151,0xd8bc,0x8152, +0xcde8,0xb5a4,0xceaa,0xd6f7,0x8153,0xc0f6,0xbed9,0xd8af, +0x8154,0x8155,0x8156,0xc4cb,0x8157,0xbec3,0x8158,0xd8b1, +0xc3b4,0xd2e5,0x8159,0xd6ae,0xceda,0xd5a7,0xbaf5,0xb7a6, +0xc0d6,0x815a,0xc6b9,0xc5d2,0xc7c7,0x815b,0xb9d4,0x815c, +0xb3cb,0xd2d2,0x815d,0x815e,0xd8bf,0xbec5,0xc6f2,0xd2b2, +0xcfb0,0xcfe7,0x815f,0x8160,0x8161,0x8162,0xcae9,0x8163, +0x8164,0xd8c0,0x8165,0x8166,0x8167,0x8168,0x8169,0x816a, +0xc2f2,0xc2d2,0x816b,0xc8e9,0x816c,0x816d,0x816e,0x816f, +0x8170,0x8171,0x8172,0x8173,0x8174,0x8175,0xc7ac,0x8176, +0x8177,0x8178,0x8179,0x817a,0x817b,0x817c,0xc1cb,0x817d, +0xd3e8,0xd5f9,0x817e,0xcac2,0xb6fe,0xd8a1,0xd3da,0xbff7, +0x8180,0xd4c6,0xbba5,0xd8c1,0xcee5,0xbeae,0x8181,0x8182, +0xd8a8,0x8183,0xd1c7,0xd0a9,0x8184,0x8185,0x8186,0xd8bd, +0xd9ef,0xcdf6,0xbfba,0x8187,0xbdbb,0xbaa5,0xd2e0,0xb2fa, +0xbae0,0xc4b6,0x8188,0xcfed,0xbea9,0xcda4,0xc1c1,0x8189, +0x818a,0x818b,0xc7d7,0xd9f1,0x818c,0xd9f4,0x818d,0x818e, +0x818f,0x8190,0xc8cb,0xd8e9,0x8191,0x8192,0x8193,0xd2da, +0xcab2,0xc8ca,0xd8ec,0xd8ea,0xd8c6,0xbdf6,0xc6cd,0xb3f0, +0x8194,0xd8eb,0xbdf1,0xbde9,0x8195,0xc8d4,0xb4d3,0x8196, +0x8197,0xc2d8,0x8198,0xb2d6,0xd7d0,0xcacb,0xcbfb,0xd5cc, +0xb8b6,0xcfc9,0x8199,0x819a,0x819b,0xd9da,0xd8f0,0xc7aa, +0x819c,0xd8ee,0x819d,0xb4fa,0xc1ee,0xd2d4,0x819e,0x819f, +0xd8ed,0x81a0,0xd2c7,0xd8ef,0xc3c7,0x81a1,0x81a2,0x81a3, +0xd1f6,0x81a4,0xd6d9,0xd8f2,0x81a5,0xd8f5,0xbcfe,0xbcdb, +0x81a6,0x81a7,0x81a8,0xc8ce,0x81a9,0xb7dd,0x81aa,0xb7c2, +0x81ab,0xc6f3,0x81ac,0x81ad,0x81ae,0x81af,0x81b0,0x81b1, +0x81b2,0xd8f8,0xd2c1,0x81b3,0x81b4,0xcee9,0xbcbf,0xb7fc, +0xb7a5,0xd0dd,0x81b5,0x81b6,0x81b7,0x81b8,0x81b9,0xd6da, +0xd3c5,0xbbef,0xbbe1,0xd8f1,0x81ba,0x81bb,0xc9a1,0xceb0, +0xb4ab,0x81bc,0xd8f3,0x81bd,0xc9cb,0xd8f6,0xc2d7,0xd8f7, +0x81be,0x81bf,0xceb1,0xd8f9,0x81c0,0x81c1,0x81c2,0xb2ae, +0xb9c0,0x81c3,0xd9a3,0x81c4,0xb0e9,0x81c5,0xc1e6,0x81c6, +0xc9ec,0x81c7,0xcbc5,0x81c8,0xcbc6,0xd9a4,0x81c9,0x81ca, +0x81cb,0x81cc,0x81cd,0xb5e8,0x81ce,0x81cf,0xb5ab,0x81d0, +0x81d1,0x81d2,0x81d3,0x81d4,0x81d5,0xcebb,0xb5cd,0xd7a1, +0xd7f4,0xd3d3,0x81d6,0xcce5,0x81d7,0xbace,0x81d8,0xd9a2, +0xd9dc,0xd3e0,0xd8fd,0xb7f0,0xd7f7,0xd8fe,0xd8fa,0xd9a1, +0xc4e3,0x81d9,0x81da,0xd3b6,0xd8f4,0xd9dd,0x81db,0xd8fb, +0x81dc,0xc5e5,0x81dd,0x81de,0xc0d0,0x81df,0x81e0,0xd1f0, +0xb0db,0x81e1,0x81e2,0xbcd1,0xd9a6,0x81e3,0xd9a5,0x81e4, +0x81e5,0x81e6,0x81e7,0xd9ac,0xd9ae,0x81e8,0xd9ab,0xcab9, +0x81e9,0x81ea,0x81eb,0xd9a9,0xd6b6,0x81ec,0x81ed,0x81ee, +0xb3de,0xd9a8,0x81ef,0xc0fd,0x81f0,0xcacc,0x81f1,0xd9aa, +0x81f2,0xd9a7,0x81f3,0x81f4,0xd9b0,0x81f5,0x81f6,0xb6b1, +0x81f7,0x81f8,0x81f9,0xb9a9,0x81fa,0xd2c0,0x81fb,0x81fc, +0xcfc0,0x81fd,0x81fe,0xc2c2,0x8240,0xbdc4,0xd5ec,0xb2e0, +0xc7c8,0xbfeb,0xd9ad,0x8241,0xd9af,0x8242,0xceea,0xbaee, +0x8243,0x8244,0x8245,0x8246,0x8247,0xc7d6,0x8248,0x8249, +0x824a,0x824b,0x824c,0x824d,0x824e,0x824f,0x8250,0xb1e3, +0x8251,0x8252,0x8253,0xb4d9,0xb6ed,0xd9b4,0x8254,0x8255, +0x8256,0x8257,0xbfa1,0x8258,0x8259,0x825a,0xd9de,0xc7ce, +0xc0fe,0xd9b8,0x825b,0x825c,0x825d,0x825e,0x825f,0xcbd7, +0xb7fd,0x8260,0xd9b5,0x8261,0xd9b7,0xb1a3,0xd3e1,0xd9b9, +0x8262,0xd0c5,0x8263,0xd9b6,0x8264,0x8265,0xd9b1,0x8266, +0xd9b2,0xc1a9,0xd9b3,0x8267,0x8268,0xbcf3,0xd0de,0xb8a9, +0x8269,0xbee3,0x826a,0xd9bd,0x826b,0x826c,0x826d,0x826e, +0xd9ba,0x826f,0xb0b3,0x8270,0x8271,0x8272,0xd9c2,0x8273, +0x8274,0x8275,0x8276,0x8277,0x8278,0x8279,0x827a,0x827b, +0x827c,0x827d,0x827e,0x8280,0xd9c4,0xb1b6,0x8281,0xd9bf, +0x8282,0x8283,0xb5b9,0x8284,0xbef3,0x8285,0x8286,0x8287, +0xccc8,0xbaf2,0xd2d0,0x8288,0xd9c3,0x8289,0x828a,0xbde8, +0x828b,0xb3ab,0x828c,0x828d,0x828e,0xd9c5,0xbeeb,0x828f, +0xd9c6,0xd9bb,0xc4df,0x8290,0xd9be,0xd9c1,0xd9c0,0x8291, +0x8292,0x8293,0x8294,0x8295,0x8296,0x8297,0x8298,0x8299, +0x829a,0x829b,0xd5ae,0x829c,0xd6b5,0x829d,0xc7e3,0x829e, +0x829f,0x82a0,0x82a1,0xd9c8,0x82a2,0x82a3,0x82a4,0xbcd9, +0xd9ca,0x82a5,0x82a6,0x82a7,0xd9bc,0x82a8,0xd9cb,0xc6ab, +0x82a9,0x82aa,0x82ab,0x82ac,0x82ad,0xd9c9,0x82ae,0x82af, +0x82b0,0x82b1,0xd7f6,0x82b2,0xcda3,0x82b3,0x82b4,0x82b5, +0x82b6,0x82b7,0x82b8,0x82b9,0x82ba,0xbda1,0x82bb,0x82bc, +0x82bd,0x82be,0x82bf,0x82c0,0xd9cc,0x82c1,0x82c2,0x82c3, +0x82c4,0x82c5,0x82c6,0x82c7,0x82c8,0x82c9,0xc5bc,0xcdb5, +0x82ca,0x82cb,0x82cc,0xd9cd,0x82cd,0x82ce,0xd9c7,0xb3a5, +0xbffe,0x82cf,0x82d0,0x82d1,0x82d2,0xb8b5,0x82d3,0x82d4, +0xc0fc,0x82d5,0x82d6,0x82d7,0x82d8,0xb0f8,0x82d9,0x82da, +0x82db,0x82dc,0x82dd,0x82de,0x82df,0x82e0,0x82e1,0x82e2, +0x82e3,0x82e4,0x82e5,0x82e6,0x82e7,0x82e8,0x82e9,0x82ea, +0x82eb,0x82ec,0x82ed,0xb4f6,0x82ee,0xd9ce,0x82ef,0xd9cf, +0xb4a2,0xd9d0,0x82f0,0x82f1,0xb4df,0x82f2,0x82f3,0x82f4, +0x82f5,0x82f6,0xb0c1,0x82f7,0x82f8,0x82f9,0x82fa,0x82fb, +0x82fc,0x82fd,0xd9d1,0xc9b5,0x82fe,0x8340,0x8341,0x8342, +0x8343,0x8344,0x8345,0x8346,0x8347,0x8348,0x8349,0x834a, +0x834b,0x834c,0x834d,0x834e,0x834f,0x8350,0x8351,0xcff1, +0x8352,0x8353,0x8354,0x8355,0x8356,0x8357,0xd9d2,0x8358, +0x8359,0x835a,0xc1c5,0x835b,0x835c,0x835d,0x835e,0x835f, +0x8360,0x8361,0x8362,0x8363,0x8364,0x8365,0xd9d6,0xc9ae, +0x8366,0x8367,0x8368,0x8369,0xd9d5,0xd9d4,0xd9d7,0x836a, +0x836b,0x836c,0x836d,0xcbdb,0x836e,0xbda9,0x836f,0x8370, +0x8371,0x8372,0x8373,0xc6a7,0x8374,0x8375,0x8376,0x8377, +0x8378,0x8379,0x837a,0x837b,0x837c,0x837d,0xd9d3,0xd9d8, +0x837e,0x8380,0x8381,0xd9d9,0x8382,0x8383,0x8384,0x8385, +0x8386,0x8387,0xc8e5,0x8388,0x8389,0x838a,0x838b,0x838c, +0x838d,0x838e,0x838f,0x8390,0x8391,0x8392,0x8393,0x8394, +0x8395,0xc0dc,0x8396,0x8397,0x8398,0x8399,0x839a,0x839b, +0x839c,0x839d,0x839e,0x839f,0x83a0,0x83a1,0x83a2,0x83a3, +0x83a4,0x83a5,0x83a6,0x83a7,0x83a8,0x83a9,0x83aa,0x83ab, +0x83ac,0x83ad,0x83ae,0x83af,0x83b0,0x83b1,0x83b2,0xb6f9, +0xd8a3,0xd4ca,0x83b3,0xd4aa,0xd0d6,0xb3e4,0xd5d7,0x83b4, +0xcfc8,0xb9e2,0x83b5,0xbfcb,0x83b6,0xc3e2,0x83b7,0x83b8, +0x83b9,0xb6d2,0x83ba,0x83bb,0xcdc3,0xd9ee,0xd9f0,0x83bc, +0x83bd,0x83be,0xb5b3,0x83bf,0xb6b5,0x83c0,0x83c1,0x83c2, +0x83c3,0x83c4,0xbea4,0x83c5,0x83c6,0xc8eb,0x83c7,0x83c8, +0xc8ab,0x83c9,0x83ca,0xb0cb,0xb9ab,0xc1f9,0xd9e2,0x83cb, +0xc0bc,0xb9b2,0x83cc,0xb9d8,0xd0cb,0xb1f8,0xc6e4,0xbedf, +0xb5e4,0xd7c8,0x83cd,0xd1f8,0xbce6,0xcade,0x83ce,0x83cf, +0xbcbd,0xd9e6,0xd8e7,0x83d0,0x83d1,0xc4da,0x83d2,0x83d3, +0xb8d4,0xc8bd,0x83d4,0x83d5,0xb2e1,0xd4d9,0x83d6,0x83d7, +0x83d8,0x83d9,0xc3b0,0x83da,0x83db,0xc3e1,0xdaa2,0xc8df, +0x83dc,0xd0b4,0x83dd,0xbefc,0xc5a9,0x83de,0x83df,0x83e0, +0xb9da,0x83e1,0xdaa3,0x83e2,0xd4a9,0xdaa4,0x83e3,0x83e4, +0x83e5,0x83e6,0x83e7,0xd9fb,0xb6ac,0x83e8,0x83e9,0xb7eb, +0xb1f9,0xd9fc,0xb3e5,0xbef6,0x83ea,0xbff6,0xd2b1,0xc0e4, +0x83eb,0x83ec,0x83ed,0xb6b3,0xd9fe,0xd9fd,0x83ee,0x83ef, +0xbebb,0x83f0,0x83f1,0x83f2,0xc6e0,0x83f3,0xd7bc,0xdaa1, +0x83f4,0xc1b9,0x83f5,0xb5f2,0xc1e8,0x83f6,0x83f7,0xbcf5, +0x83f8,0xb4d5,0x83f9,0x83fa,0x83fb,0x83fc,0x83fd,0x83fe, +0x8440,0x8441,0x8442,0xc1dd,0x8443,0xc4fd,0x8444,0x8445, +0xbcb8,0xb7b2,0x8446,0x8447,0xb7ef,0x8448,0x8449,0x844a, +0x844b,0x844c,0x844d,0xd9ec,0x844e,0xc6be,0x844f,0xbfad, +0xbbcb,0x8450,0x8451,0xb5ca,0x8452,0xdbc9,0xd0d7,0x8453, +0xcdb9,0xb0bc,0xb3f6,0xbbf7,0xdbca,0xbaaf,0x8454,0xd4e4, +0xb5b6,0xb5f3,0xd8d6,0xc8d0,0x8455,0x8456,0xb7d6,0xc7d0, +0xd8d7,0x8457,0xbfaf,0x8458,0x8459,0xdbbb,0xd8d8,0x845a, +0x845b,0xd0cc,0xbbae,0x845c,0x845d,0x845e,0xebbe,0xc1d0, +0xc1f5,0xd4f2,0xb8d5,0xb4b4,0x845f,0xb3f5,0x8460,0x8461, +0xc9be,0x8462,0x8463,0x8464,0xc5d0,0x8465,0x8466,0x8467, +0xc5d9,0xc0fb,0x8468,0xb1f0,0x8469,0xd8d9,0xb9ce,0x846a, +0xb5bd,0x846b,0x846c,0xd8da,0x846d,0x846e,0xd6c6,0xcba2, +0xc8af,0xc9b2,0xb4cc,0xbfcc,0x846f,0xb9f4,0x8470,0xd8db, +0xd8dc,0xb6e7,0xbcc1,0xccea,0x8471,0x8472,0x8473,0x8474, +0x8475,0x8476,0xcff7,0x8477,0xd8dd,0xc7b0,0x8478,0x8479, +0xb9d0,0xbda3,0x847a,0x847b,0xccde,0x847c,0xc6ca,0x847d, +0x847e,0x8480,0x8481,0x8482,0xd8e0,0x8483,0xd8de,0x8484, +0x8485,0xd8df,0x8486,0x8487,0x8488,0xb0fe,0x8489,0xbee7, +0x848a,0xcaa3,0xbcf4,0x848b,0x848c,0x848d,0x848e,0xb8b1, +0x848f,0x8490,0xb8ee,0x8491,0x8492,0x8493,0x8494,0x8495, +0x8496,0x8497,0x8498,0x8499,0x849a,0xd8e2,0x849b,0xbdcb, +0x849c,0xd8e4,0xd8e3,0x849d,0x849e,0x849f,0x84a0,0x84a1, +0xc5fc,0x84a2,0x84a3,0x84a4,0x84a5,0x84a6,0x84a7,0x84a8, +0xd8e5,0x84a9,0x84aa,0xd8e6,0x84ab,0x84ac,0x84ad,0x84ae, +0x84af,0x84b0,0x84b1,0xc1a6,0x84b2,0xc8b0,0xb0ec,0xb9a6, +0xbcd3,0xcef1,0xdbbd,0xc1d3,0x84b3,0x84b4,0x84b5,0x84b6, +0xb6af,0xd6fa,0xc5ac,0xbdd9,0xdbbe,0xdbbf,0x84b7,0x84b8, +0x84b9,0xc0f8,0xbea2,0xc0cd,0x84ba,0x84bb,0x84bc,0x84bd, +0x84be,0x84bf,0x84c0,0x84c1,0x84c2,0x84c3,0xdbc0,0xcac6, +0x84c4,0x84c5,0x84c6,0xb2aa,0x84c7,0x84c8,0x84c9,0xd3c2, +0x84ca,0xc3e3,0x84cb,0xd1ab,0x84cc,0x84cd,0x84ce,0x84cf, +0xdbc2,0x84d0,0xc0d5,0x84d1,0x84d2,0x84d3,0xdbc3,0x84d4, +0xbfb1,0x84d5,0x84d6,0x84d7,0x84d8,0x84d9,0x84da,0xc4bc, +0x84db,0x84dc,0x84dd,0x84de,0xc7da,0x84df,0x84e0,0x84e1, +0x84e2,0x84e3,0x84e4,0x84e5,0x84e6,0x84e7,0x84e8,0x84e9, +0xdbc4,0x84ea,0x84eb,0x84ec,0x84ed,0x84ee,0x84ef,0x84f0, +0x84f1,0xd9e8,0xc9d7,0x84f2,0x84f3,0x84f4,0xb9b4,0xcef0, +0xd4c8,0x84f5,0x84f6,0x84f7,0x84f8,0xb0fc,0xb4d2,0x84f9, +0xd0d9,0x84fa,0x84fb,0x84fc,0x84fd,0xd9e9,0x84fe,0xdecb, +0xd9eb,0x8540,0x8541,0x8542,0x8543,0xd8b0,0xbbaf,0xb1b1, +0x8544,0xb3d7,0xd8ce,0x8545,0x8546,0xd4d1,0x8547,0x8548, +0xbdb3,0xbfef,0x8549,0xcfbb,0x854a,0x854b,0xd8d0,0x854c, +0x854d,0x854e,0xb7cb,0x854f,0x8550,0x8551,0xd8d1,0x8552, +0x8553,0x8554,0x8555,0x8556,0x8557,0x8558,0x8559,0x855a, +0x855b,0xc6a5,0xc7f8,0xd2bd,0x855c,0x855d,0xd8d2,0xc4e4, +0x855e,0xcaae,0x855f,0xc7a7,0x8560,0xd8a6,0x8561,0xc9fd, +0xcee7,0xbbdc,0xb0eb,0x8562,0x8563,0x8564,0xbbaa,0xd0ad, +0x8565,0xb1b0,0xd7e4,0xd7bf,0x8566,0xb5a5,0xc2f4,0xc4cf, +0x8567,0x8568,0xb2a9,0x8569,0xb2b7,0x856a,0xb1e5,0xdfb2, +0xd5bc,0xbfa8,0xc2ac,0xd8d5,0xc2b1,0x856b,0xd8d4,0xced4, +0x856c,0xdae0,0x856d,0xcec0,0x856e,0x856f,0xd8b4,0xc3ae, +0xd3a1,0xcea3,0x8570,0xbcb4,0xc8b4,0xc2d1,0x8571,0xbeed, +0xd0b6,0x8572,0xdae1,0x8573,0x8574,0x8575,0x8576,0xc7e4, +0x8577,0x8578,0xb3a7,0x8579,0xb6f2,0xccfc,0xc0fa,0x857a, +0x857b,0xc0f7,0x857c,0xd1b9,0xd1e1,0xd8c7,0x857d,0x857e, +0x8580,0x8581,0x8582,0x8583,0x8584,0xb2de,0x8585,0x8586, +0xc0e5,0x8587,0xbaf1,0x8588,0x8589,0xd8c8,0x858a,0xd4ad, +0x858b,0x858c,0xcfe1,0xd8c9,0x858d,0xd8ca,0xcfc3,0x858e, +0xb3f8,0xbec7,0x858f,0x8590,0x8591,0x8592,0xd8cb,0x8593, +0x8594,0x8595,0x8596,0x8597,0x8598,0x8599,0xdbcc,0x859a, +0x859b,0x859c,0x859d,0xc8a5,0x859e,0x859f,0x85a0,0xcfd8, +0x85a1,0xc8fe,0xb2ce,0x85a2,0x85a3,0x85a4,0x85a5,0x85a6, +0xd3d6,0xb2e6,0xbcb0,0xd3d1,0xcbab,0xb7b4,0x85a7,0x85a8, +0x85a9,0xb7a2,0x85aa,0x85ab,0xcae5,0x85ac,0xc8a1,0xcadc, +0xb1e4,0xd0f0,0x85ad,0xc5d1,0x85ae,0x85af,0x85b0,0xdbc5, +0xb5fe,0x85b1,0x85b2,0xbfda,0xb9c5,0xbee4,0xc1ed,0x85b3, +0xdfb6,0xdfb5,0xd6bb,0xbdd0,0xd5d9,0xb0c8,0xb6a3,0xbfc9, +0xcca8,0xdfb3,0xcab7,0xd3d2,0x85b4,0xd8cf,0xd2b6,0xbac5, +0xcbbe,0xccbe,0x85b5,0xdfb7,0xb5f0,0xdfb4,0x85b6,0x85b7, +0x85b8,0xd3f5,0x85b9,0xb3d4,0xb8f7,0x85ba,0xdfba,0x85bb, +0xbacf,0xbcaa,0xb5f5,0x85bc,0xcdac,0xc3fb,0xbaf3,0xc0f4, +0xcdc2,0xcff2,0xdfb8,0xcfc5,0x85bd,0xc2c0,0xdfb9,0xc2f0, +0x85be,0x85bf,0x85c0,0xbefd,0x85c1,0xc1df,0xcdcc,0xd2f7, +0xb7cd,0xdfc1,0x85c2,0xdfc4,0x85c3,0x85c4,0xb7f1,0xb0c9, +0xb6d6,0xb7d4,0x85c5,0xbaac,0xccfd,0xbfd4,0xcbb1,0xc6f4, +0x85c6,0xd6a8,0xdfc5,0x85c7,0xcee2,0xb3b3,0x85c8,0x85c9, +0xcefc,0xb4b5,0x85ca,0xcec7,0xbaf0,0x85cb,0xcee1,0x85cc, +0xd1bd,0x85cd,0x85ce,0xdfc0,0x85cf,0x85d0,0xb4f4,0x85d1, +0xb3ca,0x85d2,0xb8e6,0xdfbb,0x85d3,0x85d4,0x85d5,0x85d6, +0xc4c5,0x85d7,0xdfbc,0xdfbd,0xdfbe,0xc5bb,0xdfbf,0xdfc2, +0xd4b1,0xdfc3,0x85d8,0xc7ba,0xced8,0x85d9,0x85da,0x85db, +0x85dc,0x85dd,0xc4d8,0x85de,0xdfca,0x85df,0xdfcf,0x85e0, +0xd6dc,0x85e1,0x85e2,0x85e3,0x85e4,0x85e5,0x85e6,0x85e7, +0x85e8,0xdfc9,0xdfda,0xceb6,0x85e9,0xbac7,0xdfce,0xdfc8, +0xc5de,0x85ea,0x85eb,0xc9eb,0xbaf4,0xc3fc,0x85ec,0x85ed, +0xbed7,0x85ee,0xdfc6,0x85ef,0xdfcd,0x85f0,0xc5d8,0x85f1, +0x85f2,0x85f3,0x85f4,0xd5a6,0xbacd,0x85f5,0xbecc,0xd3bd, +0xb8c0,0x85f6,0xd6e4,0x85f7,0xdfc7,0xb9be,0xbfa7,0x85f8, +0x85f9,0xc1fc,0xdfcb,0xdfcc,0x85fa,0xdfd0,0x85fb,0x85fc, +0x85fd,0x85fe,0x8640,0xdfdb,0xdfe5,0x8641,0xdfd7,0xdfd6, +0xd7c9,0xdfe3,0xdfe4,0xe5eb,0xd2a7,0xdfd2,0x8642,0xbfa9, +0x8643,0xd4db,0x8644,0xbfc8,0xdfd4,0x8645,0x8646,0x8647, +0xcfcc,0x8648,0x8649,0xdfdd,0x864a,0xd1ca,0x864b,0xdfde, +0xb0a7,0xc6b7,0xdfd3,0x864c,0xbae5,0x864d,0xb6df,0xcddb, +0xb9fe,0xd4d5,0x864e,0x864f,0xdfdf,0xcfec,0xb0a5,0xdfe7, +0xdfd1,0xd1c6,0xdfd5,0xdfd8,0xdfd9,0xdfdc,0x8650,0xbba9, +0x8651,0xdfe0,0xdfe1,0x8652,0xdfe2,0xdfe6,0xdfe8,0xd3b4, +0x8653,0x8654,0x8655,0x8656,0x8657,0xb8e7,0xc5b6,0xdfea, +0xc9da,0xc1a8,0xc4c4,0x8658,0x8659,0xbfde,0xcff8,0x865a, +0x865b,0x865c,0xd5dc,0xdfee,0x865d,0x865e,0x865f,0x8660, +0x8661,0x8662,0xb2b8,0x8663,0xbadf,0xdfec,0x8664,0xdbc1, +0x8665,0xd1e4,0x8666,0x8667,0x8668,0x8669,0xcbf4,0xb4bd, +0x866a,0xb0a6,0x866b,0x866c,0x866d,0x866e,0x866f,0xdff1, +0xccc6,0xdff2,0x8670,0x8671,0xdfed,0x8672,0x8673,0x8674, +0x8675,0x8676,0x8677,0xdfe9,0x8678,0x8679,0x867a,0x867b, +0xdfeb,0x867c,0xdfef,0xdff0,0xbbbd,0x867d,0x867e,0xdff3, +0x8680,0x8681,0xdff4,0x8682,0xbba3,0x8683,0xcadb,0xcea8, +0xe0a7,0xb3aa,0x8684,0xe0a6,0x8685,0x8686,0x8687,0xe0a1, +0x8688,0x8689,0x868a,0x868b,0xdffe,0x868c,0xcdd9,0xdffc, +0x868d,0xdffa,0x868e,0xbfd0,0xd7c4,0x868f,0xc9cc,0x8690, +0x8691,0xdff8,0xb0a1,0x8692,0x8693,0x8694,0x8695,0x8696, +0xdffd,0x8697,0x8698,0x8699,0x869a,0xdffb,0xe0a2,0x869b, +0x869c,0x869d,0x869e,0x869f,0xe0a8,0x86a0,0x86a1,0x86a2, +0x86a3,0xb7c8,0x86a4,0x86a5,0xc6a1,0xc9b6,0xc0b2,0xdff5, +0x86a6,0x86a7,0xc5be,0x86a8,0xd8c4,0xdff9,0xc4f6,0x86a9, +0x86aa,0x86ab,0x86ac,0x86ad,0x86ae,0xe0a3,0xe0a4,0xe0a5, +0xd0a5,0x86af,0x86b0,0xe0b4,0xcce4,0x86b1,0xe0b1,0x86b2, +0xbfa6,0xe0af,0xceb9,0xe0ab,0xc9c6,0x86b3,0x86b4,0xc0ae, +0xe0ae,0xbaed,0xbab0,0xe0a9,0x86b5,0x86b6,0x86b7,0xdff6, +0x86b8,0xe0b3,0x86b9,0x86ba,0xe0b8,0x86bb,0x86bc,0x86bd, +0xb4ad,0xe0b9,0x86be,0x86bf,0xcfb2,0xbac8,0x86c0,0xe0b0, +0x86c1,0x86c2,0x86c3,0x86c4,0x86c5,0x86c6,0x86c7,0xd0fa, +0x86c8,0x86c9,0x86ca,0x86cb,0x86cc,0x86cd,0x86ce,0x86cf, +0x86d0,0xe0ac,0x86d1,0xd4fb,0x86d2,0xdff7,0x86d3,0xc5e7, +0x86d4,0xe0ad,0x86d5,0xd3f7,0x86d6,0xe0b6,0xe0b7,0x86d7, +0x86d8,0x86d9,0x86da,0x86db,0xe0c4,0xd0e1,0x86dc,0x86dd, +0x86de,0xe0bc,0x86df,0x86e0,0xe0c9,0xe0ca,0x86e1,0x86e2, +0x86e3,0xe0be,0xe0aa,0xc9a4,0xe0c1,0x86e4,0xe0b2,0x86e5, +0x86e6,0x86e7,0x86e8,0x86e9,0xcac8,0xe0c3,0x86ea,0xe0b5, +0x86eb,0xcecb,0x86ec,0xcbc3,0xe0cd,0xe0c6,0xe0c2,0x86ed, +0xe0cb,0x86ee,0xe0ba,0xe0bf,0xe0c0,0x86ef,0x86f0,0xe0c5, +0x86f1,0x86f2,0xe0c7,0xe0c8,0x86f3,0xe0cc,0x86f4,0xe0bb, +0x86f5,0x86f6,0x86f7,0x86f8,0x86f9,0xcbd4,0xe0d5,0x86fa, +0xe0d6,0xe0d2,0x86fb,0x86fc,0x86fd,0x86fe,0x8740,0x8741, +0xe0d0,0xbcce,0x8742,0x8743,0xe0d1,0x8744,0xb8c2,0xd8c5, +0x8745,0x8746,0x8747,0x8748,0x8749,0x874a,0x874b,0x874c, +0xd0ea,0x874d,0x874e,0xc2ef,0x874f,0x8750,0xe0cf,0xe0bd, +0x8751,0x8752,0x8753,0xe0d4,0xe0d3,0x8754,0x8755,0xe0d7, +0x8756,0x8757,0x8758,0x8759,0xe0dc,0xe0d8,0x875a,0x875b, +0x875c,0xd6f6,0xb3b0,0x875d,0xd7ec,0x875e,0xcbbb,0x875f, +0x8760,0xe0da,0x8761,0xcefb,0x8762,0x8763,0x8764,0xbad9, +0x8765,0x8766,0x8767,0x8768,0x8769,0x876a,0x876b,0x876c, +0x876d,0x876e,0x876f,0x8770,0xe0e1,0xe0dd,0xd2ad,0x8771, +0x8772,0x8773,0x8774,0x8775,0xe0e2,0x8776,0x8777,0xe0db, +0xe0d9,0xe0df,0x8778,0x8779,0xe0e0,0x877a,0x877b,0x877c, +0x877d,0x877e,0xe0de,0x8780,0xe0e4,0x8781,0x8782,0x8783, +0xc6f7,0xd8ac,0xd4eb,0xe0e6,0xcac9,0x8784,0x8785,0x8786, +0x8787,0xe0e5,0x8788,0x8789,0x878a,0x878b,0xb8c1,0x878c, +0x878d,0x878e,0x878f,0xe0e7,0xe0e8,0x8790,0x8791,0x8792, +0x8793,0x8794,0x8795,0x8796,0x8797,0xe0e9,0xe0e3,0x8798, +0x8799,0x879a,0x879b,0x879c,0x879d,0x879e,0xbabf,0xcce7, +0x879f,0x87a0,0x87a1,0xe0ea,0x87a2,0x87a3,0x87a4,0x87a5, +0x87a6,0x87a7,0x87a8,0x87a9,0x87aa,0x87ab,0x87ac,0x87ad, +0x87ae,0x87af,0x87b0,0xcff9,0x87b1,0x87b2,0x87b3,0x87b4, +0x87b5,0x87b6,0x87b7,0x87b8,0x87b9,0x87ba,0x87bb,0xe0eb, +0x87bc,0x87bd,0x87be,0x87bf,0x87c0,0x87c1,0x87c2,0xc8c2, +0x87c3,0x87c4,0x87c5,0x87c6,0xbdc0,0x87c7,0x87c8,0x87c9, +0x87ca,0x87cb,0x87cc,0x87cd,0x87ce,0x87cf,0x87d0,0x87d1, +0x87d2,0x87d3,0xc4d2,0x87d4,0x87d5,0x87d6,0x87d7,0x87d8, +0x87d9,0x87da,0x87db,0x87dc,0xe0ec,0x87dd,0x87de,0xe0ed, +0x87df,0x87e0,0xc7f4,0xcbc4,0x87e1,0xe0ee,0xbbd8,0xd8b6, +0xd2f2,0xe0ef,0xcdc5,0x87e2,0xb6da,0x87e3,0x87e4,0x87e5, +0x87e6,0x87e7,0x87e8,0xe0f1,0x87e9,0xd4b0,0x87ea,0x87eb, +0xc0a7,0xb4d1,0x87ec,0x87ed,0xcea7,0xe0f0,0x87ee,0x87ef, +0x87f0,0xe0f2,0xb9cc,0x87f1,0x87f2,0xb9fa,0xcdbc,0xe0f3, +0x87f3,0x87f4,0x87f5,0xc6d4,0xe0f4,0x87f6,0xd4b2,0x87f7, +0xc8a6,0xe0f6,0xe0f5,0x87f8,0x87f9,0x87fa,0x87fb,0x87fc, +0x87fd,0x87fe,0x8840,0x8841,0x8842,0x8843,0x8844,0x8845, +0x8846,0x8847,0x8848,0x8849,0xe0f7,0x884a,0x884b,0xcdc1, +0x884c,0x884d,0x884e,0xcaa5,0x884f,0x8850,0x8851,0x8852, +0xd4da,0xdbd7,0xdbd9,0x8853,0xdbd8,0xb9e7,0xdbdc,0xdbdd, +0xb5d8,0x8854,0x8855,0xdbda,0x8856,0x8857,0x8858,0x8859, +0x885a,0xdbdb,0xb3a1,0xdbdf,0x885b,0x885c,0xbbf8,0x885d, +0xd6b7,0x885e,0xdbe0,0x885f,0x8860,0x8861,0x8862,0xbef9, +0x8863,0x8864,0xb7bb,0x8865,0xdbd0,0xccae,0xbfb2,0xbbb5, +0xd7f8,0xbfd3,0x8866,0x8867,0x8868,0x8869,0x886a,0xbfe9, +0x886b,0x886c,0xbce1,0xccb3,0xdbde,0xb0d3,0xceeb,0xb7d8, +0xd7b9,0xc6c2,0x886d,0x886e,0xc0a4,0x886f,0xccb9,0x8870, +0xdbe7,0xdbe1,0xc6ba,0xdbe3,0x8871,0xdbe8,0x8872,0xc5f7, +0x8873,0x8874,0x8875,0xdbea,0x8876,0x8877,0xdbe9,0xbfc0, +0x8878,0x8879,0x887a,0xdbe6,0xdbe5,0x887b,0x887c,0x887d, +0x887e,0x8880,0xb4b9,0xc0ac,0xc2a2,0xdbe2,0xdbe4,0x8881, +0x8882,0x8883,0x8884,0xd0cd,0xdbed,0x8885,0x8886,0x8887, +0x8888,0x8889,0xc0dd,0xdbf2,0x888a,0x888b,0x888c,0x888d, +0x888e,0x888f,0x8890,0xb6e2,0x8891,0x8892,0x8893,0x8894, +0xdbf3,0xdbd2,0xb9b8,0xd4ab,0xdbec,0x8895,0xbfd1,0xdbf0, +0x8896,0xdbd1,0x8897,0xb5e6,0x8898,0xdbeb,0xbfe5,0x8899, +0x889a,0x889b,0xdbee,0x889c,0xdbf1,0x889d,0x889e,0x889f, +0xdbf9,0x88a0,0x88a1,0x88a2,0x88a3,0x88a4,0x88a5,0x88a6, +0x88a7,0x88a8,0xb9a1,0xb0a3,0x88a9,0x88aa,0x88ab,0x88ac, +0x88ad,0x88ae,0x88af,0xc2f1,0x88b0,0x88b1,0xb3c7,0xdbef, +0x88b2,0x88b3,0xdbf8,0x88b4,0xc6d2,0xdbf4,0x88b5,0x88b6, +0xdbf5,0xdbf7,0xdbf6,0x88b7,0x88b8,0xdbfe,0x88b9,0xd3f2, +0xb2ba,0x88ba,0x88bb,0x88bc,0xdbfd,0x88bd,0x88be,0x88bf, +0x88c0,0x88c1,0x88c2,0x88c3,0x88c4,0xdca4,0x88c5,0xdbfb, +0x88c6,0x88c7,0x88c8,0x88c9,0xdbfa,0x88ca,0x88cb,0x88cc, +0xdbfc,0xc5e0,0xbbf9,0x88cd,0x88ce,0xdca3,0x88cf,0x88d0, +0xdca5,0x88d1,0xccc3,0x88d2,0x88d3,0x88d4,0xb6d1,0xddc0, +0x88d5,0x88d6,0x88d7,0xdca1,0x88d8,0xdca2,0x88d9,0x88da, +0x88db,0xc7b5,0x88dc,0x88dd,0x88de,0xb6e9,0x88df,0x88e0, +0x88e1,0xdca7,0x88e2,0x88e3,0x88e4,0x88e5,0xdca6,0x88e6, +0xdca9,0xb1a4,0x88e7,0x88e8,0xb5cc,0x88e9,0x88ea,0x88eb, +0x88ec,0x88ed,0xbfb0,0x88ee,0x88ef,0x88f0,0x88f1,0x88f2, +0xd1df,0x88f3,0x88f4,0x88f5,0x88f6,0xb6c2,0x88f7,0x88f8, +0x88f9,0x88fa,0x88fb,0x88fc,0x88fd,0x88fe,0x8940,0x8941, +0x8942,0x8943,0x8944,0x8945,0xdca8,0x8946,0x8947,0x8948, +0x8949,0x894a,0x894b,0x894c,0xcbfa,0xebf3,0x894d,0x894e, +0x894f,0xcbdc,0x8950,0x8951,0xcbfe,0x8952,0x8953,0x8954, +0xccc1,0x8955,0x8956,0x8957,0x8958,0x8959,0xc8fb,0x895a, +0x895b,0x895c,0x895d,0x895e,0x895f,0xdcaa,0x8960,0x8961, +0x8962,0x8963,0x8964,0xccee,0xdcab,0x8965,0x8966,0x8967, +0x8968,0x8969,0x896a,0x896b,0x896c,0x896d,0x896e,0x896f, +0x8970,0x8971,0x8972,0x8973,0x8974,0x8975,0xdbd3,0x8976, +0xdcaf,0xdcac,0x8977,0xbeb3,0x8978,0xcafb,0x8979,0x897a, +0x897b,0xdcad,0x897c,0x897d,0x897e,0x8980,0x8981,0x8982, +0x8983,0x8984,0xc9ca,0xc4b9,0x8985,0x8986,0x8987,0x8988, +0x8989,0xc7bd,0xdcae,0x898a,0x898b,0x898c,0xd4f6,0xd0e6, +0x898d,0x898e,0x898f,0x8990,0x8991,0x8992,0x8993,0x8994, +0xc4ab,0xb6d5,0x8995,0x8996,0x8997,0x8998,0x8999,0x899a, +0x899b,0x899c,0x899d,0x899e,0x899f,0x89a0,0x89a1,0x89a2, +0x89a3,0x89a4,0x89a5,0x89a6,0xdbd4,0x89a7,0x89a8,0x89a9, +0x89aa,0xb1da,0x89ab,0x89ac,0x89ad,0xdbd5,0x89ae,0x89af, +0x89b0,0x89b1,0x89b2,0x89b3,0x89b4,0x89b5,0x89b6,0x89b7, +0x89b8,0xdbd6,0x89b9,0x89ba,0x89bb,0xbabe,0x89bc,0x89bd, +0x89be,0x89bf,0x89c0,0x89c1,0x89c2,0x89c3,0x89c4,0x89c5, +0x89c6,0x89c7,0x89c8,0x89c9,0xc8c0,0x89ca,0x89cb,0x89cc, +0x89cd,0x89ce,0x89cf,0xcabf,0xc8c9,0x89d0,0xd7b3,0x89d1, +0xc9f9,0x89d2,0x89d3,0xbfc7,0x89d4,0x89d5,0xbaf8,0x89d6, +0x89d7,0xd2bc,0x89d8,0x89d9,0x89da,0x89db,0x89dc,0x89dd, +0x89de,0x89df,0xe2ba,0x89e0,0xb4a6,0x89e1,0x89e2,0xb1b8, +0x89e3,0x89e4,0x89e5,0x89e6,0x89e7,0xb8b4,0x89e8,0xcfc4, +0x89e9,0x89ea,0x89eb,0x89ec,0xd9e7,0xcfa6,0xcde2,0x89ed, +0x89ee,0xd9ed,0xb6e0,0x89ef,0xd2b9,0x89f0,0x89f1,0xb9bb, +0x89f2,0x89f3,0x89f4,0x89f5,0xe2b9,0xe2b7,0x89f6,0xb4f3, +0x89f7,0xccec,0xccab,0xb7f2,0x89f8,0xd8b2,0xd1eb,0xbabb, +0x89f9,0xcaa7,0x89fa,0x89fb,0xcdb7,0x89fc,0x89fd,0xd2c4, +0xbfe4,0xbcd0,0xb6e1,0x89fe,0xdec5,0x8a40,0x8a41,0x8a42, +0x8a43,0xdec6,0xdbbc,0x8a44,0xd1d9,0x8a45,0x8a46,0xc6e6, +0xc4ce,0xb7ee,0x8a47,0xb7dc,0x8a48,0x8a49,0xbffc,0xd7e0, +0x8a4a,0xc6f5,0x8a4b,0x8a4c,0xb1bc,0xdec8,0xbdb1,0xccd7, +0xdeca,0x8a4d,0xdec9,0x8a4e,0x8a4f,0x8a50,0x8a51,0x8a52, +0xb5ec,0x8a53,0xc9dd,0x8a54,0x8a55,0xb0c2,0x8a56,0x8a57, +0x8a58,0x8a59,0x8a5a,0x8a5b,0x8a5c,0x8a5d,0x8a5e,0x8a5f, +0x8a60,0x8a61,0x8a62,0xc5ae,0xc5ab,0x8a63,0xc4cc,0x8a64, +0xbce9,0xcbfd,0x8a65,0x8a66,0x8a67,0xbac3,0x8a68,0x8a69, +0x8a6a,0xe5f9,0xc8e7,0xe5fa,0xcdfd,0x8a6b,0xd7b1,0xb8be, +0xc2e8,0x8a6c,0xc8d1,0x8a6d,0x8a6e,0xe5fb,0x8a6f,0x8a70, +0x8a71,0x8a72,0xb6ca,0xbccb,0x8a73,0x8a74,0xd1fd,0xe6a1, +0x8a75,0xc3ee,0x8a76,0x8a77,0x8a78,0x8a79,0xe6a4,0x8a7a, +0x8a7b,0x8a7c,0x8a7d,0xe5fe,0xe6a5,0xcdd7,0x8a7e,0x8a80, +0xb7c1,0xe5fc,0xe5fd,0xe6a3,0x8a81,0x8a82,0xc4dd,0xe6a8, +0x8a83,0x8a84,0xe6a7,0x8a85,0x8a86,0x8a87,0x8a88,0x8a89, +0x8a8a,0xc3c3,0x8a8b,0xc6de,0x8a8c,0x8a8d,0xe6aa,0x8a8e, +0x8a8f,0x8a90,0x8a91,0x8a92,0x8a93,0x8a94,0xc4b7,0x8a95, +0x8a96,0x8a97,0xe6a2,0xcabc,0x8a98,0x8a99,0x8a9a,0x8a9b, +0xbde3,0xb9c3,0xe6a6,0xd0d5,0xceaf,0x8a9c,0x8a9d,0xe6a9, +0xe6b0,0x8a9e,0xd2a6,0x8a9f,0xbdaa,0xe6ad,0x8aa0,0x8aa1, +0x8aa2,0x8aa3,0x8aa4,0xe6af,0x8aa5,0xc0d1,0x8aa6,0x8aa7, +0xd2cc,0x8aa8,0x8aa9,0x8aaa,0xbca7,0x8aab,0x8aac,0x8aad, +0x8aae,0x8aaf,0x8ab0,0x8ab1,0x8ab2,0x8ab3,0x8ab4,0x8ab5, +0x8ab6,0xe6b1,0x8ab7,0xd2f6,0x8ab8,0x8ab9,0x8aba,0xd7cb, +0x8abb,0xcdfe,0x8abc,0xcdde,0xc2a6,0xe6ab,0xe6ac,0xbdbf, +0xe6ae,0xe6b3,0x8abd,0x8abe,0xe6b2,0x8abf,0x8ac0,0x8ac1, +0x8ac2,0xe6b6,0x8ac3,0xe6b8,0x8ac4,0x8ac5,0x8ac6,0x8ac7, +0xc4ef,0x8ac8,0x8ac9,0x8aca,0xc4c8,0x8acb,0x8acc,0xbeea, +0xc9ef,0x8acd,0x8ace,0xe6b7,0x8acf,0xb6f0,0x8ad0,0x8ad1, +0x8ad2,0xc3e4,0x8ad3,0x8ad4,0x8ad5,0x8ad6,0x8ad7,0x8ad8, +0x8ad9,0xd3e9,0xe6b4,0x8ada,0xe6b5,0x8adb,0xc8a2,0x8adc, +0x8add,0x8ade,0x8adf,0x8ae0,0xe6bd,0x8ae1,0x8ae2,0x8ae3, +0xe6b9,0x8ae4,0x8ae5,0x8ae6,0x8ae7,0x8ae8,0xc6c5,0x8ae9, +0x8aea,0xcdf1,0xe6bb,0x8aeb,0x8aec,0x8aed,0x8aee,0x8aef, +0x8af0,0x8af1,0x8af2,0x8af3,0x8af4,0xe6bc,0x8af5,0x8af6, +0x8af7,0x8af8,0xbbe9,0x8af9,0x8afa,0x8afb,0x8afc,0x8afd, +0x8afe,0x8b40,0xe6be,0x8b41,0x8b42,0x8b43,0x8b44,0xe6ba, +0x8b45,0x8b46,0xc0b7,0x8b47,0x8b48,0x8b49,0x8b4a,0x8b4b, +0x8b4c,0x8b4d,0x8b4e,0x8b4f,0xd3a4,0xe6bf,0xc9f4,0xe6c3, +0x8b50,0x8b51,0xe6c4,0x8b52,0x8b53,0x8b54,0x8b55,0xd0f6, +0x8b56,0x8b57,0x8b58,0x8b59,0x8b5a,0x8b5b,0x8b5c,0x8b5d, +0x8b5e,0x8b5f,0x8b60,0x8b61,0x8b62,0x8b63,0x8b64,0x8b65, +0x8b66,0x8b67,0xc3bd,0x8b68,0x8b69,0x8b6a,0x8b6b,0x8b6c, +0x8b6d,0x8b6e,0xc3c4,0xe6c2,0x8b6f,0x8b70,0x8b71,0x8b72, +0x8b73,0x8b74,0x8b75,0x8b76,0x8b77,0x8b78,0x8b79,0x8b7a, +0x8b7b,0x8b7c,0xe6c1,0x8b7d,0x8b7e,0x8b80,0x8b81,0x8b82, +0x8b83,0x8b84,0xe6c7,0xcfb1,0x8b85,0xebf4,0x8b86,0x8b87, +0xe6ca,0x8b88,0x8b89,0x8b8a,0x8b8b,0x8b8c,0xe6c5,0x8b8d, +0x8b8e,0xbcde,0xc9a9,0x8b8f,0x8b90,0x8b91,0x8b92,0x8b93, +0x8b94,0xbcb5,0x8b95,0x8b96,0xcfd3,0x8b97,0x8b98,0x8b99, +0x8b9a,0x8b9b,0xe6c8,0x8b9c,0xe6c9,0x8b9d,0xe6ce,0x8b9e, +0xe6d0,0x8b9f,0x8ba0,0x8ba1,0xe6d1,0x8ba2,0x8ba3,0x8ba4, +0xe6cb,0xb5d5,0x8ba5,0xe6cc,0x8ba6,0x8ba7,0xe6cf,0x8ba8, +0x8ba9,0xc4db,0x8baa,0xe6c6,0x8bab,0x8bac,0x8bad,0x8bae, +0x8baf,0xe6cd,0x8bb0,0x8bb1,0x8bb2,0x8bb3,0x8bb4,0x8bb5, +0x8bb6,0x8bb7,0x8bb8,0x8bb9,0x8bba,0x8bbb,0x8bbc,0x8bbd, +0x8bbe,0x8bbf,0x8bc0,0x8bc1,0x8bc2,0x8bc3,0x8bc4,0x8bc5, +0x8bc6,0xe6d2,0x8bc7,0x8bc8,0x8bc9,0x8bca,0x8bcb,0x8bcc, +0x8bcd,0x8bce,0x8bcf,0x8bd0,0x8bd1,0x8bd2,0xe6d4,0xe6d3, +0x8bd3,0x8bd4,0x8bd5,0x8bd6,0x8bd7,0x8bd8,0x8bd9,0x8bda, +0x8bdb,0x8bdc,0x8bdd,0x8bde,0x8bdf,0x8be0,0x8be1,0x8be2, +0x8be3,0x8be4,0x8be5,0x8be6,0x8be7,0x8be8,0x8be9,0x8bea, +0x8beb,0x8bec,0xe6d5,0x8bed,0xd9f8,0x8bee,0x8bef,0xe6d6, +0x8bf0,0x8bf1,0x8bf2,0x8bf3,0x8bf4,0x8bf5,0x8bf6,0x8bf7, +0xe6d7,0x8bf8,0x8bf9,0x8bfa,0x8bfb,0x8bfc,0x8bfd,0x8bfe, +0x8c40,0x8c41,0x8c42,0x8c43,0x8c44,0x8c45,0x8c46,0x8c47, +0xd7d3,0xe6dd,0x8c48,0xe6de,0xbfd7,0xd4d0,0x8c49,0xd7d6, +0xb4e6,0xcbef,0xe6da,0xd8c3,0xd7ce,0xd0a2,0x8c4a,0xc3cf, +0x8c4b,0x8c4c,0xe6df,0xbcbe,0xb9c2,0xe6db,0xd1a7,0x8c4d, +0x8c4e,0xbaa2,0xc2cf,0x8c4f,0xd8ab,0x8c50,0x8c51,0x8c52, +0xcaeb,0xe5ee,0x8c53,0xe6dc,0x8c54,0xb7f5,0x8c55,0x8c56, +0x8c57,0x8c58,0xc8e6,0x8c59,0x8c5a,0xc4f5,0x8c5b,0x8c5c, +0xe5b2,0xc4fe,0x8c5d,0xcbfc,0xe5b3,0xd5ac,0x8c5e,0xd3ee, +0xcad8,0xb0b2,0x8c5f,0xcbce,0xcdea,0x8c60,0x8c61,0xbaea, +0x8c62,0x8c63,0x8c64,0xe5b5,0x8c65,0xe5b4,0x8c66,0xd7da, +0xb9d9,0xd6e6,0xb6a8,0xcdf0,0xd2cb,0xb1a6,0xcab5,0x8c67, +0xb3e8,0xc9f3,0xbfcd,0xd0fb,0xcad2,0xe5b6,0xbbc2,0x8c68, +0x8c69,0x8c6a,0xcfdc,0xb9ac,0x8c6b,0x8c6c,0x8c6d,0x8c6e, +0xd4d7,0x8c6f,0x8c70,0xbaa6,0xd1e7,0xcffc,0xbcd2,0x8c71, +0xe5b7,0xc8dd,0x8c72,0x8c73,0x8c74,0xbfed,0xb1f6,0xcbde, +0x8c75,0x8c76,0xbcc5,0x8c77,0xbcc4,0xd2fa,0xc3dc,0xbfdc, +0x8c78,0x8c79,0x8c7a,0x8c7b,0xb8bb,0x8c7c,0x8c7d,0x8c7e, +0xc3c2,0x8c80,0xbaae,0xd4a2,0x8c81,0x8c82,0x8c83,0x8c84, +0x8c85,0x8c86,0x8c87,0x8c88,0x8c89,0xc7de,0xc4af,0xb2ec, +0x8c8a,0xb9d1,0x8c8b,0x8c8c,0xe5bb,0xc1c8,0x8c8d,0x8c8e, +0xd5af,0x8c8f,0x8c90,0x8c91,0x8c92,0x8c93,0xe5bc,0x8c94, +0xe5be,0x8c95,0x8c96,0x8c97,0x8c98,0x8c99,0x8c9a,0x8c9b, +0xb4e7,0xb6d4,0xcbc2,0xd1b0,0xb5bc,0x8c9c,0x8c9d,0xcad9, +0x8c9e,0xb7e2,0x8c9f,0x8ca0,0xc9e4,0x8ca1,0xbdab,0x8ca2, +0x8ca3,0xcebe,0xd7f0,0x8ca4,0x8ca5,0x8ca6,0x8ca7,0xd0a1, +0x8ca8,0xc9d9,0x8ca9,0x8caa,0xb6fb,0xe6d8,0xbce2,0x8cab, +0xb3be,0x8cac,0xc9d0,0x8cad,0xe6d9,0xb3a2,0x8cae,0x8caf, +0x8cb0,0x8cb1,0xdecc,0x8cb2,0xd3c8,0xdecd,0x8cb3,0xd2a2, +0x8cb4,0x8cb5,0x8cb6,0x8cb7,0xdece,0x8cb8,0x8cb9,0x8cba, +0x8cbb,0xbecd,0x8cbc,0x8cbd,0xdecf,0x8cbe,0x8cbf,0x8cc0, +0xcaac,0xd2fc,0xb3df,0xe5ea,0xc4e1,0xbea1,0xceb2,0xc4f2, +0xbed6,0xc6a8,0xb2e3,0x8cc1,0x8cc2,0xbed3,0x8cc3,0x8cc4, +0xc7fc,0xcceb,0xbdec,0xcedd,0x8cc5,0x8cc6,0xcaba,0xc6c1, +0xe5ec,0xd0bc,0x8cc7,0x8cc8,0x8cc9,0xd5b9,0x8cca,0x8ccb, +0x8ccc,0xe5ed,0x8ccd,0x8cce,0x8ccf,0x8cd0,0xcaf4,0x8cd1, +0xcdc0,0xc2c5,0x8cd2,0xe5ef,0x8cd3,0xc2c4,0xe5f0,0x8cd4, +0x8cd5,0x8cd6,0x8cd7,0x8cd8,0x8cd9,0x8cda,0xe5f8,0xcdcd, +0x8cdb,0xc9bd,0x8cdc,0x8cdd,0x8cde,0x8cdf,0x8ce0,0x8ce1, +0x8ce2,0xd2d9,0xe1a8,0x8ce3,0x8ce4,0x8ce5,0x8ce6,0xd3ec, +0x8ce7,0xcbea,0xc6f1,0x8ce8,0x8ce9,0x8cea,0x8ceb,0x8cec, +0xe1ac,0x8ced,0x8cee,0x8cef,0xe1a7,0xe1a9,0x8cf0,0x8cf1, +0xe1aa,0xe1af,0x8cf2,0x8cf3,0xb2ed,0x8cf4,0xe1ab,0xb8da, +0xe1ad,0xe1ae,0xe1b0,0xb5ba,0xe1b1,0x8cf5,0x8cf6,0x8cf7, +0x8cf8,0x8cf9,0xe1b3,0xe1b8,0x8cfa,0x8cfb,0x8cfc,0x8cfd, +0x8cfe,0xd1d2,0x8d40,0xe1b6,0xe1b5,0xc1eb,0x8d41,0x8d42, +0x8d43,0xe1b7,0x8d44,0xd4c0,0x8d45,0xe1b2,0x8d46,0xe1ba, +0xb0b6,0x8d47,0x8d48,0x8d49,0x8d4a,0xe1b4,0x8d4b,0xbff9, +0x8d4c,0xe1b9,0x8d4d,0x8d4e,0xe1bb,0x8d4f,0x8d50,0x8d51, +0x8d52,0x8d53,0x8d54,0xe1be,0x8d55,0x8d56,0x8d57,0x8d58, +0x8d59,0x8d5a,0xe1bc,0x8d5b,0x8d5c,0x8d5d,0x8d5e,0x8d5f, +0x8d60,0xd6c5,0x8d61,0x8d62,0x8d63,0x8d64,0x8d65,0x8d66, +0x8d67,0xcfbf,0x8d68,0x8d69,0xe1bd,0xe1bf,0xc2cd,0x8d6a, +0xb6eb,0x8d6b,0xd3f8,0x8d6c,0x8d6d,0xc7cd,0x8d6e,0x8d6f, +0xb7e5,0x8d70,0x8d71,0x8d72,0x8d73,0x8d74,0x8d75,0x8d76, +0x8d77,0x8d78,0x8d79,0xbefe,0x8d7a,0x8d7b,0x8d7c,0x8d7d, +0x8d7e,0x8d80,0xe1c0,0xe1c1,0x8d81,0x8d82,0xe1c7,0xb3e7, +0x8d83,0x8d84,0x8d85,0x8d86,0x8d87,0x8d88,0xc6e9,0x8d89, +0x8d8a,0x8d8b,0x8d8c,0x8d8d,0xb4de,0x8d8e,0xd1c2,0x8d8f, +0x8d90,0x8d91,0x8d92,0xe1c8,0x8d93,0x8d94,0xe1c6,0x8d95, +0x8d96,0x8d97,0x8d98,0x8d99,0xe1c5,0x8d9a,0xe1c3,0xe1c2, +0x8d9b,0xb1c0,0x8d9c,0x8d9d,0x8d9e,0xd5b8,0xe1c4,0x8d9f, +0x8da0,0x8da1,0x8da2,0x8da3,0xe1cb,0x8da4,0x8da5,0x8da6, +0x8da7,0x8da8,0x8da9,0x8daa,0x8dab,0xe1cc,0xe1ca,0x8dac, +0x8dad,0x8dae,0x8daf,0x8db0,0x8db1,0x8db2,0x8db3,0xeffa, +0x8db4,0x8db5,0xe1d3,0xe1d2,0xc7b6,0x8db6,0x8db7,0x8db8, +0x8db9,0x8dba,0x8dbb,0x8dbc,0x8dbd,0x8dbe,0x8dbf,0x8dc0, +0xe1c9,0x8dc1,0x8dc2,0xe1ce,0x8dc3,0xe1d0,0x8dc4,0x8dc5, +0x8dc6,0x8dc7,0x8dc8,0x8dc9,0x8dca,0x8dcb,0x8dcc,0x8dcd, +0x8dce,0xe1d4,0x8dcf,0xe1d1,0xe1cd,0x8dd0,0x8dd1,0xe1cf, +0x8dd2,0x8dd3,0x8dd4,0x8dd5,0xe1d5,0x8dd6,0x8dd7,0x8dd8, +0x8dd9,0x8dda,0x8ddb,0x8ddc,0x8ddd,0x8dde,0x8ddf,0x8de0, +0x8de1,0x8de2,0xe1d6,0x8de3,0x8de4,0x8de5,0x8de6,0x8de7, +0x8de8,0x8de9,0x8dea,0x8deb,0x8dec,0x8ded,0x8dee,0x8def, +0x8df0,0x8df1,0x8df2,0x8df3,0x8df4,0x8df5,0x8df6,0x8df7, +0x8df8,0xe1d7,0x8df9,0x8dfa,0x8dfb,0xe1d8,0x8dfc,0x8dfd, +0x8dfe,0x8e40,0x8e41,0x8e42,0x8e43,0x8e44,0x8e45,0x8e46, +0x8e47,0x8e48,0x8e49,0x8e4a,0x8e4b,0x8e4c,0x8e4d,0x8e4e, +0x8e4f,0x8e50,0x8e51,0x8e52,0x8e53,0x8e54,0x8e55,0xe1da, +0x8e56,0x8e57,0x8e58,0x8e59,0x8e5a,0x8e5b,0x8e5c,0x8e5d, +0x8e5e,0x8e5f,0x8e60,0x8e61,0x8e62,0xe1db,0x8e63,0x8e64, +0x8e65,0x8e66,0x8e67,0x8e68,0x8e69,0xcea1,0x8e6a,0x8e6b, +0x8e6c,0x8e6d,0x8e6e,0x8e6f,0x8e70,0x8e71,0x8e72,0x8e73, +0x8e74,0x8e75,0x8e76,0xe7dd,0x8e77,0xb4a8,0xd6dd,0x8e78, +0x8e79,0xd1b2,0xb3b2,0x8e7a,0x8e7b,0xb9a4,0xd7f3,0xc7c9, +0xbede,0xb9ae,0x8e7c,0xced7,0x8e7d,0x8e7e,0xb2ee,0xdbcf, +0x8e80,0xbcba,0xd2d1,0xcbc8,0xb0cd,0x8e81,0x8e82,0xcfef, +0x8e83,0x8e84,0x8e85,0x8e86,0x8e87,0xd9e3,0xbded,0x8e88, +0x8e89,0xb1d2,0xcad0,0xb2bc,0x8e8a,0xcba7,0xb7ab,0x8e8b, +0xcaa6,0x8e8c,0x8e8d,0x8e8e,0xcfa3,0x8e8f,0x8e90,0xe0f8, +0xd5ca,0xe0fb,0x8e91,0x8e92,0xe0fa,0xc5c1,0xccfb,0x8e93, +0xc1b1,0xe0f9,0xd6e3,0xb2af,0xd6c4,0xb5db,0x8e94,0x8e95, +0x8e96,0x8e97,0x8e98,0x8e99,0x8e9a,0x8e9b,0xb4f8,0xd6a1, +0x8e9c,0x8e9d,0x8e9e,0x8e9f,0x8ea0,0xcfaf,0xb0ef,0x8ea1, +0x8ea2,0xe0fc,0x8ea3,0x8ea4,0x8ea5,0x8ea6,0x8ea7,0xe1a1, +0xb3a3,0x8ea8,0x8ea9,0xe0fd,0xe0fe,0xc3b1,0x8eaa,0x8eab, +0x8eac,0x8ead,0xc3dd,0x8eae,0xe1a2,0xb7f9,0x8eaf,0x8eb0, +0x8eb1,0x8eb2,0x8eb3,0x8eb4,0xbbcf,0x8eb5,0x8eb6,0x8eb7, +0x8eb8,0x8eb9,0x8eba,0x8ebb,0xe1a3,0xc4bb,0x8ebc,0x8ebd, +0x8ebe,0x8ebf,0x8ec0,0xe1a4,0x8ec1,0x8ec2,0xe1a5,0x8ec3, +0x8ec4,0xe1a6,0xb4b1,0x8ec5,0x8ec6,0x8ec7,0x8ec8,0x8ec9, +0x8eca,0x8ecb,0x8ecc,0x8ecd,0x8ece,0x8ecf,0x8ed0,0x8ed1, +0x8ed2,0x8ed3,0xb8c9,0xc6bd,0xc4ea,0x8ed4,0xb2a2,0x8ed5, +0xd0d2,0x8ed6,0xe7db,0xbbc3,0xd3d7,0xd3c4,0x8ed7,0xb9e3, +0xe2cf,0x8ed8,0x8ed9,0x8eda,0xd7af,0x8edb,0xc7ec,0xb1d3, +0x8edc,0x8edd,0xb4b2,0xe2d1,0x8ede,0x8edf,0x8ee0,0xd0f2, +0xc2ae,0xe2d0,0x8ee1,0xbfe2,0xd3a6,0xb5d7,0xe2d2,0xb5ea, +0x8ee2,0xc3ed,0xb8fd,0x8ee3,0xb8ae,0x8ee4,0xc5d3,0xb7cf, +0xe2d4,0x8ee5,0x8ee6,0x8ee7,0x8ee8,0xe2d3,0xb6c8,0xd7f9, +0x8ee9,0x8eea,0x8eeb,0x8eec,0x8eed,0xcda5,0x8eee,0x8eef, +0x8ef0,0x8ef1,0x8ef2,0xe2d8,0x8ef3,0xe2d6,0xcafc,0xbfb5, +0xd3b9,0xe2d5,0x8ef4,0x8ef5,0x8ef6,0x8ef7,0xe2d7,0x8ef8, +0x8ef9,0x8efa,0x8efb,0x8efc,0x8efd,0x8efe,0x8f40,0x8f41, +0x8f42,0xc1ae,0xc0c8,0x8f43,0x8f44,0x8f45,0x8f46,0x8f47, +0x8f48,0xe2db,0xe2da,0xc0aa,0x8f49,0x8f4a,0xc1ce,0x8f4b, +0x8f4c,0x8f4d,0x8f4e,0xe2dc,0x8f4f,0x8f50,0x8f51,0x8f52, +0x8f53,0x8f54,0x8f55,0x8f56,0x8f57,0x8f58,0x8f59,0x8f5a, +0xe2dd,0x8f5b,0xe2de,0x8f5c,0x8f5d,0x8f5e,0x8f5f,0x8f60, +0x8f61,0x8f62,0x8f63,0x8f64,0xdbc8,0x8f65,0xd1d3,0xcda2, +0x8f66,0x8f67,0xbda8,0x8f68,0x8f69,0x8f6a,0xdec3,0xd8a5, +0xbfaa,0xdbcd,0xd2ec,0xc6fa,0xc5aa,0x8f6b,0x8f6c,0x8f6d, +0xdec4,0x8f6e,0xb1d7,0xdfae,0x8f6f,0x8f70,0x8f71,0xcabd, +0x8f72,0xdfb1,0x8f73,0xb9ad,0x8f74,0xd2fd,0x8f75,0xb8a5, +0xbaeb,0x8f76,0x8f77,0xb3da,0x8f78,0x8f79,0x8f7a,0xb5dc, +0xd5c5,0x8f7b,0x8f7c,0x8f7d,0x8f7e,0xc3d6,0xcfd2,0xbba1, +0x8f80,0xe5f3,0xe5f2,0x8f81,0x8f82,0xe5f4,0x8f83,0xcde4, +0x8f84,0xc8f5,0x8f85,0x8f86,0x8f87,0x8f88,0x8f89,0x8f8a, +0x8f8b,0xb5af,0xc7bf,0x8f8c,0xe5f6,0x8f8d,0x8f8e,0x8f8f, +0xecb0,0x8f90,0x8f91,0x8f92,0x8f93,0x8f94,0x8f95,0x8f96, +0x8f97,0x8f98,0x8f99,0x8f9a,0x8f9b,0x8f9c,0x8f9d,0x8f9e, +0xe5e6,0x8f9f,0xb9e9,0xb5b1,0x8fa0,0xc2bc,0xe5e8,0xe5e7, +0xe5e9,0x8fa1,0x8fa2,0x8fa3,0x8fa4,0xd2cd,0x8fa5,0x8fa6, +0x8fa7,0xe1ea,0xd0ce,0x8fa8,0xcdae,0x8fa9,0xd1e5,0x8faa, +0x8fab,0xb2ca,0xb1eb,0x8fac,0xb1f2,0xc5ed,0x8fad,0x8fae, +0xd5c3,0xd3b0,0x8faf,0xe1dc,0x8fb0,0x8fb1,0x8fb2,0xe1dd, +0x8fb3,0xd2db,0x8fb4,0xb3b9,0xb1cb,0x8fb5,0x8fb6,0x8fb7, +0xcdf9,0xd5f7,0xe1de,0x8fb8,0xbeb6,0xb4fd,0x8fb9,0xe1df, +0xbadc,0xe1e0,0xbbb2,0xc2c9,0xe1e1,0x8fba,0x8fbb,0x8fbc, +0xd0ec,0x8fbd,0xcdbd,0x8fbe,0x8fbf,0xe1e2,0x8fc0,0xb5c3, +0xc5c7,0xe1e3,0x8fc1,0x8fc2,0xe1e4,0x8fc3,0x8fc4,0x8fc5, +0x8fc6,0xd3f9,0x8fc7,0x8fc8,0x8fc9,0x8fca,0x8fcb,0x8fcc, +0xe1e5,0x8fcd,0xd1ad,0x8fce,0x8fcf,0xe1e6,0xcea2,0x8fd0, +0x8fd1,0x8fd2,0x8fd3,0x8fd4,0x8fd5,0xe1e7,0x8fd6,0xb5c2, +0x8fd7,0x8fd8,0x8fd9,0x8fda,0xe1e8,0xbbd5,0x8fdb,0x8fdc, +0x8fdd,0x8fde,0x8fdf,0xd0c4,0xe2e0,0xb1d8,0xd2e4,0x8fe0, +0x8fe1,0xe2e1,0x8fe2,0x8fe3,0xbcc9,0xc8cc,0x8fe4,0xe2e3, +0xecfe,0xecfd,0xdfaf,0x8fe5,0x8fe6,0x8fe7,0xe2e2,0xd6be, +0xcdfc,0xc3a6,0x8fe8,0x8fe9,0x8fea,0xe3c3,0x8feb,0x8fec, +0xd6d2,0xe2e7,0x8fed,0x8fee,0xe2e8,0x8fef,0x8ff0,0xd3c7, +0x8ff1,0x8ff2,0xe2ec,0xbfec,0x8ff3,0xe2ed,0xe2e5,0x8ff4, +0x8ff5,0xb3c0,0x8ff6,0x8ff7,0x8ff8,0xc4ee,0x8ff9,0x8ffa, +0xe2ee,0x8ffb,0x8ffc,0xd0c3,0x8ffd,0xbaf6,0xe2e9,0xb7de, +0xbbb3,0xccac,0xcbcb,0xe2e4,0xe2e6,0xe2ea,0xe2eb,0x8ffe, +0x9040,0x9041,0xe2f7,0x9042,0x9043,0xe2f4,0xd4f5,0xe2f3, +0x9044,0x9045,0xc5ad,0x9046,0xd5fa,0xc5c2,0xb2c0,0x9047, +0x9048,0xe2ef,0x9049,0xe2f2,0xc1af,0xcbbc,0x904a,0x904b, +0xb5a1,0xe2f9,0x904c,0x904d,0x904e,0xbcb1,0xe2f1,0xd0d4, +0xd4b9,0xe2f5,0xb9d6,0xe2f6,0x904f,0x9050,0x9051,0xc7d3, +0x9052,0x9053,0x9054,0x9055,0x9056,0xe2f0,0x9057,0x9058, +0x9059,0x905a,0x905b,0xd7dc,0xeda1,0x905c,0x905d,0xe2f8, +0x905e,0xeda5,0xe2fe,0xcad1,0x905f,0x9060,0x9061,0x9062, +0x9063,0x9064,0x9065,0xc1b5,0x9066,0xbbd0,0x9067,0x9068, +0xbfd6,0x9069,0xbae3,0x906a,0x906b,0xcba1,0x906c,0x906d, +0x906e,0xeda6,0xeda3,0x906f,0x9070,0xeda2,0x9071,0x9072, +0x9073,0x9074,0xbbd6,0xeda7,0xd0f4,0x9075,0x9076,0xeda4, +0xbade,0xb6f7,0xe3a1,0xb6b2,0xccf1,0xb9a7,0x9077,0xcfa2, +0xc7a1,0x9078,0x9079,0xbfd2,0x907a,0x907b,0xb6f1,0x907c, +0xe2fa,0xe2fb,0xe2fd,0xe2fc,0xc4d5,0xe3a2,0x907d,0xd3c1, +0x907e,0x9080,0x9081,0xe3a7,0xc7c4,0x9082,0x9083,0x9084, +0x9085,0xcfa4,0x9086,0x9087,0xe3a9,0xbab7,0x9088,0x9089, +0x908a,0x908b,0xe3a8,0x908c,0xbbda,0x908d,0xe3a3,0x908e, +0x908f,0x9090,0xe3a4,0xe3aa,0x9091,0xe3a6,0x9092,0xcef2, +0xd3c6,0x9093,0x9094,0xbbbc,0x9095,0x9096,0xd4c3,0x9097, +0xc4fa,0x9098,0x9099,0xeda8,0xd0fc,0xe3a5,0x909a,0xc3f5, +0x909b,0xe3ad,0xb1af,0x909c,0xe3b2,0x909d,0x909e,0x909f, +0xbcc2,0x90a0,0x90a1,0xe3ac,0xb5bf,0x90a2,0x90a3,0x90a4, +0x90a5,0x90a6,0x90a7,0x90a8,0x90a9,0xc7e9,0xe3b0,0x90aa, +0x90ab,0x90ac,0xbeaa,0xcdef,0x90ad,0x90ae,0x90af,0x90b0, +0x90b1,0xbbf3,0x90b2,0x90b3,0x90b4,0xcce8,0x90b5,0x90b6, +0xe3af,0x90b7,0xe3b1,0x90b8,0xcfa7,0xe3ae,0x90b9,0xcea9, +0xbbdd,0x90ba,0x90bb,0x90bc,0x90bd,0x90be,0xb5eb,0xbee5, +0xb2d2,0xb3cd,0x90bf,0xb1b9,0xe3ab,0xb2d1,0xb5ac,0xb9df, +0xb6e8,0x90c0,0x90c1,0xcfeb,0xe3b7,0x90c2,0xbbcc,0x90c3, +0x90c4,0xc8c7,0xd0ca,0x90c5,0x90c6,0x90c7,0x90c8,0x90c9, +0xe3b8,0xb3ee,0x90ca,0x90cb,0x90cc,0x90cd,0xeda9,0x90ce, +0xd3fa,0xd3e4,0x90cf,0x90d0,0x90d1,0xedaa,0xe3b9,0xd2e2, +0x90d2,0x90d3,0x90d4,0x90d5,0x90d6,0xe3b5,0x90d7,0x90d8, +0x90d9,0x90da,0xd3de,0x90db,0x90dc,0x90dd,0x90de,0xb8d0, +0xe3b3,0x90df,0x90e0,0xe3b6,0xb7df,0x90e1,0xe3b4,0xc0a2, +0x90e2,0x90e3,0x90e4,0xe3ba,0x90e5,0x90e6,0x90e7,0x90e8, +0x90e9,0x90ea,0x90eb,0x90ec,0x90ed,0x90ee,0x90ef,0x90f0, +0x90f1,0x90f2,0x90f3,0x90f4,0x90f5,0x90f6,0x90f7,0xd4b8, +0x90f8,0x90f9,0x90fa,0x90fb,0x90fc,0x90fd,0x90fe,0x9140, +0xb4c8,0x9141,0xe3bb,0x9142,0xbbc5,0x9143,0xc9f7,0x9144, +0x9145,0xc9e5,0x9146,0x9147,0x9148,0xc4bd,0x9149,0x914a, +0x914b,0x914c,0x914d,0x914e,0x914f,0xedab,0x9150,0x9151, +0x9152,0x9153,0xc2fd,0x9154,0x9155,0x9156,0x9157,0xbbdb, +0xbfae,0x9158,0x9159,0x915a,0x915b,0x915c,0x915d,0x915e, +0xcebf,0x915f,0x9160,0x9161,0x9162,0xe3bc,0x9163,0xbfb6, +0x9164,0x9165,0x9166,0x9167,0x9168,0x9169,0x916a,0x916b, +0x916c,0x916d,0x916e,0x916f,0x9170,0x9171,0x9172,0x9173, +0x9174,0x9175,0x9176,0xb1ef,0x9177,0x9178,0xd4f7,0x9179, +0x917a,0x917b,0x917c,0x917d,0xe3be,0x917e,0x9180,0x9181, +0x9182,0x9183,0x9184,0x9185,0x9186,0xedad,0x9187,0x9188, +0x9189,0x918a,0x918b,0x918c,0x918d,0x918e,0x918f,0xe3bf, +0xbaa9,0xedac,0x9190,0x9191,0xe3bd,0x9192,0x9193,0x9194, +0x9195,0x9196,0x9197,0x9198,0x9199,0x919a,0x919b,0xe3c0, +0x919c,0x919d,0x919e,0x919f,0x91a0,0x91a1,0xbab6,0x91a2, +0x91a3,0x91a4,0xb6ae,0x91a5,0x91a6,0x91a7,0x91a8,0x91a9, +0xd0b8,0x91aa,0xb0c3,0xedae,0x91ab,0x91ac,0x91ad,0x91ae, +0x91af,0xedaf,0xc0c1,0x91b0,0xe3c1,0x91b1,0x91b2,0x91b3, +0x91b4,0x91b5,0x91b6,0x91b7,0x91b8,0x91b9,0x91ba,0x91bb, +0x91bc,0x91bd,0x91be,0x91bf,0x91c0,0x91c1,0xc5b3,0x91c2, +0x91c3,0x91c4,0x91c5,0x91c6,0x91c7,0x91c8,0x91c9,0x91ca, +0x91cb,0x91cc,0x91cd,0x91ce,0x91cf,0xe3c2,0x91d0,0x91d1, +0x91d2,0x91d3,0x91d4,0x91d5,0x91d6,0x91d7,0x91d8,0xdcb2, +0x91d9,0x91da,0x91db,0x91dc,0x91dd,0x91de,0xedb0,0x91df, +0xb8ea,0x91e0,0xceec,0xeaa7,0xd0e7,0xcaf9,0xc8d6,0xcfb7, +0xb3c9,0xced2,0xbde4,0x91e1,0x91e2,0xe3de,0xbbf2,0xeaa8, +0xd5bd,0x91e3,0xc6dd,0xeaa9,0x91e4,0x91e5,0x91e6,0xeaaa, +0x91e7,0xeaac,0xeaab,0x91e8,0xeaae,0xeaad,0x91e9,0x91ea, +0x91eb,0x91ec,0xbdd8,0x91ed,0xeaaf,0x91ee,0xc2be,0x91ef, +0x91f0,0x91f1,0x91f2,0xb4c1,0xb4f7,0x91f3,0x91f4,0xbba7, +0x91f5,0x91f6,0x91f7,0x91f8,0x91f9,0xece6,0xece5,0xb7bf, +0xcbf9,0xb1e2,0x91fa,0xece7,0x91fb,0x91fc,0x91fd,0xc9c8, +0xece8,0xece9,0x91fe,0xcad6,0xded0,0xb2c5,0xd4fa,0x9240, +0x9241,0xc6cb,0xb0c7,0xb4f2,0xc8d3,0x9242,0x9243,0x9244, +0xcdd0,0x9245,0x9246,0xbfb8,0x9247,0x9248,0x9249,0x924a, +0x924b,0x924c,0x924d,0xbfdb,0x924e,0x924f,0xc7a4,0xd6b4, +0x9250,0xc0a9,0xded1,0xc9a8,0xd1ef,0xc5a4,0xb0e7,0xb3b6, +0xc8c5,0x9251,0x9252,0xb0e2,0x9253,0x9254,0xb7f6,0x9255, +0x9256,0xc5fa,0x9257,0x9258,0xb6f3,0x9259,0xd5d2,0xb3d0, +0xbcbc,0x925a,0x925b,0x925c,0xb3ad,0x925d,0x925e,0x925f, +0x9260,0xbef1,0xb0d1,0x9261,0x9262,0x9263,0x9264,0x9265, +0x9266,0xd2d6,0xcae3,0xd7a5,0x9267,0xcdb6,0xb6b6,0xbfb9, +0xd5db,0x9268,0xb8a7,0xc5d7,0x9269,0x926a,0x926b,0xded2, +0xbfd9,0xc2d5,0xc7c0,0x926c,0xbba4,0xb1a8,0x926d,0x926e, +0xc5ea,0x926f,0x9270,0xc5fb,0xcca7,0x9271,0x9272,0x9273, +0x9274,0xb1a7,0x9275,0x9276,0x9277,0xb5d6,0x9278,0x9279, +0x927a,0xc4a8,0x927b,0xded3,0xd1ba,0xb3e9,0x927c,0xc3f2, +0x927d,0x927e,0xb7f7,0x9280,0xd6f4,0xb5a3,0xb2f0,0xc4b4, +0xc4e9,0xc0ad,0xded4,0x9281,0xb0e8,0xc5c4,0xc1e0,0x9282, +0xb9d5,0x9283,0xbedc,0xcdd8,0xb0ce,0x9284,0xcdcf,0xded6, +0xbed0,0xd7be,0xded5,0xd5d0,0xb0dd,0x9285,0x9286,0xc4e2, +0x9287,0x9288,0xc2a3,0xbcf0,0x9289,0xd3b5,0xc0b9,0xc5a1, +0xb2a6,0xd4f1,0x928a,0x928b,0xc0a8,0xcac3,0xded7,0xd5fc, +0x928c,0xb9b0,0x928d,0xc8ad,0xcba9,0x928e,0xded9,0xbfbd, +0x928f,0x9290,0x9291,0x9292,0xc6b4,0xd7a7,0xcab0,0xc4c3, +0x9293,0xb3d6,0xb9d2,0x9294,0x9295,0x9296,0x9297,0xd6b8, +0xeafc,0xb0b4,0x9298,0x9299,0x929a,0x929b,0xbfe6,0x929c, +0x929d,0xccf4,0x929e,0x929f,0x92a0,0x92a1,0xcdda,0x92a2, +0x92a3,0x92a4,0xd6bf,0xc2ce,0x92a5,0xcece,0xcca2,0xd0ae, +0xc4d3,0xb5b2,0xded8,0xd5f5,0xbcb7,0xbbd3,0x92a6,0x92a7, +0xb0a4,0x92a8,0xc5b2,0xb4ec,0x92a9,0x92aa,0x92ab,0xd5f1, +0x92ac,0x92ad,0xeafd,0x92ae,0x92af,0x92b0,0x92b1,0x92b2, +0x92b3,0xdeda,0xcda6,0x92b4,0x92b5,0xcdec,0x92b6,0x92b7, +0x92b8,0x92b9,0xcee6,0xdedc,0x92ba,0xcdb1,0xc0a6,0x92bb, +0x92bc,0xd7bd,0x92bd,0xdedb,0xb0c6,0xbab4,0xc9d3,0xc4f3, +0xbee8,0x92be,0x92bf,0x92c0,0x92c1,0xb2b6,0x92c2,0x92c3, +0x92c4,0x92c5,0x92c6,0x92c7,0x92c8,0x92c9,0xc0cc,0xcbf0, +0x92ca,0xbcf1,0xbbbb,0xb5b7,0x92cb,0x92cc,0x92cd,0xc5f5, +0x92ce,0xdee6,0x92cf,0x92d0,0x92d1,0xdee3,0xbedd,0x92d2, +0x92d3,0xdedf,0x92d4,0x92d5,0x92d6,0x92d7,0xb4b7,0xbddd, +0x92d8,0x92d9,0xdee0,0xc4ed,0x92da,0x92db,0x92dc,0x92dd, +0xcfc6,0x92de,0xb5e0,0x92df,0x92e0,0x92e1,0x92e2,0xb6de, +0xcada,0xb5f4,0xdee5,0x92e3,0xd5c6,0x92e4,0xdee1,0xcccd, +0xc6fe,0x92e5,0xc5c5,0x92e6,0x92e7,0x92e8,0xd2b4,0x92e9, +0xbef2,0x92ea,0x92eb,0x92ec,0x92ed,0x92ee,0x92ef,0x92f0, +0xc2d3,0x92f1,0xccbd,0xb3b8,0x92f2,0xbdd3,0x92f3,0xbfd8, +0xcdc6,0xd1da,0xb4eb,0x92f4,0xdee4,0xdedd,0xdee7,0x92f5, +0xeafe,0x92f6,0x92f7,0xc2b0,0xdee2,0x92f8,0x92f9,0xd6c0, +0xb5a7,0x92fa,0xb2f4,0x92fb,0xdee8,0x92fc,0xdef2,0x92fd, +0x92fe,0x9340,0x9341,0x9342,0xdeed,0x9343,0xdef1,0x9344, +0x9345,0xc8e0,0x9346,0x9347,0x9348,0xd7e1,0xdeef,0xc3e8, +0xcce1,0x9349,0xb2e5,0x934a,0x934b,0x934c,0xd2be,0x934d, +0x934e,0x934f,0x9350,0x9351,0x9352,0x9353,0xdeee,0x9354, +0xdeeb,0xced5,0x9355,0xb4a7,0x9356,0x9357,0x9358,0x9359, +0x935a,0xbfab,0xbebe,0x935b,0x935c,0xbdd2,0x935d,0x935e, +0x935f,0x9360,0xdee9,0x9361,0xd4ae,0x9362,0xdede,0x9363, +0xdeea,0x9364,0x9365,0x9366,0x9367,0xc0bf,0x9368,0xdeec, +0xb2f3,0xb8e9,0xc2a7,0x9369,0x936a,0xbdc1,0x936b,0x936c, +0x936d,0x936e,0x936f,0xdef5,0xdef8,0x9370,0x9371,0xb2ab, +0xb4a4,0x9372,0x9373,0xb4ea,0xc9a6,0x9374,0x9375,0x9376, +0x9377,0x9378,0x9379,0xdef6,0xcbd1,0x937a,0xb8e3,0x937b, +0xdef7,0xdefa,0x937c,0x937d,0x937e,0x9380,0xdef9,0x9381, +0x9382,0x9383,0xccc2,0x9384,0xb0e1,0xb4ee,0x9385,0x9386, +0x9387,0x9388,0x9389,0x938a,0xe5ba,0x938b,0x938c,0x938d, +0x938e,0x938f,0xd0af,0x9390,0x9391,0xb2eb,0x9392,0xeba1, +0x9393,0xdef4,0x9394,0x9395,0xc9e3,0xdef3,0xb0da,0xd2a1, +0xb1f7,0x9396,0xccaf,0x9397,0x9398,0x9399,0x939a,0x939b, +0x939c,0x939d,0xdef0,0x939e,0xcba4,0x939f,0x93a0,0x93a1, +0xd5aa,0x93a2,0x93a3,0x93a4,0x93a5,0x93a6,0xdefb,0x93a7, +0x93a8,0x93a9,0x93aa,0x93ab,0x93ac,0x93ad,0x93ae,0xb4dd, +0x93af,0xc4a6,0x93b0,0x93b1,0x93b2,0xdefd,0x93b3,0x93b4, +0x93b5,0x93b6,0x93b7,0x93b8,0x93b9,0x93ba,0x93bb,0x93bc, +0xc3fe,0xc4a1,0xdfa1,0x93bd,0x93be,0x93bf,0x93c0,0x93c1, +0x93c2,0x93c3,0xc1cc,0x93c4,0xdefc,0xbeef,0x93c5,0xc6b2, +0x93c6,0x93c7,0x93c8,0x93c9,0x93ca,0x93cb,0x93cc,0x93cd, +0x93ce,0xb3c5,0xc8f6,0x93cf,0x93d0,0xcbba,0xdefe,0x93d1, +0x93d2,0xdfa4,0x93d3,0x93d4,0x93d5,0x93d6,0xd7b2,0x93d7, +0x93d8,0x93d9,0x93da,0x93db,0xb3b7,0x93dc,0x93dd,0x93de, +0x93df,0xc1c3,0x93e0,0x93e1,0xc7cb,0xb2a5,0xb4e9,0x93e2, +0xd7ab,0x93e3,0x93e4,0x93e5,0x93e6,0xc4ec,0x93e7,0xdfa2, +0xdfa3,0x93e8,0xdfa5,0x93e9,0xbab3,0x93ea,0x93eb,0x93ec, +0xdfa6,0x93ed,0xc0de,0x93ee,0x93ef,0xc9c3,0x93f0,0x93f1, +0x93f2,0x93f3,0x93f4,0x93f5,0x93f6,0xb2d9,0xc7e6,0x93f7, +0xdfa7,0x93f8,0xc7dc,0x93f9,0x93fa,0x93fb,0x93fc,0xdfa8, +0xeba2,0x93fd,0x93fe,0x9440,0x9441,0x9442,0xcbd3,0x9443, +0x9444,0x9445,0xdfaa,0x9446,0xdfa9,0x9447,0xb2c1,0x9448, +0x9449,0x944a,0x944b,0x944c,0x944d,0x944e,0x944f,0x9450, +0x9451,0x9452,0x9453,0x9454,0x9455,0x9456,0x9457,0x9458, +0x9459,0x945a,0x945b,0x945c,0x945d,0x945e,0x945f,0x9460, +0xc5ca,0x9461,0x9462,0x9463,0x9464,0x9465,0x9466,0x9467, +0x9468,0xdfab,0x9469,0x946a,0x946b,0x946c,0x946d,0x946e, +0x946f,0x9470,0xd4dc,0x9471,0x9472,0x9473,0x9474,0x9475, +0xc8c1,0x9476,0x9477,0x9478,0x9479,0x947a,0x947b,0x947c, +0x947d,0x947e,0x9480,0x9481,0x9482,0xdfac,0x9483,0x9484, +0x9485,0x9486,0x9487,0xbef0,0x9488,0x9489,0xdfad,0xd6a7, +0x948a,0x948b,0x948c,0x948d,0xeab7,0xebb6,0xcad5,0x948e, +0xd8fc,0xb8c4,0x948f,0xb9a5,0x9490,0x9491,0xb7c5,0xd5fe, +0x9492,0x9493,0x9494,0x9495,0x9496,0xb9ca,0x9497,0x9498, +0xd0a7,0xf4cd,0x9499,0x949a,0xb5d0,0x949b,0x949c,0xc3f4, +0x949d,0xbec8,0x949e,0x949f,0x94a0,0xebb7,0xb0bd,0x94a1, +0x94a2,0xbdcc,0x94a3,0xc1b2,0x94a4,0xb1d6,0xb3a8,0x94a5, +0x94a6,0x94a7,0xb8d2,0xc9a2,0x94a8,0x94a9,0xb6d8,0x94aa, +0x94ab,0x94ac,0x94ad,0xebb8,0xbeb4,0x94ae,0x94af,0x94b0, +0xcafd,0x94b1,0xc7c3,0x94b2,0xd5fb,0x94b3,0x94b4,0xb7f3, +0x94b5,0x94b6,0x94b7,0x94b8,0x94b9,0x94ba,0x94bb,0x94bc, +0x94bd,0x94be,0x94bf,0x94c0,0x94c1,0x94c2,0x94c3,0xcec4, +0x94c4,0x94c5,0x94c6,0xd5ab,0xb1f3,0x94c7,0x94c8,0x94c9, +0xecb3,0xb0df,0x94ca,0xecb5,0x94cb,0x94cc,0x94cd,0xb6b7, +0x94ce,0xc1cf,0x94cf,0xf5fa,0xd0b1,0x94d0,0x94d1,0xd5e5, +0x94d2,0xced3,0x94d3,0x94d4,0xbdef,0xb3e2,0x94d5,0xb8ab, +0x94d6,0xd5b6,0x94d7,0xedbd,0x94d8,0xb6cf,0x94d9,0xcbb9, +0xd0c2,0x94da,0x94db,0x94dc,0x94dd,0x94de,0x94df,0x94e0, +0x94e1,0xb7bd,0x94e2,0x94e3,0xecb6,0xcaa9,0x94e4,0x94e5, +0x94e6,0xc5d4,0x94e7,0xecb9,0xecb8,0xc2c3,0xecb7,0x94e8, +0x94e9,0x94ea,0x94eb,0xd0fd,0xecba,0x94ec,0xecbb,0xd7e5, +0x94ed,0x94ee,0xecbc,0x94ef,0x94f0,0x94f1,0xecbd,0xc6ec, +0x94f2,0x94f3,0x94f4,0x94f5,0x94f6,0x94f7,0x94f8,0x94f9, +0xcede,0x94fa,0xbcc8,0x94fb,0x94fc,0xc8d5,0xb5a9,0xbec9, +0xd6bc,0xd4e7,0x94fd,0x94fe,0xd1ae,0xd0f1,0xeab8,0xeab9, +0xeaba,0xbab5,0x9540,0x9541,0x9542,0x9543,0xcab1,0xbff5, +0x9544,0x9545,0xcdfa,0x9546,0x9547,0x9548,0x9549,0x954a, +0xeac0,0x954b,0xb0ba,0xeabe,0x954c,0x954d,0xc0a5,0x954e, +0x954f,0x9550,0xeabb,0x9551,0xb2fd,0x9552,0xc3f7,0xbbe8, +0x9553,0x9554,0x9555,0xd2d7,0xcef4,0xeabf,0x9556,0x9557, +0x9558,0xeabc,0x9559,0x955a,0x955b,0xeac3,0x955c,0xd0c7, +0xd3b3,0x955d,0x955e,0x955f,0x9560,0xb4ba,0x9561,0xc3c1, +0xd7f2,0x9562,0x9563,0x9564,0x9565,0xd5d1,0x9566,0xcac7, +0x9567,0xeac5,0x9568,0x9569,0xeac4,0xeac7,0xeac6,0x956a, +0x956b,0x956c,0x956d,0x956e,0xd6e7,0x956f,0xcfd4,0x9570, +0x9571,0xeacb,0x9572,0xbbce,0x9573,0x9574,0x9575,0x9576, +0x9577,0x9578,0x9579,0xbdfa,0xc9ce,0x957a,0x957b,0xeacc, +0x957c,0x957d,0xc9b9,0xcffe,0xeaca,0xd4ce,0xeacd,0xeacf, +0x957e,0x9580,0xcded,0x9581,0x9582,0x9583,0x9584,0xeac9, +0x9585,0xeace,0x9586,0x9587,0xceee,0x9588,0xbbde,0x9589, +0xb3bf,0x958a,0x958b,0x958c,0x958d,0x958e,0xc6d5,0xbeb0, +0xcefa,0x958f,0x9590,0x9591,0xc7e7,0x9592,0xbea7,0xead0, +0x9593,0x9594,0xd6c7,0x9595,0x9596,0x9597,0xc1c0,0x9598, +0x9599,0x959a,0xd4dd,0x959b,0xead1,0x959c,0x959d,0xcfbe, +0x959e,0x959f,0x95a0,0x95a1,0xead2,0x95a2,0x95a3,0x95a4, +0x95a5,0xcaee,0x95a6,0x95a7,0x95a8,0x95a9,0xc5af,0xb0b5, +0x95aa,0x95ab,0x95ac,0x95ad,0x95ae,0xead4,0x95af,0x95b0, +0x95b1,0x95b2,0x95b3,0x95b4,0x95b5,0x95b6,0x95b7,0xead3, +0xf4df,0x95b8,0x95b9,0x95ba,0x95bb,0x95bc,0xc4ba,0x95bd, +0x95be,0x95bf,0x95c0,0x95c1,0xb1a9,0x95c2,0x95c3,0x95c4, +0x95c5,0xe5df,0x95c6,0x95c7,0x95c8,0x95c9,0xead5,0x95ca, +0x95cb,0x95cc,0x95cd,0x95ce,0x95cf,0x95d0,0x95d1,0x95d2, +0x95d3,0x95d4,0x95d5,0x95d6,0x95d7,0x95d8,0x95d9,0x95da, +0x95db,0x95dc,0x95dd,0x95de,0x95df,0x95e0,0x95e1,0x95e2, +0x95e3,0xcaef,0x95e4,0xead6,0xead7,0xc6d8,0x95e5,0x95e6, +0x95e7,0x95e8,0x95e9,0x95ea,0x95eb,0x95ec,0xead8,0x95ed, +0x95ee,0xead9,0x95ef,0x95f0,0x95f1,0x95f2,0x95f3,0x95f4, +0xd4bb,0x95f5,0xc7fa,0xd2b7,0xb8fc,0x95f6,0x95f7,0xeac2, +0x95f8,0xb2dc,0x95f9,0x95fa,0xc2fc,0x95fb,0xd4f8,0xcce6, +0xd7ee,0x95fc,0x95fd,0x95fe,0x9640,0x9641,0x9642,0x9643, +0xd4c2,0xd3d0,0xebc3,0xc5f3,0x9644,0xb7fe,0x9645,0x9646, +0xebd4,0x9647,0x9648,0x9649,0xcbb7,0xebde,0x964a,0xc0ca, +0x964b,0x964c,0x964d,0xcdfb,0x964e,0xb3af,0x964f,0xc6da, +0x9650,0x9651,0x9652,0x9653,0x9654,0x9655,0xebfc,0x9656, +0xc4be,0x9657,0xceb4,0xc4a9,0xb1be,0xd4fd,0x9658,0xcaf5, +0x9659,0xd6ec,0x965a,0x965b,0xc6d3,0xb6e4,0x965c,0x965d, +0x965e,0x965f,0xbbfa,0x9660,0x9661,0xd0e0,0x9662,0x9663, +0xc9b1,0x9664,0xd4d3,0xc8a8,0x9665,0x9666,0xb8cb,0x9667, +0xe8be,0xc9bc,0x9668,0x9669,0xe8bb,0x966a,0xc0ee,0xd0d3, +0xb2c4,0xb4e5,0x966b,0xe8bc,0x966c,0x966d,0xd5c8,0x966e, +0x966f,0x9670,0x9671,0x9672,0xb6c5,0x9673,0xe8bd,0xcaf8, +0xb8dc,0xccf5,0x9674,0x9675,0x9676,0xc0b4,0x9677,0x9678, +0xd1ee,0xe8bf,0xe8c2,0x9679,0x967a,0xbabc,0x967b,0xb1ad, +0xbddc,0x967c,0xeabd,0xe8c3,0x967d,0xe8c6,0x967e,0xe8cb, +0x9680,0x9681,0x9682,0x9683,0xe8cc,0x9684,0xcbc9,0xb0e5, +0x9685,0xbcab,0x9686,0x9687,0xb9b9,0x9688,0x9689,0xe8c1, +0x968a,0xcdf7,0x968b,0xe8ca,0x968c,0x968d,0x968e,0x968f, +0xcef6,0x9690,0x9691,0x9692,0x9693,0xd5ed,0x9694,0xc1d6, +0xe8c4,0x9695,0xc3b6,0x9696,0xb9fb,0xd6a6,0xe8c8,0x9697, +0x9698,0x9699,0xcae0,0xd4e6,0x969a,0xe8c0,0x969b,0xe8c5, +0xe8c7,0x969c,0xc7b9,0xb7e3,0x969d,0xe8c9,0x969e,0xbfdd, +0xe8d2,0x969f,0x96a0,0xe8d7,0x96a1,0xe8d5,0xbcdc,0xbccf, +0xe8db,0x96a2,0x96a3,0x96a4,0x96a5,0x96a6,0x96a7,0x96a8, +0x96a9,0xe8de,0x96aa,0xe8da,0xb1fa,0x96ab,0x96ac,0x96ad, +0x96ae,0x96af,0x96b0,0x96b1,0x96b2,0x96b3,0x96b4,0xb0d8, +0xc4b3,0xb8cc,0xc6e2,0xc8be,0xc8e1,0x96b5,0x96b6,0x96b7, +0xe8cf,0xe8d4,0xe8d6,0x96b8,0xb9f1,0xe8d8,0xd7f5,0x96b9, +0xc4fb,0x96ba,0xe8dc,0x96bb,0x96bc,0xb2e9,0x96bd,0x96be, +0x96bf,0xe8d1,0x96c0,0x96c1,0xbced,0x96c2,0x96c3,0xbfc2, +0xe8cd,0xd6f9,0x96c4,0xc1f8,0xb2f1,0x96c5,0x96c6,0x96c7, +0x96c8,0x96c9,0x96ca,0x96cb,0x96cc,0xe8df,0x96cd,0xcac1, +0xe8d9,0x96ce,0x96cf,0x96d0,0x96d1,0xd5a4,0x96d2,0xb1ea, +0xd5bb,0xe8ce,0xe8d0,0xb6b0,0xe8d3,0x96d3,0xe8dd,0xc0b8, +0x96d4,0xcaf7,0x96d5,0xcba8,0x96d6,0x96d7,0xc6dc,0xc0f5, +0x96d8,0x96d9,0x96da,0x96db,0x96dc,0xe8e9,0x96dd,0x96de, +0x96df,0xd0a3,0x96e0,0x96e1,0x96e2,0x96e3,0x96e4,0x96e5, +0x96e6,0xe8f2,0xd6ea,0x96e7,0x96e8,0x96e9,0x96ea,0x96eb, +0x96ec,0x96ed,0xe8e0,0xe8e1,0x96ee,0x96ef,0x96f0,0xd1f9, +0xbacb,0xb8f9,0x96f1,0x96f2,0xb8f1,0xd4d4,0xe8ef,0x96f3, +0xe8ee,0xe8ec,0xb9f0,0xccd2,0xe8e6,0xcea6,0xbff2,0x96f4, +0xb0b8,0xe8f1,0xe8f0,0x96f5,0xd7c0,0x96f6,0xe8e4,0x96f7, +0xcda9,0xc9a3,0x96f8,0xbbb8,0xbddb,0xe8ea,0x96f9,0x96fa, +0x96fb,0x96fc,0x96fd,0x96fe,0x9740,0x9741,0x9742,0x9743, +0xe8e2,0xe8e3,0xe8e5,0xb5b5,0xe8e7,0xc7c5,0xe8eb,0xe8ed, +0xbdb0,0xd7ae,0x9744,0xe8f8,0x9745,0x9746,0x9747,0x9748, +0x9749,0x974a,0x974b,0x974c,0xe8f5,0x974d,0xcdb0,0xe8f6, +0x974e,0x974f,0x9750,0x9751,0x9752,0x9753,0x9754,0x9755, +0x9756,0xc1ba,0x9757,0xe8e8,0x9758,0xc3b7,0xb0f0,0x9759, +0x975a,0x975b,0x975c,0x975d,0x975e,0x975f,0x9760,0xe8f4, +0x9761,0x9762,0x9763,0xe8f7,0x9764,0x9765,0x9766,0xb9a3, +0x9767,0x9768,0x9769,0x976a,0x976b,0x976c,0x976d,0x976e, +0x976f,0x9770,0xc9d2,0x9771,0x9772,0x9773,0xc3ce,0xcee0, +0xc0e6,0x9774,0x9775,0x9776,0x9777,0xcbf3,0x9778,0xccdd, +0xd0b5,0x9779,0x977a,0xcae1,0x977b,0xe8f3,0x977c,0x977d, +0x977e,0x9780,0x9781,0x9782,0x9783,0x9784,0x9785,0x9786, +0xbcec,0x9787,0xe8f9,0x9788,0x9789,0x978a,0x978b,0x978c, +0x978d,0xc3de,0x978e,0xc6e5,0x978f,0xb9f7,0x9790,0x9791, +0x9792,0x9793,0xb0f4,0x9794,0x9795,0xd7d8,0x9796,0x9797, +0xbcac,0x9798,0xc5ef,0x9799,0x979a,0x979b,0x979c,0x979d, +0xccc4,0x979e,0x979f,0xe9a6,0x97a0,0x97a1,0x97a2,0x97a3, +0x97a4,0x97a5,0x97a6,0x97a7,0x97a8,0x97a9,0xc9ad,0x97aa, +0xe9a2,0xc0e2,0x97ab,0x97ac,0x97ad,0xbfc3,0x97ae,0x97af, +0x97b0,0xe8fe,0xb9d7,0x97b1,0xe8fb,0x97b2,0x97b3,0x97b4, +0x97b5,0xe9a4,0x97b6,0x97b7,0x97b8,0xd2ce,0x97b9,0x97ba, +0x97bb,0x97bc,0x97bd,0xe9a3,0x97be,0xd6b2,0xd7b5,0x97bf, +0xe9a7,0x97c0,0xbdb7,0x97c1,0x97c2,0x97c3,0x97c4,0x97c5, +0x97c6,0x97c7,0x97c8,0x97c9,0x97ca,0x97cb,0x97cc,0xe8fc, +0xe8fd,0x97cd,0x97ce,0x97cf,0xe9a1,0x97d0,0x97d1,0x97d2, +0x97d3,0x97d4,0x97d5,0x97d6,0x97d7,0xcdd6,0x97d8,0x97d9, +0xd2ac,0x97da,0x97db,0x97dc,0xe9b2,0x97dd,0x97de,0x97df, +0x97e0,0xe9a9,0x97e1,0x97e2,0x97e3,0xb4aa,0x97e4,0xb4bb, +0x97e5,0x97e6,0xe9ab,0x97e7,0x97e8,0x97e9,0x97ea,0x97eb, +0x97ec,0x97ed,0x97ee,0x97ef,0x97f0,0x97f1,0x97f2,0x97f3, +0x97f4,0x97f5,0x97f6,0x97f7,0xd0a8,0x97f8,0x97f9,0xe9a5, +0x97fa,0x97fb,0xb3fe,0x97fc,0x97fd,0xe9ac,0xc0e3,0x97fe, +0xe9aa,0x9840,0x9841,0xe9b9,0x9842,0x9843,0xe9b8,0x9844, +0x9845,0x9846,0x9847,0xe9ae,0x9848,0x9849,0xe8fa,0x984a, +0x984b,0xe9a8,0x984c,0x984d,0x984e,0x984f,0x9850,0xbfac, +0xe9b1,0xe9ba,0x9851,0x9852,0xc2a5,0x9853,0x9854,0x9855, +0xe9af,0x9856,0xb8c5,0x9857,0xe9ad,0x9858,0xd3dc,0xe9b4, +0xe9b5,0xe9b7,0x9859,0x985a,0x985b,0xe9c7,0x985c,0x985d, +0x985e,0x985f,0x9860,0x9861,0xc0c6,0xe9c5,0x9862,0x9863, +0xe9b0,0x9864,0x9865,0xe9bb,0xb0f1,0x9866,0x9867,0x9868, +0x9869,0x986a,0x986b,0x986c,0x986d,0x986e,0x986f,0xe9bc, +0xd5a5,0x9870,0x9871,0xe9be,0x9872,0xe9bf,0x9873,0x9874, +0x9875,0xe9c1,0x9876,0x9877,0xc1f1,0x9878,0x9879,0xc8b6, +0x987a,0x987b,0x987c,0xe9bd,0x987d,0x987e,0x9880,0x9881, +0x9882,0xe9c2,0x9883,0x9884,0x9885,0x9886,0x9887,0x9888, +0x9889,0x988a,0xe9c3,0x988b,0xe9b3,0x988c,0xe9b6,0x988d, +0xbbb1,0x988e,0x988f,0x9890,0xe9c0,0x9891,0x9892,0x9893, +0x9894,0x9895,0x9896,0xbcf7,0x9897,0x9898,0x9899,0xe9c4, +0xe9c6,0x989a,0x989b,0x989c,0x989d,0x989e,0x989f,0x98a0, +0x98a1,0x98a2,0x98a3,0x98a4,0x98a5,0xe9ca,0x98a6,0x98a7, +0x98a8,0x98a9,0xe9ce,0x98aa,0x98ab,0x98ac,0x98ad,0x98ae, +0x98af,0x98b0,0x98b1,0x98b2,0x98b3,0xb2db,0x98b4,0xe9c8, +0x98b5,0x98b6,0x98b7,0x98b8,0x98b9,0x98ba,0x98bb,0x98bc, +0x98bd,0x98be,0xb7ae,0x98bf,0x98c0,0x98c1,0x98c2,0x98c3, +0x98c4,0x98c5,0x98c6,0x98c7,0x98c8,0x98c9,0x98ca,0xe9cb, +0xe9cc,0x98cb,0x98cc,0x98cd,0x98ce,0x98cf,0x98d0,0xd5c1, +0x98d1,0xc4a3,0x98d2,0x98d3,0x98d4,0x98d5,0x98d6,0x98d7, +0xe9d8,0x98d8,0xbae1,0x98d9,0x98da,0x98db,0x98dc,0xe9c9, +0x98dd,0xd3a3,0x98de,0x98df,0x98e0,0xe9d4,0x98e1,0x98e2, +0x98e3,0x98e4,0x98e5,0x98e6,0x98e7,0xe9d7,0xe9d0,0x98e8, +0x98e9,0x98ea,0x98eb,0x98ec,0xe9cf,0x98ed,0x98ee,0xc7c1, +0x98ef,0x98f0,0x98f1,0x98f2,0x98f3,0x98f4,0x98f5,0x98f6, +0xe9d2,0x98f7,0x98f8,0x98f9,0x98fa,0x98fb,0x98fc,0x98fd, +0xe9d9,0xb3c8,0x98fe,0xe9d3,0x9940,0x9941,0x9942,0x9943, +0x9944,0xcff0,0x9945,0x9946,0x9947,0xe9cd,0x9948,0x9949, +0x994a,0x994b,0x994c,0x994d,0x994e,0x994f,0x9950,0x9951, +0x9952,0xb3f7,0x9953,0x9954,0x9955,0x9956,0x9957,0x9958, +0x9959,0xe9d6,0x995a,0x995b,0xe9da,0x995c,0x995d,0x995e, +0xccb4,0x995f,0x9960,0x9961,0xcfad,0x9962,0x9963,0x9964, +0x9965,0x9966,0x9967,0x9968,0x9969,0x996a,0xe9d5,0x996b, +0xe9dc,0xe9db,0x996c,0x996d,0x996e,0x996f,0x9970,0xe9de, +0x9971,0x9972,0x9973,0x9974,0x9975,0x9976,0x9977,0x9978, +0xe9d1,0x9979,0x997a,0x997b,0x997c,0x997d,0x997e,0x9980, +0x9981,0xe9dd,0x9982,0xe9df,0xc3ca,0x9983,0x9984,0x9985, +0x9986,0x9987,0x9988,0x9989,0x998a,0x998b,0x998c,0x998d, +0x998e,0x998f,0x9990,0x9991,0x9992,0x9993,0x9994,0x9995, +0x9996,0x9997,0x9998,0x9999,0x999a,0x999b,0x999c,0x999d, +0x999e,0x999f,0x99a0,0x99a1,0x99a2,0x99a3,0x99a4,0x99a5, +0x99a6,0x99a7,0x99a8,0x99a9,0x99aa,0x99ab,0x99ac,0x99ad, +0x99ae,0x99af,0x99b0,0x99b1,0x99b2,0x99b3,0x99b4,0x99b5, +0x99b6,0x99b7,0x99b8,0x99b9,0x99ba,0x99bb,0x99bc,0x99bd, +0x99be,0x99bf,0x99c0,0x99c1,0x99c2,0x99c3,0x99c4,0x99c5, +0x99c6,0x99c7,0x99c8,0x99c9,0x99ca,0x99cb,0x99cc,0x99cd, +0x99ce,0x99cf,0x99d0,0x99d1,0x99d2,0x99d3,0x99d4,0x99d5, +0x99d6,0x99d7,0x99d8,0x99d9,0x99da,0x99db,0x99dc,0x99dd, +0x99de,0x99df,0x99e0,0x99e1,0x99e2,0x99e3,0x99e4,0x99e5, +0x99e6,0x99e7,0x99e8,0x99e9,0x99ea,0x99eb,0x99ec,0x99ed, +0x99ee,0x99ef,0x99f0,0x99f1,0x99f2,0x99f3,0x99f4,0x99f5, +0xc7b7,0xb4ce,0xbbb6,0xd0c0,0xeca3,0x99f6,0x99f7,0xc5b7, +0x99f8,0x99f9,0x99fa,0x99fb,0x99fc,0x99fd,0x99fe,0x9a40, +0x9a41,0x9a42,0xd3fb,0x9a43,0x9a44,0x9a45,0x9a46,0xeca4, +0x9a47,0xeca5,0xc6db,0x9a48,0x9a49,0x9a4a,0xbfee,0x9a4b, +0x9a4c,0x9a4d,0x9a4e,0xeca6,0x9a4f,0x9a50,0xeca7,0xd0aa, +0x9a51,0xc7b8,0x9a52,0x9a53,0xb8e8,0x9a54,0x9a55,0x9a56, +0x9a57,0x9a58,0x9a59,0x9a5a,0x9a5b,0x9a5c,0x9a5d,0x9a5e, +0x9a5f,0xeca8,0x9a60,0x9a61,0x9a62,0x9a63,0x9a64,0x9a65, +0x9a66,0x9a67,0xd6b9,0xd5fd,0xb4cb,0xb2bd,0xcee4,0xc6e7, +0x9a68,0x9a69,0xcde1,0x9a6a,0x9a6b,0x9a6c,0x9a6d,0x9a6e, +0x9a6f,0x9a70,0x9a71,0x9a72,0x9a73,0x9a74,0x9a75,0x9a76, +0x9a77,0xb4f5,0x9a78,0xcbc0,0xbcdf,0x9a79,0x9a7a,0x9a7b, +0x9a7c,0xe9e2,0xe9e3,0xd1ea,0xe9e5,0x9a7d,0xb4f9,0xe9e4, +0x9a7e,0xd1b3,0xcae2,0xb2d0,0x9a80,0xe9e8,0x9a81,0x9a82, +0x9a83,0x9a84,0xe9e6,0xe9e7,0x9a85,0x9a86,0xd6b3,0x9a87, +0x9a88,0x9a89,0xe9e9,0xe9ea,0x9a8a,0x9a8b,0x9a8c,0x9a8d, +0x9a8e,0xe9eb,0x9a8f,0x9a90,0x9a91,0x9a92,0x9a93,0x9a94, +0x9a95,0x9a96,0xe9ec,0x9a97,0x9a98,0x9a99,0x9a9a,0x9a9b, +0x9a9c,0x9a9d,0x9a9e,0xecaf,0xc5b9,0xb6ce,0x9a9f,0xd2f3, +0x9aa0,0x9aa1,0x9aa2,0x9aa3,0x9aa4,0x9aa5,0x9aa6,0xb5ee, +0x9aa7,0xbbd9,0xecb1,0x9aa8,0x9aa9,0xd2e3,0x9aaa,0x9aab, +0x9aac,0x9aad,0x9aae,0xcee3,0x9aaf,0xc4b8,0x9ab0,0xc3bf, +0x9ab1,0x9ab2,0xb6be,0xd8b9,0xb1c8,0xb1cf,0xb1d1,0xc5fe, +0x9ab3,0xb1d0,0x9ab4,0xc3ab,0x9ab5,0x9ab6,0x9ab7,0x9ab8, +0x9ab9,0xd5b1,0x9aba,0x9abb,0x9abc,0x9abd,0x9abe,0x9abf, +0x9ac0,0x9ac1,0xeba4,0xbac1,0x9ac2,0x9ac3,0x9ac4,0xccba, +0x9ac5,0x9ac6,0x9ac7,0xeba5,0x9ac8,0xeba7,0x9ac9,0x9aca, +0x9acb,0xeba8,0x9acc,0x9acd,0x9ace,0xeba6,0x9acf,0x9ad0, +0x9ad1,0x9ad2,0x9ad3,0x9ad4,0x9ad5,0xeba9,0xebab,0xebaa, +0x9ad6,0x9ad7,0x9ad8,0x9ad9,0x9ada,0xebac,0x9adb,0xcacf, +0xd8b5,0xc3f1,0x9adc,0xc3a5,0xc6f8,0xebad,0xc4ca,0x9add, +0xebae,0xebaf,0xebb0,0xb7d5,0x9ade,0x9adf,0x9ae0,0xb7fa, +0x9ae1,0xebb1,0xc7e2,0x9ae2,0xebb3,0x9ae3,0xbaa4,0xd1f5, +0xb0b1,0xebb2,0xebb4,0x9ae4,0x9ae5,0x9ae6,0xb5aa,0xc2c8, +0xc7e8,0x9ae7,0xebb5,0x9ae8,0xcbae,0xe3df,0x9ae9,0x9aea, +0xd3c0,0x9aeb,0x9aec,0x9aed,0x9aee,0xd9db,0x9aef,0x9af0, +0xcda1,0xd6ad,0xc7f3,0x9af1,0x9af2,0x9af3,0xd9e0,0xbbe3, +0x9af4,0xbaba,0xe3e2,0x9af5,0x9af6,0x9af7,0x9af8,0x9af9, +0xcfab,0x9afa,0x9afb,0x9afc,0xe3e0,0xc9c7,0x9afd,0xbab9, +0x9afe,0x9b40,0x9b41,0xd1b4,0xe3e1,0xc8ea,0xb9af,0xbdad, +0xb3d8,0xcedb,0x9b42,0x9b43,0xccc0,0x9b44,0x9b45,0x9b46, +0xe3e8,0xe3e9,0xcdf4,0x9b47,0x9b48,0x9b49,0x9b4a,0x9b4b, +0xccad,0x9b4c,0xbcb3,0x9b4d,0xe3ea,0x9b4e,0xe3eb,0x9b4f, +0x9b50,0xd0da,0x9b51,0x9b52,0x9b53,0xc6fb,0xb7da,0x9b54, +0x9b55,0xc7df,0xd2ca,0xced6,0x9b56,0xe3e4,0xe3ec,0x9b57, +0xc9f2,0xb3c1,0x9b58,0x9b59,0xe3e7,0x9b5a,0x9b5b,0xc6e3, +0xe3e5,0x9b5c,0x9b5d,0xedb3,0xe3e6,0x9b5e,0x9b5f,0x9b60, +0x9b61,0xc9b3,0x9b62,0xc5e6,0x9b63,0x9b64,0x9b65,0xb9b5, +0x9b66,0xc3bb,0x9b67,0xe3e3,0xc5bd,0xc1a4,0xc2d9,0xb2d7, +0x9b68,0xe3ed,0xbba6,0xc4ad,0x9b69,0xe3f0,0xbeda,0x9b6a, +0x9b6b,0xe3fb,0xe3f5,0xbad3,0x9b6c,0x9b6d,0x9b6e,0x9b6f, +0xb7d0,0xd3cd,0x9b70,0xd6ce,0xd5d3,0xb9c1,0xd5b4,0xd1d8, +0x9b71,0x9b72,0x9b73,0x9b74,0xd0b9,0xc7f6,0x9b75,0x9b76, +0x9b77,0xc8aa,0xb2b4,0x9b78,0xc3da,0x9b79,0x9b7a,0x9b7b, +0xe3ee,0x9b7c,0x9b7d,0xe3fc,0xe3ef,0xb7a8,0xe3f7,0xe3f4, +0x9b7e,0x9b80,0x9b81,0xb7ba,0x9b82,0x9b83,0xc5a2,0x9b84, +0xe3f6,0xc5dd,0xb2a8,0xc6fc,0x9b85,0xc4e0,0x9b86,0x9b87, +0xd7a2,0x9b88,0xc0e1,0xe3f9,0x9b89,0x9b8a,0xe3fa,0xe3fd, +0xcca9,0xe3f3,0x9b8b,0xd3be,0x9b8c,0xb1c3,0xedb4,0xe3f1, +0xe3f2,0x9b8d,0xe3f8,0xd0ba,0xc6c3,0xd4f3,0xe3fe,0x9b8e, +0x9b8f,0xbde0,0x9b90,0x9b91,0xe4a7,0x9b92,0x9b93,0xe4a6, +0x9b94,0x9b95,0x9b96,0xd1f3,0xe4a3,0x9b97,0xe4a9,0x9b98, +0x9b99,0x9b9a,0xc8f7,0x9b9b,0x9b9c,0x9b9d,0x9b9e,0xcfb4, +0x9b9f,0xe4a8,0xe4ae,0xc2e5,0x9ba0,0x9ba1,0xb6b4,0x9ba2, +0x9ba3,0x9ba4,0x9ba5,0x9ba6,0x9ba7,0xbdf2,0x9ba8,0xe4a2, +0x9ba9,0x9baa,0xbae9,0xe4aa,0x9bab,0x9bac,0xe4ac,0x9bad, +0x9bae,0xb6fd,0xd6de,0xe4b2,0x9baf,0xe4ad,0x9bb0,0x9bb1, +0x9bb2,0xe4a1,0x9bb3,0xbbee,0xcddd,0xc7a2,0xc5c9,0x9bb4, +0x9bb5,0xc1f7,0x9bb6,0xe4a4,0x9bb7,0xc7b3,0xbdac,0xbdbd, +0xe4a5,0x9bb8,0xd7c7,0xb2e2,0x9bb9,0xe4ab,0xbcc3,0xe4af, +0x9bba,0xbbeb,0xe4b0,0xc5a8,0xe4b1,0x9bbb,0x9bbc,0x9bbd, +0x9bbe,0xd5e3,0xbfa3,0x9bbf,0xe4ba,0x9bc0,0xe4b7,0x9bc1, +0xe4bb,0x9bc2,0x9bc3,0xe4bd,0x9bc4,0x9bc5,0xc6d6,0x9bc6, +0x9bc7,0xbac6,0xc0cb,0x9bc8,0x9bc9,0x9bca,0xb8a1,0xe4b4, +0x9bcb,0x9bcc,0x9bcd,0x9bce,0xd4a1,0x9bcf,0x9bd0,0xbaa3, +0xbdfe,0x9bd1,0x9bd2,0x9bd3,0xe4bc,0x9bd4,0x9bd5,0x9bd6, +0x9bd7,0x9bd8,0xcdbf,0x9bd9,0x9bda,0xc4f9,0x9bdb,0x9bdc, +0xcffb,0xc9e6,0x9bdd,0x9bde,0xd3bf,0x9bdf,0xcfd1,0x9be0, +0x9be1,0xe4b3,0x9be2,0xe4b8,0xe4b9,0xcce9,0x9be3,0x9be4, +0x9be5,0x9be6,0x9be7,0xccce,0x9be8,0xc0d4,0xe4b5,0xc1b0, +0xe4b6,0xced0,0x9be9,0xbbc1,0xb5d3,0x9bea,0xc8f3,0xbda7, +0xd5c7,0xc9ac,0xb8a2,0xe4ca,0x9beb,0x9bec,0xe4cc,0xd1c4, +0x9bed,0x9bee,0xd2ba,0x9bef,0x9bf0,0xbaad,0x9bf1,0x9bf2, +0xbad4,0x9bf3,0x9bf4,0x9bf5,0x9bf6,0x9bf7,0x9bf8,0xe4c3, +0xb5ed,0x9bf9,0x9bfa,0x9bfb,0xd7cd,0xe4c0,0xcffd,0xe4bf, +0x9bfc,0x9bfd,0x9bfe,0xc1dc,0xccca,0x9c40,0x9c41,0x9c42, +0x9c43,0xcae7,0x9c44,0x9c45,0x9c46,0x9c47,0xc4d7,0x9c48, +0xccd4,0xe4c8,0x9c49,0x9c4a,0x9c4b,0xe4c7,0xe4c1,0x9c4c, +0xe4c4,0xb5ad,0x9c4d,0x9c4e,0xd3d9,0x9c4f,0xe4c6,0x9c50, +0x9c51,0x9c52,0x9c53,0xd2f9,0xb4e3,0x9c54,0xbbb4,0x9c55, +0x9c56,0xc9ee,0x9c57,0xb4be,0x9c58,0x9c59,0x9c5a,0xbbec, +0x9c5b,0xd1cd,0x9c5c,0xcced,0xedb5,0x9c5d,0x9c5e,0x9c5f, +0x9c60,0x9c61,0x9c62,0x9c63,0x9c64,0xc7e5,0x9c65,0x9c66, +0x9c67,0x9c68,0xd4a8,0x9c69,0xe4cb,0xd7d5,0xe4c2,0x9c6a, +0xbda5,0xe4c5,0x9c6b,0x9c6c,0xd3e6,0x9c6d,0xe4c9,0xc9f8, +0x9c6e,0x9c6f,0xe4be,0x9c70,0x9c71,0xd3e5,0x9c72,0x9c73, +0xc7fe,0xb6c9,0x9c74,0xd4fc,0xb2b3,0xe4d7,0x9c75,0x9c76, +0x9c77,0xcec2,0x9c78,0xe4cd,0x9c79,0xcebc,0x9c7a,0xb8db, +0x9c7b,0x9c7c,0xe4d6,0x9c7d,0xbfca,0x9c7e,0x9c80,0x9c81, +0xd3ce,0x9c82,0xc3ec,0x9c83,0x9c84,0x9c85,0x9c86,0x9c87, +0x9c88,0x9c89,0x9c8a,0xc5c8,0xe4d8,0x9c8b,0x9c8c,0x9c8d, +0x9c8e,0x9c8f,0x9c90,0x9c91,0x9c92,0xcdc4,0xe4cf,0x9c93, +0x9c94,0x9c95,0x9c96,0xe4d4,0xe4d5,0x9c97,0xbafe,0x9c98, +0xcfe6,0x9c99,0x9c9a,0xd5bf,0x9c9b,0x9c9c,0x9c9d,0xe4d2, +0x9c9e,0x9c9f,0x9ca0,0x9ca1,0x9ca2,0x9ca3,0x9ca4,0x9ca5, +0x9ca6,0x9ca7,0x9ca8,0xe4d0,0x9ca9,0x9caa,0xe4ce,0x9cab, +0x9cac,0x9cad,0x9cae,0x9caf,0x9cb0,0x9cb1,0x9cb2,0x9cb3, +0x9cb4,0x9cb5,0x9cb6,0x9cb7,0x9cb8,0x9cb9,0xcde5,0xcaaa, +0x9cba,0x9cbb,0x9cbc,0xc0a3,0x9cbd,0xbda6,0xe4d3,0x9cbe, +0x9cbf,0xb8c8,0x9cc0,0x9cc1,0x9cc2,0x9cc3,0x9cc4,0xe4e7, +0xd4b4,0x9cc5,0x9cc6,0x9cc7,0x9cc8,0x9cc9,0x9cca,0x9ccb, +0xe4db,0x9ccc,0x9ccd,0x9cce,0xc1ef,0x9ccf,0x9cd0,0xe4e9, +0x9cd1,0x9cd2,0xd2e7,0x9cd3,0x9cd4,0xe4df,0x9cd5,0xe4e0, +0x9cd6,0x9cd7,0xcfaa,0x9cd8,0x9cd9,0x9cda,0x9cdb,0xcbdd, +0x9cdc,0xe4da,0xe4d1,0x9cdd,0xe4e5,0x9cde,0xc8dc,0xe4e3, +0x9cdf,0x9ce0,0xc4e7,0xe4e2,0x9ce1,0xe4e1,0x9ce2,0x9ce3, +0x9ce4,0xb3fc,0xe4e8,0x9ce5,0x9ce6,0x9ce7,0x9ce8,0xb5e1, +0x9ce9,0x9cea,0x9ceb,0xd7cc,0x9cec,0x9ced,0x9cee,0xe4e6, +0x9cef,0xbbac,0x9cf0,0xd7d2,0xcccf,0xebf8,0x9cf1,0xe4e4, +0x9cf2,0x9cf3,0xb9f6,0x9cf4,0x9cf5,0x9cf6,0xd6cd,0xe4d9, +0xe4dc,0xc2fa,0xe4de,0x9cf7,0xc2cb,0xc0c4,0xc2d0,0x9cf8, +0xb1f5,0xccb2,0x9cf9,0x9cfa,0x9cfb,0x9cfc,0x9cfd,0x9cfe, +0x9d40,0x9d41,0x9d42,0x9d43,0xb5ce,0x9d44,0x9d45,0x9d46, +0x9d47,0xe4ef,0x9d48,0x9d49,0x9d4a,0x9d4b,0x9d4c,0x9d4d, +0x9d4e,0x9d4f,0xc6af,0x9d50,0x9d51,0x9d52,0xc6e1,0x9d53, +0x9d54,0xe4f5,0x9d55,0x9d56,0x9d57,0x9d58,0x9d59,0xc2a9, +0x9d5a,0x9d5b,0x9d5c,0xc0ec,0xd1dd,0xe4ee,0x9d5d,0x9d5e, +0x9d5f,0x9d60,0x9d61,0x9d62,0x9d63,0x9d64,0x9d65,0x9d66, +0xc4ae,0x9d67,0x9d68,0x9d69,0xe4ed,0x9d6a,0x9d6b,0x9d6c, +0x9d6d,0xe4f6,0xe4f4,0xc2fe,0x9d6e,0xe4dd,0x9d6f,0xe4f0, +0x9d70,0xcafe,0x9d71,0xd5c4,0x9d72,0x9d73,0xe4f1,0x9d74, +0x9d75,0x9d76,0x9d77,0x9d78,0x9d79,0x9d7a,0xd1fa,0x9d7b, +0x9d7c,0x9d7d,0x9d7e,0x9d80,0x9d81,0x9d82,0xe4eb,0xe4ec, +0x9d83,0x9d84,0x9d85,0xe4f2,0x9d86,0xceab,0x9d87,0x9d88, +0x9d89,0x9d8a,0x9d8b,0x9d8c,0x9d8d,0x9d8e,0x9d8f,0x9d90, +0xc5cb,0x9d91,0x9d92,0x9d93,0xc7b1,0x9d94,0xc2ba,0x9d95, +0x9d96,0x9d97,0xe4ea,0x9d98,0x9d99,0x9d9a,0xc1ca,0x9d9b, +0x9d9c,0x9d9d,0x9d9e,0x9d9f,0x9da0,0xccb6,0xb3b1,0x9da1, +0x9da2,0x9da3,0xe4fb,0x9da4,0xe4f3,0x9da5,0x9da6,0x9da7, +0xe4fa,0x9da8,0xe4fd,0x9da9,0xe4fc,0x9daa,0x9dab,0x9dac, +0x9dad,0x9dae,0x9daf,0x9db0,0xb3ce,0x9db1,0x9db2,0x9db3, +0xb3ba,0xe4f7,0x9db4,0x9db5,0xe4f9,0xe4f8,0xc5ec,0x9db6, +0x9db7,0x9db8,0x9db9,0x9dba,0x9dbb,0x9dbc,0x9dbd,0x9dbe, +0x9dbf,0x9dc0,0x9dc1,0x9dc2,0xc0bd,0x9dc3,0x9dc4,0x9dc5, +0x9dc6,0xd4e8,0x9dc7,0x9dc8,0x9dc9,0x9dca,0x9dcb,0xe5a2, +0x9dcc,0x9dcd,0x9dce,0x9dcf,0x9dd0,0x9dd1,0x9dd2,0x9dd3, +0x9dd4,0x9dd5,0x9dd6,0xb0c4,0x9dd7,0x9dd8,0xe5a4,0x9dd9, +0x9dda,0xe5a3,0x9ddb,0x9ddc,0x9ddd,0x9dde,0x9ddf,0x9de0, +0xbca4,0x9de1,0xe5a5,0x9de2,0x9de3,0x9de4,0x9de5,0x9de6, +0x9de7,0xe5a1,0x9de8,0x9de9,0x9dea,0x9deb,0x9dec,0x9ded, +0x9dee,0xe4fe,0xb1f4,0x9def,0x9df0,0x9df1,0x9df2,0x9df3, +0x9df4,0x9df5,0x9df6,0x9df7,0x9df8,0x9df9,0xe5a8,0x9dfa, +0xe5a9,0xe5a6,0x9dfb,0x9dfc,0x9dfd,0x9dfe,0x9e40,0x9e41, +0x9e42,0x9e43,0x9e44,0x9e45,0x9e46,0x9e47,0xe5a7,0xe5aa, +0x9e48,0x9e49,0x9e4a,0x9e4b,0x9e4c,0x9e4d,0x9e4e,0x9e4f, +0x9e50,0x9e51,0x9e52,0x9e53,0x9e54,0x9e55,0x9e56,0x9e57, +0x9e58,0x9e59,0x9e5a,0x9e5b,0x9e5c,0x9e5d,0x9e5e,0x9e5f, +0x9e60,0x9e61,0x9e62,0x9e63,0x9e64,0x9e65,0x9e66,0x9e67, +0x9e68,0xc6d9,0x9e69,0x9e6a,0x9e6b,0x9e6c,0x9e6d,0x9e6e, +0x9e6f,0x9e70,0xe5ab,0xe5ad,0x9e71,0x9e72,0x9e73,0x9e74, +0x9e75,0x9e76,0x9e77,0xe5ac,0x9e78,0x9e79,0x9e7a,0x9e7b, +0x9e7c,0x9e7d,0x9e7e,0x9e80,0x9e81,0x9e82,0x9e83,0x9e84, +0x9e85,0x9e86,0x9e87,0x9e88,0x9e89,0xe5af,0x9e8a,0x9e8b, +0x9e8c,0xe5ae,0x9e8d,0x9e8e,0x9e8f,0x9e90,0x9e91,0x9e92, +0x9e93,0x9e94,0x9e95,0x9e96,0x9e97,0x9e98,0x9e99,0x9e9a, +0x9e9b,0x9e9c,0x9e9d,0x9e9e,0xb9e0,0x9e9f,0x9ea0,0xe5b0, +0x9ea1,0x9ea2,0x9ea3,0x9ea4,0x9ea5,0x9ea6,0x9ea7,0x9ea8, +0x9ea9,0x9eaa,0x9eab,0x9eac,0x9ead,0x9eae,0xe5b1,0x9eaf, +0x9eb0,0x9eb1,0x9eb2,0x9eb3,0x9eb4,0x9eb5,0x9eb6,0x9eb7, +0x9eb8,0x9eb9,0x9eba,0xbbf0,0xece1,0xc3f0,0x9ebb,0xb5c6, +0xbbd2,0x9ebc,0x9ebd,0x9ebe,0x9ebf,0xc1e9,0xd4ee,0x9ec0, +0xbec4,0x9ec1,0x9ec2,0x9ec3,0xd7c6,0x9ec4,0xd4d6,0xb2d3, +0xecbe,0x9ec5,0x9ec6,0x9ec7,0x9ec8,0xeac1,0x9ec9,0x9eca, +0x9ecb,0xc2af,0xb4b6,0x9ecc,0x9ecd,0x9ece,0xd1d7,0x9ecf, +0x9ed0,0x9ed1,0xb3b4,0x9ed2,0xc8b2,0xbfbb,0xecc0,0x9ed3, +0x9ed4,0xd6cb,0x9ed5,0x9ed6,0xecbf,0xecc1,0x9ed7,0x9ed8, +0x9ed9,0x9eda,0x9edb,0x9edc,0x9edd,0x9ede,0x9edf,0x9ee0, +0x9ee1,0x9ee2,0x9ee3,0xecc5,0xbee6,0xccbf,0xc5da,0xbebc, +0x9ee4,0xecc6,0x9ee5,0xb1fe,0x9ee6,0x9ee7,0x9ee8,0xecc4, +0xd5a8,0xb5e3,0x9ee9,0xecc2,0xc1b6,0xb3e3,0x9eea,0x9eeb, +0xecc3,0xcbb8,0xc0c3,0xccfe,0x9eec,0x9eed,0x9eee,0x9eef, +0xc1d2,0x9ef0,0xecc8,0x9ef1,0x9ef2,0x9ef3,0x9ef4,0x9ef5, +0x9ef6,0x9ef7,0x9ef8,0x9ef9,0x9efa,0x9efb,0x9efc,0x9efd, +0xbae6,0xc0d3,0x9efe,0xd6f2,0x9f40,0x9f41,0x9f42,0xd1cc, +0x9f43,0x9f44,0x9f45,0x9f46,0xbfbe,0x9f47,0xb7b3,0xc9d5, +0xecc7,0xbbe2,0x9f48,0xcccc,0xbdfd,0xc8c8,0x9f49,0xcfa9, +0x9f4a,0x9f4b,0x9f4c,0x9f4d,0x9f4e,0x9f4f,0x9f50,0xcde9, +0x9f51,0xc5eb,0x9f52,0x9f53,0x9f54,0xb7e9,0x9f55,0x9f56, +0x9f57,0x9f58,0x9f59,0x9f5a,0x9f5b,0x9f5c,0x9f5d,0x9f5e, +0x9f5f,0xd1c9,0xbab8,0x9f60,0x9f61,0x9f62,0x9f63,0x9f64, +0xecc9,0x9f65,0x9f66,0xecca,0x9f67,0xbbc0,0xeccb,0x9f68, +0xece2,0xb1ba,0xb7d9,0x9f69,0x9f6a,0x9f6b,0x9f6c,0x9f6d, +0x9f6e,0x9f6f,0x9f70,0x9f71,0x9f72,0x9f73,0xbdb9,0x9f74, +0x9f75,0x9f76,0x9f77,0x9f78,0x9f79,0x9f7a,0x9f7b,0xeccc, +0xd1e6,0xeccd,0x9f7c,0x9f7d,0x9f7e,0x9f80,0xc8bb,0x9f81, +0x9f82,0x9f83,0x9f84,0x9f85,0x9f86,0x9f87,0x9f88,0x9f89, +0x9f8a,0x9f8b,0x9f8c,0x9f8d,0x9f8e,0xecd1,0x9f8f,0x9f90, +0x9f91,0x9f92,0xecd3,0x9f93,0xbbcd,0x9f94,0xbce5,0x9f95, +0x9f96,0x9f97,0x9f98,0x9f99,0x9f9a,0x9f9b,0x9f9c,0x9f9d, +0x9f9e,0x9f9f,0x9fa0,0x9fa1,0xeccf,0x9fa2,0xc9b7,0x9fa3, +0x9fa4,0x9fa5,0x9fa6,0x9fa7,0xc3ba,0x9fa8,0xece3,0xd5d5, +0xecd0,0x9fa9,0x9faa,0x9fab,0x9fac,0x9fad,0xd6f3,0x9fae, +0x9faf,0x9fb0,0xecd2,0xecce,0x9fb1,0x9fb2,0x9fb3,0x9fb4, +0xecd4,0x9fb5,0xecd5,0x9fb6,0x9fb7,0xc9bf,0x9fb8,0x9fb9, +0x9fba,0x9fbb,0x9fbc,0x9fbd,0xcfa8,0x9fbe,0x9fbf,0x9fc0, +0x9fc1,0x9fc2,0xd0dc,0x9fc3,0x9fc4,0x9fc5,0x9fc6,0xd1ac, +0x9fc7,0x9fc8,0x9fc9,0x9fca,0xc8db,0x9fcb,0x9fcc,0x9fcd, +0xecd6,0xcef5,0x9fce,0x9fcf,0x9fd0,0x9fd1,0x9fd2,0xcaec, +0xecda,0x9fd3,0x9fd4,0x9fd5,0x9fd6,0x9fd7,0x9fd8,0x9fd9, +0xecd9,0x9fda,0x9fdb,0x9fdc,0xb0be,0x9fdd,0x9fde,0x9fdf, +0x9fe0,0x9fe1,0x9fe2,0xecd7,0x9fe3,0xecd8,0x9fe4,0x9fe5, +0x9fe6,0xece4,0x9fe7,0x9fe8,0x9fe9,0x9fea,0x9feb,0x9fec, +0x9fed,0x9fee,0x9fef,0xc8bc,0x9ff0,0x9ff1,0x9ff2,0x9ff3, +0x9ff4,0x9ff5,0x9ff6,0x9ff7,0x9ff8,0x9ff9,0xc1c7,0x9ffa, +0x9ffb,0x9ffc,0x9ffd,0x9ffe,0xecdc,0xd1e0,0xa040,0xa041, +0xa042,0xa043,0xa044,0xa045,0xa046,0xa047,0xa048,0xa049, +0xecdb,0xa04a,0xa04b,0xa04c,0xa04d,0xd4ef,0xa04e,0xecdd, +0xa04f,0xa050,0xa051,0xa052,0xa053,0xa054,0xdbc6,0xa055, +0xa056,0xa057,0xa058,0xa059,0xa05a,0xa05b,0xa05c,0xa05d, +0xa05e,0xecde,0xa05f,0xa060,0xa061,0xa062,0xa063,0xa064, +0xa065,0xa066,0xa067,0xa068,0xa069,0xa06a,0xb1ac,0xa06b, +0xa06c,0xa06d,0xa06e,0xa06f,0xa070,0xa071,0xa072,0xa073, +0xa074,0xa075,0xa076,0xa077,0xa078,0xa079,0xa07a,0xa07b, +0xa07c,0xa07d,0xa07e,0xa080,0xa081,0xecdf,0xa082,0xa083, +0xa084,0xa085,0xa086,0xa087,0xa088,0xa089,0xa08a,0xa08b, +0xece0,0xa08c,0xd7a6,0xa08d,0xc5c0,0xa08e,0xa08f,0xa090, +0xebbc,0xb0ae,0xa091,0xa092,0xa093,0xbef4,0xb8b8,0xd2af, +0xb0d6,0xb5f9,0xa094,0xd8b3,0xa095,0xcbac,0xa096,0xe3dd, +0xa097,0xa098,0xa099,0xa09a,0xa09b,0xa09c,0xa09d,0xc6ac, +0xb0e6,0xa09e,0xa09f,0xa0a0,0xc5c6,0xebb9,0xa0a1,0xa0a2, +0xa0a3,0xa0a4,0xebba,0xa0a5,0xa0a6,0xa0a7,0xebbb,0xa0a8, +0xa0a9,0xd1c0,0xa0aa,0xc5a3,0xa0ab,0xeaf2,0xa0ac,0xc4b2, +0xa0ad,0xc4b5,0xc0ce,0xa0ae,0xa0af,0xa0b0,0xeaf3,0xc4c1, +0xa0b1,0xceef,0xa0b2,0xa0b3,0xa0b4,0xa0b5,0xeaf0,0xeaf4, +0xa0b6,0xa0b7,0xc9fc,0xa0b8,0xa0b9,0xc7a3,0xa0ba,0xa0bb, +0xa0bc,0xccd8,0xcefe,0xa0bd,0xa0be,0xa0bf,0xeaf5,0xeaf6, +0xcfac,0xc0e7,0xa0c0,0xa0c1,0xeaf7,0xa0c2,0xa0c3,0xa0c4, +0xa0c5,0xa0c6,0xb6bf,0xeaf8,0xa0c7,0xeaf9,0xa0c8,0xeafa, +0xa0c9,0xa0ca,0xeafb,0xa0cb,0xa0cc,0xa0cd,0xa0ce,0xa0cf, +0xa0d0,0xa0d1,0xa0d2,0xa0d3,0xa0d4,0xa0d5,0xa0d6,0xeaf1, +0xa0d7,0xa0d8,0xa0d9,0xa0da,0xa0db,0xa0dc,0xa0dd,0xa0de, +0xa0df,0xa0e0,0xa0e1,0xa0e2,0xc8ae,0xe1eb,0xa0e3,0xb7b8, +0xe1ec,0xa0e4,0xa0e5,0xa0e6,0xe1ed,0xa0e7,0xd7b4,0xe1ee, +0xe1ef,0xd3cc,0xa0e8,0xa0e9,0xa0ea,0xa0eb,0xa0ec,0xa0ed, +0xa0ee,0xe1f1,0xbff1,0xe1f0,0xb5d2,0xa0ef,0xa0f0,0xa0f1, +0xb1b7,0xa0f2,0xa0f3,0xa0f4,0xa0f5,0xe1f3,0xe1f2,0xa0f6, +0xbafc,0xa0f7,0xe1f4,0xa0f8,0xa0f9,0xa0fa,0xa0fb,0xb9b7, +0xa0fc,0xbed1,0xa0fd,0xa0fe,0xaa40,0xaa41,0xc4fc,0xaa42, +0xbadd,0xbdc6,0xaa43,0xaa44,0xaa45,0xaa46,0xaa47,0xaa48, +0xe1f5,0xe1f7,0xaa49,0xaa4a,0xb6c0,0xcfc1,0xcaa8,0xe1f6, +0xd5f8,0xd3fc,0xe1f8,0xe1fc,0xe1f9,0xaa4b,0xaa4c,0xe1fa, +0xc0ea,0xaa4d,0xe1fe,0xe2a1,0xc0c7,0xaa4e,0xaa4f,0xaa50, +0xaa51,0xe1fb,0xaa52,0xe1fd,0xaa53,0xaa54,0xaa55,0xaa56, +0xaa57,0xaa58,0xe2a5,0xaa59,0xaa5a,0xaa5b,0xc1d4,0xaa5c, +0xaa5d,0xaa5e,0xaa5f,0xe2a3,0xaa60,0xe2a8,0xb2fe,0xe2a2, +0xaa61,0xaa62,0xaa63,0xc3cd,0xb2c2,0xe2a7,0xe2a6,0xaa64, +0xaa65,0xe2a4,0xe2a9,0xaa66,0xaa67,0xe2ab,0xaa68,0xaa69, +0xaa6a,0xd0c9,0xd6ed,0xc3a8,0xe2ac,0xaa6b,0xcfd7,0xaa6c, +0xaa6d,0xe2ae,0xaa6e,0xaa6f,0xbaef,0xaa70,0xaa71,0xe9e0, +0xe2ad,0xe2aa,0xaa72,0xaa73,0xaa74,0xaa75,0xbbab,0xd4b3, +0xaa76,0xaa77,0xaa78,0xaa79,0xaa7a,0xaa7b,0xaa7c,0xaa7d, +0xaa7e,0xaa80,0xaa81,0xaa82,0xaa83,0xe2b0,0xaa84,0xaa85, +0xe2af,0xaa86,0xe9e1,0xaa87,0xaa88,0xaa89,0xaa8a,0xe2b1, +0xaa8b,0xaa8c,0xaa8d,0xaa8e,0xaa8f,0xaa90,0xaa91,0xaa92, +0xe2b2,0xaa93,0xaa94,0xaa95,0xaa96,0xaa97,0xaa98,0xaa99, +0xaa9a,0xaa9b,0xaa9c,0xaa9d,0xe2b3,0xcca1,0xaa9e,0xe2b4, +0xaa9f,0xaaa0,0xab40,0xab41,0xab42,0xab43,0xab44,0xab45, +0xab46,0xab47,0xab48,0xab49,0xab4a,0xab4b,0xe2b5,0xab4c, +0xab4d,0xab4e,0xab4f,0xab50,0xd0fe,0xab51,0xab52,0xc2ca, +0xab53,0xd3f1,0xab54,0xcdf5,0xab55,0xab56,0xe7e0,0xab57, +0xab58,0xe7e1,0xab59,0xab5a,0xab5b,0xab5c,0xbec1,0xab5d, +0xab5e,0xab5f,0xab60,0xc2ea,0xab61,0xab62,0xab63,0xe7e4, +0xab64,0xab65,0xe7e3,0xab66,0xab67,0xab68,0xab69,0xab6a, +0xab6b,0xcde6,0xab6c,0xc3b5,0xab6d,0xab6e,0xe7e2,0xbbb7, +0xcfd6,0xab6f,0xc1e1,0xe7e9,0xab70,0xab71,0xab72,0xe7e8, +0xab73,0xab74,0xe7f4,0xb2a3,0xab75,0xab76,0xab77,0xab78, +0xe7ea,0xab79,0xe7e6,0xab7a,0xab7b,0xab7c,0xab7d,0xab7e, +0xe7ec,0xe7eb,0xc9ba,0xab80,0xab81,0xd5e4,0xab82,0xe7e5, +0xb7a9,0xe7e7,0xab83,0xab84,0xab85,0xab86,0xab87,0xab88, +0xab89,0xe7ee,0xab8a,0xab8b,0xab8c,0xab8d,0xe7f3,0xab8e, +0xd6e9,0xab8f,0xab90,0xab91,0xab92,0xe7ed,0xab93,0xe7f2, +0xab94,0xe7f1,0xab95,0xab96,0xab97,0xb0e0,0xab98,0xab99, +0xab9a,0xab9b,0xe7f5,0xab9c,0xab9d,0xab9e,0xab9f,0xaba0, +0xac40,0xac41,0xac42,0xac43,0xac44,0xac45,0xac46,0xac47, +0xac48,0xac49,0xac4a,0xc7f2,0xac4b,0xc0c5,0xc0ed,0xac4c, +0xac4d,0xc1f0,0xe7f0,0xac4e,0xac4f,0xac50,0xac51,0xe7f6, +0xcbf6,0xac52,0xac53,0xac54,0xac55,0xac56,0xac57,0xac58, +0xac59,0xac5a,0xe8a2,0xe8a1,0xac5b,0xac5c,0xac5d,0xac5e, +0xac5f,0xac60,0xd7c1,0xac61,0xac62,0xe7fa,0xe7f9,0xac63, +0xe7fb,0xac64,0xe7f7,0xac65,0xe7fe,0xac66,0xe7fd,0xac67, +0xe7fc,0xac68,0xac69,0xc1d5,0xc7d9,0xc5fd,0xc5c3,0xac6a, +0xac6b,0xac6c,0xac6d,0xac6e,0xc7ed,0xac6f,0xac70,0xac71, +0xac72,0xe8a3,0xac73,0xac74,0xac75,0xac76,0xac77,0xac78, +0xac79,0xac7a,0xac7b,0xac7c,0xac7d,0xac7e,0xac80,0xac81, +0xac82,0xac83,0xac84,0xac85,0xac86,0xe8a6,0xac87,0xe8a5, +0xac88,0xe8a7,0xbaf7,0xe7f8,0xe8a4,0xac89,0xc8f0,0xc9aa, +0xac8a,0xac8b,0xac8c,0xac8d,0xac8e,0xac8f,0xac90,0xac91, +0xac92,0xac93,0xac94,0xac95,0xac96,0xe8a9,0xac97,0xac98, +0xb9e5,0xac99,0xac9a,0xac9b,0xac9c,0xac9d,0xd1fe,0xe8a8, +0xac9e,0xac9f,0xaca0,0xad40,0xad41,0xad42,0xe8aa,0xad43, +0xe8ad,0xe8ae,0xad44,0xc1a7,0xad45,0xad46,0xad47,0xe8af, +0xad48,0xad49,0xad4a,0xe8b0,0xad4b,0xad4c,0xe8ac,0xad4d, +0xe8b4,0xad4e,0xad4f,0xad50,0xad51,0xad52,0xad53,0xad54, +0xad55,0xad56,0xad57,0xad58,0xe8ab,0xad59,0xe8b1,0xad5a, +0xad5b,0xad5c,0xad5d,0xad5e,0xad5f,0xad60,0xad61,0xe8b5, +0xe8b2,0xe8b3,0xad62,0xad63,0xad64,0xad65,0xad66,0xad67, +0xad68,0xad69,0xad6a,0xad6b,0xad6c,0xad6d,0xad6e,0xad6f, +0xad70,0xad71,0xe8b7,0xad72,0xad73,0xad74,0xad75,0xad76, +0xad77,0xad78,0xad79,0xad7a,0xad7b,0xad7c,0xad7d,0xad7e, +0xad80,0xad81,0xad82,0xad83,0xad84,0xad85,0xad86,0xad87, +0xad88,0xad89,0xe8b6,0xad8a,0xad8b,0xad8c,0xad8d,0xad8e, +0xad8f,0xad90,0xad91,0xad92,0xb9cf,0xad93,0xf0ac,0xad94, +0xf0ad,0xad95,0xc6b0,0xb0ea,0xc8bf,0xad96,0xcddf,0xad97, +0xad98,0xad99,0xad9a,0xad9b,0xad9c,0xad9d,0xcecd,0xeab1, +0xad9e,0xad9f,0xada0,0xae40,0xeab2,0xae41,0xc6bf,0xb4c9, +0xae42,0xae43,0xae44,0xae45,0xae46,0xae47,0xae48,0xeab3, +0xae49,0xae4a,0xae4b,0xae4c,0xd5e7,0xae4d,0xae4e,0xae4f, +0xae50,0xae51,0xae52,0xae53,0xae54,0xddf9,0xae55,0xeab4, +0xae56,0xeab5,0xae57,0xeab6,0xae58,0xae59,0xae5a,0xae5b, +0xb8ca,0xdfb0,0xc9f5,0xae5c,0xccf0,0xae5d,0xae5e,0xc9fa, +0xae5f,0xae60,0xae61,0xae62,0xae63,0xc9fb,0xae64,0xae65, +0xd3c3,0xcba6,0xae66,0xb8a6,0xf0ae,0xb1c2,0xae67,0xe5b8, +0xccef,0xd3c9,0xbcd7,0xc9ea,0xae68,0xb5e7,0xae69,0xc4d0, +0xb5e9,0xae6a,0xeeae,0xbbad,0xae6b,0xae6c,0xe7de,0xae6d, +0xeeaf,0xae6e,0xae6f,0xae70,0xae71,0xb3a9,0xae72,0xae73, +0xeeb2,0xae74,0xae75,0xeeb1,0xbde7,0xae76,0xeeb0,0xceb7, +0xae77,0xae78,0xae79,0xae7a,0xc5cf,0xae7b,0xae7c,0xae7d, +0xae7e,0xc1f4,0xdbce,0xeeb3,0xd0f3,0xae80,0xae81,0xae82, +0xae83,0xae84,0xae85,0xae86,0xae87,0xc2d4,0xc6e8,0xae88, +0xae89,0xae8a,0xb7ac,0xae8b,0xae8c,0xae8d,0xae8e,0xae8f, +0xae90,0xae91,0xeeb4,0xae92,0xb3eb,0xae93,0xae94,0xae95, +0xbbfb,0xeeb5,0xae96,0xae97,0xae98,0xae99,0xae9a,0xe7dc, +0xae9b,0xae9c,0xae9d,0xeeb6,0xae9e,0xae9f,0xbdae,0xaea0, +0xaf40,0xaf41,0xaf42,0xf1e2,0xaf43,0xaf44,0xaf45,0xcae8, +0xaf46,0xd2c9,0xf0da,0xaf47,0xf0db,0xaf48,0xf0dc,0xc1c6, +0xaf49,0xb8ed,0xbece,0xaf4a,0xaf4b,0xf0de,0xaf4c,0xc5b1, +0xf0dd,0xd1f1,0xaf4d,0xf0e0,0xb0cc,0xbdea,0xaf4e,0xaf4f, +0xaf50,0xaf51,0xaf52,0xd2df,0xf0df,0xaf53,0xb4af,0xb7e8, +0xf0e6,0xf0e5,0xc6a3,0xf0e1,0xf0e2,0xb4c3,0xaf54,0xaf55, +0xf0e3,0xd5ee,0xaf56,0xaf57,0xccdb,0xbed2,0xbcb2,0xaf58, +0xaf59,0xaf5a,0xf0e8,0xf0e7,0xf0e4,0xb2a1,0xaf5b,0xd6a2, +0xd3b8,0xbeb7,0xc8ac,0xaf5c,0xaf5d,0xf0ea,0xaf5e,0xaf5f, +0xaf60,0xaf61,0xd1f7,0xaf62,0xd6cc,0xbadb,0xf0e9,0xaf63, +0xb6bb,0xaf64,0xaf65,0xcdb4,0xaf66,0xaf67,0xc6a6,0xaf68, +0xaf69,0xaf6a,0xc1a1,0xf0eb,0xf0ee,0xaf6b,0xf0ed,0xf0f0, +0xf0ec,0xaf6c,0xbbbe,0xf0ef,0xaf6d,0xaf6e,0xaf6f,0xaf70, +0xccb5,0xf0f2,0xaf71,0xaf72,0xb3d5,0xaf73,0xaf74,0xaf75, +0xaf76,0xb1d4,0xaf77,0xaf78,0xf0f3,0xaf79,0xaf7a,0xf0f4, +0xf0f6,0xb4e1,0xaf7b,0xf0f1,0xaf7c,0xf0f7,0xaf7d,0xaf7e, +0xaf80,0xaf81,0xf0fa,0xaf82,0xf0f8,0xaf83,0xaf84,0xaf85, +0xf0f5,0xaf86,0xaf87,0xaf88,0xaf89,0xf0fd,0xaf8a,0xf0f9, +0xf0fc,0xf0fe,0xaf8b,0xf1a1,0xaf8c,0xaf8d,0xaf8e,0xcec1, +0xf1a4,0xaf8f,0xf1a3,0xaf90,0xc1f6,0xf0fb,0xcadd,0xaf91, +0xaf92,0xb4f1,0xb1f1,0xccb1,0xaf93,0xf1a6,0xaf94,0xaf95, +0xf1a7,0xaf96,0xaf97,0xf1ac,0xd5ce,0xf1a9,0xaf98,0xaf99, +0xc8b3,0xaf9a,0xaf9b,0xaf9c,0xf1a2,0xaf9d,0xf1ab,0xf1a8, +0xf1a5,0xaf9e,0xaf9f,0xf1aa,0xafa0,0xb040,0xb041,0xb042, +0xb043,0xb044,0xb045,0xb046,0xb0a9,0xf1ad,0xb047,0xb048, +0xb049,0xb04a,0xb04b,0xb04c,0xf1af,0xb04d,0xf1b1,0xb04e, +0xb04f,0xb050,0xb051,0xb052,0xf1b0,0xb053,0xf1ae,0xb054, +0xb055,0xb056,0xb057,0xd1a2,0xb058,0xb059,0xb05a,0xb05b, +0xb05c,0xb05d,0xb05e,0xf1b2,0xb05f,0xb060,0xb061,0xf1b3, +0xb062,0xb063,0xb064,0xb065,0xb066,0xb067,0xb068,0xb069, +0xb9ef,0xb06a,0xb06b,0xb5c7,0xb06c,0xb0d7,0xb0d9,0xb06d, +0xb06e,0xb06f,0xd4ed,0xb070,0xb5c4,0xb071,0xbdd4,0xbbca, +0xf0a7,0xb072,0xb073,0xb8de,0xb074,0xb075,0xf0a8,0xb076, +0xb077,0xb0a8,0xb078,0xf0a9,0xb079,0xb07a,0xcdee,0xb07b, +0xb07c,0xf0aa,0xb07d,0xb07e,0xb080,0xb081,0xb082,0xb083, +0xb084,0xb085,0xb086,0xb087,0xf0ab,0xb088,0xb089,0xb08a, +0xb08b,0xb08c,0xb08d,0xb08e,0xb08f,0xb090,0xc6a4,0xb091, +0xb092,0xd6e5,0xf1e4,0xb093,0xf1e5,0xb094,0xb095,0xb096, +0xb097,0xb098,0xb099,0xb09a,0xb09b,0xb09c,0xb09d,0xc3f3, +0xb09e,0xb09f,0xd3db,0xb0a0,0xb140,0xd6d1,0xc5e8,0xb141, +0xd3af,0xb142,0xd2e6,0xb143,0xb144,0xeec1,0xb0bb,0xd5b5, +0xd1ce,0xbce0,0xbad0,0xb145,0xbff8,0xb146,0xb8c7,0xb5c1, +0xc5cc,0xb147,0xb148,0xcaa2,0xb149,0xb14a,0xb14b,0xc3cb, +0xb14c,0xb14d,0xb14e,0xb14f,0xb150,0xeec2,0xb151,0xb152, +0xb153,0xb154,0xb155,0xb156,0xb157,0xb158,0xc4bf,0xb6a2, +0xb159,0xedec,0xc3a4,0xb15a,0xd6b1,0xb15b,0xb15c,0xb15d, +0xcfe0,0xedef,0xb15e,0xb15f,0xc5ce,0xb160,0xb6dc,0xb161, +0xb162,0xcaa1,0xb163,0xb164,0xeded,0xb165,0xb166,0xedf0, +0xedf1,0xc3bc,0xb167,0xbfb4,0xb168,0xedee,0xb169,0xb16a, +0xb16b,0xb16c,0xb16d,0xb16e,0xb16f,0xb170,0xb171,0xb172, +0xb173,0xedf4,0xedf2,0xb174,0xb175,0xb176,0xb177,0xd5e6, +0xc3df,0xb178,0xedf3,0xb179,0xb17a,0xb17b,0xedf6,0xb17c, +0xd5a3,0xd1a3,0xb17d,0xb17e,0xb180,0xedf5,0xb181,0xc3d0, +0xb182,0xb183,0xb184,0xb185,0xb186,0xedf7,0xbff4,0xbeec, +0xedf8,0xb187,0xccf7,0xb188,0xd1db,0xb189,0xb18a,0xb18b, +0xd7c5,0xd5f6,0xb18c,0xedfc,0xb18d,0xb18e,0xb18f,0xedfb, +0xb190,0xb191,0xb192,0xb193,0xb194,0xb195,0xb196,0xb197, +0xedf9,0xedfa,0xb198,0xb199,0xb19a,0xb19b,0xb19c,0xb19d, +0xb19e,0xb19f,0xedfd,0xbea6,0xb1a0,0xb240,0xb241,0xb242, +0xb243,0xcbaf,0xeea1,0xb6bd,0xb244,0xeea2,0xc4c0,0xb245, +0xedfe,0xb246,0xb247,0xbdde,0xb2c7,0xb248,0xb249,0xb24a, +0xb24b,0xb24c,0xb24d,0xb24e,0xb24f,0xb250,0xb251,0xb252, +0xb253,0xb6c3,0xb254,0xb255,0xb256,0xeea5,0xd8ba,0xeea3, +0xeea6,0xb257,0xb258,0xb259,0xc3e9,0xb3f2,0xb25a,0xb25b, +0xb25c,0xb25d,0xb25e,0xb25f,0xeea7,0xeea4,0xcfb9,0xb260, +0xb261,0xeea8,0xc2f7,0xb262,0xb263,0xb264,0xb265,0xb266, +0xb267,0xb268,0xb269,0xb26a,0xb26b,0xb26c,0xb26d,0xeea9, +0xeeaa,0xb26e,0xdeab,0xb26f,0xb270,0xc6b3,0xb271,0xc7c6, +0xb272,0xd6f5,0xb5c9,0xb273,0xcbb2,0xb274,0xb275,0xb276, +0xeeab,0xb277,0xb278,0xcdab,0xb279,0xeeac,0xb27a,0xb27b, +0xb27c,0xb27d,0xb27e,0xd5b0,0xb280,0xeead,0xb281,0xf6c4, +0xb282,0xb283,0xb284,0xb285,0xb286,0xb287,0xb288,0xb289, +0xb28a,0xb28b,0xb28c,0xb28d,0xb28e,0xdbc7,0xb28f,0xb290, +0xb291,0xb292,0xb293,0xb294,0xb295,0xb296,0xb297,0xb4a3, +0xb298,0xb299,0xb29a,0xc3ac,0xf1e6,0xb29b,0xb29c,0xb29d, +0xb29e,0xb29f,0xcab8,0xd2d3,0xb2a0,0xd6aa,0xb340,0xeff2, +0xb341,0xbed8,0xb342,0xbdc3,0xeff3,0xb6cc,0xb0ab,0xb343, +0xb344,0xb345,0xb346,0xcaaf,0xb347,0xb348,0xedb6,0xb349, +0xedb7,0xb34a,0xb34b,0xb34c,0xb34d,0xcef9,0xb7af,0xbff3, +0xedb8,0xc2eb,0xc9b0,0xb34e,0xb34f,0xb350,0xb351,0xb352, +0xb353,0xedb9,0xb354,0xb355,0xc6f6,0xbfb3,0xb356,0xb357, +0xb358,0xedbc,0xc5f8,0xb359,0xd1d0,0xb35a,0xd7a9,0xedba, +0xedbb,0xb35b,0xd1e2,0xb35c,0xedbf,0xedc0,0xb35d,0xedc4, +0xb35e,0xb35f,0xb360,0xedc8,0xb361,0xedc6,0xedce,0xd5e8, +0xb362,0xedc9,0xb363,0xb364,0xedc7,0xedbe,0xb365,0xb366, +0xc5e9,0xb367,0xb368,0xb369,0xc6c6,0xb36a,0xb36b,0xc9e9, +0xd4d2,0xedc1,0xedc2,0xedc3,0xedc5,0xb36c,0xc0f9,0xb36d, +0xb4a1,0xb36e,0xb36f,0xb370,0xb371,0xb9e8,0xb372,0xedd0, +0xb373,0xb374,0xb375,0xb376,0xedd1,0xb377,0xedca,0xb378, +0xedcf,0xb379,0xcef8,0xb37a,0xb37b,0xcbb6,0xedcc,0xedcd, +0xb37c,0xb37d,0xb37e,0xb380,0xb381,0xcff5,0xb382,0xb383, +0xb384,0xb385,0xb386,0xb387,0xb388,0xb389,0xb38a,0xb38b, +0xb38c,0xb38d,0xedd2,0xc1f2,0xd3b2,0xedcb,0xc8b7,0xb38e, +0xb38f,0xb390,0xb391,0xb392,0xb393,0xb394,0xb395,0xbcef, +0xb396,0xb397,0xb398,0xb399,0xc5f0,0xb39a,0xb39b,0xb39c, +0xb39d,0xb39e,0xb39f,0xb3a0,0xb440,0xb441,0xb442,0xedd6, +0xb443,0xb5ef,0xb444,0xb445,0xc2b5,0xb0ad,0xcbe9,0xb446, +0xb447,0xb1ae,0xb448,0xedd4,0xb449,0xb44a,0xb44b,0xcdeb, +0xb5e2,0xb44c,0xedd5,0xedd3,0xedd7,0xb44d,0xb44e,0xb5fa, +0xb44f,0xedd8,0xb450,0xedd9,0xb451,0xeddc,0xb452,0xb1cc, +0xb453,0xb454,0xb455,0xb456,0xb457,0xb458,0xb459,0xb45a, +0xc5f6,0xbcee,0xedda,0xccbc,0xb2ea,0xb45b,0xb45c,0xb45d, +0xb45e,0xeddb,0xb45f,0xb460,0xb461,0xb462,0xc4eb,0xb463, +0xb464,0xb4c5,0xb465,0xb466,0xb467,0xb0f5,0xb468,0xb469, +0xb46a,0xeddf,0xc0da,0xb4e8,0xb46b,0xb46c,0xb46d,0xb46e, +0xc5cd,0xb46f,0xb470,0xb471,0xeddd,0xbfc4,0xb472,0xb473, +0xb474,0xedde,0xb475,0xb476,0xb477,0xb478,0xb479,0xb47a, +0xb47b,0xb47c,0xb47d,0xb47e,0xb480,0xb481,0xb482,0xb483, +0xc4a5,0xb484,0xb485,0xb486,0xede0,0xb487,0xb488,0xb489, +0xb48a,0xb48b,0xede1,0xb48c,0xede3,0xb48d,0xb48e,0xc1d7, +0xb48f,0xb490,0xbbc7,0xb491,0xb492,0xb493,0xb494,0xb495, +0xb496,0xbdb8,0xb497,0xb498,0xb499,0xede2,0xb49a,0xb49b, +0xb49c,0xb49d,0xb49e,0xb49f,0xb4a0,0xb540,0xb541,0xb542, +0xb543,0xb544,0xb545,0xede4,0xb546,0xb547,0xb548,0xb549, +0xb54a,0xb54b,0xb54c,0xb54d,0xb54e,0xb54f,0xede6,0xb550, +0xb551,0xb552,0xb553,0xb554,0xede5,0xb555,0xb556,0xb557, +0xb558,0xb559,0xb55a,0xb55b,0xb55c,0xb55d,0xb55e,0xb55f, +0xb560,0xb561,0xb562,0xb563,0xede7,0xb564,0xb565,0xb566, +0xb567,0xb568,0xcabe,0xecea,0xc0f1,0xb569,0xc9e7,0xb56a, +0xeceb,0xc6ee,0xb56b,0xb56c,0xb56d,0xb56e,0xecec,0xb56f, +0xc6ed,0xeced,0xb570,0xb571,0xb572,0xb573,0xb574,0xb575, +0xb576,0xb577,0xb578,0xecf0,0xb579,0xb57a,0xd7e6,0xecf3, +0xb57b,0xb57c,0xecf1,0xecee,0xecef,0xd7a3,0xc9f1,0xcbee, +0xecf4,0xb57d,0xecf2,0xb57e,0xb580,0xcfe9,0xb581,0xecf6, +0xc6b1,0xb582,0xb583,0xb584,0xb585,0xbcc0,0xb586,0xecf5, +0xb587,0xb588,0xb589,0xb58a,0xb58b,0xb58c,0xb58d,0xb5bb, +0xbbf6,0xb58e,0xecf7,0xb58f,0xb590,0xb591,0xb592,0xb593, +0xd9f7,0xbdfb,0xb594,0xb595,0xc2bb,0xecf8,0xb596,0xb597, +0xb598,0xb599,0xecf9,0xb59a,0xb59b,0xb59c,0xb59d,0xb8a3, +0xb59e,0xb59f,0xb5a0,0xb640,0xb641,0xb642,0xb643,0xb644, +0xb645,0xb646,0xecfa,0xb647,0xb648,0xb649,0xb64a,0xb64b, +0xb64c,0xb64d,0xb64e,0xb64f,0xb650,0xb651,0xb652,0xecfb, +0xb653,0xb654,0xb655,0xb656,0xb657,0xb658,0xb659,0xb65a, +0xb65b,0xb65c,0xb65d,0xecfc,0xb65e,0xb65f,0xb660,0xb661, +0xb662,0xd3ed,0xd8ae,0xc0eb,0xb663,0xc7dd,0xbacc,0xb664, +0xd0e3,0xcbbd,0xb665,0xcdba,0xb666,0xb667,0xb8d1,0xb668, +0xb669,0xb1fc,0xb66a,0xc7ef,0xb66b,0xd6d6,0xb66c,0xb66d, +0xb66e,0xbfc6,0xc3eb,0xb66f,0xb670,0xeff5,0xb671,0xb672, +0xc3d8,0xb673,0xb674,0xb675,0xb676,0xb677,0xb678,0xd7e2, +0xb679,0xb67a,0xb67b,0xeff7,0xb3d3,0xb67c,0xc7d8,0xd1ed, +0xb67d,0xd6c8,0xb67e,0xeff8,0xb680,0xeff6,0xb681,0xbbfd, +0xb3c6,0xb682,0xb683,0xb684,0xb685,0xb686,0xb687,0xb688, +0xbdd5,0xb689,0xb68a,0xd2c6,0xb68b,0xbbe0,0xb68c,0xb68d, +0xcfa1,0xb68e,0xeffc,0xeffb,0xb68f,0xb690,0xeff9,0xb691, +0xb692,0xb693,0xb694,0xb3cc,0xb695,0xc9d4,0xcbb0,0xb696, +0xb697,0xb698,0xb699,0xb69a,0xeffe,0xb69b,0xb69c,0xb0de, +0xb69d,0xb69e,0xd6c9,0xb69f,0xb6a0,0xb740,0xeffd,0xb741, +0xb3ed,0xb742,0xb743,0xf6d5,0xb744,0xb745,0xb746,0xb747, +0xb748,0xb749,0xb74a,0xb74b,0xb74c,0xb74d,0xb74e,0xb74f, +0xb750,0xb751,0xb752,0xcec8,0xb753,0xb754,0xb755,0xf0a2, +0xb756,0xf0a1,0xb757,0xb5be,0xbcda,0xbbfc,0xb758,0xb8e5, +0xb759,0xb75a,0xb75b,0xb75c,0xb75d,0xb75e,0xc4c2,0xb75f, +0xb760,0xb761,0xb762,0xb763,0xb764,0xb765,0xb766,0xb767, +0xb768,0xf0a3,0xb769,0xb76a,0xb76b,0xb76c,0xb76d,0xcbeb, +0xb76e,0xb76f,0xb770,0xb771,0xb772,0xb773,0xb774,0xb775, +0xb776,0xb777,0xb778,0xb779,0xb77a,0xb77b,0xb77c,0xb77d, +0xb77e,0xb780,0xb781,0xb782,0xb783,0xb784,0xb785,0xb786, +0xf0a6,0xb787,0xb788,0xb789,0xd1a8,0xb78a,0xbebf,0xc7ee, +0xf1b6,0xf1b7,0xbfd5,0xb78b,0xb78c,0xb78d,0xb78e,0xb4a9, +0xf1b8,0xcdbb,0xb78f,0xc7d4,0xd5ad,0xb790,0xf1b9,0xb791, +0xf1ba,0xb792,0xb793,0xb794,0xb795,0xc7cf,0xb796,0xb797, +0xb798,0xd2a4,0xd6cf,0xb799,0xb79a,0xf1bb,0xbdd1,0xb4b0, +0xbebd,0xb79b,0xb79c,0xb79d,0xb4dc,0xced1,0xb79e,0xbfdf, +0xf1bd,0xb79f,0xb7a0,0xb840,0xb841,0xbffa,0xf1bc,0xb842, +0xf1bf,0xb843,0xb844,0xb845,0xf1be,0xf1c0,0xb846,0xb847, +0xb848,0xb849,0xb84a,0xf1c1,0xb84b,0xb84c,0xb84d,0xb84e, +0xb84f,0xb850,0xb851,0xb852,0xb853,0xb854,0xb855,0xc1fe, +0xb856,0xb857,0xb858,0xb859,0xb85a,0xb85b,0xb85c,0xb85d, +0xb85e,0xb85f,0xb860,0xc1a2,0xb861,0xb862,0xb863,0xb864, +0xb865,0xb866,0xb867,0xb868,0xb869,0xb86a,0xcafa,0xb86b, +0xb86c,0xd5be,0xb86d,0xb86e,0xb86f,0xb870,0xbeba,0xbeb9, +0xd5c2,0xb871,0xb872,0xbfa2,0xb873,0xcdaf,0xf1b5,0xb874, +0xb875,0xb876,0xb877,0xb878,0xb879,0xbddf,0xb87a,0xb6cb, +0xb87b,0xb87c,0xb87d,0xb87e,0xb880,0xb881,0xb882,0xb883, +0xb884,0xd6f1,0xf3c3,0xb885,0xb886,0xf3c4,0xb887,0xb8cd, +0xb888,0xb889,0xb88a,0xf3c6,0xf3c7,0xb88b,0xb0ca,0xb88c, +0xf3c5,0xb88d,0xf3c9,0xcbf1,0xb88e,0xb88f,0xb890,0xf3cb, +0xb891,0xd0a6,0xb892,0xb893,0xb1ca,0xf3c8,0xb894,0xb895, +0xb896,0xf3cf,0xb897,0xb5d1,0xb898,0xb899,0xf3d7,0xb89a, +0xf3d2,0xb89b,0xb89c,0xb89d,0xf3d4,0xf3d3,0xb7fb,0xb89e, +0xb1bf,0xb89f,0xf3ce,0xf3ca,0xb5da,0xb8a0,0xf3d0,0xb940, +0xb941,0xf3d1,0xb942,0xf3d5,0xb943,0xb944,0xb945,0xb946, +0xf3cd,0xb947,0xbce3,0xb948,0xc1fd,0xb949,0xf3d6,0xb94a, +0xb94b,0xb94c,0xb94d,0xb94e,0xb94f,0xf3da,0xb950,0xf3cc, +0xb951,0xb5c8,0xb952,0xbdee,0xf3dc,0xb953,0xb954,0xb7a4, +0xbff0,0xd6fe,0xcdb2,0xb955,0xb4f0,0xb956,0xb2df,0xb957, +0xf3d8,0xb958,0xf3d9,0xc9b8,0xb959,0xf3dd,0xb95a,0xb95b, +0xf3de,0xb95c,0xf3e1,0xb95d,0xb95e,0xb95f,0xb960,0xb961, +0xb962,0xb963,0xb964,0xb965,0xb966,0xb967,0xf3df,0xb968, +0xb969,0xf3e3,0xf3e2,0xb96a,0xb96b,0xf3db,0xb96c,0xbfea, +0xb96d,0xb3ef,0xb96e,0xf3e0,0xb96f,0xb970,0xc7a9,0xb971, +0xbcf2,0xb972,0xb973,0xb974,0xb975,0xf3eb,0xb976,0xb977, +0xb978,0xb979,0xb97a,0xb97b,0xb97c,0xb9bf,0xb97d,0xb97e, +0xf3e4,0xb980,0xb981,0xb982,0xb2ad,0xbbfe,0xb983,0xcbe3, +0xb984,0xb985,0xb986,0xb987,0xf3ed,0xf3e9,0xb988,0xb989, +0xb98a,0xb9dc,0xf3ee,0xb98b,0xb98c,0xb98d,0xf3e5,0xf3e6, +0xf3ea,0xc2e1,0xf3ec,0xf3ef,0xf3e8,0xbcfd,0xb98e,0xb98f, +0xb990,0xcfe4,0xb991,0xb992,0xf3f0,0xb993,0xb994,0xb995, +0xf3e7,0xb996,0xb997,0xb998,0xb999,0xb99a,0xb99b,0xb99c, +0xb99d,0xf3f2,0xb99e,0xb99f,0xb9a0,0xba40,0xd7ad,0xc6aa, +0xba41,0xba42,0xba43,0xba44,0xf3f3,0xba45,0xba46,0xba47, +0xba48,0xf3f1,0xba49,0xc2a8,0xba4a,0xba4b,0xba4c,0xba4d, +0xba4e,0xb8dd,0xf3f5,0xba4f,0xba50,0xf3f4,0xba51,0xba52, +0xba53,0xb4db,0xba54,0xba55,0xba56,0xf3f6,0xf3f7,0xba57, +0xba58,0xba59,0xf3f8,0xba5a,0xba5b,0xba5c,0xc0ba,0xba5d, +0xba5e,0xc0e9,0xba5f,0xba60,0xba61,0xba62,0xba63,0xc5f1, +0xba64,0xba65,0xba66,0xba67,0xf3fb,0xba68,0xf3fa,0xba69, +0xba6a,0xba6b,0xba6c,0xba6d,0xba6e,0xba6f,0xba70,0xb4d8, +0xba71,0xba72,0xba73,0xf3fe,0xf3f9,0xba74,0xba75,0xf3fc, +0xba76,0xba77,0xba78,0xba79,0xba7a,0xba7b,0xf3fd,0xba7c, +0xba7d,0xba7e,0xba80,0xba81,0xba82,0xba83,0xba84,0xf4a1, +0xba85,0xba86,0xba87,0xba88,0xba89,0xba8a,0xf4a3,0xbbc9, +0xba8b,0xba8c,0xf4a2,0xba8d,0xba8e,0xba8f,0xba90,0xba91, +0xba92,0xba93,0xba94,0xba95,0xba96,0xba97,0xba98,0xba99, +0xf4a4,0xba9a,0xba9b,0xba9c,0xba9d,0xba9e,0xba9f,0xb2be, +0xf4a6,0xf4a5,0xbaa0,0xbb40,0xbb41,0xbb42,0xbb43,0xbb44, +0xbb45,0xbb46,0xbb47,0xbb48,0xbb49,0xbcae,0xbb4a,0xbb4b, +0xbb4c,0xbb4d,0xbb4e,0xbb4f,0xbb50,0xbb51,0xbb52,0xbb53, +0xbb54,0xbb55,0xbb56,0xbb57,0xbb58,0xbb59,0xbb5a,0xbb5b, +0xbb5c,0xbb5d,0xbb5e,0xbb5f,0xbb60,0xbb61,0xbb62,0xbb63, +0xbb64,0xbb65,0xbb66,0xbb67,0xbb68,0xbb69,0xbb6a,0xbb6b, +0xbb6c,0xbb6d,0xbb6e,0xc3d7,0xd9e1,0xbb6f,0xbb70,0xbb71, +0xbb72,0xbb73,0xbb74,0xc0e0,0xf4cc,0xd7d1,0xbb75,0xbb76, +0xbb77,0xbb78,0xbb79,0xbb7a,0xbb7b,0xbb7c,0xbb7d,0xbb7e, +0xbb80,0xb7db,0xbb81,0xbb82,0xbb83,0xbb84,0xbb85,0xbb86, +0xbb87,0xf4ce,0xc1a3,0xbb88,0xbb89,0xc6c9,0xbb8a,0xb4d6, +0xd5b3,0xbb8b,0xbb8c,0xbb8d,0xf4d0,0xf4cf,0xf4d1,0xcbda, +0xbb8e,0xbb8f,0xf4d2,0xbb90,0xd4c1,0xd6e0,0xbb91,0xbb92, +0xbb93,0xbb94,0xb7e0,0xbb95,0xbb96,0xbb97,0xc1b8,0xbb98, +0xbb99,0xc1bb,0xf4d3,0xbeac,0xbb9a,0xbb9b,0xbb9c,0xbb9d, +0xbb9e,0xb4e2,0xbb9f,0xbba0,0xf4d4,0xf4d5,0xbeab,0xbc40, +0xbc41,0xf4d6,0xbc42,0xbc43,0xbc44,0xf4db,0xbc45,0xf4d7, +0xf4da,0xbc46,0xbafd,0xbc47,0xf4d8,0xf4d9,0xbc48,0xbc49, +0xbc4a,0xbc4b,0xbc4c,0xbc4d,0xbc4e,0xb8e2,0xccc7,0xf4dc, +0xbc4f,0xb2da,0xbc50,0xbc51,0xc3d3,0xbc52,0xbc53,0xd4e3, +0xbfb7,0xbc54,0xbc55,0xbc56,0xbc57,0xbc58,0xbc59,0xbc5a, +0xf4dd,0xbc5b,0xbc5c,0xbc5d,0xbc5e,0xbc5f,0xbc60,0xc5b4, +0xbc61,0xbc62,0xbc63,0xbc64,0xbc65,0xbc66,0xbc67,0xbc68, +0xf4e9,0xbc69,0xbc6a,0xcfb5,0xbc6b,0xbc6c,0xbc6d,0xbc6e, +0xbc6f,0xbc70,0xbc71,0xbc72,0xbc73,0xbc74,0xbc75,0xbc76, +0xbc77,0xbc78,0xcec9,0xbc79,0xbc7a,0xbc7b,0xbc7c,0xbc7d, +0xbc7e,0xbc80,0xbc81,0xbc82,0xbc83,0xbc84,0xbc85,0xbc86, +0xbc87,0xbc88,0xbc89,0xbc8a,0xbc8b,0xbc8c,0xbc8d,0xbc8e, +0xcbd8,0xbc8f,0xcbf7,0xbc90,0xbc91,0xbc92,0xbc93,0xbdf4, +0xbc94,0xbc95,0xbc96,0xd7cf,0xbc97,0xbc98,0xbc99,0xc0db, +0xbc9a,0xbc9b,0xbc9c,0xbc9d,0xbc9e,0xbc9f,0xbca0,0xbd40, +0xbd41,0xbd42,0xbd43,0xbd44,0xbd45,0xbd46,0xbd47,0xbd48, +0xbd49,0xbd4a,0xbd4b,0xbd4c,0xbd4d,0xbd4e,0xbd4f,0xbd50, +0xbd51,0xbd52,0xbd53,0xbd54,0xbd55,0xbd56,0xbd57,0xbd58, +0xbd59,0xbd5a,0xbd5b,0xbd5c,0xbd5d,0xbd5e,0xbd5f,0xbd60, +0xbd61,0xbd62,0xbd63,0xbd64,0xbd65,0xbd66,0xbd67,0xbd68, +0xbd69,0xbd6a,0xbd6b,0xbd6c,0xbd6d,0xbd6e,0xbd6f,0xbd70, +0xbd71,0xbd72,0xbd73,0xbd74,0xbd75,0xbd76,0xd0f5,0xbd77, +0xbd78,0xbd79,0xbd7a,0xbd7b,0xbd7c,0xbd7d,0xbd7e,0xf4ea, +0xbd80,0xbd81,0xbd82,0xbd83,0xbd84,0xbd85,0xbd86,0xbd87, +0xbd88,0xbd89,0xbd8a,0xbd8b,0xbd8c,0xbd8d,0xbd8e,0xbd8f, +0xbd90,0xbd91,0xbd92,0xbd93,0xbd94,0xbd95,0xbd96,0xbd97, +0xbd98,0xbd99,0xbd9a,0xbd9b,0xbd9c,0xbd9d,0xbd9e,0xbd9f, +0xbda0,0xbe40,0xbe41,0xbe42,0xbe43,0xbe44,0xbe45,0xbe46, +0xbe47,0xbe48,0xbe49,0xbe4a,0xbe4b,0xbe4c,0xf4eb,0xbe4d, +0xbe4e,0xbe4f,0xbe50,0xbe51,0xbe52,0xbe53,0xf4ec,0xbe54, +0xbe55,0xbe56,0xbe57,0xbe58,0xbe59,0xbe5a,0xbe5b,0xbe5c, +0xbe5d,0xbe5e,0xbe5f,0xbe60,0xbe61,0xbe62,0xbe63,0xbe64, +0xbe65,0xbe66,0xbe67,0xbe68,0xbe69,0xbe6a,0xbe6b,0xbe6c, +0xbe6d,0xbe6e,0xbe6f,0xbe70,0xbe71,0xbe72,0xbe73,0xbe74, +0xbe75,0xbe76,0xbe77,0xbe78,0xbe79,0xbe7a,0xbe7b,0xbe7c, +0xbe7d,0xbe7e,0xbe80,0xbe81,0xbe82,0xbe83,0xbe84,0xbe85, +0xbe86,0xbe87,0xbe88,0xbe89,0xbe8a,0xbe8b,0xbe8c,0xbe8d, +0xbe8e,0xbe8f,0xbe90,0xbe91,0xbe92,0xbe93,0xbe94,0xbe95, +0xbe96,0xbe97,0xbe98,0xbe99,0xbe9a,0xbe9b,0xbe9c,0xbe9d, +0xbe9e,0xbe9f,0xbea0,0xbf40,0xbf41,0xbf42,0xbf43,0xbf44, +0xbf45,0xbf46,0xbf47,0xbf48,0xbf49,0xbf4a,0xbf4b,0xbf4c, +0xbf4d,0xbf4e,0xbf4f,0xbf50,0xbf51,0xbf52,0xbf53,0xbf54, +0xbf55,0xbf56,0xbf57,0xbf58,0xbf59,0xbf5a,0xbf5b,0xbf5c, +0xbf5d,0xbf5e,0xbf5f,0xbf60,0xbf61,0xbf62,0xbf63,0xbf64, +0xbf65,0xbf66,0xbf67,0xbf68,0xbf69,0xbf6a,0xbf6b,0xbf6c, +0xbf6d,0xbf6e,0xbf6f,0xbf70,0xbf71,0xbf72,0xbf73,0xbf74, +0xbf75,0xbf76,0xbf77,0xbf78,0xbf79,0xbf7a,0xbf7b,0xbf7c, +0xbf7d,0xbf7e,0xbf80,0xf7e3,0xbf81,0xbf82,0xbf83,0xbf84, +0xbf85,0xb7b1,0xbf86,0xbf87,0xbf88,0xbf89,0xbf8a,0xf4ed, +0xbf8b,0xbf8c,0xbf8d,0xbf8e,0xbf8f,0xbf90,0xbf91,0xbf92, +0xbf93,0xbf94,0xbf95,0xbf96,0xbf97,0xbf98,0xbf99,0xbf9a, +0xbf9b,0xbf9c,0xbf9d,0xbf9e,0xbf9f,0xbfa0,0xc040,0xc041, +0xc042,0xc043,0xc044,0xc045,0xc046,0xc047,0xc048,0xc049, +0xc04a,0xc04b,0xc04c,0xc04d,0xc04e,0xc04f,0xc050,0xc051, +0xc052,0xc053,0xc054,0xc055,0xc056,0xc057,0xc058,0xc059, +0xc05a,0xc05b,0xc05c,0xc05d,0xc05e,0xc05f,0xc060,0xc061, +0xc062,0xc063,0xd7eb,0xc064,0xc065,0xc066,0xc067,0xc068, +0xc069,0xc06a,0xc06b,0xc06c,0xc06d,0xc06e,0xc06f,0xc070, +0xc071,0xc072,0xc073,0xc074,0xc075,0xc076,0xc077,0xc078, +0xc079,0xc07a,0xc07b,0xf4ee,0xc07c,0xc07d,0xc07e,0xe6f9, +0xbec0,0xe6fa,0xbaec,0xe6fb,0xcfcb,0xe6fc,0xd4bc,0xbcb6, +0xe6fd,0xe6fe,0xbccd,0xc8d2,0xceb3,0xe7a1,0xc080,0xb4bf, +0xe7a2,0xc9b4,0xb8d9,0xc4c9,0xc081,0xd7dd,0xc2da,0xb7d7, +0xd6bd,0xcec6,0xb7c4,0xc082,0xc083,0xc5a6,0xe7a3,0xcfdf, +0xe7a4,0xe7a5,0xe7a6,0xc1b7,0xd7e9,0xc9f0,0xcfb8,0xd6af, +0xd6d5,0xe7a7,0xb0ed,0xe7a8,0xe7a9,0xc9dc,0xd2ef,0xbead, +0xe7aa,0xb0f3,0xc8de,0xbde1,0xe7ab,0xc8c6,0xc084,0xe7ac, +0xbbe6,0xb8f8,0xd1a4,0xe7ad,0xc2e7,0xbef8,0xbdca,0xcdb3, +0xe7ae,0xe7af,0xbeee,0xd0e5,0xc085,0xcbe7,0xccd0,0xbccc, +0xe7b0,0xbca8,0xd0f7,0xe7b1,0xc086,0xd0f8,0xe7b2,0xe7b3, +0xb4c2,0xe7b4,0xe7b5,0xc9fe,0xceac,0xc3e0,0xe7b7,0xb1c1, +0xb3f1,0xc087,0xe7b8,0xe7b9,0xd7db,0xd5c0,0xe7ba,0xc2cc, +0xd7ba,0xe7bb,0xe7bc,0xe7bd,0xbcea,0xc3e5,0xc0c2,0xe7be, +0xe7bf,0xbca9,0xc088,0xe7c0,0xe7c1,0xe7b6,0xb6d0,0xe7c2, +0xc089,0xe7c3,0xe7c4,0xbbba,0xb5de,0xc2c6,0xb1e0,0xe7c5, +0xd4b5,0xe7c6,0xb8bf,0xe7c8,0xe7c7,0xb7ec,0xc08a,0xe7c9, +0xb2f8,0xe7ca,0xe7cb,0xe7cc,0xe7cd,0xe7ce,0xe7cf,0xe7d0, +0xd3a7,0xcbf5,0xe7d1,0xe7d2,0xe7d3,0xe7d4,0xc9c9,0xe7d5, +0xe7d6,0xe7d7,0xe7d8,0xe7d9,0xbdc9,0xe7da,0xf3be,0xc08b, +0xb8d7,0xc08c,0xc8b1,0xc08d,0xc08e,0xc08f,0xc090,0xc091, +0xc092,0xc093,0xf3bf,0xc094,0xf3c0,0xf3c1,0xc095,0xc096, +0xc097,0xc098,0xc099,0xc09a,0xc09b,0xc09c,0xc09d,0xc09e, +0xb9de,0xcdf8,0xc09f,0xc0a0,0xd8e8,0xbab1,0xc140,0xc2de, +0xeeb7,0xc141,0xb7a3,0xc142,0xc143,0xc144,0xc145,0xeeb9, +0xc146,0xeeb8,0xb0d5,0xc147,0xc148,0xc149,0xc14a,0xc14b, +0xeebb,0xd5d6,0xd7ef,0xc14c,0xc14d,0xc14e,0xd6c3,0xc14f, +0xc150,0xeebd,0xcaf0,0xc151,0xeebc,0xc152,0xc153,0xc154, +0xc155,0xeebe,0xc156,0xc157,0xc158,0xc159,0xeec0,0xc15a, +0xc15b,0xeebf,0xc15c,0xc15d,0xc15e,0xc15f,0xc160,0xc161, +0xc162,0xc163,0xd1f2,0xc164,0xc7bc,0xc165,0xc3c0,0xc166, +0xc167,0xc168,0xc169,0xc16a,0xb8e1,0xc16b,0xc16c,0xc16d, +0xc16e,0xc16f,0xc1e7,0xc170,0xc171,0xf4c6,0xd0df,0xf4c7, +0xc172,0xcfdb,0xc173,0xc174,0xc8ba,0xc175,0xc176,0xf4c8, +0xc177,0xc178,0xc179,0xc17a,0xc17b,0xc17c,0xc17d,0xf4c9, +0xf4ca,0xc17e,0xf4cb,0xc180,0xc181,0xc182,0xc183,0xc184, +0xd9fa,0xb8fe,0xc185,0xc186,0xe5f1,0xd3f0,0xc187,0xf4e0, +0xc188,0xcecc,0xc189,0xc18a,0xc18b,0xb3e1,0xc18c,0xc18d, +0xc18e,0xc18f,0xf1b4,0xc190,0xd2ee,0xc191,0xf4e1,0xc192, +0xc193,0xc194,0xc195,0xc196,0xcfe8,0xf4e2,0xc197,0xc198, +0xc7cc,0xc199,0xc19a,0xc19b,0xc19c,0xc19d,0xc19e,0xb5d4, +0xb4e4,0xf4e4,0xc19f,0xc1a0,0xc240,0xf4e3,0xf4e5,0xc241, +0xc242,0xf4e6,0xc243,0xc244,0xc245,0xc246,0xf4e7,0xc247, +0xbab2,0xb0bf,0xc248,0xf4e8,0xc249,0xc24a,0xc24b,0xc24c, +0xc24d,0xc24e,0xc24f,0xb7ad,0xd2ed,0xc250,0xc251,0xc252, +0xd2ab,0xc0cf,0xc253,0xbfbc,0xeba3,0xd5df,0xeac8,0xc254, +0xc255,0xc256,0xc257,0xf1f3,0xb6f8,0xcba3,0xc258,0xc259, +0xc4cd,0xc25a,0xf1e7,0xc25b,0xf1e8,0xb8fb,0xf1e9,0xbac4, +0xd4c5,0xb0d2,0xc25c,0xc25d,0xf1ea,0xc25e,0xc25f,0xc260, +0xf1eb,0xc261,0xf1ec,0xc262,0xc263,0xf1ed,0xf1ee,0xf1ef, +0xf1f1,0xf1f0,0xc5d5,0xc264,0xc265,0xc266,0xc267,0xc268, +0xc269,0xf1f2,0xc26a,0xb6fa,0xc26b,0xf1f4,0xd2ae,0xdec7, +0xcbca,0xc26c,0xc26d,0xb3dc,0xc26e,0xb5a2,0xc26f,0xb9a2, +0xc270,0xc271,0xc4f4,0xf1f5,0xc272,0xc273,0xf1f6,0xc274, +0xc275,0xc276,0xc1c4,0xc1fb,0xd6b0,0xf1f7,0xc277,0xc278, +0xc279,0xc27a,0xf1f8,0xc27b,0xc1aa,0xc27c,0xc27d,0xc27e, +0xc6b8,0xc280,0xbedb,0xc281,0xc282,0xc283,0xc284,0xc285, +0xc286,0xc287,0xc288,0xc289,0xc28a,0xc28b,0xc28c,0xc28d, +0xc28e,0xf1f9,0xb4cf,0xc28f,0xc290,0xc291,0xc292,0xc293, +0xc294,0xf1fa,0xc295,0xc296,0xc297,0xc298,0xc299,0xc29a, +0xc29b,0xc29c,0xc29d,0xc29e,0xc29f,0xc2a0,0xc340,0xedb2, +0xedb1,0xc341,0xc342,0xcbe0,0xd2de,0xc343,0xcbc1,0xd5d8, +0xc344,0xc8e2,0xc345,0xc0df,0xbca1,0xc346,0xc347,0xc348, +0xc349,0xc34a,0xc34b,0xebc1,0xc34c,0xc34d,0xd0a4,0xc34e, +0xd6e2,0xc34f,0xb6c7,0xb8d8,0xebc0,0xb8ce,0xc350,0xebbf, +0xb3a6,0xb9c9,0xd6ab,0xc351,0xb7f4,0xb7ca,0xc352,0xc353, +0xc354,0xbce7,0xb7be,0xebc6,0xc355,0xebc7,0xb0b9,0xbfcf, +0xc356,0xebc5,0xd3fd,0xc357,0xebc8,0xc358,0xc359,0xebc9, +0xc35a,0xc35b,0xb7ce,0xc35c,0xebc2,0xebc4,0xc9f6,0xd6d7, +0xd5cd,0xd0b2,0xebcf,0xceb8,0xebd0,0xc35d,0xb5a8,0xc35e, +0xc35f,0xc360,0xc361,0xc362,0xb1b3,0xebd2,0xcca5,0xc363, +0xc364,0xc365,0xc366,0xc367,0xc368,0xc369,0xc5d6,0xebd3, +0xc36a,0xebd1,0xc5df,0xebce,0xcaa4,0xebd5,0xb0fb,0xc36b, +0xc36c,0xbafa,0xc36d,0xc36e,0xd8b7,0xf1e3,0xc36f,0xebca, +0xebcb,0xebcc,0xebcd,0xebd6,0xe6c0,0xebd9,0xc370,0xbfe8, +0xd2c8,0xebd7,0xebdc,0xb8ec,0xebd8,0xc371,0xbdba,0xc372, +0xd0d8,0xc373,0xb0b7,0xc374,0xebdd,0xc4dc,0xc375,0xc376, +0xc377,0xc378,0xd6ac,0xc379,0xc37a,0xc37b,0xb4e0,0xc37c, +0xc37d,0xc2f6,0xbcb9,0xc37e,0xc380,0xebda,0xebdb,0xd4e0, +0xc6ea,0xc4d4,0xebdf,0xc5a7,0xd9f5,0xc381,0xb2b1,0xc382, +0xebe4,0xc383,0xbdc5,0xc384,0xc385,0xc386,0xebe2,0xc387, +0xc388,0xc389,0xc38a,0xc38b,0xc38c,0xc38d,0xc38e,0xc38f, +0xc390,0xc391,0xc392,0xc393,0xebe3,0xc394,0xc395,0xb8ac, +0xc396,0xcdd1,0xebe5,0xc397,0xc398,0xc399,0xebe1,0xc39a, +0xc1b3,0xc39b,0xc39c,0xc39d,0xc39e,0xc39f,0xc6a2,0xc3a0, +0xc440,0xc441,0xc442,0xc443,0xc444,0xc445,0xccf3,0xc446, +0xebe6,0xc447,0xc0b0,0xd2b8,0xebe7,0xc448,0xc449,0xc44a, +0xb8af,0xb8ad,0xc44b,0xebe8,0xc7bb,0xcdf3,0xc44c,0xc44d, +0xc44e,0xebea,0xebeb,0xc44f,0xc450,0xc451,0xc452,0xc453, +0xebed,0xc454,0xc455,0xc456,0xc457,0xd0c8,0xc458,0xebf2, +0xc459,0xebee,0xc45a,0xc45b,0xc45c,0xebf1,0xc8f9,0xc45d, +0xd1fc,0xebec,0xc45e,0xc45f,0xebe9,0xc460,0xc461,0xc462, +0xc463,0xb8b9,0xcfd9,0xc4e5,0xebef,0xebf0,0xccda,0xcdc8, +0xb0f2,0xc464,0xebf6,0xc465,0xc466,0xc467,0xc468,0xc469, +0xebf5,0xc46a,0xb2b2,0xc46b,0xc46c,0xc46d,0xc46e,0xb8e0, +0xc46f,0xebf7,0xc470,0xc471,0xc472,0xc473,0xc474,0xc475, +0xb1ec,0xc476,0xc477,0xccc5,0xc4a4,0xcfa5,0xc478,0xc479, +0xc47a,0xc47b,0xc47c,0xebf9,0xc47d,0xc47e,0xeca2,0xc480, +0xc5f2,0xc481,0xebfa,0xc482,0xc483,0xc484,0xc485,0xc486, +0xc487,0xc488,0xc489,0xc9c5,0xc48a,0xc48b,0xc48c,0xc48d, +0xc48e,0xc48f,0xe2df,0xebfe,0xc490,0xc491,0xc492,0xc493, +0xcdce,0xeca1,0xb1db,0xd3b7,0xc494,0xc495,0xd2dc,0xc496, +0xc497,0xc498,0xebfd,0xc499,0xebfb,0xc49a,0xc49b,0xc49c, +0xc49d,0xc49e,0xc49f,0xc4a0,0xc540,0xc541,0xc542,0xc543, +0xc544,0xc545,0xc546,0xc547,0xc548,0xc549,0xc54a,0xc54b, +0xc54c,0xc54d,0xc54e,0xb3bc,0xc54f,0xc550,0xc551,0xeab0, +0xc552,0xc553,0xd7d4,0xc554,0xf4ab,0xb3f4,0xc555,0xc556, +0xc557,0xc558,0xc559,0xd6c1,0xd6c2,0xc55a,0xc55b,0xc55c, +0xc55d,0xc55e,0xc55f,0xd5e9,0xbeca,0xc560,0xf4a7,0xc561, +0xd2a8,0xf4a8,0xf4a9,0xc562,0xf4aa,0xbecb,0xd3df,0xc563, +0xc564,0xc565,0xc566,0xc567,0xc9e0,0xc9e1,0xc568,0xc569, +0xf3c2,0xc56a,0xcae6,0xc56b,0xccf2,0xc56c,0xc56d,0xc56e, +0xc56f,0xc570,0xc571,0xe2b6,0xcbb4,0xc572,0xcee8,0xd6db, +0xc573,0xf4ad,0xf4ae,0xf4af,0xc574,0xc575,0xc576,0xc577, +0xf4b2,0xc578,0xbabd,0xf4b3,0xb0e3,0xf4b0,0xc579,0xf4b1, +0xbda2,0xb2d5,0xc57a,0xf4b6,0xf4b7,0xb6e6,0xb2b0,0xcfcf, +0xf4b4,0xb4ac,0xc57b,0xf4b5,0xc57c,0xc57d,0xf4b8,0xc57e, +0xc580,0xc581,0xc582,0xc583,0xf4b9,0xc584,0xc585,0xcda7, +0xc586,0xf4ba,0xc587,0xf4bb,0xc588,0xc589,0xc58a,0xf4bc, +0xc58b,0xc58c,0xc58d,0xc58e,0xc58f,0xc590,0xc591,0xc592, +0xcbd2,0xc593,0xf4bd,0xc594,0xc595,0xc596,0xc597,0xf4be, +0xc598,0xc599,0xc59a,0xc59b,0xc59c,0xc59d,0xc59e,0xc59f, +0xf4bf,0xc5a0,0xc640,0xc641,0xc642,0xc643,0xf4de,0xc1bc, +0xbce8,0xc644,0xc9ab,0xd1de,0xe5f5,0xc645,0xc646,0xc647, +0xc648,0xdcb3,0xd2d5,0xc649,0xc64a,0xdcb4,0xb0ac,0xdcb5, +0xc64b,0xc64c,0xbdda,0xc64d,0xdcb9,0xc64e,0xc64f,0xc650, +0xd8c2,0xc651,0xdcb7,0xd3f3,0xc652,0xc9d6,0xdcba,0xdcb6, +0xc653,0xdcbb,0xc3a2,0xc654,0xc655,0xc656,0xc657,0xdcbc, +0xdcc5,0xdcbd,0xc658,0xc659,0xcedf,0xd6a5,0xc65a,0xdccf, +0xc65b,0xdccd,0xc65c,0xc65d,0xdcd2,0xbde6,0xc2ab,0xc65e, +0xdcb8,0xdccb,0xdcce,0xdcbe,0xb7d2,0xb0c5,0xdcc7,0xd0be, +0xdcc1,0xbba8,0xc65f,0xb7bc,0xdccc,0xc660,0xc661,0xdcc6, +0xdcbf,0xc7db,0xc662,0xc663,0xc664,0xd1bf,0xdcc0,0xc665, +0xc666,0xdcca,0xc667,0xc668,0xdcd0,0xc669,0xc66a,0xcead, +0xdcc2,0xc66b,0xdcc3,0xdcc8,0xdcc9,0xb2d4,0xdcd1,0xcbd5, +0xc66c,0xd4b7,0xdcdb,0xdcdf,0xcca6,0xdce6,0xc66d,0xc3e7, +0xdcdc,0xc66e,0xc66f,0xbfc1,0xdcd9,0xc670,0xb0fa,0xb9b6, +0xdce5,0xdcd3,0xc671,0xdcc4,0xdcd6,0xc8f4,0xbfe0,0xc672, +0xc673,0xc674,0xc675,0xc9bb,0xc676,0xc677,0xc678,0xb1bd, +0xc679,0xd3a2,0xc67a,0xc67b,0xdcda,0xc67c,0xc67d,0xdcd5, +0xc67e,0xc6bb,0xc680,0xdcde,0xc681,0xc682,0xc683,0xc684, +0xc685,0xd7c2,0xc3af,0xb7b6,0xc7d1,0xc3a9,0xdce2,0xdcd8, +0xdceb,0xdcd4,0xc686,0xc687,0xdcdd,0xc688,0xbea5,0xdcd7, +0xc689,0xdce0,0xc68a,0xc68b,0xdce3,0xdce4,0xc68c,0xdcf8, +0xc68d,0xc68e,0xdce1,0xdda2,0xdce7,0xc68f,0xc690,0xc691, +0xc692,0xc693,0xc694,0xc695,0xc696,0xc697,0xc698,0xbceb, +0xb4c4,0xc699,0xc69a,0xc3a3,0xb2e7,0xdcfa,0xc69b,0xdcf2, +0xc69c,0xdcef,0xc69d,0xdcfc,0xdcee,0xd2f0,0xb2e8,0xc69e, +0xc8d7,0xc8e3,0xdcfb,0xc69f,0xdced,0xc6a0,0xc740,0xc741, +0xdcf7,0xc742,0xc743,0xdcf5,0xc744,0xc745,0xbea3,0xdcf4, +0xc746,0xb2dd,0xc747,0xc748,0xc749,0xc74a,0xc74b,0xdcf3, +0xbcf6,0xdce8,0xbbc4,0xc74c,0xc0f3,0xc74d,0xc74e,0xc74f, +0xc750,0xc751,0xbcd4,0xdce9,0xdcea,0xc752,0xdcf1,0xdcf6, +0xdcf9,0xb5b4,0xc753,0xc8d9,0xbbe7,0xdcfe,0xdcfd,0xd3ab, +0xdda1,0xdda3,0xdda5,0xd2f1,0xdda4,0xdda6,0xdda7,0xd2a9, +0xc754,0xc755,0xc756,0xc757,0xc758,0xc759,0xc75a,0xbac9, +0xdda9,0xc75b,0xc75c,0xddb6,0xddb1,0xddb4,0xc75d,0xc75e, +0xc75f,0xc760,0xc761,0xc762,0xc763,0xddb0,0xc6ce,0xc764, +0xc765,0xc0f2,0xc766,0xc767,0xc768,0xc769,0xc9af,0xc76a, +0xc76b,0xc76c,0xdcec,0xddae,0xc76d,0xc76e,0xc76f,0xc770, +0xddb7,0xc771,0xc772,0xdcf0,0xddaf,0xc773,0xddb8,0xc774, +0xddac,0xc775,0xc776,0xc777,0xc778,0xc779,0xc77a,0xc77b, +0xddb9,0xddb3,0xddad,0xc4aa,0xc77c,0xc77d,0xc77e,0xc780, +0xdda8,0xc0b3,0xc1ab,0xddaa,0xddab,0xc781,0xddb2,0xbbf1, +0xddb5,0xd3a8,0xddba,0xc782,0xddbb,0xc3a7,0xc783,0xc784, +0xddd2,0xddbc,0xc785,0xc786,0xc787,0xddd1,0xc788,0xb9bd, +0xc789,0xc78a,0xbed5,0xc78b,0xbefa,0xc78c,0xc78d,0xbaca, +0xc78e,0xc78f,0xc790,0xc791,0xddca,0xc792,0xddc5,0xc793, +0xddbf,0xc794,0xc795,0xc796,0xb2cb,0xddc3,0xc797,0xddcb, +0xb2a4,0xddd5,0xc798,0xc799,0xc79a,0xddbe,0xc79b,0xc79c, +0xc79d,0xc6d0,0xddd0,0xc79e,0xc79f,0xc7a0,0xc840,0xc841, +0xddd4,0xc1e2,0xb7c6,0xc842,0xc843,0xc844,0xc845,0xc846, +0xddce,0xddcf,0xc847,0xc848,0xc849,0xddc4,0xc84a,0xc84b, +0xc84c,0xddbd,0xc84d,0xddcd,0xccd1,0xc84e,0xddc9,0xc84f, +0xc850,0xc851,0xc852,0xddc2,0xc3c8,0xc6bc,0xceae,0xddcc, +0xc853,0xddc8,0xc854,0xc855,0xc856,0xc857,0xc858,0xc859, +0xddc1,0xc85a,0xc85b,0xc85c,0xddc6,0xc2dc,0xc85d,0xc85e, +0xc85f,0xc860,0xc861,0xc862,0xd3a9,0xd3aa,0xddd3,0xcff4, +0xc8f8,0xc863,0xc864,0xc865,0xc866,0xc867,0xc868,0xc869, +0xc86a,0xdde6,0xc86b,0xc86c,0xc86d,0xc86e,0xc86f,0xc870, +0xddc7,0xc871,0xc872,0xc873,0xdde0,0xc2e4,0xc874,0xc875, +0xc876,0xc877,0xc878,0xc879,0xc87a,0xc87b,0xdde1,0xc87c, +0xc87d,0xc87e,0xc880,0xc881,0xc882,0xc883,0xc884,0xc885, +0xc886,0xddd7,0xc887,0xc888,0xc889,0xc88a,0xc88b,0xd6f8, +0xc88c,0xddd9,0xddd8,0xb8f0,0xddd6,0xc88d,0xc88e,0xc88f, +0xc890,0xc6cf,0xc891,0xb6ad,0xc892,0xc893,0xc894,0xc895, +0xc896,0xdde2,0xc897,0xbaf9,0xd4e1,0xdde7,0xc898,0xc899, +0xc89a,0xb4d0,0xc89b,0xddda,0xc89c,0xbffb,0xdde3,0xc89d, +0xdddf,0xc89e,0xdddd,0xc89f,0xc8a0,0xc940,0xc941,0xc942, +0xc943,0xc944,0xb5d9,0xc945,0xc946,0xc947,0xc948,0xdddb, +0xdddc,0xddde,0xc949,0xbdaf,0xdde4,0xc94a,0xdde5,0xc94b, +0xc94c,0xc94d,0xc94e,0xc94f,0xc950,0xc951,0xc952,0xddf5, +0xc953,0xc3c9,0xc954,0xc955,0xcbe2,0xc956,0xc957,0xc958, +0xc959,0xddf2,0xc95a,0xc95b,0xc95c,0xc95d,0xc95e,0xc95f, +0xc960,0xc961,0xc962,0xc963,0xc964,0xc965,0xc966,0xd8e1, +0xc967,0xc968,0xc6d1,0xc969,0xddf4,0xc96a,0xc96b,0xc96c, +0xd5f4,0xddf3,0xddf0,0xc96d,0xc96e,0xddec,0xc96f,0xddef, +0xc970,0xdde8,0xc971,0xc972,0xd0ee,0xc973,0xc974,0xc975, +0xc976,0xc8d8,0xddee,0xc977,0xc978,0xdde9,0xc979,0xc97a, +0xddea,0xcbf2,0xc97b,0xdded,0xc97c,0xc97d,0xb1cd,0xc97e, +0xc980,0xc981,0xc982,0xc983,0xc984,0xc0b6,0xc985,0xbcbb, +0xddf1,0xc986,0xc987,0xddf7,0xc988,0xddf6,0xddeb,0xc989, +0xc98a,0xc98b,0xc98c,0xc98d,0xc5ee,0xc98e,0xc98f,0xc990, +0xddfb,0xc991,0xc992,0xc993,0xc994,0xc995,0xc996,0xc997, +0xc998,0xc999,0xc99a,0xc99b,0xdea4,0xc99c,0xc99d,0xdea3, +0xc99e,0xc99f,0xc9a0,0xca40,0xca41,0xca42,0xca43,0xca44, +0xca45,0xca46,0xca47,0xca48,0xddf8,0xca49,0xca4a,0xca4b, +0xca4c,0xc3ef,0xca4d,0xc2fb,0xca4e,0xca4f,0xca50,0xd5e1, +0xca51,0xca52,0xceb5,0xca53,0xca54,0xca55,0xca56,0xddfd, +0xca57,0xb2cc,0xca58,0xca59,0xca5a,0xca5b,0xca5c,0xca5d, +0xca5e,0xca5f,0xca60,0xc4e8,0xcadf,0xca61,0xca62,0xca63, +0xca64,0xca65,0xca66,0xca67,0xca68,0xca69,0xca6a,0xc7be, +0xddfa,0xddfc,0xddfe,0xdea2,0xb0aa,0xb1ce,0xca6b,0xca6c, +0xca6d,0xca6e,0xca6f,0xdeac,0xca70,0xca71,0xca72,0xca73, +0xdea6,0xbdb6,0xc8ef,0xca74,0xca75,0xca76,0xca77,0xca78, +0xca79,0xca7a,0xca7b,0xca7c,0xca7d,0xca7e,0xdea1,0xca80, +0xca81,0xdea5,0xca82,0xca83,0xca84,0xca85,0xdea9,0xca86, +0xca87,0xca88,0xca89,0xca8a,0xdea8,0xca8b,0xca8c,0xca8d, +0xdea7,0xca8e,0xca8f,0xca90,0xca91,0xca92,0xca93,0xca94, +0xca95,0xca96,0xdead,0xca97,0xd4cc,0xca98,0xca99,0xca9a, +0xca9b,0xdeb3,0xdeaa,0xdeae,0xca9c,0xca9d,0xc0d9,0xca9e, +0xca9f,0xcaa0,0xcb40,0xcb41,0xb1a1,0xdeb6,0xcb42,0xdeb1, +0xcb43,0xcb44,0xcb45,0xcb46,0xcb47,0xcb48,0xcb49,0xdeb2, +0xcb4a,0xcb4b,0xcb4c,0xcb4d,0xcb4e,0xcb4f,0xcb50,0xcb51, +0xcb52,0xcb53,0xcb54,0xd1a6,0xdeb5,0xcb55,0xcb56,0xcb57, +0xcb58,0xcb59,0xcb5a,0xcb5b,0xdeaf,0xcb5c,0xcb5d,0xcb5e, +0xdeb0,0xcb5f,0xd0bd,0xcb60,0xcb61,0xcb62,0xdeb4,0xcaed, +0xdeb9,0xcb63,0xcb64,0xcb65,0xcb66,0xcb67,0xcb68,0xdeb8, +0xcb69,0xdeb7,0xcb6a,0xcb6b,0xcb6c,0xcb6d,0xcb6e,0xcb6f, +0xcb70,0xdebb,0xcb71,0xcb72,0xcb73,0xcb74,0xcb75,0xcb76, +0xcb77,0xbde5,0xcb78,0xcb79,0xcb7a,0xcb7b,0xcb7c,0xb2d8, +0xc3ea,0xcb7d,0xcb7e,0xdeba,0xcb80,0xc5ba,0xcb81,0xcb82, +0xcb83,0xcb84,0xcb85,0xcb86,0xdebc,0xcb87,0xcb88,0xcb89, +0xcb8a,0xcb8b,0xcb8c,0xcb8d,0xccd9,0xcb8e,0xcb8f,0xcb90, +0xcb91,0xb7aa,0xcb92,0xcb93,0xcb94,0xcb95,0xcb96,0xcb97, +0xcb98,0xcb99,0xcb9a,0xcb9b,0xcb9c,0xcb9d,0xcb9e,0xcb9f, +0xcba0,0xcc40,0xcc41,0xd4e5,0xcc42,0xcc43,0xcc44,0xdebd, +0xcc45,0xcc46,0xcc47,0xcc48,0xcc49,0xdebf,0xcc4a,0xcc4b, +0xcc4c,0xcc4d,0xcc4e,0xcc4f,0xcc50,0xcc51,0xcc52,0xcc53, +0xcc54,0xc4a2,0xcc55,0xcc56,0xcc57,0xcc58,0xdec1,0xcc59, +0xcc5a,0xcc5b,0xcc5c,0xcc5d,0xcc5e,0xcc5f,0xcc60,0xcc61, +0xcc62,0xcc63,0xcc64,0xcc65,0xcc66,0xcc67,0xcc68,0xdebe, +0xcc69,0xdec0,0xcc6a,0xcc6b,0xcc6c,0xcc6d,0xcc6e,0xcc6f, +0xcc70,0xcc71,0xcc72,0xcc73,0xcc74,0xcc75,0xcc76,0xcc77, +0xd5ba,0xcc78,0xcc79,0xcc7a,0xdec2,0xcc7b,0xcc7c,0xcc7d, +0xcc7e,0xcc80,0xcc81,0xcc82,0xcc83,0xcc84,0xcc85,0xcc86, +0xcc87,0xcc88,0xcc89,0xcc8a,0xcc8b,0xf2ae,0xbba2,0xc2b2, +0xc5b0,0xc2c7,0xcc8c,0xcc8d,0xf2af,0xcc8e,0xcc8f,0xcc90, +0xcc91,0xcc92,0xd0e9,0xcc93,0xcc94,0xcc95,0xd3dd,0xcc96, +0xcc97,0xcc98,0xebbd,0xcc99,0xcc9a,0xcc9b,0xcc9c,0xcc9d, +0xcc9e,0xcc9f,0xcca0,0xb3e6,0xf2b0,0xcd40,0xf2b1,0xcd41, +0xcd42,0xcaad,0xcd43,0xcd44,0xcd45,0xcd46,0xcd47,0xcd48, +0xcd49,0xbae7,0xf2b3,0xf2b5,0xf2b4,0xcbe4,0xcfba,0xf2b2, +0xcab4,0xd2cf,0xc2ec,0xcd4a,0xcd4b,0xcd4c,0xcd4d,0xcd4e, +0xcd4f,0xcd50,0xcec3,0xf2b8,0xb0f6,0xf2b7,0xcd51,0xcd52, +0xcd53,0xcd54,0xcd55,0xf2be,0xcd56,0xb2cf,0xcd57,0xcd58, +0xcd59,0xcd5a,0xcd5b,0xcd5c,0xd1c1,0xf2ba,0xcd5d,0xcd5e, +0xcd5f,0xcd60,0xcd61,0xf2bc,0xd4e9,0xcd62,0xcd63,0xf2bb, +0xf2b6,0xf2bf,0xf2bd,0xcd64,0xf2b9,0xcd65,0xcd66,0xf2c7, +0xf2c4,0xf2c6,0xcd67,0xcd68,0xf2ca,0xf2c2,0xf2c0,0xcd69, +0xcd6a,0xcd6b,0xf2c5,0xcd6c,0xcd6d,0xcd6e,0xcd6f,0xcd70, +0xd6fb,0xcd71,0xcd72,0xcd73,0xf2c1,0xcd74,0xc7f9,0xc9df, +0xcd75,0xf2c8,0xb9c6,0xb5b0,0xcd76,0xcd77,0xf2c3,0xf2c9, +0xf2d0,0xf2d6,0xcd78,0xcd79,0xbbd7,0xcd7a,0xcd7b,0xcd7c, +0xf2d5,0xcddc,0xcd7d,0xd6eb,0xcd7e,0xcd80,0xf2d2,0xf2d4, +0xcd81,0xcd82,0xcd83,0xcd84,0xb8f2,0xcd85,0xcd86,0xcd87, +0xcd88,0xf2cb,0xcd89,0xcd8a,0xcd8b,0xf2ce,0xc2f9,0xcd8c, +0xd5dd,0xf2cc,0xf2cd,0xf2cf,0xf2d3,0xcd8d,0xcd8e,0xcd8f, +0xf2d9,0xd3bc,0xcd90,0xcd91,0xcd92,0xcd93,0xb6ea,0xcd94, +0xcaf1,0xcd95,0xb7e4,0xf2d7,0xcd96,0xcd97,0xcd98,0xf2d8, +0xf2da,0xf2dd,0xf2db,0xcd99,0xcd9a,0xf2dc,0xcd9b,0xcd9c, +0xcd9d,0xcd9e,0xd1d1,0xf2d1,0xcd9f,0xcdc9,0xcda0,0xcecf, +0xd6a9,0xce40,0xf2e3,0xce41,0xc3db,0xce42,0xf2e0,0xce43, +0xce44,0xc0af,0xf2ec,0xf2de,0xce45,0xf2e1,0xce46,0xce47, +0xce48,0xf2e8,0xce49,0xce4a,0xce4b,0xce4c,0xf2e2,0xce4d, +0xce4e,0xf2e7,0xce4f,0xce50,0xf2e6,0xce51,0xce52,0xf2e9, +0xce53,0xce54,0xce55,0xf2df,0xce56,0xce57,0xf2e4,0xf2ea, +0xce58,0xce59,0xce5a,0xce5b,0xce5c,0xce5d,0xce5e,0xd3ac, +0xf2e5,0xb2f5,0xce5f,0xce60,0xf2f2,0xce61,0xd0ab,0xce62, +0xce63,0xce64,0xce65,0xf2f5,0xce66,0xce67,0xce68,0xbbc8, +0xce69,0xf2f9,0xce6a,0xce6b,0xce6c,0xce6d,0xce6e,0xce6f, +0xf2f0,0xce70,0xce71,0xf2f6,0xf2f8,0xf2fa,0xce72,0xce73, +0xce74,0xce75,0xce76,0xce77,0xce78,0xce79,0xf2f3,0xce7a, +0xf2f1,0xce7b,0xce7c,0xce7d,0xbafb,0xce7e,0xb5fb,0xce80, +0xce81,0xce82,0xce83,0xf2ef,0xf2f7,0xf2ed,0xf2ee,0xce84, +0xce85,0xce86,0xf2eb,0xf3a6,0xce87,0xf3a3,0xce88,0xce89, +0xf3a2,0xce8a,0xce8b,0xf2f4,0xce8c,0xc8da,0xce8d,0xce8e, +0xce8f,0xce90,0xce91,0xf2fb,0xce92,0xce93,0xce94,0xf3a5, +0xce95,0xce96,0xce97,0xce98,0xce99,0xce9a,0xce9b,0xc3f8, +0xce9c,0xce9d,0xce9e,0xce9f,0xcea0,0xcf40,0xcf41,0xcf42, +0xf2fd,0xcf43,0xcf44,0xf3a7,0xf3a9,0xf3a4,0xcf45,0xf2fc, +0xcf46,0xcf47,0xcf48,0xf3ab,0xcf49,0xf3aa,0xcf4a,0xcf4b, +0xcf4c,0xcf4d,0xc2dd,0xcf4e,0xcf4f,0xf3ae,0xcf50,0xcf51, +0xf3b0,0xcf52,0xcf53,0xcf54,0xcf55,0xcf56,0xf3a1,0xcf57, +0xcf58,0xcf59,0xf3b1,0xf3ac,0xcf5a,0xcf5b,0xcf5c,0xcf5d, +0xcf5e,0xf3af,0xf2fe,0xf3ad,0xcf5f,0xcf60,0xcf61,0xcf62, +0xcf63,0xcf64,0xcf65,0xf3b2,0xcf66,0xcf67,0xcf68,0xcf69, +0xf3b4,0xcf6a,0xcf6b,0xcf6c,0xcf6d,0xf3a8,0xcf6e,0xcf6f, +0xcf70,0xcf71,0xf3b3,0xcf72,0xcf73,0xcf74,0xf3b5,0xcf75, +0xcf76,0xcf77,0xcf78,0xcf79,0xcf7a,0xcf7b,0xcf7c,0xcf7d, +0xcf7e,0xd0b7,0xcf80,0xcf81,0xcf82,0xcf83,0xf3b8,0xcf84, +0xcf85,0xcf86,0xcf87,0xd9f9,0xcf88,0xcf89,0xcf8a,0xcf8b, +0xcf8c,0xcf8d,0xf3b9,0xcf8e,0xcf8f,0xcf90,0xcf91,0xcf92, +0xcf93,0xcf94,0xcf95,0xf3b7,0xcf96,0xc8e4,0xf3b6,0xcf97, +0xcf98,0xcf99,0xcf9a,0xf3ba,0xcf9b,0xcf9c,0xcf9d,0xcf9e, +0xcf9f,0xf3bb,0xb4c0,0xcfa0,0xd040,0xd041,0xd042,0xd043, +0xd044,0xd045,0xd046,0xd047,0xd048,0xd049,0xd04a,0xd04b, +0xd04c,0xd04d,0xeec3,0xd04e,0xd04f,0xd050,0xd051,0xd052, +0xd053,0xf3bc,0xd054,0xd055,0xf3bd,0xd056,0xd057,0xd058, +0xd1aa,0xd059,0xd05a,0xd05b,0xf4ac,0xd0c6,0xd05c,0xd05d, +0xd05e,0xd05f,0xd060,0xd061,0xd0d0,0xd1dc,0xd062,0xd063, +0xd064,0xd065,0xd066,0xd067,0xcfce,0xd068,0xd069,0xbdd6, +0xd06a,0xd1c3,0xd06b,0xd06c,0xd06d,0xd06e,0xd06f,0xd070, +0xd071,0xbae2,0xe1e9,0xd2c2,0xf1c2,0xb2b9,0xd072,0xd073, +0xb1ed,0xf1c3,0xd074,0xc9c0,0xb3c4,0xd075,0xd9f2,0xd076, +0xcba5,0xd077,0xf1c4,0xd078,0xd079,0xd07a,0xd07b,0xd6d4, +0xd07c,0xd07d,0xd07e,0xd080,0xd081,0xf1c5,0xf4c0,0xf1c6, +0xd082,0xd4ac,0xf1c7,0xd083,0xb0c0,0xf4c1,0xd084,0xd085, +0xf4c2,0xd086,0xd087,0xb4fc,0xd088,0xc5db,0xd089,0xd08a, +0xd08b,0xd08c,0xccbb,0xd08d,0xd08e,0xd08f,0xd0e4,0xd090, +0xd091,0xd092,0xd093,0xd094,0xcde0,0xd095,0xd096,0xd097, +0xd098,0xd099,0xf1c8,0xd09a,0xd9f3,0xd09b,0xd09c,0xd09d, +0xd09e,0xd09f,0xd0a0,0xb1bb,0xd140,0xcfae,0xd141,0xd142, +0xd143,0xb8a4,0xd144,0xd145,0xd146,0xd147,0xd148,0xf1ca, +0xd149,0xd14a,0xd14b,0xd14c,0xf1cb,0xd14d,0xd14e,0xd14f, +0xd150,0xb2c3,0xc1d1,0xd151,0xd152,0xd7b0,0xf1c9,0xd153, +0xd154,0xf1cc,0xd155,0xd156,0xd157,0xd158,0xf1ce,0xd159, +0xd15a,0xd15b,0xd9f6,0xd15c,0xd2e1,0xd4a3,0xd15d,0xd15e, +0xf4c3,0xc8b9,0xd15f,0xd160,0xd161,0xd162,0xd163,0xf4c4, +0xd164,0xd165,0xf1cd,0xf1cf,0xbfe3,0xf1d0,0xd166,0xd167, +0xf1d4,0xd168,0xd169,0xd16a,0xd16b,0xd16c,0xd16d,0xd16e, +0xf1d6,0xf1d1,0xd16f,0xc9d1,0xc5e1,0xd170,0xd171,0xd172, +0xc2e3,0xb9fc,0xd173,0xd174,0xf1d3,0xd175,0xf1d5,0xd176, +0xd177,0xd178,0xb9d3,0xd179,0xd17a,0xd17b,0xd17c,0xd17d, +0xd17e,0xd180,0xf1db,0xd181,0xd182,0xd183,0xd184,0xd185, +0xbad6,0xd186,0xb0fd,0xf1d9,0xd187,0xd188,0xd189,0xd18a, +0xd18b,0xf1d8,0xf1d2,0xf1da,0xd18c,0xd18d,0xd18e,0xd18f, +0xd190,0xf1d7,0xd191,0xd192,0xd193,0xc8ec,0xd194,0xd195, +0xd196,0xd197,0xcdca,0xf1dd,0xd198,0xd199,0xd19a,0xd19b, +0xe5bd,0xd19c,0xd19d,0xd19e,0xf1dc,0xd19f,0xf1de,0xd1a0, +0xd240,0xd241,0xd242,0xd243,0xd244,0xd245,0xd246,0xd247, +0xd248,0xf1df,0xd249,0xd24a,0xcfe5,0xd24b,0xd24c,0xd24d, +0xd24e,0xd24f,0xd250,0xd251,0xd252,0xd253,0xd254,0xd255, +0xd256,0xd257,0xd258,0xd259,0xd25a,0xd25b,0xd25c,0xd25d, +0xd25e,0xd25f,0xd260,0xd261,0xd262,0xd263,0xf4c5,0xbdf3, +0xd264,0xd265,0xd266,0xd267,0xd268,0xd269,0xf1e0,0xd26a, +0xd26b,0xd26c,0xd26d,0xd26e,0xd26f,0xd270,0xd271,0xd272, +0xd273,0xd274,0xd275,0xd276,0xd277,0xd278,0xd279,0xd27a, +0xd27b,0xd27c,0xd27d,0xf1e1,0xd27e,0xd280,0xd281,0xcef7, +0xd282,0xd2aa,0xd283,0xf1fb,0xd284,0xd285,0xb8b2,0xd286, +0xd287,0xd288,0xd289,0xd28a,0xd28b,0xd28c,0xd28d,0xd28e, +0xd28f,0xd290,0xd291,0xd292,0xd293,0xd294,0xd295,0xd296, +0xd297,0xd298,0xd299,0xd29a,0xd29b,0xd29c,0xd29d,0xd29e, +0xd29f,0xd2a0,0xd340,0xd341,0xd342,0xd343,0xd344,0xd345, +0xd346,0xd347,0xd348,0xd349,0xd34a,0xd34b,0xd34c,0xd34d, +0xd34e,0xd34f,0xd350,0xd351,0xd352,0xd353,0xd354,0xd355, +0xd356,0xd357,0xd358,0xd359,0xd35a,0xd35b,0xd35c,0xd35d, +0xd35e,0xbcfb,0xb9db,0xd35f,0xb9e6,0xc3d9,0xcad3,0xeae8, +0xc0c0,0xbef5,0xeae9,0xeaea,0xeaeb,0xd360,0xeaec,0xeaed, +0xeaee,0xeaef,0xbdc7,0xd361,0xd362,0xd363,0xf5fb,0xd364, +0xd365,0xd366,0xf5fd,0xd367,0xf5fe,0xd368,0xf5fc,0xd369, +0xd36a,0xd36b,0xd36c,0xbde2,0xd36d,0xf6a1,0xb4a5,0xd36e, +0xd36f,0xd370,0xd371,0xf6a2,0xd372,0xd373,0xd374,0xf6a3, +0xd375,0xd376,0xd377,0xecb2,0xd378,0xd379,0xd37a,0xd37b, +0xd37c,0xd37d,0xd37e,0xd380,0xd381,0xd382,0xd383,0xd384, +0xd1d4,0xd385,0xd386,0xd387,0xd388,0xd389,0xd38a,0xd9ea, +0xd38b,0xd38c,0xd38d,0xd38e,0xd38f,0xd390,0xd391,0xd392, +0xd393,0xd394,0xd395,0xd396,0xd397,0xd398,0xd399,0xd39a, +0xd39b,0xd39c,0xd39d,0xd39e,0xd39f,0xd3a0,0xd440,0xd441, +0xd442,0xd443,0xd444,0xd445,0xd446,0xd447,0xd448,0xd449, +0xd44a,0xd44b,0xd44c,0xd44d,0xd44e,0xd44f,0xd450,0xd451, +0xd452,0xd453,0xd454,0xd455,0xd456,0xd457,0xd458,0xd459, +0xd45a,0xd45b,0xd45c,0xd45d,0xd45e,0xd45f,0xf6a4,0xd460, +0xd461,0xd462,0xd463,0xd464,0xd465,0xd466,0xd467,0xd468, +0xeeba,0xd469,0xd46a,0xd46b,0xd46c,0xd46d,0xd46e,0xd46f, +0xd470,0xd471,0xd472,0xd473,0xd474,0xd475,0xd476,0xd477, +0xd478,0xd479,0xd47a,0xd47b,0xd47c,0xd47d,0xd47e,0xd480, +0xd481,0xd482,0xd483,0xd484,0xd485,0xd486,0xd487,0xd488, +0xd489,0xd48a,0xd48b,0xd48c,0xd48d,0xd48e,0xd48f,0xd490, +0xd491,0xd492,0xd493,0xd494,0xd495,0xd496,0xd497,0xd498, +0xd499,0xd5b2,0xd49a,0xd49b,0xd49c,0xd49d,0xd49e,0xd49f, +0xd4a0,0xd540,0xd541,0xd542,0xd543,0xd544,0xd545,0xd546, +0xd547,0xd3fe,0xccdc,0xd548,0xd549,0xd54a,0xd54b,0xd54c, +0xd54d,0xd54e,0xd54f,0xcac4,0xd550,0xd551,0xd552,0xd553, +0xd554,0xd555,0xd556,0xd557,0xd558,0xd559,0xd55a,0xd55b, +0xd55c,0xd55d,0xd55e,0xd55f,0xd560,0xd561,0xd562,0xd563, +0xd564,0xd565,0xd566,0xd567,0xd568,0xd569,0xd56a,0xd56b, +0xd56c,0xd56d,0xd56e,0xd56f,0xd570,0xd571,0xd572,0xd573, +0xd574,0xd575,0xd576,0xd577,0xd578,0xd579,0xd57a,0xd57b, +0xd57c,0xd57d,0xd57e,0xd580,0xd581,0xd582,0xd583,0xd584, +0xd585,0xd586,0xd587,0xd588,0xd589,0xd58a,0xd58b,0xd58c, +0xd58d,0xd58e,0xd58f,0xd590,0xd591,0xd592,0xd593,0xd594, +0xd595,0xd596,0xd597,0xd598,0xd599,0xd59a,0xd59b,0xd59c, +0xd59d,0xd59e,0xd59f,0xd5a0,0xd640,0xd641,0xd642,0xd643, +0xd644,0xd645,0xd646,0xd647,0xd648,0xd649,0xd64a,0xd64b, +0xd64c,0xd64d,0xd64e,0xd64f,0xd650,0xd651,0xd652,0xd653, +0xd654,0xd655,0xd656,0xd657,0xd658,0xd659,0xd65a,0xd65b, +0xd65c,0xd65d,0xd65e,0xd65f,0xd660,0xd661,0xd662,0xe5c0, +0xd663,0xd664,0xd665,0xd666,0xd667,0xd668,0xd669,0xd66a, +0xd66b,0xd66c,0xd66d,0xd66e,0xd66f,0xd670,0xd671,0xd672, +0xd673,0xd674,0xd675,0xd676,0xd677,0xd678,0xd679,0xd67a, +0xd67b,0xd67c,0xd67d,0xd67e,0xd680,0xd681,0xf6a5,0xd682, +0xd683,0xd684,0xd685,0xd686,0xd687,0xd688,0xd689,0xd68a, +0xd68b,0xd68c,0xd68d,0xd68e,0xd68f,0xd690,0xd691,0xd692, +0xd693,0xd694,0xd695,0xd696,0xd697,0xd698,0xd699,0xd69a, +0xd69b,0xd69c,0xd69d,0xd69e,0xd69f,0xd6a0,0xd740,0xd741, +0xd742,0xd743,0xd744,0xd745,0xd746,0xd747,0xd748,0xd749, +0xd74a,0xd74b,0xd74c,0xd74d,0xd74e,0xd74f,0xd750,0xd751, +0xd752,0xd753,0xd754,0xd755,0xd756,0xd757,0xd758,0xd759, +0xd75a,0xd75b,0xd75c,0xd75d,0xd75e,0xd75f,0xbeaf,0xd760, +0xd761,0xd762,0xd763,0xd764,0xc6a9,0xd765,0xd766,0xd767, +0xd768,0xd769,0xd76a,0xd76b,0xd76c,0xd76d,0xd76e,0xd76f, +0xd770,0xd771,0xd772,0xd773,0xd774,0xd775,0xd776,0xd777, +0xd778,0xd779,0xd77a,0xd77b,0xd77c,0xd77d,0xd77e,0xd780, +0xd781,0xd782,0xd783,0xd784,0xd785,0xd786,0xd787,0xd788, +0xd789,0xd78a,0xd78b,0xd78c,0xd78d,0xd78e,0xd78f,0xd790, +0xd791,0xd792,0xd793,0xd794,0xd795,0xd796,0xd797,0xd798, +0xdaa5,0xbcc6,0xb6a9,0xb8bc,0xc8cf,0xbca5,0xdaa6,0xdaa7, +0xccd6,0xc8c3,0xdaa8,0xc6fd,0xd799,0xd1b5,0xd2e9,0xd1b6, +0xbcc7,0xd79a,0xbdb2,0xbbe4,0xdaa9,0xdaaa,0xd1c8,0xdaab, +0xd0ed,0xb6ef,0xc2db,0xd79b,0xcbcf,0xb7ed,0xc9e8,0xb7c3, +0xbef7,0xd6a4,0xdaac,0xdaad,0xc6c0,0xd7e7,0xcab6,0xd79c, +0xd5a9,0xcbdf,0xd5ef,0xdaae,0xd6df,0xb4ca,0xdab0,0xdaaf, +0xd79d,0xd2eb,0xdab1,0xdab2,0xdab3,0xcad4,0xdab4,0xcaab, +0xdab5,0xdab6,0xb3cf,0xd6ef,0xdab7,0xbbb0,0xb5ae,0xdab8, +0xdab9,0xb9ee,0xd1af,0xd2e8,0xdaba,0xb8c3,0xcfea,0xb2ef, +0xdabb,0xdabc,0xd79e,0xbdeb,0xcedc,0xd3ef,0xdabd,0xcef3, +0xdabe,0xd3d5,0xbbe5,0xdabf,0xcbb5,0xcbd0,0xdac0,0xc7eb, +0xd6ee,0xdac1,0xc5b5,0xb6c1,0xdac2,0xb7cc,0xbfce,0xdac3, +0xdac4,0xcbad,0xdac5,0xb5f7,0xdac6,0xc1c2,0xd7bb,0xdac7, +0xccb8,0xd79f,0xd2ea,0xc4b1,0xdac8,0xb5fd,0xbbd1,0xdac9, +0xd0b3,0xdaca,0xdacb,0xcebd,0xdacc,0xdacd,0xdace,0xb2f7, +0xdad1,0xdacf,0xd1e8,0xdad0,0xc3d5,0xdad2,0xd7a0,0xdad3, +0xdad4,0xdad5,0xd0bb,0xd2a5,0xb0f9,0xdad6,0xc7ab,0xdad7, +0xbdf7,0xc3a1,0xdad8,0xdad9,0xc3fd,0xccb7,0xdada,0xdadb, +0xc0be,0xc6d7,0xdadc,0xdadd,0xc7b4,0xdade,0xdadf,0xb9c8, +0xd840,0xd841,0xd842,0xd843,0xd844,0xd845,0xd846,0xd847, +0xd848,0xbbed,0xd849,0xd84a,0xd84b,0xd84c,0xb6b9,0xf4f8, +0xd84d,0xf4f9,0xd84e,0xd84f,0xcde3,0xd850,0xd851,0xd852, +0xd853,0xd854,0xd855,0xd856,0xd857,0xf5b9,0xd858,0xd859, +0xd85a,0xd85b,0xebe0,0xd85c,0xd85d,0xd85e,0xd85f,0xd860, +0xd861,0xcff3,0xbbbf,0xd862,0xd863,0xd864,0xd865,0xd866, +0xd867,0xd868,0xbac0,0xd4a5,0xd869,0xd86a,0xd86b,0xd86c, +0xd86d,0xd86e,0xd86f,0xe1d9,0xd870,0xd871,0xd872,0xd873, +0xf5f4,0xb1aa,0xb2f2,0xd874,0xd875,0xd876,0xd877,0xd878, +0xd879,0xd87a,0xf5f5,0xd87b,0xd87c,0xf5f7,0xd87d,0xd87e, +0xd880,0xbad1,0xf5f6,0xd881,0xc3b2,0xd882,0xd883,0xd884, +0xd885,0xd886,0xd887,0xd888,0xf5f9,0xd889,0xd88a,0xd88b, +0xf5f8,0xd88c,0xd88d,0xd88e,0xd88f,0xd890,0xd891,0xd892, +0xd893,0xd894,0xd895,0xd896,0xd897,0xd898,0xd899,0xd89a, +0xd89b,0xd89c,0xd89d,0xd89e,0xd89f,0xd8a0,0xd940,0xd941, +0xd942,0xd943,0xd944,0xd945,0xd946,0xd947,0xd948,0xd949, +0xd94a,0xd94b,0xd94c,0xd94d,0xd94e,0xd94f,0xd950,0xd951, +0xd952,0xd953,0xd954,0xd955,0xd956,0xd957,0xd958,0xd959, +0xd95a,0xd95b,0xd95c,0xd95d,0xd95e,0xd95f,0xd960,0xd961, +0xd962,0xd963,0xd964,0xd965,0xd966,0xd967,0xd968,0xd969, +0xd96a,0xd96b,0xd96c,0xd96d,0xd96e,0xd96f,0xd970,0xd971, +0xd972,0xd973,0xd974,0xd975,0xd976,0xd977,0xd978,0xd979, +0xd97a,0xd97b,0xd97c,0xd97d,0xd97e,0xd980,0xd981,0xd982, +0xd983,0xd984,0xd985,0xd986,0xd987,0xd988,0xd989,0xd98a, +0xd98b,0xd98c,0xd98d,0xd98e,0xd98f,0xd990,0xd991,0xd992, +0xd993,0xd994,0xd995,0xd996,0xd997,0xd998,0xd999,0xd99a, +0xd99b,0xd99c,0xd99d,0xd99e,0xd99f,0xd9a0,0xda40,0xda41, +0xda42,0xda43,0xda44,0xda45,0xda46,0xda47,0xda48,0xda49, +0xda4a,0xda4b,0xda4c,0xda4d,0xda4e,0xb1b4,0xd5ea,0xb8ba, +0xda4f,0xb9b1,0xb2c6,0xd4f0,0xcfcd,0xb0dc,0xd5cb,0xbbf5, +0xd6ca,0xb7b7,0xccb0,0xc6b6,0xb1e1,0xb9ba,0xd6fc,0xb9e1, +0xb7a1,0xbcfa,0xeada,0xeadb,0xccf9,0xb9f3,0xeadc,0xb4fb, +0xc3b3,0xb7d1,0xbad8,0xeadd,0xd4f4,0xeade,0xbcd6,0xbbdf, +0xeadf,0xc1de,0xc2b8,0xd4df,0xd7ca,0xeae0,0xeae1,0xeae4, +0xeae2,0xeae3,0xc9de,0xb8b3,0xb6c4,0xeae5,0xcaea,0xc9cd, +0xb4cd,0xda50,0xda51,0xe2d9,0xc5e2,0xeae6,0xc0b5,0xda52, +0xd7b8,0xeae7,0xd7ac,0xc8fc,0xd8d3,0xd8cd,0xd4de,0xda53, +0xd4f9,0xc9c4,0xd3ae,0xb8d3,0xb3e0,0xda54,0xc9e2,0xf4f6, +0xda55,0xda56,0xda57,0xbad5,0xda58,0xf4f7,0xda59,0xda5a, +0xd7df,0xda5b,0xda5c,0xf4f1,0xb8b0,0xd5d4,0xb8cf,0xc6f0, +0xda5d,0xda5e,0xda5f,0xda60,0xda61,0xda62,0xda63,0xda64, +0xda65,0xb3c3,0xda66,0xda67,0xf4f2,0xb3ac,0xda68,0xda69, +0xda6a,0xda6b,0xd4bd,0xc7f7,0xda6c,0xda6d,0xda6e,0xda6f, +0xda70,0xf4f4,0xda71,0xda72,0xf4f3,0xda73,0xda74,0xda75, +0xda76,0xda77,0xda78,0xda79,0xda7a,0xda7b,0xda7c,0xcccb, +0xda7d,0xda7e,0xda80,0xc8a4,0xda81,0xda82,0xda83,0xda84, +0xda85,0xda86,0xda87,0xda88,0xda89,0xda8a,0xda8b,0xda8c, +0xda8d,0xf4f5,0xda8e,0xd7e3,0xc5bf,0xf5c0,0xda8f,0xda90, +0xf5bb,0xda91,0xf5c3,0xda92,0xf5c2,0xda93,0xd6ba,0xf5c1, +0xda94,0xda95,0xda96,0xd4be,0xf5c4,0xda97,0xf5cc,0xda98, +0xda99,0xda9a,0xda9b,0xb0cf,0xb5f8,0xda9c,0xf5c9,0xf5ca, +0xda9d,0xc5dc,0xda9e,0xda9f,0xdaa0,0xdb40,0xf5c5,0xf5c6, +0xdb41,0xdb42,0xf5c7,0xf5cb,0xdb43,0xbee0,0xf5c8,0xb8fa, +0xdb44,0xdb45,0xdb46,0xf5d0,0xf5d3,0xdb47,0xdb48,0xdb49, +0xbfe7,0xdb4a,0xb9f2,0xf5bc,0xf5cd,0xdb4b,0xdb4c,0xc2b7, +0xdb4d,0xdb4e,0xdb4f,0xccf8,0xdb50,0xbcf9,0xdb51,0xf5ce, +0xf5cf,0xf5d1,0xb6e5,0xf5d2,0xdb52,0xf5d5,0xdb53,0xdb54, +0xdb55,0xdb56,0xdb57,0xdb58,0xdb59,0xf5bd,0xdb5a,0xdb5b, +0xdb5c,0xf5d4,0xd3bb,0xdb5d,0xb3ec,0xdb5e,0xdb5f,0xcca4, +0xdb60,0xdb61,0xdb62,0xdb63,0xf5d6,0xdb64,0xdb65,0xdb66, +0xdb67,0xdb68,0xdb69,0xdb6a,0xdb6b,0xf5d7,0xbee1,0xf5d8, +0xdb6c,0xdb6d,0xccdf,0xf5db,0xdb6e,0xdb6f,0xdb70,0xdb71, +0xdb72,0xb2c8,0xd7d9,0xdb73,0xf5d9,0xdb74,0xf5da,0xf5dc, +0xdb75,0xf5e2,0xdb76,0xdb77,0xdb78,0xf5e0,0xdb79,0xdb7a, +0xdb7b,0xf5df,0xf5dd,0xdb7c,0xdb7d,0xf5e1,0xdb7e,0xdb80, +0xf5de,0xf5e4,0xf5e5,0xdb81,0xcce3,0xdb82,0xdb83,0xe5bf, +0xb5b8,0xf5e3,0xf5e8,0xcca3,0xdb84,0xdb85,0xdb86,0xdb87, +0xdb88,0xf5e6,0xf5e7,0xdb89,0xdb8a,0xdb8b,0xdb8c,0xdb8d, +0xdb8e,0xf5be,0xdb8f,0xdb90,0xdb91,0xdb92,0xdb93,0xdb94, +0xdb95,0xdb96,0xdb97,0xdb98,0xdb99,0xdb9a,0xb1c4,0xdb9b, +0xdb9c,0xf5bf,0xdb9d,0xdb9e,0xb5c5,0xb2e4,0xdb9f,0xf5ec, +0xf5e9,0xdba0,0xb6d7,0xdc40,0xf5ed,0xdc41,0xf5ea,0xdc42, +0xdc43,0xdc44,0xdc45,0xdc46,0xf5eb,0xdc47,0xdc48,0xb4da, +0xdc49,0xd4ea,0xdc4a,0xdc4b,0xdc4c,0xf5ee,0xdc4d,0xb3f9, +0xdc4e,0xdc4f,0xdc50,0xdc51,0xdc52,0xdc53,0xdc54,0xf5ef, +0xf5f1,0xdc55,0xdc56,0xdc57,0xf5f0,0xdc58,0xdc59,0xdc5a, +0xdc5b,0xdc5c,0xdc5d,0xdc5e,0xf5f2,0xdc5f,0xf5f3,0xdc60, +0xdc61,0xdc62,0xdc63,0xdc64,0xdc65,0xdc66,0xdc67,0xdc68, +0xdc69,0xdc6a,0xdc6b,0xc9ed,0xb9aa,0xdc6c,0xdc6d,0xc7fb, +0xdc6e,0xdc6f,0xb6e3,0xdc70,0xdc71,0xdc72,0xdc73,0xdc74, +0xdc75,0xdc76,0xccc9,0xdc77,0xdc78,0xdc79,0xdc7a,0xdc7b, +0xdc7c,0xdc7d,0xdc7e,0xdc80,0xdc81,0xdc82,0xdc83,0xdc84, +0xdc85,0xdc86,0xdc87,0xdc88,0xdc89,0xdc8a,0xeaa6,0xdc8b, +0xdc8c,0xdc8d,0xdc8e,0xdc8f,0xdc90,0xdc91,0xdc92,0xdc93, +0xdc94,0xdc95,0xdc96,0xdc97,0xdc98,0xdc99,0xdc9a,0xdc9b, +0xdc9c,0xdc9d,0xdc9e,0xdc9f,0xdca0,0xdd40,0xdd41,0xdd42, +0xdd43,0xdd44,0xdd45,0xdd46,0xdd47,0xdd48,0xdd49,0xdd4a, +0xdd4b,0xdd4c,0xdd4d,0xdd4e,0xdd4f,0xdd50,0xdd51,0xdd52, +0xdd53,0xdd54,0xdd55,0xdd56,0xdd57,0xdd58,0xdd59,0xdd5a, +0xdd5b,0xdd5c,0xdd5d,0xdd5e,0xdd5f,0xdd60,0xdd61,0xdd62, +0xdd63,0xdd64,0xdd65,0xdd66,0xdd67,0xdd68,0xdd69,0xdd6a, +0xdd6b,0xdd6c,0xdd6d,0xdd6e,0xdd6f,0xdd70,0xdd71,0xdd72, +0xdd73,0xdd74,0xdd75,0xdd76,0xdd77,0xdd78,0xdd79,0xdd7a, +0xdd7b,0xdd7c,0xdd7d,0xdd7e,0xdd80,0xdd81,0xdd82,0xdd83, +0xdd84,0xdd85,0xdd86,0xdd87,0xdd88,0xdd89,0xdd8a,0xdd8b, +0xdd8c,0xdd8d,0xdd8e,0xdd8f,0xdd90,0xdd91,0xdd92,0xdd93, +0xdd94,0xdd95,0xdd96,0xdd97,0xdd98,0xdd99,0xdd9a,0xdd9b, +0xdd9c,0xdd9d,0xdd9e,0xdd9f,0xdda0,0xde40,0xde41,0xde42, +0xde43,0xde44,0xde45,0xde46,0xde47,0xde48,0xde49,0xde4a, +0xde4b,0xde4c,0xde4d,0xde4e,0xde4f,0xde50,0xde51,0xde52, +0xde53,0xde54,0xde55,0xde56,0xde57,0xde58,0xde59,0xde5a, +0xde5b,0xde5c,0xde5d,0xde5e,0xde5f,0xde60,0xb3b5,0xd4fe, +0xb9ec,0xd0f9,0xde61,0xe9ed,0xd7aa,0xe9ee,0xc2d6,0xc8ed, +0xbae4,0xe9ef,0xe9f0,0xe9f1,0xd6e1,0xe9f2,0xe9f3,0xe9f5, +0xe9f4,0xe9f6,0xe9f7,0xc7e1,0xe9f8,0xd4d8,0xe9f9,0xbdce, +0xde62,0xe9fa,0xe9fb,0xbdcf,0xe9fc,0xb8a8,0xc1be,0xe9fd, +0xb1b2,0xbbd4,0xb9f5,0xe9fe,0xde63,0xeaa1,0xeaa2,0xeaa3, +0xb7f8,0xbcad,0xde64,0xcae4,0xe0ce,0xd4af,0xcfbd,0xd5b7, +0xeaa4,0xd5de,0xeaa5,0xd0c1,0xb9bc,0xde65,0xb4c7,0xb1d9, +0xde66,0xde67,0xde68,0xc0b1,0xde69,0xde6a,0xde6b,0xde6c, +0xb1e6,0xb1e7,0xde6d,0xb1e8,0xde6e,0xde6f,0xde70,0xde71, +0xb3bd,0xc8e8,0xde72,0xde73,0xde74,0xde75,0xe5c1,0xde76, +0xde77,0xb1df,0xde78,0xde79,0xde7a,0xc1c9,0xb4ef,0xde7b, +0xde7c,0xc7a8,0xd3d8,0xde7d,0xc6f9,0xd1b8,0xde7e,0xb9fd, +0xc2f5,0xde80,0xde81,0xde82,0xde83,0xde84,0xd3ad,0xde85, +0xd4cb,0xbdfc,0xde86,0xe5c2,0xb7b5,0xe5c3,0xde87,0xde88, +0xbbb9,0xd5e2,0xde89,0xbdf8,0xd4b6,0xcea5,0xc1ac,0xb3d9, +0xde8a,0xde8b,0xccf6,0xde8c,0xe5c6,0xe5c4,0xe5c8,0xde8d, +0xe5ca,0xe5c7,0xb5cf,0xc6c8,0xde8e,0xb5fc,0xe5c5,0xde8f, +0xcaf6,0xde90,0xde91,0xe5c9,0xde92,0xde93,0xde94,0xc3d4, +0xb1c5,0xbca3,0xde95,0xde96,0xde97,0xd7b7,0xde98,0xde99, +0xcdcb,0xcbcd,0xcaca,0xccd3,0xe5cc,0xe5cb,0xc4e6,0xde9a, +0xde9b,0xd1a1,0xd1b7,0xe5cd,0xde9c,0xe5d0,0xde9d,0xcdb8, +0xd6f0,0xe5cf,0xb5dd,0xde9e,0xcdbe,0xde9f,0xe5d1,0xb6ba, +0xdea0,0xdf40,0xcda8,0xb9e4,0xdf41,0xcac5,0xb3d1,0xcbd9, +0xd4ec,0xe5d2,0xb7ea,0xdf42,0xdf43,0xdf44,0xe5ce,0xdf45, +0xdf46,0xdf47,0xdf48,0xdf49,0xdf4a,0xe5d5,0xb4fe,0xe5d6, +0xdf4b,0xdf4c,0xdf4d,0xdf4e,0xdf4f,0xe5d3,0xe5d4,0xdf50, +0xd2dd,0xdf51,0xdf52,0xc2df,0xb1c6,0xdf53,0xd3e2,0xdf54, +0xdf55,0xb6dd,0xcbec,0xdf56,0xe5d7,0xdf57,0xdf58,0xd3f6, +0xdf59,0xdf5a,0xdf5b,0xdf5c,0xdf5d,0xb1e9,0xdf5e,0xb6f4, +0xe5da,0xe5d8,0xe5d9,0xb5c0,0xdf5f,0xdf60,0xdf61,0xd2c5, +0xe5dc,0xdf62,0xdf63,0xe5de,0xdf64,0xdf65,0xdf66,0xdf67, +0xdf68,0xdf69,0xe5dd,0xc7b2,0xdf6a,0xd2a3,0xdf6b,0xdf6c, +0xe5db,0xdf6d,0xdf6e,0xdf6f,0xdf70,0xd4e2,0xd5da,0xdf71, +0xdf72,0xdf73,0xdf74,0xdf75,0xe5e0,0xd7f1,0xdf76,0xdf77, +0xdf78,0xdf79,0xdf7a,0xdf7b,0xdf7c,0xe5e1,0xdf7d,0xb1dc, +0xd1fb,0xdf7e,0xe5e2,0xe5e4,0xdf80,0xdf81,0xdf82,0xdf83, +0xe5e3,0xdf84,0xdf85,0xe5e5,0xdf86,0xdf87,0xdf88,0xdf89, +0xdf8a,0xd2d8,0xdf8b,0xb5cb,0xdf8c,0xe7df,0xdf8d,0xdaf5, +0xdf8e,0xdaf8,0xdf8f,0xdaf6,0xdf90,0xdaf7,0xdf91,0xdf92, +0xdf93,0xdafa,0xd0cf,0xc4c7,0xdf94,0xdf95,0xb0ee,0xdf96, +0xdf97,0xdf98,0xd0b0,0xdf99,0xdaf9,0xdf9a,0xd3ca,0xbaaa, +0xdba2,0xc7f1,0xdf9b,0xdafc,0xdafb,0xc9db,0xdafd,0xdf9c, +0xdba1,0xd7de,0xdafe,0xc1da,0xdf9d,0xdf9e,0xdba5,0xdf9f, +0xdfa0,0xd3f4,0xe040,0xe041,0xdba7,0xdba4,0xe042,0xdba8, +0xe043,0xe044,0xbdbc,0xe045,0xe046,0xe047,0xc0c9,0xdba3, +0xdba6,0xd6a3,0xe048,0xdba9,0xe049,0xe04a,0xe04b,0xdbad, +0xe04c,0xe04d,0xe04e,0xdbae,0xdbac,0xbac2,0xe04f,0xe050, +0xe051,0xbfa4,0xdbab,0xe052,0xe053,0xe054,0xdbaa,0xd4c7, +0xb2bf,0xe055,0xe056,0xdbaf,0xe057,0xb9f9,0xe058,0xdbb0, +0xe059,0xe05a,0xe05b,0xe05c,0xb3bb,0xe05d,0xe05e,0xe05f, +0xb5a6,0xe060,0xe061,0xe062,0xe063,0xb6bc,0xdbb1,0xe064, +0xe065,0xe066,0xb6f5,0xe067,0xdbb2,0xe068,0xe069,0xe06a, +0xe06b,0xe06c,0xe06d,0xe06e,0xe06f,0xe070,0xe071,0xe072, +0xe073,0xe074,0xe075,0xe076,0xe077,0xe078,0xe079,0xe07a, +0xe07b,0xb1c9,0xe07c,0xe07d,0xe07e,0xe080,0xdbb4,0xe081, +0xe082,0xe083,0xdbb3,0xdbb5,0xe084,0xe085,0xe086,0xe087, +0xe088,0xe089,0xe08a,0xe08b,0xe08c,0xe08d,0xe08e,0xdbb7, +0xe08f,0xdbb6,0xe090,0xe091,0xe092,0xe093,0xe094,0xe095, +0xe096,0xdbb8,0xe097,0xe098,0xe099,0xe09a,0xe09b,0xe09c, +0xe09d,0xe09e,0xe09f,0xdbb9,0xe0a0,0xe140,0xdbba,0xe141, +0xe142,0xd3cf,0xf4fa,0xc7f5,0xd7c3,0xc5e4,0xf4fc,0xf4fd, +0xf4fb,0xe143,0xbec6,0xe144,0xe145,0xe146,0xe147,0xd0ef, +0xe148,0xe149,0xb7d3,0xe14a,0xe14b,0xd4cd,0xccaa,0xe14c, +0xe14d,0xf5a2,0xf5a1,0xbaa8,0xf4fe,0xcbd6,0xe14e,0xe14f, +0xe150,0xf5a4,0xc0d2,0xe151,0xb3ea,0xe152,0xcdaa,0xf5a5, +0xf5a3,0xbdb4,0xf5a8,0xe153,0xf5a9,0xbdcd,0xc3b8,0xbfe1, +0xcbe1,0xf5aa,0xe154,0xe155,0xe156,0xf5a6,0xf5a7,0xc4f0, +0xe157,0xe158,0xe159,0xe15a,0xe15b,0xf5ac,0xe15c,0xb4bc, +0xe15d,0xd7ed,0xe15e,0xb4d7,0xf5ab,0xf5ae,0xe15f,0xe160, +0xf5ad,0xf5af,0xd0d1,0xe161,0xe162,0xe163,0xe164,0xe165, +0xe166,0xe167,0xc3d1,0xc8a9,0xe168,0xe169,0xe16a,0xe16b, +0xe16c,0xe16d,0xf5b0,0xf5b1,0xe16e,0xe16f,0xe170,0xe171, +0xe172,0xe173,0xf5b2,0xe174,0xe175,0xf5b3,0xf5b4,0xf5b5, +0xe176,0xe177,0xe178,0xe179,0xf5b7,0xf5b6,0xe17a,0xe17b, +0xe17c,0xe17d,0xf5b8,0xe17e,0xe180,0xe181,0xe182,0xe183, +0xe184,0xe185,0xe186,0xe187,0xe188,0xe189,0xe18a,0xb2c9, +0xe18b,0xd3d4,0xcacd,0xe18c,0xc0ef,0xd6d8,0xd2b0,0xc1bf, +0xe18d,0xbdf0,0xe18e,0xe18f,0xe190,0xe191,0xe192,0xe193, +0xe194,0xe195,0xe196,0xe197,0xb8aa,0xe198,0xe199,0xe19a, +0xe19b,0xe19c,0xe19d,0xe19e,0xe19f,0xe1a0,0xe240,0xe241, +0xe242,0xe243,0xe244,0xe245,0xe246,0xe247,0xe248,0xe249, +0xe24a,0xe24b,0xe24c,0xe24d,0xe24e,0xe24f,0xe250,0xe251, +0xe252,0xe253,0xe254,0xe255,0xe256,0xe257,0xe258,0xe259, +0xe25a,0xe25b,0xe25c,0xe25d,0xe25e,0xe25f,0xe260,0xe261, +0xe262,0xe263,0xe264,0xe265,0xe266,0xe267,0xe268,0xe269, +0xe26a,0xe26b,0xe26c,0xe26d,0xe26e,0xe26f,0xe270,0xe271, +0xe272,0xe273,0xe274,0xe275,0xe276,0xe277,0xe278,0xe279, +0xe27a,0xe27b,0xe27c,0xe27d,0xe27e,0xe280,0xe281,0xe282, +0xe283,0xe284,0xe285,0xe286,0xe287,0xe288,0xe289,0xe28a, +0xe28b,0xe28c,0xe28d,0xe28e,0xe28f,0xe290,0xe291,0xe292, +0xe293,0xe294,0xe295,0xe296,0xe297,0xe298,0xe299,0xe29a, +0xe29b,0xe29c,0xe29d,0xe29e,0xe29f,0xe2a0,0xe340,0xe341, +0xe342,0xe343,0xe344,0xe345,0xe346,0xe347,0xe348,0xe349, +0xe34a,0xe34b,0xe34c,0xe34d,0xe34e,0xe34f,0xe350,0xe351, +0xe352,0xe353,0xe354,0xe355,0xe356,0xe357,0xe358,0xe359, +0xe35a,0xe35b,0xe35c,0xe35d,0xe35e,0xe35f,0xe360,0xe361, +0xe362,0xe363,0xe364,0xe365,0xe366,0xe367,0xe368,0xe369, +0xe36a,0xe36b,0xe36c,0xe36d,0xbcf8,0xe36e,0xe36f,0xe370, +0xe371,0xe372,0xe373,0xe374,0xe375,0xe376,0xe377,0xe378, +0xe379,0xe37a,0xe37b,0xe37c,0xe37d,0xe37e,0xe380,0xe381, +0xe382,0xe383,0xe384,0xe385,0xe386,0xe387,0xf6c6,0xe388, +0xe389,0xe38a,0xe38b,0xe38c,0xe38d,0xe38e,0xe38f,0xe390, +0xe391,0xe392,0xe393,0xe394,0xe395,0xe396,0xe397,0xe398, +0xe399,0xe39a,0xe39b,0xe39c,0xe39d,0xe39e,0xe39f,0xe3a0, +0xe440,0xe441,0xe442,0xe443,0xe444,0xe445,0xf6c7,0xe446, +0xe447,0xe448,0xe449,0xe44a,0xe44b,0xe44c,0xe44d,0xe44e, +0xe44f,0xe450,0xe451,0xe452,0xe453,0xe454,0xe455,0xe456, +0xe457,0xe458,0xe459,0xe45a,0xe45b,0xe45c,0xe45d,0xe45e, +0xf6c8,0xe45f,0xe460,0xe461,0xe462,0xe463,0xe464,0xe465, +0xe466,0xe467,0xe468,0xe469,0xe46a,0xe46b,0xe46c,0xe46d, +0xe46e,0xe46f,0xe470,0xe471,0xe472,0xe473,0xe474,0xe475, +0xe476,0xe477,0xe478,0xe479,0xe47a,0xe47b,0xe47c,0xe47d, +0xe47e,0xe480,0xe481,0xe482,0xe483,0xe484,0xe485,0xe486, +0xe487,0xe488,0xe489,0xe48a,0xe48b,0xe48c,0xe48d,0xe48e, +0xe48f,0xe490,0xe491,0xe492,0xe493,0xe494,0xe495,0xe496, +0xe497,0xe498,0xe499,0xe49a,0xe49b,0xe49c,0xe49d,0xe49e, +0xe49f,0xe4a0,0xe540,0xe541,0xe542,0xe543,0xe544,0xe545, +0xe546,0xe547,0xe548,0xe549,0xe54a,0xe54b,0xe54c,0xe54d, +0xe54e,0xe54f,0xe550,0xe551,0xe552,0xe553,0xe554,0xe555, +0xe556,0xe557,0xe558,0xe559,0xe55a,0xe55b,0xe55c,0xe55d, +0xe55e,0xe55f,0xe560,0xe561,0xe562,0xe563,0xe564,0xe565, +0xe566,0xe567,0xe568,0xe569,0xe56a,0xe56b,0xe56c,0xe56d, +0xe56e,0xe56f,0xe570,0xe571,0xe572,0xe573,0xf6c9,0xe574, +0xe575,0xe576,0xe577,0xe578,0xe579,0xe57a,0xe57b,0xe57c, +0xe57d,0xe57e,0xe580,0xe581,0xe582,0xe583,0xe584,0xe585, +0xe586,0xe587,0xe588,0xe589,0xe58a,0xe58b,0xe58c,0xe58d, +0xe58e,0xe58f,0xe590,0xe591,0xe592,0xe593,0xe594,0xe595, +0xe596,0xe597,0xe598,0xe599,0xe59a,0xe59b,0xe59c,0xe59d, +0xe59e,0xe59f,0xf6ca,0xe5a0,0xe640,0xe641,0xe642,0xe643, +0xe644,0xe645,0xe646,0xe647,0xe648,0xe649,0xe64a,0xe64b, +0xe64c,0xe64d,0xe64e,0xe64f,0xe650,0xe651,0xe652,0xe653, +0xe654,0xe655,0xe656,0xe657,0xe658,0xe659,0xe65a,0xe65b, +0xe65c,0xe65d,0xe65e,0xe65f,0xe660,0xe661,0xe662,0xf6cc, +0xe663,0xe664,0xe665,0xe666,0xe667,0xe668,0xe669,0xe66a, +0xe66b,0xe66c,0xe66d,0xe66e,0xe66f,0xe670,0xe671,0xe672, +0xe673,0xe674,0xe675,0xe676,0xe677,0xe678,0xe679,0xe67a, +0xe67b,0xe67c,0xe67d,0xe67e,0xe680,0xe681,0xe682,0xe683, +0xe684,0xe685,0xe686,0xe687,0xe688,0xe689,0xe68a,0xe68b, +0xe68c,0xe68d,0xe68e,0xe68f,0xe690,0xe691,0xe692,0xe693, +0xe694,0xe695,0xe696,0xe697,0xe698,0xe699,0xe69a,0xe69b, +0xe69c,0xe69d,0xf6cb,0xe69e,0xe69f,0xe6a0,0xe740,0xe741, +0xe742,0xe743,0xe744,0xe745,0xe746,0xe747,0xf7e9,0xe748, +0xe749,0xe74a,0xe74b,0xe74c,0xe74d,0xe74e,0xe74f,0xe750, +0xe751,0xe752,0xe753,0xe754,0xe755,0xe756,0xe757,0xe758, +0xe759,0xe75a,0xe75b,0xe75c,0xe75d,0xe75e,0xe75f,0xe760, +0xe761,0xe762,0xe763,0xe764,0xe765,0xe766,0xe767,0xe768, +0xe769,0xe76a,0xe76b,0xe76c,0xe76d,0xe76e,0xe76f,0xe770, +0xe771,0xe772,0xe773,0xe774,0xe775,0xe776,0xe777,0xe778, +0xe779,0xe77a,0xe77b,0xe77c,0xe77d,0xe77e,0xe780,0xe781, +0xe782,0xe783,0xe784,0xe785,0xe786,0xe787,0xe788,0xe789, +0xe78a,0xe78b,0xe78c,0xe78d,0xe78e,0xe78f,0xe790,0xe791, +0xe792,0xe793,0xe794,0xe795,0xe796,0xe797,0xe798,0xe799, +0xe79a,0xe79b,0xe79c,0xe79d,0xe79e,0xe79f,0xe7a0,0xe840, +0xe841,0xe842,0xe843,0xe844,0xe845,0xe846,0xe847,0xe848, +0xe849,0xe84a,0xe84b,0xe84c,0xe84d,0xe84e,0xf6cd,0xe84f, +0xe850,0xe851,0xe852,0xe853,0xe854,0xe855,0xe856,0xe857, +0xe858,0xe859,0xe85a,0xe85b,0xe85c,0xe85d,0xe85e,0xe85f, +0xe860,0xe861,0xe862,0xe863,0xe864,0xe865,0xe866,0xe867, +0xe868,0xe869,0xe86a,0xe86b,0xe86c,0xe86d,0xe86e,0xe86f, +0xe870,0xe871,0xe872,0xe873,0xe874,0xe875,0xe876,0xe877, +0xe878,0xe879,0xe87a,0xf6ce,0xe87b,0xe87c,0xe87d,0xe87e, +0xe880,0xe881,0xe882,0xe883,0xe884,0xe885,0xe886,0xe887, +0xe888,0xe889,0xe88a,0xe88b,0xe88c,0xe88d,0xe88e,0xe88f, +0xe890,0xe891,0xe892,0xe893,0xe894,0xeec4,0xeec5,0xeec6, +0xd5eb,0xb6a4,0xeec8,0xeec7,0xeec9,0xeeca,0xc7a5,0xeecb, +0xeecc,0xe895,0xb7b0,0xb5f6,0xeecd,0xeecf,0xe896,0xeece, +0xe897,0xb8c6,0xeed0,0xeed1,0xeed2,0xb6db,0xb3ae,0xd6d3, +0xc4c6,0xb1b5,0xb8d6,0xeed3,0xeed4,0xd4bf,0xc7d5,0xbefb, +0xced9,0xb9b3,0xeed6,0xeed5,0xeed8,0xeed7,0xc5a5,0xeed9, +0xeeda,0xc7ae,0xeedb,0xc7af,0xeedc,0xb2a7,0xeedd,0xeede, +0xeedf,0xeee0,0xeee1,0xd7ea,0xeee2,0xeee3,0xbcd8,0xeee4, +0xd3cb,0xccfa,0xb2ac,0xc1e5,0xeee5,0xc7a6,0xc3ad,0xe898, +0xeee6,0xeee7,0xeee8,0xeee9,0xeeea,0xeeeb,0xeeec,0xe899, +0xeeed,0xeeee,0xeeef,0xe89a,0xe89b,0xeef0,0xeef1,0xeef2, +0xeef4,0xeef3,0xe89c,0xeef5,0xcdad,0xc2c1,0xeef6,0xeef7, +0xeef8,0xd5a1,0xeef9,0xcfb3,0xeefa,0xeefb,0xe89d,0xeefc, +0xeefd,0xefa1,0xeefe,0xefa2,0xb8f5,0xc3fa,0xefa3,0xefa4, +0xbdc2,0xd2bf,0xb2f9,0xefa5,0xefa6,0xefa7,0xd2f8,0xefa8, +0xd6fd,0xefa9,0xc6cc,0xe89e,0xefaa,0xefab,0xc1b4,0xefac, +0xcffa,0xcbf8,0xefae,0xefad,0xb3fa,0xb9f8,0xefaf,0xefb0, +0xd0e2,0xefb1,0xefb2,0xb7e6,0xd0bf,0xefb3,0xefb4,0xefb5, +0xc8f1,0xcce0,0xefb6,0xefb7,0xefb8,0xefb9,0xefba,0xd5e0, +0xefbb,0xb4ed,0xc3aa,0xefbc,0xe89f,0xefbd,0xefbe,0xefbf, +0xe8a0,0xcefd,0xefc0,0xc2e0,0xb4b8,0xd7b6,0xbdf5,0xe940, +0xcfc7,0xefc3,0xefc1,0xefc2,0xefc4,0xb6a7,0xbcfc,0xbee2, +0xc3cc,0xefc5,0xefc6,0xe941,0xefc7,0xefcf,0xefc8,0xefc9, +0xefca,0xc7c2,0xeff1,0xb6cd,0xefcb,0xe942,0xefcc,0xefcd, +0xb6c6,0xc3be,0xefce,0xe943,0xefd0,0xefd1,0xefd2,0xd5f2, +0xe944,0xefd3,0xc4f7,0xe945,0xefd4,0xc4f8,0xefd5,0xefd6, +0xb8e4,0xb0f7,0xefd7,0xefd8,0xefd9,0xe946,0xefda,0xefdb, +0xefdc,0xefdd,0xe947,0xefde,0xbeb5,0xefe1,0xefdf,0xefe0, +0xe948,0xefe2,0xefe3,0xc1cd,0xefe4,0xefe5,0xefe6,0xefe7, +0xefe8,0xefe9,0xefea,0xefeb,0xefec,0xc0d8,0xe949,0xefed, +0xc1ad,0xefee,0xefef,0xeff0,0xe94a,0xe94b,0xcfe2,0xe94c, +0xe94d,0xe94e,0xe94f,0xe950,0xe951,0xe952,0xe953,0xb3a4, +0xe954,0xe955,0xe956,0xe957,0xe958,0xe959,0xe95a,0xe95b, +0xe95c,0xe95d,0xe95e,0xe95f,0xe960,0xe961,0xe962,0xe963, +0xe964,0xe965,0xe966,0xe967,0xe968,0xe969,0xe96a,0xe96b, +0xe96c,0xe96d,0xe96e,0xe96f,0xe970,0xe971,0xe972,0xe973, +0xe974,0xe975,0xe976,0xe977,0xe978,0xe979,0xe97a,0xe97b, +0xe97c,0xe97d,0xe97e,0xe980,0xe981,0xe982,0xe983,0xe984, +0xe985,0xe986,0xe987,0xe988,0xe989,0xe98a,0xe98b,0xe98c, +0xe98d,0xe98e,0xe98f,0xe990,0xe991,0xe992,0xe993,0xe994, +0xe995,0xe996,0xe997,0xe998,0xe999,0xe99a,0xe99b,0xe99c, +0xe99d,0xe99e,0xe99f,0xe9a0,0xea40,0xea41,0xea42,0xea43, +0xea44,0xea45,0xea46,0xea47,0xea48,0xea49,0xea4a,0xea4b, +0xea4c,0xea4d,0xea4e,0xea4f,0xea50,0xea51,0xea52,0xea53, +0xea54,0xea55,0xea56,0xea57,0xea58,0xea59,0xea5a,0xea5b, +0xc3c5,0xe3c5,0xc9c1,0xe3c6,0xea5c,0xb1d5,0xceca,0xb4b3, +0xc8f2,0xe3c7,0xcfd0,0xe3c8,0xbce4,0xe3c9,0xe3ca,0xc3c6, +0xd5a2,0xc4d6,0xb9eb,0xcec5,0xe3cb,0xc3f6,0xe3cc,0xea5d, +0xb7a7,0xb8f3,0xbad2,0xe3cd,0xe3ce,0xd4c4,0xe3cf,0xea5e, +0xe3d0,0xd1cb,0xe3d1,0xe3d2,0xe3d3,0xe3d4,0xd1d6,0xe3d5, +0xb2fb,0xc0bb,0xe3d6,0xea5f,0xc0ab,0xe3d7,0xe3d8,0xe3d9, +0xea60,0xe3da,0xe3db,0xea61,0xb8b7,0xdae2,0xea62,0xb6d3, +0xea63,0xdae4,0xdae3,0xea64,0xea65,0xea66,0xea67,0xea68, +0xea69,0xea6a,0xdae6,0xea6b,0xea6c,0xea6d,0xc8ee,0xea6e, +0xea6f,0xdae5,0xb7c0,0xd1f4,0xd2f5,0xd5f3,0xbdd7,0xea70, +0xea71,0xea72,0xea73,0xd7e8,0xdae8,0xdae7,0xea74,0xb0a2, +0xcdd3,0xea75,0xdae9,0xea76,0xb8bd,0xbcca,0xc2bd,0xc2a4, +0xb3c2,0xdaea,0xea77,0xc2aa,0xc4b0,0xbdb5,0xea78,0xea79, +0xcfde,0xea7a,0xea7b,0xea7c,0xdaeb,0xc9c2,0xea7d,0xea7e, +0xea80,0xea81,0xea82,0xb1dd,0xea83,0xea84,0xea85,0xdaec, +0xea86,0xb6b8,0xd4ba,0xea87,0xb3fd,0xea88,0xea89,0xdaed, +0xd4c9,0xcfd5,0xc5e3,0xea8a,0xdaee,0xea8b,0xea8c,0xea8d, +0xea8e,0xea8f,0xdaef,0xea90,0xdaf0,0xc1ea,0xccd5,0xcfdd, +0xea91,0xea92,0xea93,0xea94,0xea95,0xea96,0xea97,0xea98, +0xea99,0xea9a,0xea9b,0xea9c,0xea9d,0xd3e7,0xc2a1,0xea9e, +0xdaf1,0xea9f,0xeaa0,0xcbe5,0xeb40,0xdaf2,0xeb41,0xcbe6, +0xd2fe,0xeb42,0xeb43,0xeb44,0xb8f4,0xeb45,0xeb46,0xdaf3, +0xb0af,0xcfb6,0xeb47,0xeb48,0xd5cf,0xeb49,0xeb4a,0xeb4b, +0xeb4c,0xeb4d,0xeb4e,0xeb4f,0xeb50,0xeb51,0xeb52,0xcbed, +0xeb53,0xeb54,0xeb55,0xeb56,0xeb57,0xeb58,0xeb59,0xeb5a, +0xdaf4,0xeb5b,0xeb5c,0xe3c4,0xeb5d,0xeb5e,0xc1a5,0xeb5f, +0xeb60,0xf6bf,0xeb61,0xeb62,0xf6c0,0xf6c1,0xc4d1,0xeb63, +0xc8b8,0xd1e3,0xeb64,0xeb65,0xd0db,0xd1c5,0xbcaf,0xb9cd, +0xeb66,0xeff4,0xeb67,0xeb68,0xb4c6,0xd3ba,0xf6c2,0xb3fb, +0xeb69,0xeb6a,0xf6c3,0xeb6b,0xeb6c,0xb5f1,0xeb6d,0xeb6e, +0xeb6f,0xeb70,0xeb71,0xeb72,0xeb73,0xeb74,0xeb75,0xeb76, +0xf6c5,0xeb77,0xeb78,0xeb79,0xeb7a,0xeb7b,0xeb7c,0xeb7d, +0xd3ea,0xf6a7,0xd1a9,0xeb7e,0xeb80,0xeb81,0xeb82,0xf6a9, +0xeb83,0xeb84,0xeb85,0xf6a8,0xeb86,0xeb87,0xc1e3,0xc0d7, +0xeb88,0xb1a2,0xeb89,0xeb8a,0xeb8b,0xeb8c,0xceed,0xeb8d, +0xd0e8,0xf6ab,0xeb8e,0xeb8f,0xcff6,0xeb90,0xf6aa,0xd5f0, +0xf6ac,0xc3b9,0xeb91,0xeb92,0xeb93,0xbbf4,0xf6ae,0xf6ad, +0xeb94,0xeb95,0xeb96,0xc4de,0xeb97,0xeb98,0xc1d8,0xeb99, +0xeb9a,0xeb9b,0xeb9c,0xeb9d,0xcbaa,0xeb9e,0xcfbc,0xeb9f, +0xeba0,0xec40,0xec41,0xec42,0xec43,0xec44,0xec45,0xec46, +0xec47,0xec48,0xf6af,0xec49,0xec4a,0xf6b0,0xec4b,0xec4c, +0xf6b1,0xec4d,0xc2b6,0xec4e,0xec4f,0xec50,0xec51,0xec52, +0xb0d4,0xc5f9,0xec53,0xec54,0xec55,0xec56,0xf6b2,0xec57, +0xec58,0xec59,0xec5a,0xec5b,0xec5c,0xec5d,0xec5e,0xec5f, +0xec60,0xec61,0xec62,0xec63,0xec64,0xec65,0xec66,0xec67, +0xec68,0xec69,0xc7e0,0xf6a6,0xec6a,0xec6b,0xbeb8,0xec6c, +0xec6d,0xbeb2,0xec6e,0xb5e5,0xec6f,0xec70,0xb7c7,0xec71, +0xbfbf,0xc3d2,0xc3e6,0xec72,0xec73,0xd8cc,0xec74,0xec75, +0xec76,0xb8ef,0xec77,0xec78,0xec79,0xec7a,0xec7b,0xec7c, +0xec7d,0xec7e,0xec80,0xbdf9,0xd1a5,0xec81,0xb0d0,0xec82, +0xec83,0xec84,0xec85,0xec86,0xf7b0,0xec87,0xec88,0xec89, +0xec8a,0xec8b,0xec8c,0xec8d,0xec8e,0xf7b1,0xec8f,0xec90, +0xec91,0xec92,0xec93,0xd0ac,0xec94,0xb0b0,0xec95,0xec96, +0xec97,0xf7b2,0xf7b3,0xec98,0xf7b4,0xec99,0xec9a,0xec9b, +0xc7ca,0xec9c,0xec9d,0xec9e,0xec9f,0xeca0,0xed40,0xed41, +0xbecf,0xed42,0xed43,0xf7b7,0xed44,0xed45,0xed46,0xed47, +0xed48,0xed49,0xed4a,0xf7b6,0xed4b,0xb1de,0xed4c,0xf7b5, +0xed4d,0xed4e,0xf7b8,0xed4f,0xf7b9,0xed50,0xed51,0xed52, +0xed53,0xed54,0xed55,0xed56,0xed57,0xed58,0xed59,0xed5a, +0xed5b,0xed5c,0xed5d,0xed5e,0xed5f,0xed60,0xed61,0xed62, +0xed63,0xed64,0xed65,0xed66,0xed67,0xed68,0xed69,0xed6a, +0xed6b,0xed6c,0xed6d,0xed6e,0xed6f,0xed70,0xed71,0xed72, +0xed73,0xed74,0xed75,0xed76,0xed77,0xed78,0xed79,0xed7a, +0xed7b,0xed7c,0xed7d,0xed7e,0xed80,0xed81,0xcea4,0xc8cd, +0xed82,0xbaab,0xe8b8,0xe8b9,0xe8ba,0xbec2,0xed83,0xed84, +0xed85,0xed86,0xed87,0xd2f4,0xed88,0xd4cf,0xc9d8,0xed89, +0xed8a,0xed8b,0xed8c,0xed8d,0xed8e,0xed8f,0xed90,0xed91, +0xed92,0xed93,0xed94,0xed95,0xed96,0xed97,0xed98,0xed99, +0xed9a,0xed9b,0xed9c,0xed9d,0xed9e,0xed9f,0xeda0,0xee40, +0xee41,0xee42,0xee43,0xee44,0xee45,0xee46,0xee47,0xee48, +0xee49,0xee4a,0xee4b,0xee4c,0xee4d,0xee4e,0xee4f,0xee50, +0xee51,0xee52,0xee53,0xee54,0xee55,0xee56,0xee57,0xee58, +0xee59,0xee5a,0xee5b,0xee5c,0xee5d,0xee5e,0xee5f,0xee60, +0xee61,0xee62,0xee63,0xee64,0xee65,0xee66,0xee67,0xee68, +0xee69,0xee6a,0xee6b,0xee6c,0xee6d,0xee6e,0xee6f,0xee70, +0xee71,0xee72,0xee73,0xee74,0xee75,0xee76,0xee77,0xee78, +0xee79,0xee7a,0xee7b,0xee7c,0xee7d,0xee7e,0xee80,0xee81, +0xee82,0xee83,0xee84,0xee85,0xee86,0xee87,0xee88,0xee89, +0xee8a,0xee8b,0xee8c,0xee8d,0xee8e,0xee8f,0xee90,0xee91, +0xee92,0xee93,0xee94,0xee95,0xee96,0xee97,0xee98,0xee99, +0xee9a,0xee9b,0xee9c,0xee9d,0xee9e,0xee9f,0xeea0,0xef40, +0xef41,0xef42,0xef43,0xef44,0xef45,0xd2b3,0xb6a5,0xc7ea, +0xf1fc,0xcfee,0xcbb3,0xd0eb,0xe7ef,0xcde7,0xb9cb,0xb6d9, +0xf1fd,0xb0e4,0xcbcc,0xf1fe,0xd4a4,0xc2ad,0xc1ec,0xc6c4, +0xbeb1,0xf2a1,0xbcd5,0xef46,0xf2a2,0xf2a3,0xef47,0xf2a4, +0xd2c3,0xc6b5,0xef48,0xcdc7,0xf2a5,0xef49,0xd3b1,0xbfc5, +0xcce2,0xef4a,0xf2a6,0xf2a7,0xd1d5,0xb6ee,0xf2a8,0xf2a9, +0xb5df,0xf2aa,0xf2ab,0xef4b,0xb2fc,0xf2ac,0xf2ad,0xc8a7, +0xef4c,0xef4d,0xef4e,0xef4f,0xef50,0xef51,0xef52,0xef53, +0xef54,0xef55,0xef56,0xef57,0xef58,0xef59,0xef5a,0xef5b, +0xef5c,0xef5d,0xef5e,0xef5f,0xef60,0xef61,0xef62,0xef63, +0xef64,0xef65,0xef66,0xef67,0xef68,0xef69,0xef6a,0xef6b, +0xef6c,0xef6d,0xef6e,0xef6f,0xef70,0xef71,0xb7e7,0xef72, +0xef73,0xeca9,0xecaa,0xecab,0xef74,0xecac,0xef75,0xef76, +0xc6ae,0xecad,0xecae,0xef77,0xef78,0xef79,0xb7c9,0xcab3, +0xef7a,0xef7b,0xef7c,0xef7d,0xef7e,0xef80,0xef81,0xe2b8, +0xf7cf,0xef82,0xef83,0xef84,0xef85,0xef86,0xef87,0xef88, +0xef89,0xef8a,0xef8b,0xef8c,0xef8d,0xef8e,0xef8f,0xef90, +0xef91,0xef92,0xef93,0xef94,0xef95,0xef96,0xef97,0xef98, +0xef99,0xef9a,0xef9b,0xef9c,0xef9d,0xef9e,0xef9f,0xefa0, +0xf040,0xf041,0xf042,0xf043,0xf044,0xf7d0,0xf045,0xf046, +0xb2cd,0xf047,0xf048,0xf049,0xf04a,0xf04b,0xf04c,0xf04d, +0xf04e,0xf04f,0xf050,0xf051,0xf052,0xf053,0xf054,0xf055, +0xf056,0xf057,0xf058,0xf059,0xf05a,0xf05b,0xf05c,0xf05d, +0xf05e,0xf05f,0xf060,0xf061,0xf062,0xf063,0xf7d1,0xf064, +0xf065,0xf066,0xf067,0xf068,0xf069,0xf06a,0xf06b,0xf06c, +0xf06d,0xf06e,0xf06f,0xf070,0xf071,0xf072,0xf073,0xf074, +0xf075,0xf076,0xf077,0xf078,0xf079,0xf07a,0xf07b,0xf07c, +0xf07d,0xf07e,0xf080,0xf081,0xf082,0xf083,0xf084,0xf085, +0xf086,0xf087,0xf088,0xf089,0xf7d3,0xf7d2,0xf08a,0xf08b, +0xf08c,0xf08d,0xf08e,0xf08f,0xf090,0xf091,0xf092,0xf093, +0xf094,0xf095,0xf096,0xe2bb,0xf097,0xbca2,0xf098,0xe2bc, +0xe2bd,0xe2be,0xe2bf,0xe2c0,0xe2c1,0xb7b9,0xd2fb,0xbda4, +0xcace,0xb1a5,0xcbc7,0xf099,0xe2c2,0xb6fc,0xc8c4,0xe2c3, +0xf09a,0xf09b,0xbdc8,0xf09c,0xb1fd,0xe2c4,0xf09d,0xb6f6, +0xe2c5,0xc4d9,0xf09e,0xf09f,0xe2c6,0xcfda,0xb9dd,0xe2c7, +0xc0a1,0xf0a0,0xe2c8,0xb2f6,0xf140,0xe2c9,0xf141,0xc1f3, +0xe2ca,0xe2cb,0xc2f8,0xe2cc,0xe2cd,0xe2ce,0xcad7,0xd8b8, +0xd9e5,0xcfe3,0xf142,0xf143,0xf144,0xf145,0xf146,0xf147, +0xf148,0xf149,0xf14a,0xf14b,0xf14c,0xf0a5,0xf14d,0xf14e, +0xdcb0,0xf14f,0xf150,0xf151,0xf152,0xf153,0xf154,0xf155, +0xf156,0xf157,0xf158,0xf159,0xf15a,0xf15b,0xf15c,0xf15d, +0xf15e,0xf15f,0xf160,0xf161,0xf162,0xf163,0xf164,0xf165, +0xf166,0xf167,0xf168,0xf169,0xf16a,0xf16b,0xf16c,0xf16d, +0xf16e,0xf16f,0xf170,0xf171,0xf172,0xf173,0xf174,0xf175, +0xf176,0xf177,0xf178,0xf179,0xf17a,0xf17b,0xf17c,0xf17d, +0xf17e,0xf180,0xf181,0xf182,0xf183,0xf184,0xf185,0xf186, +0xf187,0xf188,0xf189,0xf18a,0xf18b,0xf18c,0xf18d,0xf18e, +0xf18f,0xf190,0xf191,0xf192,0xf193,0xf194,0xf195,0xf196, +0xf197,0xf198,0xf199,0xf19a,0xf19b,0xf19c,0xf19d,0xf19e, +0xf19f,0xf1a0,0xf240,0xf241,0xf242,0xf243,0xf244,0xf245, +0xf246,0xf247,0xf248,0xf249,0xf24a,0xf24b,0xf24c,0xf24d, +0xf24e,0xf24f,0xf250,0xf251,0xf252,0xf253,0xf254,0xf255, +0xf256,0xf257,0xf258,0xf259,0xf25a,0xf25b,0xf25c,0xf25d, +0xf25e,0xf25f,0xf260,0xf261,0xf262,0xf263,0xf264,0xf265, +0xf266,0xf267,0xf268,0xf269,0xf26a,0xf26b,0xf26c,0xf26d, +0xf26e,0xf26f,0xf270,0xf271,0xf272,0xf273,0xf274,0xf275, +0xf276,0xf277,0xf278,0xf279,0xf27a,0xf27b,0xf27c,0xf27d, +0xf27e,0xf280,0xf281,0xf282,0xf283,0xf284,0xf285,0xf286, +0xf287,0xf288,0xf289,0xf28a,0xf28b,0xf28c,0xf28d,0xf28e, +0xf28f,0xf290,0xf291,0xf292,0xf293,0xf294,0xf295,0xf296, +0xf297,0xf298,0xf299,0xf29a,0xf29b,0xf29c,0xf29d,0xf29e, +0xf29f,0xf2a0,0xf340,0xf341,0xf342,0xf343,0xf344,0xf345, +0xf346,0xf347,0xf348,0xf349,0xf34a,0xf34b,0xf34c,0xf34d, +0xf34e,0xf34f,0xf350,0xf351,0xc2ed,0xd4a6,0xcdd4,0xd1b1, +0xb3db,0xc7fd,0xf352,0xb2b5,0xc2bf,0xe6e0,0xcabb,0xe6e1, +0xe6e2,0xbed4,0xe6e3,0xd7a4,0xcdd5,0xe6e5,0xbcdd,0xe6e4, +0xe6e6,0xe6e7,0xc2ee,0xf353,0xbdbe,0xe6e8,0xc2e6,0xbaa7, +0xe6e9,0xf354,0xe6ea,0xb3d2,0xd1e9,0xf355,0xf356,0xbfa5, +0xe6eb,0xc6ef,0xe6ec,0xe6ed,0xf357,0xf358,0xe6ee,0xc6ad, +0xe6ef,0xf359,0xc9a7,0xe6f0,0xe6f1,0xe6f2,0xe5b9,0xe6f3, +0xe6f4,0xc2e2,0xe6f5,0xe6f6,0xd6e8,0xe6f7,0xf35a,0xe6f8, +0xb9c7,0xf35b,0xf35c,0xf35d,0xf35e,0xf35f,0xf360,0xf361, +0xf7bb,0xf7ba,0xf362,0xf363,0xf364,0xf365,0xf7be,0xf7bc, +0xbaa1,0xf366,0xf7bf,0xf367,0xf7c0,0xf368,0xf369,0xf36a, +0xf7c2,0xf7c1,0xf7c4,0xf36b,0xf36c,0xf7c3,0xf36d,0xf36e, +0xf36f,0xf370,0xf371,0xf7c5,0xf7c6,0xf372,0xf373,0xf374, +0xf375,0xf7c7,0xf376,0xcbe8,0xf377,0xf378,0xf379,0xf37a, +0xb8df,0xf37b,0xf37c,0xf37d,0xf37e,0xf380,0xf381,0xf7d4, +0xf382,0xf7d5,0xf383,0xf384,0xf385,0xf386,0xf7d6,0xf387, +0xf388,0xf389,0xf38a,0xf7d8,0xf38b,0xf7da,0xf38c,0xf7d7, +0xf38d,0xf38e,0xf38f,0xf390,0xf391,0xf392,0xf393,0xf394, +0xf395,0xf7db,0xf396,0xf7d9,0xf397,0xf398,0xf399,0xf39a, +0xf39b,0xf39c,0xf39d,0xd7d7,0xf39e,0xf39f,0xf3a0,0xf440, +0xf7dc,0xf441,0xf442,0xf443,0xf444,0xf445,0xf446,0xf7dd, +0xf447,0xf448,0xf449,0xf7de,0xf44a,0xf44b,0xf44c,0xf44d, +0xf44e,0xf44f,0xf450,0xf451,0xf452,0xf453,0xf454,0xf7df, +0xf455,0xf456,0xf457,0xf7e0,0xf458,0xf459,0xf45a,0xf45b, +0xf45c,0xf45d,0xf45e,0xf45f,0xf460,0xf461,0xf462,0xdbcb, +0xf463,0xf464,0xd8aa,0xf465,0xf466,0xf467,0xf468,0xf469, +0xf46a,0xf46b,0xf46c,0xe5f7,0xb9ed,0xf46d,0xf46e,0xf46f, +0xf470,0xbffd,0xbbea,0xf7c9,0xc6c7,0xf7c8,0xf471,0xf7ca, +0xf7cc,0xf7cb,0xf472,0xf473,0xf474,0xf7cd,0xf475,0xceba, +0xf476,0xf7ce,0xf477,0xf478,0xc4a7,0xf479,0xf47a,0xf47b, +0xf47c,0xf47d,0xf47e,0xf480,0xf481,0xf482,0xf483,0xf484, +0xf485,0xf486,0xf487,0xf488,0xf489,0xf48a,0xf48b,0xf48c, +0xf48d,0xf48e,0xf48f,0xf490,0xf491,0xf492,0xf493,0xf494, +0xf495,0xf496,0xf497,0xf498,0xf499,0xf49a,0xf49b,0xf49c, +0xf49d,0xf49e,0xf49f,0xf4a0,0xf540,0xf541,0xf542,0xf543, +0xf544,0xf545,0xf546,0xf547,0xf548,0xf549,0xf54a,0xf54b, +0xf54c,0xf54d,0xf54e,0xf54f,0xf550,0xf551,0xf552,0xf553, +0xf554,0xf555,0xf556,0xf557,0xf558,0xf559,0xf55a,0xf55b, +0xf55c,0xf55d,0xf55e,0xf55f,0xf560,0xf561,0xf562,0xf563, +0xf564,0xf565,0xf566,0xf567,0xf568,0xf569,0xf56a,0xf56b, +0xf56c,0xf56d,0xf56e,0xf56f,0xf570,0xf571,0xf572,0xf573, +0xf574,0xf575,0xf576,0xf577,0xf578,0xf579,0xf57a,0xf57b, +0xf57c,0xf57d,0xf57e,0xf580,0xf581,0xf582,0xf583,0xf584, +0xf585,0xf586,0xf587,0xf588,0xf589,0xf58a,0xf58b,0xf58c, +0xf58d,0xf58e,0xf58f,0xf590,0xf591,0xf592,0xf593,0xf594, +0xf595,0xf596,0xf597,0xf598,0xf599,0xf59a,0xf59b,0xf59c, +0xf59d,0xf59e,0xf59f,0xf5a0,0xf640,0xf641,0xf642,0xf643, +0xf644,0xf645,0xf646,0xf647,0xf648,0xf649,0xf64a,0xf64b, +0xf64c,0xf64d,0xf64e,0xf64f,0xf650,0xf651,0xf652,0xf653, +0xf654,0xf655,0xf656,0xf657,0xf658,0xf659,0xf65a,0xf65b, +0xf65c,0xf65d,0xf65e,0xf65f,0xf660,0xf661,0xf662,0xf663, +0xf664,0xf665,0xf666,0xf667,0xf668,0xf669,0xf66a,0xf66b, +0xf66c,0xf66d,0xf66e,0xf66f,0xf670,0xf671,0xf672,0xf673, +0xf674,0xf675,0xf676,0xf677,0xf678,0xf679,0xf67a,0xf67b, +0xf67c,0xf67d,0xf67e,0xf680,0xf681,0xf682,0xf683,0xf684, +0xf685,0xf686,0xf687,0xf688,0xf689,0xf68a,0xf68b,0xf68c, +0xf68d,0xf68e,0xf68f,0xf690,0xf691,0xf692,0xf693,0xf694, +0xf695,0xf696,0xf697,0xf698,0xf699,0xf69a,0xf69b,0xf69c, +0xf69d,0xf69e,0xf69f,0xf6a0,0xf740,0xf741,0xf742,0xf743, +0xf744,0xf745,0xf746,0xf747,0xf748,0xf749,0xf74a,0xf74b, +0xf74c,0xf74d,0xf74e,0xf74f,0xf750,0xf751,0xf752,0xf753, +0xf754,0xf755,0xf756,0xf757,0xf758,0xf759,0xf75a,0xf75b, +0xf75c,0xf75d,0xf75e,0xf75f,0xf760,0xf761,0xf762,0xf763, +0xf764,0xf765,0xf766,0xf767,0xf768,0xf769,0xf76a,0xf76b, +0xf76c,0xf76d,0xf76e,0xf76f,0xf770,0xf771,0xf772,0xf773, +0xf774,0xf775,0xf776,0xf777,0xf778,0xf779,0xf77a,0xf77b, +0xf77c,0xf77d,0xf77e,0xf780,0xd3e3,0xf781,0xf782,0xf6cf, +0xf783,0xc2b3,0xf6d0,0xf784,0xf785,0xf6d1,0xf6d2,0xf6d3, +0xf6d4,0xf786,0xf787,0xf6d6,0xf788,0xb1ab,0xf6d7,0xf789, +0xf6d8,0xf6d9,0xf6da,0xf78a,0xf6db,0xf6dc,0xf78b,0xf78c, +0xf78d,0xf78e,0xf6dd,0xf6de,0xcfca,0xf78f,0xf6df,0xf6e0, +0xf6e1,0xf6e2,0xf6e3,0xf6e4,0xc0f0,0xf6e5,0xf6e6,0xf6e7, +0xf6e8,0xf6e9,0xf790,0xf6ea,0xf791,0xf6eb,0xf6ec,0xf792, +0xf6ed,0xf6ee,0xf6ef,0xf6f0,0xf6f1,0xf6f2,0xf6f3,0xf6f4, +0xbea8,0xf793,0xf6f5,0xf6f6,0xf6f7,0xf6f8,0xf794,0xf795, +0xf796,0xf797,0xf798,0xc8fa,0xf6f9,0xf6fa,0xf6fb,0xf6fc, +0xf799,0xf79a,0xf6fd,0xf6fe,0xf7a1,0xf7a2,0xf7a3,0xf7a4, +0xf7a5,0xf79b,0xf79c,0xf7a6,0xf7a7,0xf7a8,0xb1ee,0xf7a9, +0xf7aa,0xf7ab,0xf79d,0xf79e,0xf7ac,0xf7ad,0xc1db,0xf7ae, +0xf79f,0xf7a0,0xf7af,0xf840,0xf841,0xf842,0xf843,0xf844, +0xf845,0xf846,0xf847,0xf848,0xf849,0xf84a,0xf84b,0xf84c, +0xf84d,0xf84e,0xf84f,0xf850,0xf851,0xf852,0xf853,0xf854, +0xf855,0xf856,0xf857,0xf858,0xf859,0xf85a,0xf85b,0xf85c, +0xf85d,0xf85e,0xf85f,0xf860,0xf861,0xf862,0xf863,0xf864, +0xf865,0xf866,0xf867,0xf868,0xf869,0xf86a,0xf86b,0xf86c, +0xf86d,0xf86e,0xf86f,0xf870,0xf871,0xf872,0xf873,0xf874, +0xf875,0xf876,0xf877,0xf878,0xf879,0xf87a,0xf87b,0xf87c, +0xf87d,0xf87e,0xf880,0xf881,0xf882,0xf883,0xf884,0xf885, +0xf886,0xf887,0xf888,0xf889,0xf88a,0xf88b,0xf88c,0xf88d, +0xf88e,0xf88f,0xf890,0xf891,0xf892,0xf893,0xf894,0xf895, +0xf896,0xf897,0xf898,0xf899,0xf89a,0xf89b,0xf89c,0xf89d, +0xf89e,0xf89f,0xf8a0,0xf940,0xf941,0xf942,0xf943,0xf944, +0xf945,0xf946,0xf947,0xf948,0xf949,0xf94a,0xf94b,0xf94c, +0xf94d,0xf94e,0xf94f,0xf950,0xf951,0xf952,0xf953,0xf954, +0xf955,0xf956,0xf957,0xf958,0xf959,0xf95a,0xf95b,0xf95c, +0xf95d,0xf95e,0xf95f,0xf960,0xf961,0xf962,0xf963,0xf964, +0xf965,0xf966,0xf967,0xf968,0xf969,0xf96a,0xf96b,0xf96c, +0xf96d,0xf96e,0xf96f,0xf970,0xf971,0xf972,0xf973,0xf974, +0xf975,0xf976,0xf977,0xf978,0xf979,0xf97a,0xf97b,0xf97c, +0xf97d,0xf97e,0xf980,0xf981,0xf982,0xf983,0xf984,0xf985, +0xf986,0xf987,0xf988,0xf989,0xf98a,0xf98b,0xf98c,0xf98d, +0xf98e,0xf98f,0xf990,0xf991,0xf992,0xf993,0xf994,0xf995, +0xf996,0xf997,0xf998,0xf999,0xf99a,0xf99b,0xf99c,0xf99d, +0xf99e,0xf99f,0xf9a0,0xfa40,0xfa41,0xfa42,0xfa43,0xfa44, +0xfa45,0xfa46,0xfa47,0xfa48,0xfa49,0xfa4a,0xfa4b,0xfa4c, +0xfa4d,0xfa4e,0xfa4f,0xfa50,0xfa51,0xfa52,0xfa53,0xfa54, +0xfa55,0xfa56,0xfa57,0xfa58,0xfa59,0xfa5a,0xfa5b,0xfa5c, +0xfa5d,0xfa5e,0xfa5f,0xfa60,0xfa61,0xfa62,0xfa63,0xfa64, +0xfa65,0xfa66,0xfa67,0xfa68,0xfa69,0xfa6a,0xfa6b,0xfa6c, +0xfa6d,0xfa6e,0xfa6f,0xfa70,0xfa71,0xfa72,0xfa73,0xfa74, +0xfa75,0xfa76,0xfa77,0xfa78,0xfa79,0xfa7a,0xfa7b,0xfa7c, +0xfa7d,0xfa7e,0xfa80,0xfa81,0xfa82,0xfa83,0xfa84,0xfa85, +0xfa86,0xfa87,0xfa88,0xfa89,0xfa8a,0xfa8b,0xfa8c,0xfa8d, +0xfa8e,0xfa8f,0xfa90,0xfa91,0xfa92,0xfa93,0xfa94,0xfa95, +0xfa96,0xfa97,0xfa98,0xfa99,0xfa9a,0xfa9b,0xfa9c,0xfa9d, +0xfa9e,0xfa9f,0xfaa0,0xfb40,0xfb41,0xfb42,0xfb43,0xfb44, +0xfb45,0xfb46,0xfb47,0xfb48,0xfb49,0xfb4a,0xfb4b,0xfb4c, +0xfb4d,0xfb4e,0xfb4f,0xfb50,0xfb51,0xfb52,0xfb53,0xfb54, +0xfb55,0xfb56,0xfb57,0xfb58,0xfb59,0xfb5a,0xfb5b,0xc4f1, +0xf0af,0xbca6,0xf0b0,0xc3f9,0xfb5c,0xc5b8,0xd1bb,0xfb5d, +0xf0b1,0xf0b2,0xf0b3,0xf0b4,0xf0b5,0xd1bc,0xfb5e,0xd1ec, +0xfb5f,0xf0b7,0xf0b6,0xd4a7,0xfb60,0xcdd2,0xf0b8,0xf0ba, +0xf0b9,0xf0bb,0xf0bc,0xfb61,0xfb62,0xb8eb,0xf0bd,0xbae8, +0xfb63,0xf0be,0xf0bf,0xbee9,0xf0c0,0xb6ec,0xf0c1,0xf0c2, +0xf0c3,0xf0c4,0xc8b5,0xf0c5,0xf0c6,0xfb64,0xf0c7,0xc5f4, +0xfb65,0xf0c8,0xfb66,0xfb67,0xfb68,0xf0c9,0xfb69,0xf0ca, +0xf7bd,0xfb6a,0xf0cb,0xf0cc,0xf0cd,0xfb6b,0xf0ce,0xfb6c, +0xfb6d,0xfb6e,0xfb6f,0xf0cf,0xbad7,0xfb70,0xf0d0,0xf0d1, +0xf0d2,0xf0d3,0xf0d4,0xf0d5,0xf0d6,0xf0d8,0xfb71,0xfb72, +0xd3a5,0xf0d7,0xfb73,0xf0d9,0xfb74,0xfb75,0xfb76,0xfb77, +0xfb78,0xfb79,0xfb7a,0xfb7b,0xfb7c,0xfb7d,0xf5ba,0xc2b9, +0xfb7e,0xfb80,0xf7e4,0xfb81,0xfb82,0xfb83,0xfb84,0xf7e5, +0xf7e6,0xfb85,0xfb86,0xf7e7,0xfb87,0xfb88,0xfb89,0xfb8a, +0xfb8b,0xfb8c,0xf7e8,0xc2b4,0xfb8d,0xfb8e,0xfb8f,0xfb90, +0xfb91,0xfb92,0xfb93,0xfb94,0xfb95,0xf7ea,0xfb96,0xf7eb, +0xfb97,0xfb98,0xfb99,0xfb9a,0xfb9b,0xfb9c,0xc2f3,0xfb9d, +0xfb9e,0xfb9f,0xfba0,0xfc40,0xfc41,0xfc42,0xfc43,0xfc44, +0xfc45,0xfc46,0xfc47,0xfc48,0xf4f0,0xfc49,0xfc4a,0xfc4b, +0xf4ef,0xfc4c,0xfc4d,0xc2e9,0xfc4e,0xf7e1,0xf7e2,0xfc4f, +0xfc50,0xfc51,0xfc52,0xfc53,0xbbc6,0xfc54,0xfc55,0xfc56, +0xfc57,0xd9e4,0xfc58,0xfc59,0xfc5a,0xcaf2,0xc0e8,0xf0a4, +0xfc5b,0xbada,0xfc5c,0xfc5d,0xc7ad,0xfc5e,0xfc5f,0xfc60, +0xc4ac,0xfc61,0xfc62,0xf7ec,0xf7ed,0xf7ee,0xfc63,0xf7f0, +0xf7ef,0xfc64,0xf7f1,0xfc65,0xfc66,0xf7f4,0xfc67,0xf7f3, +0xfc68,0xf7f2,0xf7f5,0xfc69,0xfc6a,0xfc6b,0xfc6c,0xf7f6, +0xfc6d,0xfc6e,0xfc6f,0xfc70,0xfc71,0xfc72,0xfc73,0xfc74, +0xfc75,0xede9,0xfc76,0xedea,0xedeb,0xfc77,0xf6bc,0xfc78, +0xfc79,0xfc7a,0xfc7b,0xfc7c,0xfc7d,0xfc7e,0xfc80,0xfc81, +0xfc82,0xfc83,0xfc84,0xf6bd,0xfc85,0xf6be,0xb6a6,0xfc86, +0xd8be,0xfc87,0xfc88,0xb9c4,0xfc89,0xfc8a,0xfc8b,0xd8bb, +0xfc8c,0xdcb1,0xfc8d,0xfc8e,0xfc8f,0xfc90,0xfc91,0xfc92, +0xcaf3,0xfc93,0xf7f7,0xfc94,0xfc95,0xfc96,0xfc97,0xfc98, +0xfc99,0xfc9a,0xfc9b,0xfc9c,0xf7f8,0xfc9d,0xfc9e,0xf7f9, +0xfc9f,0xfca0,0xfd40,0xfd41,0xfd42,0xfd43,0xfd44,0xf7fb, +0xfd45,0xf7fa,0xfd46,0xb1c7,0xfd47,0xf7fc,0xf7fd,0xfd48, +0xfd49,0xfd4a,0xfd4b,0xfd4c,0xf7fe,0xfd4d,0xfd4e,0xfd4f, +0xfd50,0xfd51,0xfd52,0xfd53,0xfd54,0xfd55,0xfd56,0xfd57, +0xc6eb,0xecb4,0xfd58,0xfd59,0xfd5a,0xfd5b,0xfd5c,0xfd5d, +0xfd5e,0xfd5f,0xfd60,0xfd61,0xfd62,0xfd63,0xfd64,0xfd65, +0xfd66,0xfd67,0xfd68,0xfd69,0xfd6a,0xfd6b,0xfd6c,0xfd6d, +0xfd6e,0xfd6f,0xfd70,0xfd71,0xfd72,0xfd73,0xfd74,0xfd75, +0xfd76,0xfd77,0xfd78,0xfd79,0xfd7a,0xfd7b,0xfd7c,0xfd7d, +0xfd7e,0xfd80,0xfd81,0xfd82,0xfd83,0xfd84,0xfd85,0xb3dd, +0xf6b3,0xfd86,0xfd87,0xf6b4,0xc1e4,0xf6b5,0xf6b6,0xf6b7, +0xf6b8,0xf6b9,0xf6ba,0xc8a3,0xf6bb,0xfd88,0xfd89,0xfd8a, +0xfd8b,0xfd8c,0xfd8d,0xfd8e,0xfd8f,0xfd90,0xfd91,0xfd92, +0xfd93,0xc1fa,0xb9a8,0xede8,0xfd94,0xfd95,0xfd96,0xb9ea, +0xd9df,0xfd97,0xfd98,0xfd99,0xfd9a,0xfd9b,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 +}; /* 9fffh */ +const int ucs_i_cp936_table_min = 0x4d00; +const int ucs_i_cp936_table_max = 0x4d00 + (sizeof (ucs_i_cp936_table) / sizeof (unsigned short)); + + +/* 0xf900 CJK Compatibility Ideographs (with fallback) */ +static const unsigned short ucs_ci_cp936_table[] = { // 0xf900 - 0xfa2f + +/* F900h */ +0xD84D,0xB8FC,0xDC87,0xD95A,0xBBAC,0xB4AE,0xBEE4,0xFD94, +0xFD94,0xC6F5,0xBDF0,0xC0AE,0xC4CE,0x91D0,0xB05D,0xC15F, +0xCC7D,0xC2DD,0xC2E3,0xDF89,0x98B7,0xC2E5,0xC0D3,0xE7F3, +0xC2E4,0xC0D2,0xF198,0x8179,0xC2D1,0x99DA,0xA080,0xCC6D, +0xFB5B,0x8DB9,0x9E45,0xCB7B,0xD268,0xC0AD,0xC544,0xCF9E, +0xC0C8,0xC0CA,0xC0CB,0xC0C7,0xFD9C,0x81ED,0xC0E4,0x84DA, +0x93EF,0x99A9,0xA074,0xB152,0xC0CF,0xCC4A,0xCC94,0xC2B7, +0xC2B6,0xF494,0xFA98,0xC2B5,0xB593,0xBE47,0xC78A,0xE49B, +0xC2B9,0xD593,0x89C5,0xC5AA,0xBB5C,0xC340,0xC0CE,0xC0DA, +0xD954,0xC0D7,0x89BE,0x8CD2,0x98C7,0x9C49,0xC2A9,0xC0DB, +0xBF7C,0xC2AA,0xC0D5,0xC0DF,0x8443,0xC1E8,0xB6A0,0xBE63, +0xC1E2,0xC1EA,0xD778,0x9282,0x98B7,0xD65A,0xB5A4,0x8C8E, +0xC5AD,0xC2CA,0xAE90,0xB1B1,0xB491,0xB1E3,0x8FCD,0xB2BB, +0xC3DA,0x94B5,0xCBF7,0x85A2,0xC8FB,0xCAA1,0xC87E,0xD566, +0x9AA2,0xB3BD,0xC9F2,0xCAB0,0xC8F4,0xC2D3,0xC2D4,0xC1C1, +0x83C9,0xFD9D,0xC1BA,0xBC5A,0xC1BC,0xD58F,0xC1BF,0x84EE, +0x85CE,0xC5AE,0x8F5D,0xC2C3,0x9E56,0xB55A,0xE982,0xF350, +0xFB90,0xC0E8,0xC1A6,0x95D1,0x9A76,0xDE5D,0xC4EA,0x917A, +0x91D9,0x93D3,0x9D69,0x9F92,0xAD49,0xFD9E,0xBE9A,0xC293, +0xDD82,0xC98F,0xDF42,0xE580,0xC1D0,0xC1D3,0xD1CA,0xC1D2, +0xC1D1,0xD566,0xC1AE,0xC4EE,0xC4ED,0x9A9A,0xBA9F,0xAB43, +0xC1EE,0xE0F2,0x8C8E,0x8E58,0xC1AF,0xC1E1,0xAC93,0xC1E7, +0xF1F6,0xE28F,0xC1E3,0xEC60,0xEE49,0xC0FD,0xB659,0xF5B7, +0xEB60,0x90BA,0xC1CB,0xC1C5,0xE5BC,0xC4F2,0xC1CF,0x98B7, +0xC1C7,0xAF9F,0xDEA4,0xDF7C,0xFD88,0x959E,0xC8EE,0x84A2, +0x9683,0xC1F8,0xC1F7,0xC1EF,0xC1F0,0xC1F4,0xC1F2,0xBC7E, +0xEE90,0xC1F9,0xC2BE,0xEA91,0x8290,0x8D91,0x9C53,0xDD86, +0xC2C9,0x90FC,0xC0F5,0xC2CA,0xC2A1,0xC0FB,0xC0F4,0xC2C4, +0xD2D7,0xC0EE,0xC0E6,0xC4E0,0xC0ED,0xC1A1,0xEEBE,0xFD9F, +0xD165,0xC0EF,0xEB78,0xC4E4,0xC4E7,0xC1DF,0x9FFB,0xAD55, +0xCC41,0xFDA0,0xF75B,0xF7EB,0xC1D6,0xC1DC,0xC552,0xC1A2, +0xF3D2,0xC1A3,0xA0EE,0xD6CB,0xD752,0xCAB2,0xB2E8,0xB4CC, + +/* FA00h */ +0xC7D0,0xB6C8,0xCDD8,0xCCC7,0xD5AC,0xB6B4,0xB1A9,0xDD97, +0xD0D0,0xBDB5,0xD28A,0xC0AA,0xFE40,0xFE41,0xFE42,0xFE43, +0x8956,0xFE44,0xC7E7,0xFE45,0xFE46,0x8444,0xD869,0xD2E6, +0xFE47,0xC9F1,0xCFE9,0xB8A3,0xBEB8,0xBEAB,0xD3F0,0xFE48, +0xFE49,0xFE4A,0xD654,0xFE4B,0xFE4C,0xD2DD,0xB6BC,0xFE4D, +0xFE4E,0xFE4F,0xEF88,0xEF95,0xF05E,0xFA51,0x0000,0x0000, +}; + +const int ucs_ci_cp936_table_min = 0xf900; +const int ucs_ci_cp936_table_max = 0xfa2f; + +/* reduced map for GBK: U+FA0C - U+FA29 */ +const unsigned short ucs_ci_s_cp936_table[] = { + 0xfe40,0xfe41,0xfe42,0xfe43, + 0x0000,0xfe44,0x0000,0xfe45,0xfe46,0x0000,0x0000,0x0000, + 0xfe47,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xfe48, + 0xfe49,0xfe4a,0x0000,0xfe4b,0xfe4c,0x0000,0x0000,0xfe4d, + 0xfe4e,0xfe4f}; + + /* FE30h CJK Compatibility Forms */ +const unsigned short ucs_cf_cp936_table[] = { +0xa955,0xa6f2,0x0000,0xa6f4,0xa6f5,0xa6e0,0xa6e1,0xa6f0, +0xa6f1,0xa6e2,0xa6e3,0xa6ee,0xa6ef,0xa6e6,0xa6e7,0xa6e4, +0xa6e5,0xa6e8,0xa6e9,0xa6ea,0xa6eb,0x0000,0x0000,0x0000, +0x0000,0xa968,0xa969,0xa96a,0xa96b,0xa96c,0xa96d,0xa96e}; + +const int ucs_cf_cp936_table_min = 0xfe30; +const int ucs_cf_cp936_table_max = 0xfe30 + (sizeof (ucs_cf_cp936_table) / sizeof (unsigned short)); + + + /* FE50h Small Form Variants */ +const unsigned short ucs_sfv_cp936_table[] = { +0xa96f,0xa970,0xa971,0x0000,0xa972,0xa973,0xa974,0xa975, +0x0000,0xa976,0xa977,0xa978,0xa979,0xa97a,0xa97b,0xa97c, +0xa97d,0xa97e,0xa980,0xa981,0xa982,0xa983,0xa984,0x0000, +0xa985,0xa986,0xa987,0xa988,0x0000,0x0000,0x0000,0x0000}; + +const int ucs_sfv_cp936_table_min = 0xfe50; +const int ucs_sfv_cp936_table_max = 0xfe50 + (sizeof (ucs_sfv_cp936_table) / sizeof (unsigned short)); + + /* FF00h Halfwidth and Fullwidth Forms */ + +/* reduced map: U+FFE0 - U+FFE5 */ +const unsigned short ucs_hff_s_cp936_table[] = { + 0xa1e9,0xa1ea,0xa956,0xa3fe,0xa957,0xa3a4, +}; + +const int ucs_hff_cp936_table_min = 0xff00; +const int ucs_hff_cp936_table_max = 0xffff; + +/* CP936 local */ + +static const unsigned short mbfl_cp936_pua_tbl[][3] = { + {0xe766, 0xe76b, 0xa2ab}, + {0xe76c, 0xe76d, 0xa2e3}, + {0xe76e, 0xe76f, 0xa2ef}, + {0xe770, 0xe771, 0xa2fd}, + {0xe772, 0xe77c, 0xa4f4}, + {0xe77d, 0xe784, 0xa5f7}, + {0xe785, 0xe78c, 0xa6b9}, + {0xe78d, 0xe793, 0xa6d9}, + {0xe794, 0xe795, 0xa6ec}, + {0xe796, 0xe796, 0xa6f3}, + {0xe797, 0xe79f, 0xa6f6}, + {0xe7a0, 0xe7ae, 0xa7c2}, + {0xe7af, 0xe7bb, 0xa7f2}, + {0xe7bc, 0xe7c6, 0xa896}, + {0xe7c7, 0xe7c7, 0xa8bc}, + {0xe7c8, 0xe7c8, 0xa8bf}, + {0xe7c9, 0xe7cc, 0xa8c1}, + {0xe7cd, 0xe7e1, 0xa8ea}, + {0xe7e2, 0xe7e2, 0xa958}, + {0xe7e3, 0xe7e3, 0xa95b}, + {0xe7e4, 0xe7e6, 0xa95d}, + {0xe7e7, 0xe7f3, 0xa989}, + {0xe7f4, 0xe800, 0xa997}, + {0xe801, 0xe80f, 0xa9f0}, + {0xe810, 0xe814, 0xd7fa}, + {0xe815, 0xe843, 0xfe50}, + {0xe844, 0xe864, 0xfe80}, +}; + +static const int mbfl_cp936_pua_tbl_max = sizeof(mbfl_cp936_pua_tbl)/(sizeof(unsigned short)*3); + +#else + +extern const unsigned short cp936_ucs_table[]; +extern const unsigned short ucs_a1_cp936_table[]; +extern const unsigned short ucs_a2_cp936_table[]; +extern const unsigned short ucs_a3_cp936_table[]; +extern const unsigned short ucs_i_cp936_table[]; +extern const unsigned short ucs_cf_cp936_table[]; +extern const unsigned short ucs_sfv_cp936_table[]; + +extern const unsigned short ucs_ci_s_cp936_table[]; +extern const unsigned short ucs_hff_s_cp936_table[]; + +extern const int cp936_ucs_table_size; +extern const int ucs_a1_cp936_table_min; +extern const int ucs_a1_cp936_table_max; +extern const int ucs_a2_cp936_table_min; +extern const int ucs_a2_cp936_table_max; +extern const int ucs_a3_cp936_table_min; +extern const int ucs_a3_cp936_table_max; +extern const int ucs_i_cp936_table_min; +extern const int ucs_i_cp936_table_max; +extern const int ucs_ci_cp936_table_min; +extern const int ucs_ci_cp936_table_max; +extern const int ucs_cf_cp936_table_min; +extern const int ucs_cf_cp936_table_max; +extern const int ucs_sfv_cp936_table_min; +extern const int ucs_sfv_cp936_table_max; +extern const int ucs_hff_cp936_table_min; +extern const int ucs_hff_cp936_table_max; + +#endif + +#endif /* UNICODE_TABLE_CP936_H */ diff --git a/ext/mbstring/libmbfl/filters/unicode_table_gb18030.h b/ext/mbstring/libmbfl/filters/unicode_table_gb18030.h new file mode 100644 index 0000000..7c38045 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/unicode_table_gb18030.h @@ -0,0 +1,233 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: Rui Hirokawa <hirokawa@php.net> + * + */ + +#ifndef UNICODE_TABLE_GB18030_H +#define UNICODE_TABLE_GB18030_H + +static const unsigned short mbfl_gb18030_c_tbl_val[58] = +{ + 0xfe50,0xfe54,0xfe57,0xfe58,0xfe5d,0xfe5e,0xfe6b,0xfe6e, + 0xfe71,0xfe73,0xfe74,0xfe75,0xfe79,0xfe84,0xfe56,0xfe55, + 0xfe5a,0xfe5c,0xfe5b,0xfe60,0xfe5f,0xfe62,0xfe65,0xfe63, + 0xfe64,0xfe68,0xfe69,0xfe6a,0xfe6f,0xfe70,0xfe72,0xfe78, + 0xfe77,0xfe7a,0xfe7b,0xfe7d,0xfe7c,0xfe80,0xfe81,0xfe82, + 0xfe83,0xfe85,0xfe86,0xfe87,0xfe88,0xfe89,0xfe8a,0xfe8b, + 0xfe8d,0xfe8c,0xfe8f,0xfe8e,0xfe96,0xfe93,0xfe94,0xfe95, + 0xfe97,0xfe92, +}; + +static const unsigned short mbfl_gb18030_c_tbl_key[58] = +{ + 0x2e81,0x2e84,0x2e88,0x2e8b,0x2e8c,0x2e97,0x2ea7,0x2eaa, + 0x2eae,0x2eb3,0x2eb6,0x2eb7,0x2ebb,0x2eca,0x3447,0x3473, + 0x359e,0x360e,0x361a,0x3918,0x396e,0x39cf,0x39d0,0x39df, + 0x3a73,0x3b4e,0x3c6e,0x3ce0,0x4056,0x415f,0x4337,0x43ac, + 0x43b1,0x43dd,0x44d6,0x464c,0x4661,0x4723,0x4729,0x477c, + 0x478d,0x4947,0x497a,0x497d,0x4982,0x4983,0x4985,0x4986, + 0x499b,0x499f,0x49b6,0x49b7,0x4c77,0x4c9f,0x4ca0,0x4ca1, + 0x4ca2,0x4ca3, +}; + +static const int mbfl_gb18030_c_tbl_max = sizeof(mbfl_gb18030_c_tbl_key)/sizeof(unsigned short); + +static const unsigned short mbfl_gb18030_pua_tbl[][3] = { + {0xe766, 0xe76b, 0xa2ab}, + {0xe76d, 0xe76d, 0xa2e4}, + {0xe76e, 0xe76f, 0xa2ef}, + {0xe770, 0xe771, 0xa2fd}, + {0xe772, 0xe77c, 0xa4f4}, + {0xe77d, 0xe784, 0xa5f7}, + {0xe785, 0xe78c, 0xa6b9}, + {0xe78d, 0xe793, 0xa6d9}, + {0xe794, 0xe795, 0xa6ec}, + {0xe796, 0xe796, 0xa6f3}, + {0xe797, 0xe79f, 0xa6f6}, + {0xe7a0, 0xe7ae, 0xa7c2}, + {0xe7af, 0xe7bb, 0xa7f2}, + {0xe7bc, 0xe7c6, 0xa896}, + {0xe7c7, 0xe7c7, 0xa8bc}, + {0xe7c9, 0xe7cc, 0xa8c1}, + {0xe7cd, 0xe7e1, 0xa8ea}, + {0xe7e2, 0xe7e2, 0xa958}, + {0xe7e3, 0xe7e3, 0xa95b}, + {0xe7e4, 0xe7e6, 0xa95d}, + {0xe7f4, 0xe800, 0xa997}, + {0xe801, 0xe80f, 0xa9f0}, + {0xe810, 0xe814, 0xd7fa}, + {0xe816, 0xe818, 0xfe51}, + {0xe81e, 0xe81e, 0xfe59}, + {0xe826, 0xe826, 0xfe61}, + {0xe82b, 0xe82c, 0xfe66}, + {0xe831, 0xe832, 0xfe6c}, + {0xe83b, 0xe83b, 0xfe76}, + {0xe843, 0xe843, 0xfe7e}, + {0xe854, 0xe855, 0xfe90}, + {0xe864, 0xe864, 0xfea0}, +}; + +static const int mbfl_gb18030_pua_tbl_max = sizeof(mbfl_gb18030_pua_tbl)/(sizeof(unsigned short)*3); + +static const unsigned short mbfl_gb2uni_tbl[] = { +0x0000, 0x0023, 0x0024, 0x0025, 0x0026, 0x002c, 0x002d, 0x0031, +0x0032, 0x0050, 0x0051, 0x0058, 0x0059, 0x005e, 0x005f, 0x005f, +0x0060, 0x0063, 0x0064, 0x0066, 0x0067, 0x0067, 0x0068, 0x0068, +0x0069, 0x006c, 0x006d, 0x007d, 0x007e, 0x0084, 0x0085, 0x0093, +0x0094, 0x00ab, 0x00ac, 0x00ae, 0x00af, 0x00b2, 0x00b3, 0x00cf, +0x00d0, 0x0131, 0x0132, 0x0132, 0x0133, 0x0133, 0x0134, 0x0134, +0x0135, 0x0135, 0x0136, 0x0136, 0x0137, 0x0137, 0x0138, 0x0138, +0x0139, 0x0154, 0x0155, 0x01ab, 0x01ac, 0x01ba, 0x01bb, 0x021f, +0x0220, 0x0220, 0x0221, 0x022d, 0x022e, 0x02e4, 0x02e5, 0x02e5, +0x02e6, 0x02ec, 0x02ed, 0x02ed, 0x02ee, 0x0324, 0x0325, 0x0332, +0x0333, 0x0333, 0x0334, 0x1ef1, 0x1ef2, 0x1ef3, 0x1ef4, 0x1ef4, +0x1ef5, 0x1ef6, 0x1ef7, 0x1efd, 0x1efe, 0x1f06, 0x1f07, 0x1f07, +0x1f08, 0x1f08, 0x1f09, 0x1f0d, 0x1f0e, 0x1f7d, 0x1f7e, 0x1fd3, +0x1fd4, 0x1fd4, 0x1fd5, 0x1fd7, 0x1fd8, 0x1fe3, 0x1fe4, 0x1fed, +0x1fee, 0x202b, 0x202c, 0x202f, 0x2030, 0x2045, 0x2046, 0x2047, +0x2048, 0x20b5, 0x20b6, 0x20bb, 0x20bc, 0x20bc, 0x20bd, 0x20bf, +0x20c0, 0x20c3, 0x20c4, 0x20c5, 0x20c6, 0x20c7, 0x20c8, 0x20c8, +0x20c9, 0x20c9, 0x20ca, 0x20cb, 0x20cc, 0x20d0, 0x20d1, 0x20d5, +0x20d6, 0x20df, 0x20e0, 0x20e2, 0x20e3, 0x20e7, 0x20e8, 0x20f4, +0x20f5, 0x20f6, 0x20f7, 0x20fc, 0x20fd, 0x2121, 0x2122, 0x2124, +0x2125, 0x212f, 0x2130, 0x2148, 0x2149, 0x219a, 0x219b, 0x22e7, +0x22e8, 0x22f1, 0x22f2, 0x2355, 0x2356, 0x2359, 0x235a, 0x2366, +0x2367, 0x2369, 0x236a, 0x2373, 0x2374, 0x2383, 0x2384, 0x238b, +0x238c, 0x2393, 0x2394, 0x2396, 0x2397, 0x2398, 0x2399, 0x23aa, +0x23ab, 0x23c9, 0x23ca, 0x23cb, 0x23cc, 0x2401, 0x2402, 0x2402, +0x2403, 0x2c40, 0x2c41, 0x2c42, 0x2c43, 0x2c45, 0x2c46, 0x2c47, +0x2c48, 0x2c51, 0x2c52, 0x2c60, 0x2c61, 0x2c62, 0x2c63, 0x2c65, +0x2c66, 0x2c69, 0x2c6a, 0x2c6b, 0x2c6c, 0x2c6e, 0x2c6f, 0x2c7c, +0x2c7d, 0x2da1, 0x2da2, 0x2da5, 0x2da6, 0x2da6, 0x2da7, 0x2dab, +0x2dac, 0x2dad, 0x2dae, 0x2dc1, 0x2dc2, 0x2dc3, 0x2dc4, 0x2dca, +0x2dcb, 0x2dcc, 0x2dcd, 0x2dd1, 0x2dd2, 0x2dd7, 0x2dd8, 0x2ecd, +0x2ece, 0x2ed4, 0x2ed5, 0x2f45, 0x2f46, 0x302f, 0x3030, 0x303b, +0x303c, 0x303d, 0x303e, 0x305f, 0x3060, 0x3068, 0x3069, 0x306a, +0x306b, 0x306c, 0x306d, 0x30dd, 0x30de, 0x3108, 0x3109, 0x3232, +0x3233, 0x32a1, 0x32a2, 0x32ac, 0x32ad, 0x35a9, 0x35aa, 0x35fe, +0x35ff, 0x365e, 0x365f, 0x366c, 0x366d, 0x36ff, 0x3700, 0x37d9, +0x37da, 0x38f8, 0x38f9, 0x3969, 0x396a, 0x3cde, 0x3cdf, 0x3de6, +0x3de7, 0x3fbd, 0x3fbe, 0x4031, 0x4032, 0x4035, 0x4036, 0x4060, +0x4061, 0x4158, 0x4159, 0x42cd, 0x42ce, 0x42e1, 0x42e2, 0x43a2, +0x43a3, 0x43a7, 0x43a8, 0x43f9, 0x43fa, 0x4409, 0x440a, 0x45c2, +0x45c3, 0x45f4, 0x45f5, 0x45f6, 0x45f7, 0x45fa, 0x45fb, 0x45fb, +0x45fc, 0x460f, 0x4610, 0x4612, 0x4613, 0x4628, 0x4629, 0x48e7, +0x48e8, 0x490e, 0x490f, 0x497d, 0x497e, 0x4a11, 0x4a12, 0x4a62, +0x4a63, 0x82bc, 0x82bd, 0x82bd, 0x82be, 0x82be, 0x82bf, 0x82cb, +0x82cc, 0x82cc, 0x82cd, 0x82d1, 0x82d2, 0x82d8, 0x82d9, 0x82dc, +0x82dd, 0x82e0, 0x82e1, 0x82e8, 0x82e9, 0x82ef, 0x82f0, 0x82ff, +0x8300, 0x830d, 0x830e, 0x93d4, 0x93d5, 0x9420, 0x9421, 0x943b, +0x943c, 0x948c, 0x948d, 0x9495, 0x9496, 0x94af, 0x94b0, 0x94b0, +0x94b1, 0x94b1, 0x94b2, 0x94b4, 0x94b5, 0x94ba, 0x94bb, 0x94bb, +0x94bc, 0x94bd, 0x94be, 0x98c3, 0x98c4, 0x98c4, 0x98c5, 0x98c8, +0x98c9, 0x98c9, 0x98ca, 0x98ca, 0x98cb, 0x98cb, 0x98cc, 0x9960, +0x9961, 0x99e1, 0x99e2, 0x99fb, +}; + +static const unsigned short mbfl_uni2gb_tbl[] = { +0x0080, 0x00a3, 0x00a5, 0x00a6, 0x00a9, 0x00af, 0x00b2, 0x00b6, +0x00b8, 0x00d6, 0x00d8, 0x00df, 0x00e2, 0x00e7, 0x00eb, 0x00eb, +0x00ee, 0x00f1, 0x00f4, 0x00f6, 0x00f8, 0x00f8, 0x00fb, 0x00fb, +0x00fd, 0x0100, 0x0102, 0x0112, 0x0114, 0x011a, 0x011c, 0x012a, +0x012c, 0x0143, 0x0145, 0x0147, 0x0149, 0x014c, 0x014e, 0x016a, +0x016c, 0x01cd, 0x01cf, 0x01cf, 0x01d1, 0x01d1, 0x01d3, 0x01d3, +0x01d5, 0x01d5, 0x01d7, 0x01d7, 0x01d9, 0x01d9, 0x01db, 0x01db, +0x01dd, 0x01f8, 0x01fa, 0x0250, 0x0252, 0x0260, 0x0262, 0x02c6, +0x02c8, 0x02c8, 0x02cc, 0x02d8, 0x02da, 0x0390, 0x03a2, 0x03a2, +0x03aa, 0x03b0, 0x03c2, 0x03c2, 0x03ca, 0x0400, 0x0402, 0x040f, +0x0450, 0x0450, 0x0452, 0x200f, 0x2011, 0x2012, 0x2017, 0x2017, +0x201a, 0x201b, 0x201e, 0x2024, 0x2027, 0x202f, 0x2031, 0x2031, +0x2034, 0x2034, 0x2036, 0x203a, 0x203c, 0x20ab, 0x20ad, 0x2102, +0x2104, 0x2104, 0x2106, 0x2108, 0x210a, 0x2115, 0x2117, 0x2120, +0x2122, 0x215f, 0x216c, 0x216f, 0x217a, 0x218f, 0x2194, 0x2195, +0x219a, 0x2207, 0x2209, 0x220e, 0x2210, 0x2210, 0x2212, 0x2214, +0x2216, 0x2219, 0x221b, 0x221c, 0x2221, 0x2222, 0x2224, 0x2224, +0x2226, 0x2226, 0x222c, 0x222d, 0x222f, 0x2233, 0x2238, 0x223c, +0x223e, 0x2247, 0x2249, 0x224b, 0x224d, 0x2251, 0x2253, 0x225f, +0x2262, 0x2263, 0x2268, 0x226d, 0x2270, 0x2294, 0x2296, 0x2298, +0x229a, 0x22a4, 0x22a6, 0x22be, 0x22c0, 0x2311, 0x2313, 0x245f, +0x246a, 0x2473, 0x249c, 0x24ff, 0x254c, 0x254f, 0x2574, 0x2580, +0x2590, 0x2592, 0x2596, 0x259f, 0x25a2, 0x25b1, 0x25b4, 0x25bb, +0x25be, 0x25c5, 0x25c8, 0x25ca, 0x25cc, 0x25cd, 0x25d0, 0x25e1, +0x25e6, 0x2604, 0x2607, 0x2608, 0x260a, 0x263f, 0x2641, 0x2641, +0x2643, 0x2e80, 0x2e82, 0x2e83, 0x2e85, 0x2e87, 0x2e89, 0x2e8a, +0x2e8d, 0x2e96, 0x2e98, 0x2ea6, 0x2ea8, 0x2ea9, 0x2eab, 0x2ead, +0x2eaf, 0x2eb2, 0x2eb4, 0x2eb5, 0x2eb8, 0x2eba, 0x2ebc, 0x2ec9, +0x2ecb, 0x2fef, 0x2ffc, 0x2fff, 0x3004, 0x3004, 0x3018, 0x301c, +0x301f, 0x3020, 0x302a, 0x303d, 0x303f, 0x3040, 0x3094, 0x309a, +0x309f, 0x30a0, 0x30f7, 0x30fb, 0x30ff, 0x3104, 0x312a, 0x321f, +0x322a, 0x3230, 0x3232, 0x32a2, 0x32a4, 0x338d, 0x3390, 0x339b, +0x339f, 0x33a0, 0x33a2, 0x33c3, 0x33c5, 0x33cd, 0x33cf, 0x33d0, +0x33d3, 0x33d4, 0x33d6, 0x3446, 0x3448, 0x3472, 0x3474, 0x359d, +0x359f, 0x360d, 0x360f, 0x3619, 0x361b, 0x3917, 0x3919, 0x396d, +0x396f, 0x39ce, 0x39d1, 0x39de, 0x39e0, 0x3a72, 0x3a74, 0x3b4d, +0x3b4f, 0x3c6d, 0x3c6f, 0x3cdf, 0x3ce1, 0x4055, 0x4057, 0x415e, +0x4160, 0x4336, 0x4338, 0x43ab, 0x43ad, 0x43b0, 0x43b2, 0x43dc, +0x43de, 0x44d5, 0x44d7, 0x464b, 0x464d, 0x4660, 0x4662, 0x4722, +0x4724, 0x4728, 0x472a, 0x477b, 0x477d, 0x478c, 0x478e, 0x4946, +0x4948, 0x4979, 0x497b, 0x497c, 0x497e, 0x4981, 0x4984, 0x4984, +0x4987, 0x499a, 0x499c, 0x499e, 0x49a0, 0x49b5, 0x49b8, 0x4c76, +0x4c78, 0x4c9e, 0x4ca4, 0x4d12, 0x4d1a, 0x4dad, 0x4daf, 0x4dff, +0x9fa6, 0xd7ff, 0xe76c, 0xe76c, 0xe7c8, 0xe7c8, 0xe7e7, 0xe7f3, +0xe815, 0xe815, 0xe819, 0xe81d, 0xe81f, 0xe825, 0xe827, 0xe82a, +0xe82d, 0xe830, 0xe833, 0xe83a, 0xe83c, 0xe842, 0xe844, 0xe853, +0xe856, 0xe863, 0xe865, 0xf92b, 0xf92d, 0xf978, 0xf97a, 0xf994, +0xf996, 0xf9e6, 0xf9e8, 0xf9f0, 0xf9f2, 0xfa0b, 0xfa10, 0xfa10, +0xfa12, 0xfa12, 0xfa15, 0xfa17, 0xfa19, 0xfa1e, 0xfa22, 0xfa22, +0xfa25, 0xfa26, 0xfa2a, 0xfe2f, 0xfe32, 0xfe32, 0xfe45, 0xfe48, +0xfe53, 0xfe53, 0xfe58, 0xfe58, 0xfe67, 0xfe67, 0xfe6c, 0xff00, +0xff5f, 0xffdf, 0xffe6, 0xffff, +}; + +static const unsigned short mbfl_gb_uni_ofst[] = { + 128, 129, 131, 133, 134, 135, 137, 140, + 142, 144, 145, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, + 168, 171, 172, 189, 196, 213, 220, 221, + 285, 286, 287, 291, 293, 295, 297, 298, + 300, 301, 302, 303, 304, 305, 306, 307, + 308, 320, 330, 334, 338, 339, 340, 341, + 342, 343, 347, 348, 349, 354, 355, 359, + 360, 361, 362, 363, 365, 369, 371, 372, + 373, 374, 375, 376, 386, 426, 502, 538, + 553, 556, 558, 560, 562, 564, 565, 567, + 571, 573, 574, 575, 576, 577, 578, 579, + 581, 582, 583, 584, 585, 586, 588, 589, + 590, 602, 606, 625, 627, 636, 637, 720, + 724, 810, 813, 850, 860, 861, 862, 864, + 867, 868, 869, 870, 872, 873, 874, 875, + 876, 877, 878, 879, 880, 882, 883, 884, + 885, 886, 887, 888, 889, 890, 891, 892, + 893, 894, 895, 896, 897, 898, 899, 900, + 901, 902, 903, 905, 907, 908, 909, 911, + 912, 917, 924, 925, 21827, 25775, 25866, 25896, + 25929, 25932, 25933, 25934, 25936, 25938, 25939, 25940, + 25942, 25943, 25944, 25945, 25946, 25947, 25948, 25952, + 25953, 25955, 25956, 25959, 25961, 25964, 25966, 25984, + 25994, 25998, 26012, 26016, 26110, 26116, +}; + +static const int mbfl_gb_uni_max = sizeof(mbfl_gb_uni_ofst)/sizeof(unsigned short); + + +#endif /* UNICODE_TABLE_GB18030_H */ diff --git a/ext/mbstring/libmbfl/filters/unicode_table_iso8859_10.h b/ext/mbstring/libmbfl/filters/unicode_table_iso8859_10.h new file mode 100644 index 0000000..2b6b78f --- /dev/null +++ b/ext/mbstring/libmbfl/filters/unicode_table_iso8859_10.h @@ -0,0 +1,17 @@ +/* This file is automatically generated. Do not edit! */ +#ifndef UNICODE_TABLE_ISO8859_10_H +static const int iso8859_10_ucs_table[] = { + 0x00a0, 0x0104, 0x0112, 0x0122, 0x012a, 0x0128, 0x0136, 0x00a7, + 0x013b, 0x0110, 0x0160, 0x0166, 0x017d, 0x00ad, 0x016a, 0x014a, + 0x00b0, 0x0105, 0x0113, 0x0123, 0x012b, 0x0129, 0x0137, 0x00b7, + 0x013c, 0x0111, 0x0161, 0x0167, 0x017e, 0x2015, 0x016b, 0x014b, + 0x0100, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x012e, + 0x010c, 0x00c9, 0x0118, 0x00cb, 0x0116, 0x00cd, 0x00ce, 0x00cf, + 0x00d0, 0x0145, 0x014c, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x0168, + 0x00d8, 0x0172, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df, + 0x0101, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x012f, + 0x010d, 0x00e9, 0x0119, 0x00eb, 0x0117, 0x00ed, 0x00ee, 0x00ef, + 0x00f0, 0x0146, 0x014d, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x0169, + 0x00f8, 0x0173, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x0138 +}; +#endif /* UNICODE_TABLE_ISO8859_10_H */ diff --git a/ext/mbstring/libmbfl/filters/unicode_table_iso8859_13.h b/ext/mbstring/libmbfl/filters/unicode_table_iso8859_13.h new file mode 100644 index 0000000..5822396 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/unicode_table_iso8859_13.h @@ -0,0 +1,17 @@ +/* This file is automatically generated. Do not edit! */ +#ifndef UNICODE_TABLE_ISO8859_13_H +static const int iso8859_13_ucs_table[] = { + 0x00a0, 0x201d, 0x00a2, 0x00a3, 0x00a4, 0x201e, 0x00a6, 0x00a7, + 0x00d8, 0x00a9, 0x0156, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00c6, + 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x201c, 0x00b5, 0x00b6, 0x00b7, + 0x00f8, 0x00b9, 0x0157, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00e6, + 0x0104, 0x012e, 0x0100, 0x0106, 0x00c4, 0x00c5, 0x0118, 0x0112, + 0x010c, 0x00c9, 0x0179, 0x0116, 0x0122, 0x0136, 0x012a, 0x013b, + 0x0160, 0x0143, 0x0145, 0x00d3, 0x014c, 0x00d5, 0x00d6, 0x00d7, + 0x0172, 0x0141, 0x015a, 0x016a, 0x00dc, 0x017b, 0x017d, 0x00df, + 0x0105, 0x012f, 0x0101, 0x0107, 0x00e4, 0x00e5, 0x0119, 0x0113, + 0x010d, 0x00e9, 0x017a, 0x0117, 0x0123, 0x0137, 0x012b, 0x013c, + 0x0161, 0x0144, 0x0146, 0x00f3, 0x014d, 0x00f5, 0x00f6, 0x00f7, + 0x0173, 0x0142, 0x015b, 0x016b, 0x00fc, 0x017c, 0x017e, 0x2019 +}; +#endif /* UNICODE_TABLE_ISO8859_13_H */ diff --git a/ext/mbstring/libmbfl/filters/unicode_table_iso8859_14.h b/ext/mbstring/libmbfl/filters/unicode_table_iso8859_14.h new file mode 100644 index 0000000..6bd03b3 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/unicode_table_iso8859_14.h @@ -0,0 +1,17 @@ +/* This file is automatically generated. Do not edit! */ +#ifndef UNICODE_TABLE_ISO8859_14_H +static const int iso8859_14_ucs_table[] = { + 0x00a0, 0x1e02, 0x1e03, 0x00a3, 0x010a, 0x010b, 0x1e0a, 0x00a7, + 0x1e80, 0x00a9, 0x1e82, 0x1e0b, 0x1ef2, 0x00ad, 0x00ae, 0x0178, + 0x1e1e, 0x1e1f, 0x0120, 0x0121, 0x1e40, 0x1e41, 0x00b6, 0x1e56, + 0x1e81, 0x1e57, 0x1e83, 0x1e60, 0x1ef3, 0x1e84, 0x1e85, 0x1e61, + 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, + 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, + 0x0174, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x1e6a, + 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x0176, 0x00df, + 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, + 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, + 0x0175, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x1e6b, + 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x0177, 0x00ff +}; +#endif /* UNICODE_TABLE_ISO8859_14_H */ diff --git a/ext/mbstring/libmbfl/filters/unicode_table_iso8859_15.h b/ext/mbstring/libmbfl/filters/unicode_table_iso8859_15.h new file mode 100644 index 0000000..029a2bc --- /dev/null +++ b/ext/mbstring/libmbfl/filters/unicode_table_iso8859_15.h @@ -0,0 +1,17 @@ +/* This file is automatically generated. Do not edit! */ +#ifndef UNICODE_TABLE_ISO8859_15_H +static const int iso8859_15_ucs_table[] = { + 0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x20ac, 0x00a5, 0x0160, 0x00a7, + 0x0161, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, + 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x017d, 0x00b5, 0x00b6, 0x00b7, + 0x017e, 0x00b9, 0x00ba, 0x00bb, 0x0152, 0x0153, 0x0178, 0x00bf, + 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, + 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, + 0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7, + 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df, + 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, + 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, + 0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7, + 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff +}; +#endif /* UNICODE_TABLE_ISO8859_15_H */ diff --git a/ext/mbstring/libmbfl/filters/unicode_table_iso8859_16.h b/ext/mbstring/libmbfl/filters/unicode_table_iso8859_16.h new file mode 100644 index 0000000..555472d --- /dev/null +++ b/ext/mbstring/libmbfl/filters/unicode_table_iso8859_16.h @@ -0,0 +1,17 @@ +/* This file is automatically generated. Do not edit! */ +#ifndef UNICODE_TABLEISO8859_16_H +static const int iso8859_16_ucs_table[] = { + 0x00a0, 0x0104, 0x0105, 0x0141, 0x20ac, 0x201e, 0x0160, 0x00a7, + 0x0161, 0x00a9, 0x0218, 0x00ab, 0x0179, 0x00ad, 0x017a, 0x017b, + 0x00b0, 0x00b1, 0x010c, 0x0142, 0x017d, 0x201d, 0x00b6, 0x00b7, + 0x017e, 0x010d, 0x0219, 0x00bb, 0x0152, 0x0153, 0x0178, 0x017c, + 0x00c0, 0x00c1, 0x00c2, 0x0102, 0x00c4, 0x0106, 0x00c6, 0x00c7, + 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, + 0x0110, 0x0143, 0x00d2, 0x00d3, 0x00d4, 0x0150, 0x00d6, 0x015a, + 0x0170, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x0118, 0x021a, 0x00df, + 0x00e0, 0x00e1, 0x00e2, 0x0103, 0x00e4, 0x0107, 0x00e6, 0x00e7, + 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, + 0x0111, 0x0144, 0x00f2, 0x00f3, 0x00f4, 0x0151, 0x00f6, 0x015b, + 0x0171, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x0119, 0x021b, 0x00ff +}; +#endif /* UNICODE_TABLEISO8859_16_H */ diff --git a/ext/mbstring/libmbfl/filters/unicode_table_iso8859_2.h b/ext/mbstring/libmbfl/filters/unicode_table_iso8859_2.h new file mode 100644 index 0000000..12bb3cb --- /dev/null +++ b/ext/mbstring/libmbfl/filters/unicode_table_iso8859_2.h @@ -0,0 +1,17 @@ +/* This file is automatically generated. Do not edit! */ +#ifndef UNICODE_TABLE_ISO8859_2_H +static const int iso8859_2_ucs_table[] = { + 0x00a0, 0x0104, 0x02d8, 0x0141, 0x00a4, 0x013d, 0x015a, 0x00a7, + 0x00a8, 0x0160, 0x015e, 0x0164, 0x0179, 0x00ad, 0x017d, 0x017b, + 0x00b0, 0x0105, 0x02db, 0x0142, 0x00b4, 0x013e, 0x015b, 0x02c7, + 0x00b8, 0x0161, 0x015f, 0x0165, 0x017a, 0x02dd, 0x017e, 0x017c, + 0x0154, 0x00c1, 0x00c2, 0x0102, 0x00c4, 0x0139, 0x0106, 0x00c7, + 0x010c, 0x00c9, 0x0118, 0x00cb, 0x011a, 0x00cd, 0x00ce, 0x010e, + 0x0110, 0x0143, 0x0147, 0x00d3, 0x00d4, 0x0150, 0x00d6, 0x00d7, + 0x0158, 0x016e, 0x00da, 0x0170, 0x00dc, 0x00dd, 0x0162, 0x00df, + 0x0155, 0x00e1, 0x00e2, 0x0103, 0x00e4, 0x013a, 0x0107, 0x00e7, + 0x010d, 0x00e9, 0x0119, 0x00eb, 0x011b, 0x00ed, 0x00ee, 0x010f, + 0x0111, 0x0144, 0x0148, 0x00f3, 0x00f4, 0x0151, 0x00f6, 0x00f7, + 0x0159, 0x016f, 0x00fa, 0x0171, 0x00fc, 0x00fd, 0x0163, 0x02d9 +}; +#endif /* UNICODE_TABLE_ISO8859_2_H */ diff --git a/ext/mbstring/libmbfl/filters/unicode_table_iso8859_3.h b/ext/mbstring/libmbfl/filters/unicode_table_iso8859_3.h new file mode 100644 index 0000000..f50c348 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/unicode_table_iso8859_3.h @@ -0,0 +1,17 @@ +/* This file is automatically generated. Do not edit! */ +#ifndef UNICODE_TABLE_ISO8859_3_H +static const int iso8859_3_ucs_table[] = { + 0x00a0, 0x0126, 0x02d8, 0x00a3, 0x00a4, 0x0000, 0x0124, 0x00a7, + 0x00a8, 0x0130, 0x015e, 0x011e, 0x0134, 0x00ad, 0x0000, 0x017b, + 0x00b0, 0x0127, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x0125, 0x00b7, + 0x00b8, 0x0131, 0x015f, 0x011f, 0x0135, 0x00bd, 0x0000, 0x017c, + 0x00c0, 0x00c1, 0x00c2, 0x0000, 0x00c4, 0x010a, 0x0108, 0x00c7, + 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, + 0x0000, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x0120, 0x00d6, 0x00d7, + 0x011c, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x016c, 0x015c, 0x00df, + 0x00e0, 0x00e1, 0x00e2, 0x0000, 0x00e4, 0x010b, 0x0109, 0x00e7, + 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, + 0x0000, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x0121, 0x00f6, 0x00f7, + 0x011d, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x016d, 0x015d, 0x02d9 +}; +#endif /* UNICODE_TABLE_ISO8859_3_H */ diff --git a/ext/mbstring/libmbfl/filters/unicode_table_iso8859_4.h b/ext/mbstring/libmbfl/filters/unicode_table_iso8859_4.h new file mode 100644 index 0000000..ff7ecdb --- /dev/null +++ b/ext/mbstring/libmbfl/filters/unicode_table_iso8859_4.h @@ -0,0 +1,17 @@ +/* This file is automatically generated. Do not edit! */ +#ifndef UNICODE_TABLE_ISO8859_4_H +static const int iso8859_4_ucs_table[] = { + 0x00a0, 0x0104, 0x0138, 0x0156, 0x00a4, 0x0128, 0x013b, 0x00a7, + 0x00a8, 0x0160, 0x0112, 0x0122, 0x0166, 0x00ad, 0x017d, 0x00af, + 0x00b0, 0x0105, 0x02db, 0x0157, 0x00b4, 0x0129, 0x013c, 0x02c7, + 0x00b8, 0x0161, 0x0113, 0x0123, 0x0167, 0x014a, 0x017e, 0x014b, + 0x0100, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x012e, + 0x010c, 0x00c9, 0x0118, 0x00cb, 0x0116, 0x00cd, 0x00ce, 0x012a, + 0x0110, 0x0145, 0x014c, 0x0136, 0x00d4, 0x00d5, 0x00d6, 0x00d7, + 0x00d8, 0x0172, 0x00da, 0x00db, 0x00dc, 0x0168, 0x016a, 0x00df, + 0x0101, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x012f, + 0x010d, 0x00e9, 0x0119, 0x00eb, 0x0117, 0x00ed, 0x00ee, 0x012b, + 0x0111, 0x0146, 0x014d, 0x0137, 0x00f4, 0x00f5, 0x00f6, 0x00f7, + 0x00f8, 0x0173, 0x00fa, 0x00fb, 0x00fc, 0x0169, 0x016b, 0x02d9 +}; +#endif /* UNICODE_TABLE_ISO8859_4_H */ diff --git a/ext/mbstring/libmbfl/filters/unicode_table_iso8859_5.h b/ext/mbstring/libmbfl/filters/unicode_table_iso8859_5.h new file mode 100644 index 0000000..411ab84 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/unicode_table_iso8859_5.h @@ -0,0 +1,17 @@ +/* This file is automatically generated. Do not edit! */ +#ifndef UNICODE_TABLE_ISO8859_5_H +static const int iso8859_5_ucs_table[] = { + 0x00a0, 0x0401, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407, + 0x0408, 0x0409, 0x040a, 0x040b, 0x040c, 0x00ad, 0x040e, 0x040f, + 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, + 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, + 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, + 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, + 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, + 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, + 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, + 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, + 0x2116, 0x0451, 0x0452, 0x0453, 0x0454, 0x0455, 0x0456, 0x0457, + 0x0458, 0x0459, 0x045a, 0x045b, 0x045c, 0x00a7, 0x045e, 0x045f +}; +#endif /* UNICODE_TABLE_ISO8859_5_H */ diff --git a/ext/mbstring/libmbfl/filters/unicode_table_iso8859_6.h b/ext/mbstring/libmbfl/filters/unicode_table_iso8859_6.h new file mode 100644 index 0000000..0b3952e --- /dev/null +++ b/ext/mbstring/libmbfl/filters/unicode_table_iso8859_6.h @@ -0,0 +1,17 @@ +/* This file is automatically generated. Do not edit! */ +#ifndef UNICODE_TABLE_ISO8859_6_H +static const int iso8859_6_ucs_table[] = { + 0x00a0, 0x0000, 0x0000, 0x0000, 0x00a4, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x060c, 0x00ad, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x061b, 0x0000, 0x0000, 0x0000, 0x061f, + 0x0000, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627, + 0x0628, 0x0629, 0x062a, 0x062b, 0x062c, 0x062d, 0x062e, 0x062f, + 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x0637, + 0x0638, 0x0639, 0x063a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0640, 0x0641, 0x0642, 0x0643, 0x0644, 0x0645, 0x0646, 0x0647, + 0x0648, 0x0649, 0x064a, 0x064b, 0x064c, 0x064d, 0x064e, 0x064f, + 0x0650, 0x0651, 0x0652, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 +}; +#endif /* UNICODE_TABLE_ISO8859_6_H */ diff --git a/ext/mbstring/libmbfl/filters/unicode_table_iso8859_7.h b/ext/mbstring/libmbfl/filters/unicode_table_iso8859_7.h new file mode 100644 index 0000000..687f4cb --- /dev/null +++ b/ext/mbstring/libmbfl/filters/unicode_table_iso8859_7.h @@ -0,0 +1,17 @@ +/* This file is automatically generated. Do not edit! */ +#ifndef UNICODE_TABLE_ISO8859_7_H +static const int iso8859_7_ucs_table[] = { + 0x00a0, 0x2018, 0x2019, 0x00a3, 0x20ac, 0x20af, 0x00a6, 0x00a7, + 0x00a8, 0x00a9, 0x037a, 0x00ab, 0x00ac, 0x00ad, 0x0000, 0x2015, + 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x0384, 0x0385, 0x0386, 0x00b7, + 0x0388, 0x0389, 0x038a, 0x00bb, 0x038c, 0x00bd, 0x038e, 0x038f, + 0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, + 0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, + 0x03a0, 0x03a1, 0x0000, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, + 0x03a8, 0x03a9, 0x03aa, 0x03ab, 0x03ac, 0x03ad, 0x03ae, 0x03af, + 0x03b0, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, + 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, + 0x03c0, 0x03c1, 0x03c2, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, + 0x03c8, 0x03c9, 0x03ca, 0x03cb, 0x03cc, 0x03cd, 0x03ce, 0x0000 +}; +#endif /* UNICODE_TABLE_ISO8859_7_H */ diff --git a/ext/mbstring/libmbfl/filters/unicode_table_iso8859_8.h b/ext/mbstring/libmbfl/filters/unicode_table_iso8859_8.h new file mode 100644 index 0000000..4ec6490 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/unicode_table_iso8859_8.h @@ -0,0 +1,17 @@ +/* This file is automatically generated. Do not edit! */ +#ifndef UNICODE_TABLE_ISO8859_8_H +static const int iso8859_8_ucs_table[] = { + 0x00a0, 0x0000, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, + 0x00a8, 0x00a9, 0x00d7, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, + 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, + 0x00b8, 0x00b9, 0x00f7, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2017, + 0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7, + 0x05d8, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df, + 0x05e0, 0x05e1, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7, + 0x05e8, 0x05e9, 0x05ea, 0x0000, 0x0000, 0x200e, 0x200f, 0x0000 +}; +#endif /* UNICODE_TABLE_ISO8859_8_H */ diff --git a/ext/mbstring/libmbfl/filters/unicode_table_iso8859_9.h b/ext/mbstring/libmbfl/filters/unicode_table_iso8859_9.h new file mode 100644 index 0000000..12f988a --- /dev/null +++ b/ext/mbstring/libmbfl/filters/unicode_table_iso8859_9.h @@ -0,0 +1,17 @@ +/* This file is automatically generated. Do not edit! */ +#ifndef UNICODE_TABLE_ISO8859_9_H +static const int iso8859_9_ucs_table[] = { + 0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, + 0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, + 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, + 0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, + 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, + 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, + 0x011e, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7, + 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x0130, 0x015e, 0x00df, + 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, + 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, + 0x011f, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7, + 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x0131, 0x015f, 0x00ff +}; +#endif /* UNICODE_TABLE_ISO8859_9_H */ diff --git a/ext/mbstring/libmbfl/filters/unicode_table_jis.h b/ext/mbstring/libmbfl/filters/unicode_table_jis.h new file mode 100644 index 0000000..9132d4b --- /dev/null +++ b/ext/mbstring/libmbfl/filters/unicode_table_jis.h @@ -0,0 +1,5872 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The authors of this file: PHP3 internationalization team + * You can contact the primary authors; 研 <sgk@happysize.co.jp>, + * Tsukada Takuya <tsukada@fminn.nagano.nagano.jp>. + * + */ + +#ifndef UNICODE_TABLE_JIS_H +#define UNICODE_TABLE_JIS_H + +#ifdef UNICODE_TABLE_JIS_DEF + +/* + * Unicode table + */ +const unsigned short jisx0208_ucs_table[] = { + /* ku 1 */ + 0x3000,0x3001,0x3002,0xFF0C,0xFF0E,0x30FB,0xFF1A,0xFF1B, + 0xFF1F,0xFF01,0x309B,0x309C,0x00B4,0xFF40,0x00A8,0xFF3E, + 0xFFE3,0xFF3F,0x30FD,0x30FE,0x309D,0x309E,0x3003,0x4EDD, + 0x3005,0x3006,0x3007,0x30FC,0x2015,0x2010,0xFF0F,0xFF3C, + 0x301C,0x2016,0xFF5C,0x2026,0x2025,0x2018,0x2019,0x201C, + 0x201D,0xFF08,0xFF09,0x3014,0x3015,0xFF3B,0xFF3D,0xFF5B, + 0xFF5D,0x3008,0x3009,0x300A,0x300B,0x300C,0x300D,0x300E, + 0x300F,0x3010,0x3011,0xFF0B,0x2212,0x00B1,0x00D7,0x00F7, + 0xFF1D,0x2260,0xFF1C,0xFF1E,0x2266,0x2267,0x221E,0x2234, + 0x2642,0x2640,0x00B0,0x2032,0x2033,0x2103,0xFFE5,0xFF04, + 0x00A2,0x00A3,0xFF05,0xFF03,0xFF06,0xFF0A,0xFF20,0x00A7, + 0x2606,0x2605,0x25CB,0x25CF,0x25CE,0x25C7, + + /* ku 2 */ + 0x25C6,0x25A1,0x25A0,0x25B3,0x25B2,0x25BD,0x25BC,0x203B, + 0x3012,0x2192,0x2190,0x2191,0x2193,0x3013,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x2208,0x220B,0x2286,0x2287,0x2282,0x2283,0x222A, + 0x2229,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x2227,0x2228,0x00AC,0x21D2,0x21D4,0x2200,0x2203, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x2220,0x22A5,0x2312,0x2202,0x2207, + 0x2261,0x2252,0x226A,0x226B,0x221A,0x223D,0x221D,0x2235, + 0x222B,0x222C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x212B,0x2030,0x266F,0x266D,0x266A,0x2020,0x2021, + 0x00B6,0x0000,0x0000,0x0000,0x0000,0x25EF, + + /* ku 3 */ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xFF10, + 0xFF11,0xFF12,0xFF13,0xFF14,0xFF15,0xFF16,0xFF17,0xFF18, + 0xFF19,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF21,0xFF22,0xFF23,0xFF24,0xFF25,0xFF26,0xFF27,0xFF28, + 0xFF29,0xFF2A,0xFF2B,0xFF2C,0xFF2D,0xFF2E,0xFF2F,0xFF30, + 0xFF31,0xFF32,0xFF33,0xFF34,0xFF35,0xFF36,0xFF37,0xFF38, + 0xFF39,0xFF3A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF41,0xFF42,0xFF43,0xFF44,0xFF45,0xFF46,0xFF47,0xFF48, + 0xFF49,0xFF4A,0xFF4B,0xFF4C,0xFF4D,0xFF4E,0xFF4F,0xFF50, + 0xFF51,0xFF52,0xFF53,0xFF54,0xFF55,0xFF56,0xFF57,0xFF58, + 0xFF59,0xFF5A,0x0000,0x0000,0x0000,0x0000, + + /* ku 4 */ + 0x3041,0x3042,0x3043,0x3044,0x3045,0x3046,0x3047,0x3048, + 0x3049,0x304A,0x304B,0x304C,0x304D,0x304E,0x304F,0x3050, + 0x3051,0x3052,0x3053,0x3054,0x3055,0x3056,0x3057,0x3058, + 0x3059,0x305A,0x305B,0x305C,0x305D,0x305E,0x305F,0x3060, + 0x3061,0x3062,0x3063,0x3064,0x3065,0x3066,0x3067,0x3068, + 0x3069,0x306A,0x306B,0x306C,0x306D,0x306E,0x306F,0x3070, + 0x3071,0x3072,0x3073,0x3074,0x3075,0x3076,0x3077,0x3078, + 0x3079,0x307A,0x307B,0x307C,0x307D,0x307E,0x307F,0x3080, + 0x3081,0x3082,0x3083,0x3084,0x3085,0x3086,0x3087,0x3088, + 0x3089,0x308A,0x308B,0x308C,0x308D,0x308E,0x308F,0x3090, + 0x3091,0x3092,0x3093,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* ku 5 */ + 0x30A1,0x30A2,0x30A3,0x30A4,0x30A5,0x30A6,0x30A7,0x30A8, + 0x30A9,0x30AA,0x30AB,0x30AC,0x30AD,0x30AE,0x30AF,0x30B0, + 0x30B1,0x30B2,0x30B3,0x30B4,0x30B5,0x30B6,0x30B7,0x30B8, + 0x30B9,0x30BA,0x30BB,0x30BC,0x30BD,0x30BE,0x30BF,0x30C0, + 0x30C1,0x30C2,0x30C3,0x30C4,0x30C5,0x30C6,0x30C7,0x30C8, + 0x30C9,0x30CA,0x30CB,0x30CC,0x30CD,0x30CE,0x30CF,0x30D0, + 0x30D1,0x30D2,0x30D3,0x30D4,0x30D5,0x30D6,0x30D7,0x30D8, + 0x30D9,0x30DA,0x30DB,0x30DC,0x30DD,0x30DE,0x30DF,0x30E0, + 0x30E1,0x30E2,0x30E3,0x30E4,0x30E5,0x30E6,0x30E7,0x30E8, + 0x30E9,0x30EA,0x30EB,0x30EC,0x30ED,0x30EE,0x30EF,0x30F0, + 0x30F1,0x30F2,0x30F3,0x30F4,0x30F5,0x30F6,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* ku 6 */ + 0x0391,0x0392,0x0393,0x0394,0x0395,0x0396,0x0397,0x0398, + 0x0399,0x039A,0x039B,0x039C,0x039D,0x039E,0x039F,0x03A0, + 0x03A1,0x03A3,0x03A4,0x03A5,0x03A6,0x03A7,0x03A8,0x03A9, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x03B1,0x03B2,0x03B3,0x03B4,0x03B5,0x03B6,0x03B7,0x03B8, + 0x03B9,0x03BA,0x03BB,0x03BC,0x03BD,0x03BE,0x03BF,0x03C0, + 0x03C1,0x03C3,0x03C4,0x03C5,0x03C6,0x03C7,0x03C8,0x03C9, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* ku 7 */ + 0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0401,0x0416, + 0x0417,0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E, + 0x041F,0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426, + 0x0427,0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E, + 0x042F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0451,0x0436, + 0x0437,0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E, + 0x043F,0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446, + 0x0447,0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E, + 0x044F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* ku 8 */ + 0x2500,0x2502,0x250C,0x2510,0x2518,0x2514,0x251C,0x252C, + 0x2524,0x2534,0x253C,0x2501,0x2503,0x250F,0x2513,0x251B, + 0x2517,0x2523,0x2533,0x252B,0x253B,0x254B,0x2520,0x252F, + 0x2528,0x2537,0x253F,0x251D,0x2530,0x2525,0x2538,0x2542, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* ku 9 */ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* ku 10 */ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* ku 11 */ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* ku 12 */ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* ku 13 */ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* ku 14 */ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* ku 15 */ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* ku 16 */ + 0x4E9C,0x5516,0x5A03,0x963F,0x54C0,0x611B,0x6328,0x59F6, + 0x9022,0x8475,0x831C,0x7A50,0x60AA,0x63E1,0x6E25,0x65ED, + 0x8466,0x82A6,0x9BF5,0x6893,0x5727,0x65A1,0x6271,0x5B9B, + 0x59D0,0x867B,0x98F4,0x7D62,0x7DBE,0x9B8E,0x6216,0x7C9F, + 0x88B7,0x5B89,0x5EB5,0x6309,0x6697,0x6848,0x95C7,0x978D, + 0x674F,0x4EE5,0x4F0A,0x4F4D,0x4F9D,0x5049,0x56F2,0x5937, + 0x59D4,0x5A01,0x5C09,0x60DF,0x610F,0x6170,0x6613,0x6905, + 0x70BA,0x754F,0x7570,0x79FB,0x7DAD,0x7DEF,0x80C3,0x840E, + 0x8863,0x8B02,0x9055,0x907A,0x533B,0x4E95,0x4EA5,0x57DF, + 0x80B2,0x90C1,0x78EF,0x4E00,0x58F1,0x6EA2,0x9038,0x7A32, + 0x8328,0x828B,0x9C2F,0x5141,0x5370,0x54BD,0x54E1,0x56E0, + 0x59FB,0x5F15,0x98F2,0x6DEB,0x80E4,0x852D, + + /* ku 17 */ + 0x9662,0x9670,0x96A0,0x97FB,0x540B,0x53F3,0x5B87,0x70CF, + 0x7FBD,0x8FC2,0x96E8,0x536F,0x9D5C,0x7ABA,0x4E11,0x7893, + 0x81FC,0x6E26,0x5618,0x5504,0x6B1D,0x851A,0x9C3B,0x59E5, + 0x53A9,0x6D66,0x74DC,0x958F,0x5642,0x4E91,0x904B,0x96F2, + 0x834F,0x990C,0x53E1,0x55B6,0x5B30,0x5F71,0x6620,0x66F3, + 0x6804,0x6C38,0x6CF3,0x6D29,0x745B,0x76C8,0x7A4E,0x9834, + 0x82F1,0x885B,0x8A60,0x92ED,0x6DB2,0x75AB,0x76CA,0x99C5, + 0x60A6,0x8B01,0x8D8A,0x95B2,0x698E,0x53AD,0x5186,0x5712, + 0x5830,0x5944,0x5BB4,0x5EF6,0x6028,0x63A9,0x63F4,0x6CBF, + 0x6F14,0x708E,0x7114,0x7159,0x71D5,0x733F,0x7E01,0x8276, + 0x82D1,0x8597,0x9060,0x925B,0x9D1B,0x5869,0x65BC,0x6C5A, + 0x7525,0x51F9,0x592E,0x5965,0x5F80,0x5FDC, + + /* ku 18 */ + 0x62BC,0x65FA,0x6A2A,0x6B27,0x6BB4,0x738B,0x7FC1,0x8956, + 0x9D2C,0x9D0E,0x9EC4,0x5CA1,0x6C96,0x837B,0x5104,0x5C4B, + 0x61B6,0x81C6,0x6876,0x7261,0x4E59,0x4FFA,0x5378,0x6069, + 0x6E29,0x7A4F,0x97F3,0x4E0B,0x5316,0x4EEE,0x4F55,0x4F3D, + 0x4FA1,0x4F73,0x52A0,0x53EF,0x5609,0x590F,0x5AC1,0x5BB6, + 0x5BE1,0x79D1,0x6687,0x679C,0x67B6,0x6B4C,0x6CB3,0x706B, + 0x73C2,0x798D,0x79BE,0x7A3C,0x7B87,0x82B1,0x82DB,0x8304, + 0x8377,0x83EF,0x83D3,0x8766,0x8AB2,0x5629,0x8CA8,0x8FE6, + 0x904E,0x971E,0x868A,0x4FC4,0x5CE8,0x6211,0x7259,0x753B, + 0x81E5,0x82BD,0x86FE,0x8CC0,0x96C5,0x9913,0x99D5,0x4ECB, + 0x4F1A,0x89E3,0x56DE,0x584A,0x58CA,0x5EFB,0x5FEB,0x602A, + 0x6094,0x6062,0x61D0,0x6212,0x62D0,0x6539, + + /* ku 19 */ + 0x9B41,0x6666,0x68B0,0x6D77,0x7070,0x754C,0x7686,0x7D75, + 0x82A5,0x87F9,0x958B,0x968E,0x8C9D,0x51F1,0x52BE,0x5916, + 0x54B3,0x5BB3,0x5D16,0x6168,0x6982,0x6DAF,0x788D,0x84CB, + 0x8857,0x8A72,0x93A7,0x9AB8,0x6D6C,0x99A8,0x86D9,0x57A3, + 0x67FF,0x86CE,0x920E,0x5283,0x5687,0x5404,0x5ED3,0x62E1, + 0x64B9,0x683C,0x6838,0x6BBB,0x7372,0x78BA,0x7A6B,0x899A, + 0x89D2,0x8D6B,0x8F03,0x90ED,0x95A3,0x9694,0x9769,0x5B66, + 0x5CB3,0x697D,0x984D,0x984E,0x639B,0x7B20,0x6A2B,0x6A7F, + 0x68B6,0x9C0D,0x6F5F,0x5272,0x559D,0x6070,0x62EC,0x6D3B, + 0x6E07,0x6ED1,0x845B,0x8910,0x8F44,0x4E14,0x9C39,0x53F6, + 0x691B,0x6A3A,0x9784,0x682A,0x515C,0x7AC3,0x84B2,0x91DC, + 0x938C,0x565B,0x9D28,0x6822,0x8305,0x8431, + + /* ku 20 */ + 0x7CA5,0x5208,0x82C5,0x74E6,0x4E7E,0x4F83,0x51A0,0x5BD2, + 0x520A,0x52D8,0x52E7,0x5DFB,0x559A,0x582A,0x59E6,0x5B8C, + 0x5B98,0x5BDB,0x5E72,0x5E79,0x60A3,0x611F,0x6163,0x61BE, + 0x63DB,0x6562,0x67D1,0x6853,0x68FA,0x6B3E,0x6B53,0x6C57, + 0x6F22,0x6F97,0x6F45,0x74B0,0x7518,0x76E3,0x770B,0x7AFF, + 0x7BA1,0x7C21,0x7DE9,0x7F36,0x7FF0,0x809D,0x8266,0x839E, + 0x89B3,0x8ACC,0x8CAB,0x9084,0x9451,0x9593,0x9591,0x95A2, + 0x9665,0x97D3,0x9928,0x8218,0x4E38,0x542B,0x5CB8,0x5DCC, + 0x73A9,0x764C,0x773C,0x5CA9,0x7FEB,0x8D0B,0x96C1,0x9811, + 0x9854,0x9858,0x4F01,0x4F0E,0x5371,0x559C,0x5668,0x57FA, + 0x5947,0x5B09,0x5BC4,0x5C90,0x5E0C,0x5E7E,0x5FCC,0x63EE, + 0x673A,0x65D7,0x65E2,0x671F,0x68CB,0x68C4, + + /* ku 21 */ + 0x6A5F,0x5E30,0x6BC5,0x6C17,0x6C7D,0x757F,0x7948,0x5B63, + 0x7A00,0x7D00,0x5FBD,0x898F,0x8A18,0x8CB4,0x8D77,0x8ECC, + 0x8F1D,0x98E2,0x9A0E,0x9B3C,0x4E80,0x507D,0x5100,0x5993, + 0x5B9C,0x622F,0x6280,0x64EC,0x6B3A,0x72A0,0x7591,0x7947, + 0x7FA9,0x87FB,0x8ABC,0x8B70,0x63AC,0x83CA,0x97A0,0x5409, + 0x5403,0x55AB,0x6854,0x6A58,0x8A70,0x7827,0x6775,0x9ECD, + 0x5374,0x5BA2,0x811A,0x8650,0x9006,0x4E18,0x4E45,0x4EC7, + 0x4F11,0x53CA,0x5438,0x5BAE,0x5F13,0x6025,0x6551,0x673D, + 0x6C42,0x6C72,0x6CE3,0x7078,0x7403,0x7A76,0x7AAE,0x7B08, + 0x7D1A,0x7CFE,0x7D66,0x65E7,0x725B,0x53BB,0x5C45,0x5DE8, + 0x62D2,0x62E0,0x6319,0x6E20,0x865A,0x8A31,0x8DDD,0x92F8, + 0x6F01,0x79A6,0x9B5A,0x4EA8,0x4EAB,0x4EAC, + + /* ku 22 */ + 0x4F9B,0x4FA0,0x50D1,0x5147,0x7AF6,0x5171,0x51F6,0x5354, + 0x5321,0x537F,0x53EB,0x55AC,0x5883,0x5CE1,0x5F37,0x5F4A, + 0x602F,0x6050,0x606D,0x631F,0x6559,0x6A4B,0x6CC1,0x72C2, + 0x72ED,0x77EF,0x80F8,0x8105,0x8208,0x854E,0x90F7,0x93E1, + 0x97FF,0x9957,0x9A5A,0x4EF0,0x51DD,0x5C2D,0x6681,0x696D, + 0x5C40,0x66F2,0x6975,0x7389,0x6850,0x7C81,0x50C5,0x52E4, + 0x5747,0x5DFE,0x9326,0x65A4,0x6B23,0x6B3D,0x7434,0x7981, + 0x79BD,0x7B4B,0x7DCA,0x82B9,0x83CC,0x887F,0x895F,0x8B39, + 0x8FD1,0x91D1,0x541F,0x9280,0x4E5D,0x5036,0x53E5,0x533A, + 0x72D7,0x7396,0x77E9,0x82E6,0x8EAF,0x99C6,0x99C8,0x99D2, + 0x5177,0x611A,0x865E,0x55B0,0x7A7A,0x5076,0x5BD3,0x9047, + 0x9685,0x4E32,0x6ADB,0x91E7,0x5C51,0x5C48, + + /* ku 23 */ + 0x6398,0x7A9F,0x6C93,0x9774,0x8F61,0x7AAA,0x718A,0x9688, + 0x7C82,0x6817,0x7E70,0x6851,0x936C,0x52F2,0x541B,0x85AB, + 0x8A13,0x7FA4,0x8ECD,0x90E1,0x5366,0x8888,0x7941,0x4FC2, + 0x50BE,0x5211,0x5144,0x5553,0x572D,0x73EA,0x578B,0x5951, + 0x5F62,0x5F84,0x6075,0x6176,0x6167,0x61A9,0x63B2,0x643A, + 0x656C,0x666F,0x6842,0x6E13,0x7566,0x7A3D,0x7CFB,0x7D4C, + 0x7D99,0x7E4B,0x7F6B,0x830E,0x834A,0x86CD,0x8A08,0x8A63, + 0x8B66,0x8EFD,0x981A,0x9D8F,0x82B8,0x8FCE,0x9BE8,0x5287, + 0x621F,0x6483,0x6FC0,0x9699,0x6841,0x5091,0x6B20,0x6C7A, + 0x6F54,0x7A74,0x7D50,0x8840,0x8A23,0x6708,0x4EF6,0x5039, + 0x5026,0x5065,0x517C,0x5238,0x5263,0x55A7,0x570F,0x5805, + 0x5ACC,0x5EFA,0x61B2,0x61F8,0x62F3,0x6372, + + /* ku 24 */ + 0x691C,0x6A29,0x727D,0x72AC,0x732E,0x7814,0x786F,0x7D79, + 0x770C,0x80A9,0x898B,0x8B19,0x8CE2,0x8ED2,0x9063,0x9375, + 0x967A,0x9855,0x9A13,0x9E78,0x5143,0x539F,0x53B3,0x5E7B, + 0x5F26,0x6E1B,0x6E90,0x7384,0x73FE,0x7D43,0x8237,0x8A00, + 0x8AFA,0x9650,0x4E4E,0x500B,0x53E4,0x547C,0x56FA,0x59D1, + 0x5B64,0x5DF1,0x5EAB,0x5F27,0x6238,0x6545,0x67AF,0x6E56, + 0x72D0,0x7CCA,0x88B4,0x80A1,0x80E1,0x83F0,0x864E,0x8A87, + 0x8DE8,0x9237,0x96C7,0x9867,0x9F13,0x4E94,0x4E92,0x4F0D, + 0x5348,0x5449,0x543E,0x5A2F,0x5F8C,0x5FA1,0x609F,0x68A7, + 0x6A8E,0x745A,0x7881,0x8A9E,0x8AA4,0x8B77,0x9190,0x4E5E, + 0x9BC9,0x4EA4,0x4F7C,0x4FAF,0x5019,0x5016,0x5149,0x516C, + 0x529F,0x52B9,0x52FE,0x539A,0x53E3,0x5411, + + /* ku 25 */ + 0x540E,0x5589,0x5751,0x57A2,0x597D,0x5B54,0x5B5D,0x5B8F, + 0x5DE5,0x5DE7,0x5DF7,0x5E78,0x5E83,0x5E9A,0x5EB7,0x5F18, + 0x6052,0x614C,0x6297,0x62D8,0x63A7,0x653B,0x6602,0x6643, + 0x66F4,0x676D,0x6821,0x6897,0x69CB,0x6C5F,0x6D2A,0x6D69, + 0x6E2F,0x6E9D,0x7532,0x7687,0x786C,0x7A3F,0x7CE0,0x7D05, + 0x7D18,0x7D5E,0x7DB1,0x8015,0x8003,0x80AF,0x80B1,0x8154, + 0x818F,0x822A,0x8352,0x884C,0x8861,0x8B1B,0x8CA2,0x8CFC, + 0x90CA,0x9175,0x9271,0x783F,0x92FC,0x95A4,0x964D,0x9805, + 0x9999,0x9AD8,0x9D3B,0x525B,0x52AB,0x53F7,0x5408,0x58D5, + 0x62F7,0x6FE0,0x8C6A,0x8F5F,0x9EB9,0x514B,0x523B,0x544A, + 0x56FD,0x7A40,0x9177,0x9D60,0x9ED2,0x7344,0x6F09,0x8170, + 0x7511,0x5FFD,0x60DA,0x9AA8,0x72DB,0x8FBC, + + /* ku 26 */ + 0x6B64,0x9803,0x4ECA,0x56F0,0x5764,0x58BE,0x5A5A,0x6068, + 0x61C7,0x660F,0x6606,0x6839,0x68B1,0x6DF7,0x75D5,0x7D3A, + 0x826E,0x9B42,0x4E9B,0x4F50,0x53C9,0x5506,0x5D6F,0x5DE6, + 0x5DEE,0x67FB,0x6C99,0x7473,0x7802,0x8A50,0x9396,0x88DF, + 0x5750,0x5EA7,0x632B,0x50B5,0x50AC,0x518D,0x6700,0x54C9, + 0x585E,0x59BB,0x5BB0,0x5F69,0x624D,0x63A1,0x683D,0x6B73, + 0x6E08,0x707D,0x91C7,0x7280,0x7815,0x7826,0x796D,0x658E, + 0x7D30,0x83DC,0x88C1,0x8F09,0x969B,0x5264,0x5728,0x6750, + 0x7F6A,0x8CA1,0x51B4,0x5742,0x962A,0x583A,0x698A,0x80B4, + 0x54B2,0x5D0E,0x57FC,0x7895,0x9DFA,0x4F5C,0x524A,0x548B, + 0x643E,0x6628,0x6714,0x67F5,0x7A84,0x7B56,0x7D22,0x932F, + 0x685C,0x9BAD,0x7B39,0x5319,0x518A,0x5237, + + /* ku 27 */ + 0x5BDF,0x62F6,0x64AE,0x64E6,0x672D,0x6BBA,0x85A9,0x96D1, + 0x7690,0x9BD6,0x634C,0x9306,0x9BAB,0x76BF,0x6652,0x4E09, + 0x5098,0x53C2,0x5C71,0x60E8,0x6492,0x6563,0x685F,0x71E6, + 0x73CA,0x7523,0x7B97,0x7E82,0x8695,0x8B83,0x8CDB,0x9178, + 0x9910,0x65AC,0x66AB,0x6B8B,0x4ED5,0x4ED4,0x4F3A,0x4F7F, + 0x523A,0x53F8,0x53F2,0x55E3,0x56DB,0x58EB,0x59CB,0x59C9, + 0x59FF,0x5B50,0x5C4D,0x5E02,0x5E2B,0x5FD7,0x601D,0x6307, + 0x652F,0x5B5C,0x65AF,0x65BD,0x65E8,0x679D,0x6B62,0x6B7B, + 0x6C0F,0x7345,0x7949,0x79C1,0x7CF8,0x7D19,0x7D2B,0x80A2, + 0x8102,0x81F3,0x8996,0x8A5E,0x8A69,0x8A66,0x8A8C,0x8AEE, + 0x8CC7,0x8CDC,0x96CC,0x98FC,0x6B6F,0x4E8B,0x4F3C,0x4F8D, + 0x5150,0x5B57,0x5BFA,0x6148,0x6301,0x6642, + + /* ku 28 */ + 0x6B21,0x6ECB,0x6CBB,0x723E,0x74BD,0x75D4,0x78C1,0x793A, + 0x800C,0x8033,0x81EA,0x8494,0x8F9E,0x6C50,0x9E7F,0x5F0F, + 0x8B58,0x9D2B,0x7AFA,0x8EF8,0x5B8D,0x96EB,0x4E03,0x53F1, + 0x57F7,0x5931,0x5AC9,0x5BA4,0x6089,0x6E7F,0x6F06,0x75BE, + 0x8CEA,0x5B9F,0x8500,0x7BE0,0x5072,0x67F4,0x829D,0x5C61, + 0x854A,0x7E1E,0x820E,0x5199,0x5C04,0x6368,0x8D66,0x659C, + 0x716E,0x793E,0x7D17,0x8005,0x8B1D,0x8ECA,0x906E,0x86C7, + 0x90AA,0x501F,0x52FA,0x5C3A,0x6753,0x707C,0x7235,0x914C, + 0x91C8,0x932B,0x82E5,0x5BC2,0x5F31,0x60F9,0x4E3B,0x53D6, + 0x5B88,0x624B,0x6731,0x6B8A,0x72E9,0x73E0,0x7A2E,0x816B, + 0x8DA3,0x9152,0x9996,0x5112,0x53D7,0x546A,0x5BFF,0x6388, + 0x6A39,0x7DAC,0x9700,0x56DA,0x53CE,0x5468, + + /* ku 29 */ + 0x5B97,0x5C31,0x5DDE,0x4FEE,0x6101,0x62FE,0x6D32,0x79C0, + 0x79CB,0x7D42,0x7E4D,0x7FD2,0x81ED,0x821F,0x8490,0x8846, + 0x8972,0x8B90,0x8E74,0x8F2F,0x9031,0x914B,0x916C,0x96C6, + 0x919C,0x4EC0,0x4F4F,0x5145,0x5341,0x5F93,0x620E,0x67D4, + 0x6C41,0x6E0B,0x7363,0x7E26,0x91CD,0x9283,0x53D4,0x5919, + 0x5BBF,0x6DD1,0x795D,0x7E2E,0x7C9B,0x587E,0x719F,0x51FA, + 0x8853,0x8FF0,0x4FCA,0x5CFB,0x6625,0x77AC,0x7AE3,0x821C, + 0x99FF,0x51C6,0x5FAA,0x65EC,0x696F,0x6B89,0x6DF3,0x6E96, + 0x6F64,0x76FE,0x7D14,0x5DE1,0x9075,0x9187,0x9806,0x51E6, + 0x521D,0x6240,0x6691,0x66D9,0x6E1A,0x5EB6,0x7DD2,0x7F72, + 0x66F8,0x85AF,0x85F7,0x8AF8,0x52A9,0x53D9,0x5973,0x5E8F, + 0x5F90,0x6055,0x92E4,0x9664,0x50B7,0x511F, + + /* ku 30 */ + 0x52DD,0x5320,0x5347,0x53EC,0x54E8,0x5546,0x5531,0x5617, + 0x5968,0x59BE,0x5A3C,0x5BB5,0x5C06,0x5C0F,0x5C11,0x5C1A, + 0x5E84,0x5E8A,0x5EE0,0x5F70,0x627F,0x6284,0x62DB,0x638C, + 0x6377,0x6607,0x660C,0x662D,0x6676,0x677E,0x68A2,0x6A1F, + 0x6A35,0x6CBC,0x6D88,0x6E09,0x6E58,0x713C,0x7126,0x7167, + 0x75C7,0x7701,0x785D,0x7901,0x7965,0x79F0,0x7AE0,0x7B11, + 0x7CA7,0x7D39,0x8096,0x83D6,0x848B,0x8549,0x885D,0x88F3, + 0x8A1F,0x8A3C,0x8A54,0x8A73,0x8C61,0x8CDE,0x91A4,0x9266, + 0x937E,0x9418,0x969C,0x9798,0x4E0A,0x4E08,0x4E1E,0x4E57, + 0x5197,0x5270,0x57CE,0x5834,0x58CC,0x5B22,0x5E38,0x60C5, + 0x64FE,0x6761,0x6756,0x6D44,0x72B6,0x7573,0x7A63,0x84B8, + 0x8B72,0x91B8,0x9320,0x5631,0x57F4,0x98FE, + + /* ku 31 */ + 0x62ED,0x690D,0x6B96,0x71ED,0x7E54,0x8077,0x8272,0x89E6, + 0x98DF,0x8755,0x8FB1,0x5C3B,0x4F38,0x4FE1,0x4FB5,0x5507, + 0x5A20,0x5BDD,0x5BE9,0x5FC3,0x614E,0x632F,0x65B0,0x664B, + 0x68EE,0x699B,0x6D78,0x6DF1,0x7533,0x75B9,0x771F,0x795E, + 0x79E6,0x7D33,0x81E3,0x82AF,0x85AA,0x89AA,0x8A3A,0x8EAB, + 0x8F9B,0x9032,0x91DD,0x9707,0x4EBA,0x4EC1,0x5203,0x5875, + 0x58EC,0x5C0B,0x751A,0x5C3D,0x814E,0x8A0A,0x8FC5,0x9663, + 0x976D,0x7B25,0x8ACF,0x9808,0x9162,0x56F3,0x53A8,0x9017, + 0x5439,0x5782,0x5E25,0x63A8,0x6C34,0x708A,0x7761,0x7C8B, + 0x7FE0,0x8870,0x9042,0x9154,0x9310,0x9318,0x968F,0x745E, + 0x9AC4,0x5D07,0x5D69,0x6570,0x67A2,0x8DA8,0x96DB,0x636E, + 0x6749,0x6919,0x83C5,0x9817,0x96C0,0x88FE, + + /* ku 32 */ + 0x6F84,0x647A,0x5BF8,0x4E16,0x702C,0x755D,0x662F,0x51C4, + 0x5236,0x52E2,0x59D3,0x5F81,0x6027,0x6210,0x653F,0x6574, + 0x661F,0x6674,0x68F2,0x6816,0x6B63,0x6E05,0x7272,0x751F, + 0x76DB,0x7CBE,0x8056,0x58F0,0x88FD,0x897F,0x8AA0,0x8A93, + 0x8ACB,0x901D,0x9192,0x9752,0x9759,0x6589,0x7A0E,0x8106, + 0x96BB,0x5E2D,0x60DC,0x621A,0x65A5,0x6614,0x6790,0x77F3, + 0x7A4D,0x7C4D,0x7E3E,0x810A,0x8CAC,0x8D64,0x8DE1,0x8E5F, + 0x78A9,0x5207,0x62D9,0x63A5,0x6442,0x6298,0x8A2D,0x7A83, + 0x7BC0,0x8AAC,0x96EA,0x7D76,0x820C,0x8749,0x4ED9,0x5148, + 0x5343,0x5360,0x5BA3,0x5C02,0x5C16,0x5DDD,0x6226,0x6247, + 0x64B0,0x6813,0x6834,0x6CC9,0x6D45,0x6D17,0x67D3,0x6F5C, + 0x714E,0x717D,0x65CB,0x7A7F,0x7BAD,0x7DDA, + + /* ku 33 */ + 0x7E4A,0x7FA8,0x817A,0x821B,0x8239,0x85A6,0x8A6E,0x8CCE, + 0x8DF5,0x9078,0x9077,0x92AD,0x9291,0x9583,0x9BAE,0x524D, + 0x5584,0x6F38,0x7136,0x5168,0x7985,0x7E55,0x81B3,0x7CCE, + 0x564C,0x5851,0x5CA8,0x63AA,0x66FE,0x66FD,0x695A,0x72D9, + 0x758F,0x758E,0x790E,0x7956,0x79DF,0x7C97,0x7D20,0x7D44, + 0x8607,0x8A34,0x963B,0x9061,0x9F20,0x50E7,0x5275,0x53CC, + 0x53E2,0x5009,0x55AA,0x58EE,0x594F,0x723D,0x5B8B,0x5C64, + 0x531D,0x60E3,0x60F3,0x635C,0x6383,0x633F,0x63BB,0x64CD, + 0x65E9,0x66F9,0x5DE3,0x69CD,0x69FD,0x6F15,0x71E5,0x4E89, + 0x75E9,0x76F8,0x7A93,0x7CDF,0x7DCF,0x7D9C,0x8061,0x8349, + 0x8358,0x846C,0x84BC,0x85FB,0x88C5,0x8D70,0x9001,0x906D, + 0x9397,0x971C,0x9A12,0x50CF,0x5897,0x618E, + + /* ku 34 */ + 0x81D3,0x8535,0x8D08,0x9020,0x4FC3,0x5074,0x5247,0x5373, + 0x606F,0x6349,0x675F,0x6E2C,0x8DB3,0x901F,0x4FD7,0x5C5E, + 0x8CCA,0x65CF,0x7D9A,0x5352,0x8896,0x5176,0x63C3,0x5B58, + 0x5B6B,0x5C0A,0x640D,0x6751,0x905C,0x4ED6,0x591A,0x592A, + 0x6C70,0x8A51,0x553E,0x5815,0x59A5,0x60F0,0x6253,0x67C1, + 0x8235,0x6955,0x9640,0x99C4,0x9A28,0x4F53,0x5806,0x5BFE, + 0x8010,0x5CB1,0x5E2F,0x5F85,0x6020,0x614B,0x6234,0x66FF, + 0x6CF0,0x6EDE,0x80CE,0x817F,0x82D4,0x888B,0x8CB8,0x9000, + 0x902E,0x968A,0x9EDB,0x9BDB,0x4EE3,0x53F0,0x5927,0x7B2C, + 0x918D,0x984C,0x9DF9,0x6EDD,0x7027,0x5353,0x5544,0x5B85, + 0x6258,0x629E,0x62D3,0x6CA2,0x6FEF,0x7422,0x8A17,0x9438, + 0x6FC1,0x8AFE,0x8338,0x51E7,0x86F8,0x53EA, + + /* ku 35 */ + 0x53E9,0x4F46,0x9054,0x8FB0,0x596A,0x8131,0x5DFD,0x7AEA, + 0x8FBF,0x68DA,0x8C37,0x72F8,0x9C48,0x6A3D,0x8AB0,0x4E39, + 0x5358,0x5606,0x5766,0x62C5,0x63A2,0x65E6,0x6B4E,0x6DE1, + 0x6E5B,0x70AD,0x77ED,0x7AEF,0x7BAA,0x7DBB,0x803D,0x80C6, + 0x86CB,0x8A95,0x935B,0x56E3,0x58C7,0x5F3E,0x65AD,0x6696, + 0x6A80,0x6BB5,0x7537,0x8AC7,0x5024,0x77E5,0x5730,0x5F1B, + 0x6065,0x667A,0x6C60,0x75F4,0x7A1A,0x7F6E,0x81F4,0x8718, + 0x9045,0x99B3,0x7BC9,0x755C,0x7AF9,0x7B51,0x84C4,0x9010, + 0x79E9,0x7A92,0x8336,0x5AE1,0x7740,0x4E2D,0x4EF2,0x5B99, + 0x5FE0,0x62BD,0x663C,0x67F1,0x6CE8,0x866B,0x8877,0x8A3B, + 0x914E,0x92F3,0x99D0,0x6A17,0x7026,0x732A,0x82E7,0x8457, + 0x8CAF,0x4E01,0x5146,0x51CB,0x558B,0x5BF5, + + /* ku 36 */ + 0x5E16,0x5E33,0x5E81,0x5F14,0x5F35,0x5F6B,0x5FB4,0x61F2, + 0x6311,0x66A2,0x671D,0x6F6E,0x7252,0x753A,0x773A,0x8074, + 0x8139,0x8178,0x8776,0x8ABF,0x8ADC,0x8D85,0x8DF3,0x929A, + 0x9577,0x9802,0x9CE5,0x52C5,0x6357,0x76F4,0x6715,0x6C88, + 0x73CD,0x8CC3,0x93AE,0x9673,0x6D25,0x589C,0x690E,0x69CC, + 0x8FFD,0x939A,0x75DB,0x901A,0x585A,0x6802,0x63B4,0x69FB, + 0x4F43,0x6F2C,0x67D8,0x8FBB,0x8526,0x7DB4,0x9354,0x693F, + 0x6F70,0x576A,0x58F7,0x5B2C,0x7D2C,0x722A,0x540A,0x91E3, + 0x9DB4,0x4EAD,0x4F4E,0x505C,0x5075,0x5243,0x8C9E,0x5448, + 0x5824,0x5B9A,0x5E1D,0x5E95,0x5EAD,0x5EF7,0x5F1F,0x608C, + 0x62B5,0x633A,0x63D0,0x68AF,0x6C40,0x7887,0x798E,0x7A0B, + 0x7DE0,0x8247,0x8A02,0x8AE6,0x8E44,0x9013, + + /* ku 37 */ + 0x90B8,0x912D,0x91D8,0x9F0E,0x6CE5,0x6458,0x64E2,0x6575, + 0x6EF4,0x7684,0x7B1B,0x9069,0x93D1,0x6EBA,0x54F2,0x5FB9, + 0x64A4,0x8F4D,0x8FED,0x9244,0x5178,0x586B,0x5929,0x5C55, + 0x5E97,0x6DFB,0x7E8F,0x751C,0x8CBC,0x8EE2,0x985B,0x70B9, + 0x4F1D,0x6BBF,0x6FB1,0x7530,0x96FB,0x514E,0x5410,0x5835, + 0x5857,0x59AC,0x5C60,0x5F92,0x6597,0x675C,0x6E21,0x767B, + 0x83DF,0x8CED,0x9014,0x90FD,0x934D,0x7825,0x783A,0x52AA, + 0x5EA6,0x571F,0x5974,0x6012,0x5012,0x515A,0x51AC,0x51CD, + 0x5200,0x5510,0x5854,0x5858,0x5957,0x5B95,0x5CF6,0x5D8B, + 0x60BC,0x6295,0x642D,0x6771,0x6843,0x68BC,0x68DF,0x76D7, + 0x6DD8,0x6E6F,0x6D9B,0x706F,0x71C8,0x5F53,0x75D8,0x7977, + 0x7B49,0x7B54,0x7B52,0x7CD6,0x7D71,0x5230, + + /* ku 38 */ + 0x8463,0x8569,0x85E4,0x8A0E,0x8B04,0x8C46,0x8E0F,0x9003, + 0x900F,0x9419,0x9676,0x982D,0x9A30,0x95D8,0x50CD,0x52D5, + 0x540C,0x5802,0x5C0E,0x61A7,0x649E,0x6D1E,0x77B3,0x7AE5, + 0x80F4,0x8404,0x9053,0x9285,0x5CE0,0x9D07,0x533F,0x5F97, + 0x5FB3,0x6D9C,0x7279,0x7763,0x79BF,0x7BE4,0x6BD2,0x72EC, + 0x8AAD,0x6803,0x6A61,0x51F8,0x7A81,0x6934,0x5C4A,0x9CF6, + 0x82EB,0x5BC5,0x9149,0x701E,0x5678,0x5C6F,0x60C7,0x6566, + 0x6C8C,0x8C5A,0x9041,0x9813,0x5451,0x66C7,0x920D,0x5948, + 0x90A3,0x5185,0x4E4D,0x51EA,0x8599,0x8B0E,0x7058,0x637A, + 0x934B,0x6962,0x99B4,0x7E04,0x7577,0x5357,0x6960,0x8EDF, + 0x96E3,0x6C5D,0x4E8C,0x5C3C,0x5F10,0x8FE9,0x5302,0x8CD1, + 0x8089,0x8679,0x5EFF,0x65E5,0x4E73,0x5165, + + /* ku 39 */ + 0x5982,0x5C3F,0x97EE,0x4EFB,0x598A,0x5FCD,0x8A8D,0x6FE1, + 0x79B0,0x7962,0x5BE7,0x8471,0x732B,0x71B1,0x5E74,0x5FF5, + 0x637B,0x649A,0x71C3,0x7C98,0x4E43,0x5EFC,0x4E4B,0x57DC, + 0x56A2,0x60A9,0x6FC3,0x7D0D,0x80FD,0x8133,0x81BF,0x8FB2, + 0x8997,0x86A4,0x5DF4,0x628A,0x64AD,0x8987,0x6777,0x6CE2, + 0x6D3E,0x7436,0x7834,0x5A46,0x7F75,0x82AD,0x99AC,0x4FF3, + 0x5EC3,0x62DD,0x6392,0x6557,0x676F,0x76C3,0x724C,0x80CC, + 0x80BA,0x8F29,0x914D,0x500D,0x57F9,0x5A92,0x6885,0x6973, + 0x7164,0x72FD,0x8CB7,0x58F2,0x8CE0,0x966A,0x9019,0x877F, + 0x79E4,0x77E7,0x8429,0x4F2F,0x5265,0x535A,0x62CD,0x67CF, + 0x6CCA,0x767D,0x7B94,0x7C95,0x8236,0x8584,0x8FEB,0x66DD, + 0x6F20,0x7206,0x7E1B,0x83AB,0x99C1,0x9EA6, + + /* ku 40 */ + 0x51FD,0x7BB1,0x7872,0x7BB8,0x8087,0x7B48,0x6AE8,0x5E61, + 0x808C,0x7551,0x7560,0x516B,0x9262,0x6E8C,0x767A,0x9197, + 0x9AEA,0x4F10,0x7F70,0x629C,0x7B4F,0x95A5,0x9CE9,0x567A, + 0x5859,0x86E4,0x96BC,0x4F34,0x5224,0x534A,0x53CD,0x53DB, + 0x5E06,0x642C,0x6591,0x677F,0x6C3E,0x6C4E,0x7248,0x72AF, + 0x73ED,0x7554,0x7E41,0x822C,0x85E9,0x8CA9,0x7BC4,0x91C6, + 0x7169,0x9812,0x98EF,0x633D,0x6669,0x756A,0x76E4,0x78D0, + 0x8543,0x86EE,0x532A,0x5351,0x5426,0x5983,0x5E87,0x5F7C, + 0x60B2,0x6249,0x6279,0x62AB,0x6590,0x6BD4,0x6CCC,0x75B2, + 0x76AE,0x7891,0x79D8,0x7DCB,0x7F77,0x80A5,0x88AB,0x8AB9, + 0x8CBB,0x907F,0x975E,0x98DB,0x6A0B,0x7C38,0x5099,0x5C3E, + 0x5FAE,0x6787,0x6BD8,0x7435,0x7709,0x7F8E, + + /* ku 41 */ + 0x9F3B,0x67CA,0x7A17,0x5339,0x758B,0x9AED,0x5F66,0x819D, + 0x83F1,0x8098,0x5F3C,0x5FC5,0x7562,0x7B46,0x903C,0x6867, + 0x59EB,0x5A9B,0x7D10,0x767E,0x8B2C,0x4FF5,0x5F6A,0x6A19, + 0x6C37,0x6F02,0x74E2,0x7968,0x8868,0x8A55,0x8C79,0x5EDF, + 0x63CF,0x75C5,0x79D2,0x82D7,0x9328,0x92F2,0x849C,0x86ED, + 0x9C2D,0x54C1,0x5F6C,0x658C,0x6D5C,0x7015,0x8CA7,0x8CD3, + 0x983B,0x654F,0x74F6,0x4E0D,0x4ED8,0x57E0,0x592B,0x5A66, + 0x5BCC,0x51A8,0x5E03,0x5E9C,0x6016,0x6276,0x6577,0x65A7, + 0x666E,0x6D6E,0x7236,0x7B26,0x8150,0x819A,0x8299,0x8B5C, + 0x8CA0,0x8CE6,0x8D74,0x961C,0x9644,0x4FAE,0x64AB,0x6B66, + 0x821E,0x8461,0x856A,0x90E8,0x5C01,0x6953,0x98A8,0x847A, + 0x8557,0x4F0F,0x526F,0x5FA9,0x5E45,0x670D, + + /* ku 42 */ + 0x798F,0x8179,0x8907,0x8986,0x6DF5,0x5F17,0x6255,0x6CB8, + 0x4ECF,0x7269,0x9B92,0x5206,0x543B,0x5674,0x58B3,0x61A4, + 0x626E,0x711A,0x596E,0x7C89,0x7CDE,0x7D1B,0x96F0,0x6587, + 0x805E,0x4E19,0x4F75,0x5175,0x5840,0x5E63,0x5E73,0x5F0A, + 0x67C4,0x4E26,0x853D,0x9589,0x965B,0x7C73,0x9801,0x50FB, + 0x58C1,0x7656,0x78A7,0x5225,0x77A5,0x8511,0x7B86,0x504F, + 0x5909,0x7247,0x7BC7,0x7DE8,0x8FBA,0x8FD4,0x904D,0x4FBF, + 0x52C9,0x5A29,0x5F01,0x97AD,0x4FDD,0x8217,0x92EA,0x5703, + 0x6355,0x6B69,0x752B,0x88DC,0x8F14,0x7A42,0x52DF,0x5893, + 0x6155,0x620A,0x66AE,0x6BCD,0x7C3F,0x83E9,0x5023,0x4FF8, + 0x5305,0x5446,0x5831,0x5949,0x5B9D,0x5CF0,0x5CEF,0x5D29, + 0x5E96,0x62B1,0x6367,0x653E,0x65B9,0x670B, + + /* ku 43 */ + 0x6CD5,0x6CE1,0x70F9,0x7832,0x7E2B,0x80DE,0x82B3,0x840C, + 0x84EC,0x8702,0x8912,0x8A2A,0x8C4A,0x90A6,0x92D2,0x98FD, + 0x9CF3,0x9D6C,0x4E4F,0x4EA1,0x508D,0x5256,0x574A,0x59A8, + 0x5E3D,0x5FD8,0x5FD9,0x623F,0x66B4,0x671B,0x67D0,0x68D2, + 0x5192,0x7D21,0x80AA,0x81A8,0x8B00,0x8C8C,0x8CBF,0x927E, + 0x9632,0x5420,0x982C,0x5317,0x50D5,0x535C,0x58A8,0x64B2, + 0x6734,0x7267,0x7766,0x7A46,0x91E6,0x52C3,0x6CA1,0x6B86, + 0x5800,0x5E4C,0x5954,0x672C,0x7FFB,0x51E1,0x76C6,0x6469, + 0x78E8,0x9B54,0x9EBB,0x57CB,0x59B9,0x6627,0x679A,0x6BCE, + 0x54E9,0x69D9,0x5E55,0x819C,0x6795,0x9BAA,0x67FE,0x9C52, + 0x685D,0x4EA6,0x4FE3,0x53C8,0x62B9,0x672B,0x6CAB,0x8FC4, + 0x4FAD,0x7E6D,0x9EBF,0x4E07,0x6162,0x6E80, + + /* ku 44 */ + 0x6F2B,0x8513,0x5473,0x672A,0x9B45,0x5DF3,0x7B95,0x5CAC, + 0x5BC6,0x871C,0x6E4A,0x84D1,0x7A14,0x8108,0x5999,0x7C8D, + 0x6C11,0x7720,0x52D9,0x5922,0x7121,0x725F,0x77DB,0x9727, + 0x9D61,0x690B,0x5A7F,0x5A18,0x51A5,0x540D,0x547D,0x660E, + 0x76DF,0x8FF7,0x9298,0x9CF4,0x59EA,0x725D,0x6EC5,0x514D, + 0x68C9,0x7DBF,0x7DEC,0x9762,0x9EBA,0x6478,0x6A21,0x8302, + 0x5984,0x5B5F,0x6BDB,0x731B,0x76F2,0x7DB2,0x8017,0x8499, + 0x5132,0x6728,0x9ED9,0x76EE,0x6762,0x52FF,0x9905,0x5C24, + 0x623B,0x7C7E,0x8CB0,0x554F,0x60B6,0x7D0B,0x9580,0x5301, + 0x4E5F,0x51B6,0x591C,0x723A,0x8036,0x91CE,0x5F25,0x77E2, + 0x5384,0x5F79,0x7D04,0x85AC,0x8A33,0x8E8D,0x9756,0x67F3, + 0x85AE,0x9453,0x6109,0x6108,0x6CB9,0x7652, + + /* ku 45 */ + 0x8AED,0x8F38,0x552F,0x4F51,0x512A,0x52C7,0x53CB,0x5BA5, + 0x5E7D,0x60A0,0x6182,0x63D6,0x6709,0x67DA,0x6E67,0x6D8C, + 0x7336,0x7337,0x7531,0x7950,0x88D5,0x8A98,0x904A,0x9091, + 0x90F5,0x96C4,0x878D,0x5915,0x4E88,0x4F59,0x4E0E,0x8A89, + 0x8F3F,0x9810,0x50AD,0x5E7C,0x5996,0x5BB9,0x5EB8,0x63DA, + 0x63FA,0x64C1,0x66DC,0x694A,0x69D8,0x6D0B,0x6EB6,0x7194, + 0x7528,0x7AAF,0x7F8A,0x8000,0x8449,0x84C9,0x8981,0x8B21, + 0x8E0A,0x9065,0x967D,0x990A,0x617E,0x6291,0x6B32,0x6C83, + 0x6D74,0x7FCC,0x7FFC,0x6DC0,0x7F85,0x87BA,0x88F8,0x6765, + 0x83B1,0x983C,0x96F7,0x6D1B,0x7D61,0x843D,0x916A,0x4E71, + 0x5375,0x5D50,0x6B04,0x6FEB,0x85CD,0x862D,0x89A7,0x5229, + 0x540F,0x5C65,0x674E,0x68A8,0x7406,0x7483, + + /* ku 46 */ + 0x75E2,0x88CF,0x88E1,0x91CC,0x96E2,0x9678,0x5F8B,0x7387, + 0x7ACB,0x844E,0x63A0,0x7565,0x5289,0x6D41,0x6E9C,0x7409, + 0x7559,0x786B,0x7C92,0x9686,0x7ADC,0x9F8D,0x4FB6,0x616E, + 0x65C5,0x865C,0x4E86,0x4EAE,0x50DA,0x4E21,0x51CC,0x5BEE, + 0x6599,0x6881,0x6DBC,0x731F,0x7642,0x77AD,0x7A1C,0x7CE7, + 0x826F,0x8AD2,0x907C,0x91CF,0x9675,0x9818,0x529B,0x7DD1, + 0x502B,0x5398,0x6797,0x6DCB,0x71D0,0x7433,0x81E8,0x8F2A, + 0x96A3,0x9C57,0x9E9F,0x7460,0x5841,0x6D99,0x7D2F,0x985E, + 0x4EE4,0x4F36,0x4F8B,0x51B7,0x52B1,0x5DBA,0x601C,0x73B2, + 0x793C,0x82D3,0x9234,0x96B7,0x96F6,0x970A,0x9E97,0x9F62, + 0x66A6,0x6B74,0x5217,0x52A3,0x70C8,0x88C2,0x5EC9,0x604B, + 0x6190,0x6F23,0x7149,0x7C3E,0x7DF4,0x806F, + + /* ku 47 */ + 0x84EE,0x9023,0x932C,0x5442,0x9B6F,0x6AD3,0x7089,0x8CC2, + 0x8DEF,0x9732,0x52B4,0x5A41,0x5ECA,0x5F04,0x6717,0x697C, + 0x6994,0x6D6A,0x6F0F,0x7262,0x72FC,0x7BED,0x8001,0x807E, + 0x874B,0x90CE,0x516D,0x9E93,0x7984,0x808B,0x9332,0x8AD6, + 0x502D,0x548C,0x8A71,0x6B6A,0x8CC4,0x8107,0x60D1,0x67A0, + 0x9DF2,0x4E99,0x4E98,0x9C10,0x8A6B,0x85C1,0x8568,0x6900, + 0x6E7E,0x7897,0x8155,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* ku 48 */ + 0x5F0C,0x4E10,0x4E15,0x4E2A,0x4E31,0x4E36,0x4E3C,0x4E3F, + 0x4E42,0x4E56,0x4E58,0x4E82,0x4E85,0x8C6B,0x4E8A,0x8212, + 0x5F0D,0x4E8E,0x4E9E,0x4E9F,0x4EA0,0x4EA2,0x4EB0,0x4EB3, + 0x4EB6,0x4ECE,0x4ECD,0x4EC4,0x4EC6,0x4EC2,0x4ED7,0x4EDE, + 0x4EED,0x4EDF,0x4EF7,0x4F09,0x4F5A,0x4F30,0x4F5B,0x4F5D, + 0x4F57,0x4F47,0x4F76,0x4F88,0x4F8F,0x4F98,0x4F7B,0x4F69, + 0x4F70,0x4F91,0x4F6F,0x4F86,0x4F96,0x5118,0x4FD4,0x4FDF, + 0x4FCE,0x4FD8,0x4FDB,0x4FD1,0x4FDA,0x4FD0,0x4FE4,0x4FE5, + 0x501A,0x5028,0x5014,0x502A,0x5025,0x5005,0x4F1C,0x4FF6, + 0x5021,0x5029,0x502C,0x4FFE,0x4FEF,0x5011,0x5006,0x5043, + 0x5047,0x6703,0x5055,0x5050,0x5048,0x505A,0x5056,0x506C, + 0x5078,0x5080,0x509A,0x5085,0x50B4,0x50B2, + + /* ku 49 */ + 0x50C9,0x50CA,0x50B3,0x50C2,0x50D6,0x50DE,0x50E5,0x50ED, + 0x50E3,0x50EE,0x50F9,0x50F5,0x5109,0x5101,0x5102,0x5116, + 0x5115,0x5114,0x511A,0x5121,0x513A,0x5137,0x513C,0x513B, + 0x513F,0x5140,0x5152,0x514C,0x5154,0x5162,0x7AF8,0x5169, + 0x516A,0x516E,0x5180,0x5182,0x56D8,0x518C,0x5189,0x518F, + 0x5191,0x5193,0x5195,0x5196,0x51A4,0x51A6,0x51A2,0x51A9, + 0x51AA,0x51AB,0x51B3,0x51B1,0x51B2,0x51B0,0x51B5,0x51BD, + 0x51C5,0x51C9,0x51DB,0x51E0,0x8655,0x51E9,0x51ED,0x51F0, + 0x51F5,0x51FE,0x5204,0x520B,0x5214,0x520E,0x5227,0x522A, + 0x522E,0x5233,0x5239,0x524F,0x5244,0x524B,0x524C,0x525E, + 0x5254,0x526A,0x5274,0x5269,0x5273,0x527F,0x527D,0x528D, + 0x5294,0x5292,0x5271,0x5288,0x5291,0x8FA8, + + /* ku 50 */ + 0x8FA7,0x52AC,0x52AD,0x52BC,0x52B5,0x52C1,0x52CD,0x52D7, + 0x52DE,0x52E3,0x52E6,0x98ED,0x52E0,0x52F3,0x52F5,0x52F8, + 0x52F9,0x5306,0x5308,0x7538,0x530D,0x5310,0x530F,0x5315, + 0x531A,0x5323,0x532F,0x5331,0x5333,0x5338,0x5340,0x5346, + 0x5345,0x4E17,0x5349,0x534D,0x51D6,0x535E,0x5369,0x536E, + 0x5918,0x537B,0x5377,0x5382,0x5396,0x53A0,0x53A6,0x53A5, + 0x53AE,0x53B0,0x53B6,0x53C3,0x7C12,0x96D9,0x53DF,0x66FC, + 0x71EE,0x53EE,0x53E8,0x53ED,0x53FA,0x5401,0x543D,0x5440, + 0x542C,0x542D,0x543C,0x542E,0x5436,0x5429,0x541D,0x544E, + 0x548F,0x5475,0x548E,0x545F,0x5471,0x5477,0x5470,0x5492, + 0x547B,0x5480,0x5476,0x5484,0x5490,0x5486,0x54C7,0x54A2, + 0x54B8,0x54A5,0x54AC,0x54C4,0x54C8,0x54A8, + + /* ku 51 */ + 0x54AB,0x54C2,0x54A4,0x54BE,0x54BC,0x54D8,0x54E5,0x54E6, + 0x550F,0x5514,0x54FD,0x54EE,0x54ED,0x54FA,0x54E2,0x5539, + 0x5540,0x5563,0x554C,0x552E,0x555C,0x5545,0x5556,0x5557, + 0x5538,0x5533,0x555D,0x5599,0x5580,0x54AF,0x558A,0x559F, + 0x557B,0x557E,0x5598,0x559E,0x55AE,0x557C,0x5583,0x55A9, + 0x5587,0x55A8,0x55DA,0x55C5,0x55DF,0x55C4,0x55DC,0x55E4, + 0x55D4,0x5614,0x55F7,0x5616,0x55FE,0x55FD,0x561B,0x55F9, + 0x564E,0x5650,0x71DF,0x5634,0x5636,0x5632,0x5638,0x566B, + 0x5664,0x562F,0x566C,0x566A,0x5686,0x5680,0x568A,0x56A0, + 0x5694,0x568F,0x56A5,0x56AE,0x56B6,0x56B4,0x56C2,0x56BC, + 0x56C1,0x56C3,0x56C0,0x56C8,0x56CE,0x56D1,0x56D3,0x56D7, + 0x56EE,0x56F9,0x5700,0x56FF,0x5704,0x5709, + + /* ku 52 */ + 0x5708,0x570B,0x570D,0x5713,0x5718,0x5716,0x55C7,0x571C, + 0x5726,0x5737,0x5738,0x574E,0x573B,0x5740,0x574F,0x5769, + 0x57C0,0x5788,0x5761,0x577F,0x5789,0x5793,0x57A0,0x57B3, + 0x57A4,0x57AA,0x57B0,0x57C3,0x57C6,0x57D4,0x57D2,0x57D3, + 0x580A,0x57D6,0x57E3,0x580B,0x5819,0x581D,0x5872,0x5821, + 0x5862,0x584B,0x5870,0x6BC0,0x5852,0x583D,0x5879,0x5885, + 0x58B9,0x589F,0x58AB,0x58BA,0x58DE,0x58BB,0x58B8,0x58AE, + 0x58C5,0x58D3,0x58D1,0x58D7,0x58D9,0x58D8,0x58E5,0x58DC, + 0x58E4,0x58DF,0x58EF,0x58FA,0x58F9,0x58FB,0x58FC,0x58FD, + 0x5902,0x590A,0x5910,0x591B,0x68A6,0x5925,0x592C,0x592D, + 0x5932,0x5938,0x593E,0x7AD2,0x5955,0x5950,0x594E,0x595A, + 0x5958,0x5962,0x5960,0x5967,0x596C,0x5969, + + /* ku 53 */ + 0x5978,0x5981,0x599D,0x4F5E,0x4FAB,0x59A3,0x59B2,0x59C6, + 0x59E8,0x59DC,0x598D,0x59D9,0x59DA,0x5A25,0x5A1F,0x5A11, + 0x5A1C,0x5A09,0x5A1A,0x5A40,0x5A6C,0x5A49,0x5A35,0x5A36, + 0x5A62,0x5A6A,0x5A9A,0x5ABC,0x5ABE,0x5ACB,0x5AC2,0x5ABD, + 0x5AE3,0x5AD7,0x5AE6,0x5AE9,0x5AD6,0x5AFA,0x5AFB,0x5B0C, + 0x5B0B,0x5B16,0x5B32,0x5AD0,0x5B2A,0x5B36,0x5B3E,0x5B43, + 0x5B45,0x5B40,0x5B51,0x5B55,0x5B5A,0x5B5B,0x5B65,0x5B69, + 0x5B70,0x5B73,0x5B75,0x5B78,0x6588,0x5B7A,0x5B80,0x5B83, + 0x5BA6,0x5BB8,0x5BC3,0x5BC7,0x5BC9,0x5BD4,0x5BD0,0x5BE4, + 0x5BE6,0x5BE2,0x5BDE,0x5BE5,0x5BEB,0x5BF0,0x5BF6,0x5BF3, + 0x5C05,0x5C07,0x5C08,0x5C0D,0x5C13,0x5C20,0x5C22,0x5C28, + 0x5C38,0x5C39,0x5C41,0x5C46,0x5C4E,0x5C53, + + /* ku 54 */ + 0x5C50,0x5C4F,0x5B71,0x5C6C,0x5C6E,0x4E62,0x5C76,0x5C79, + 0x5C8C,0x5C91,0x5C94,0x599B,0x5CAB,0x5CBB,0x5CB6,0x5CBC, + 0x5CB7,0x5CC5,0x5CBE,0x5CC7,0x5CD9,0x5CE9,0x5CFD,0x5CFA, + 0x5CED,0x5D8C,0x5CEA,0x5D0B,0x5D15,0x5D17,0x5D5C,0x5D1F, + 0x5D1B,0x5D11,0x5D14,0x5D22,0x5D1A,0x5D19,0x5D18,0x5D4C, + 0x5D52,0x5D4E,0x5D4B,0x5D6C,0x5D73,0x5D76,0x5D87,0x5D84, + 0x5D82,0x5DA2,0x5D9D,0x5DAC,0x5DAE,0x5DBD,0x5D90,0x5DB7, + 0x5DBC,0x5DC9,0x5DCD,0x5DD3,0x5DD2,0x5DD6,0x5DDB,0x5DEB, + 0x5DF2,0x5DF5,0x5E0B,0x5E1A,0x5E19,0x5E11,0x5E1B,0x5E36, + 0x5E37,0x5E44,0x5E43,0x5E40,0x5E4E,0x5E57,0x5E54,0x5E5F, + 0x5E62,0x5E64,0x5E47,0x5E75,0x5E76,0x5E7A,0x9EBC,0x5E7F, + 0x5EA0,0x5EC1,0x5EC2,0x5EC8,0x5ED0,0x5ECF, + + /* ku 55 */ + 0x5ED6,0x5EE3,0x5EDD,0x5EDA,0x5EDB,0x5EE2,0x5EE1,0x5EE8, + 0x5EE9,0x5EEC,0x5EF1,0x5EF3,0x5EF0,0x5EF4,0x5EF8,0x5EFE, + 0x5F03,0x5F09,0x5F5D,0x5F5C,0x5F0B,0x5F11,0x5F16,0x5F29, + 0x5F2D,0x5F38,0x5F41,0x5F48,0x5F4C,0x5F4E,0x5F2F,0x5F51, + 0x5F56,0x5F57,0x5F59,0x5F61,0x5F6D,0x5F73,0x5F77,0x5F83, + 0x5F82,0x5F7F,0x5F8A,0x5F88,0x5F91,0x5F87,0x5F9E,0x5F99, + 0x5F98,0x5FA0,0x5FA8,0x5FAD,0x5FBC,0x5FD6,0x5FFB,0x5FE4, + 0x5FF8,0x5FF1,0x5FDD,0x60B3,0x5FFF,0x6021,0x6060,0x6019, + 0x6010,0x6029,0x600E,0x6031,0x601B,0x6015,0x602B,0x6026, + 0x600F,0x603A,0x605A,0x6041,0x606A,0x6077,0x605F,0x604A, + 0x6046,0x604D,0x6063,0x6043,0x6064,0x6042,0x606C,0x606B, + 0x6059,0x6081,0x608D,0x60E7,0x6083,0x609A, + + /* ku 56 */ + 0x6084,0x609B,0x6096,0x6097,0x6092,0x60A7,0x608B,0x60E1, + 0x60B8,0x60E0,0x60D3,0x60B4,0x5FF0,0x60BD,0x60C6,0x60B5, + 0x60D8,0x614D,0x6115,0x6106,0x60F6,0x60F7,0x6100,0x60F4, + 0x60FA,0x6103,0x6121,0x60FB,0x60F1,0x610D,0x610E,0x6147, + 0x613E,0x6128,0x6127,0x614A,0x613F,0x613C,0x612C,0x6134, + 0x613D,0x6142,0x6144,0x6173,0x6177,0x6158,0x6159,0x615A, + 0x616B,0x6174,0x616F,0x6165,0x6171,0x615F,0x615D,0x6153, + 0x6175,0x6199,0x6196,0x6187,0x61AC,0x6194,0x619A,0x618A, + 0x6191,0x61AB,0x61AE,0x61CC,0x61CA,0x61C9,0x61F7,0x61C8, + 0x61C3,0x61C6,0x61BA,0x61CB,0x7F79,0x61CD,0x61E6,0x61E3, + 0x61F6,0x61FA,0x61F4,0x61FF,0x61FD,0x61FC,0x61FE,0x6200, + 0x6208,0x6209,0x620D,0x620C,0x6214,0x621B, + + /* ku 57 */ + 0x621E,0x6221,0x622A,0x622E,0x6230,0x6232,0x6233,0x6241, + 0x624E,0x625E,0x6263,0x625B,0x6260,0x6268,0x627C,0x6282, + 0x6289,0x627E,0x6292,0x6293,0x6296,0x62D4,0x6283,0x6294, + 0x62D7,0x62D1,0x62BB,0x62CF,0x62FF,0x62C6,0x64D4,0x62C8, + 0x62DC,0x62CC,0x62CA,0x62C2,0x62C7,0x629B,0x62C9,0x630C, + 0x62EE,0x62F1,0x6327,0x6302,0x6308,0x62EF,0x62F5,0x6350, + 0x633E,0x634D,0x641C,0x634F,0x6396,0x638E,0x6380,0x63AB, + 0x6376,0x63A3,0x638F,0x6389,0x639F,0x63B5,0x636B,0x6369, + 0x63BE,0x63E9,0x63C0,0x63C6,0x63E3,0x63C9,0x63D2,0x63F6, + 0x63C4,0x6416,0x6434,0x6406,0x6413,0x6426,0x6436,0x651D, + 0x6417,0x6428,0x640F,0x6467,0x646F,0x6476,0x644E,0x652A, + 0x6495,0x6493,0x64A5,0x64A9,0x6488,0x64BC, + + /* ku 58 */ + 0x64DA,0x64D2,0x64C5,0x64C7,0x64BB,0x64D8,0x64C2,0x64F1, + 0x64E7,0x8209,0x64E0,0x64E1,0x62AC,0x64E3,0x64EF,0x652C, + 0x64F6,0x64F4,0x64F2,0x64FA,0x6500,0x64FD,0x6518,0x651C, + 0x6505,0x6524,0x6523,0x652B,0x6534,0x6535,0x6537,0x6536, + 0x6538,0x754B,0x6548,0x6556,0x6555,0x654D,0x6558,0x655E, + 0x655D,0x6572,0x6578,0x6582,0x6583,0x8B8A,0x659B,0x659F, + 0x65AB,0x65B7,0x65C3,0x65C6,0x65C1,0x65C4,0x65CC,0x65D2, + 0x65DB,0x65D9,0x65E0,0x65E1,0x65F1,0x6772,0x660A,0x6603, + 0x65FB,0x6773,0x6635,0x6636,0x6634,0x661C,0x664F,0x6644, + 0x6649,0x6641,0x665E,0x665D,0x6664,0x6667,0x6668,0x665F, + 0x6662,0x6670,0x6683,0x6688,0x668E,0x6689,0x6684,0x6698, + 0x669D,0x66C1,0x66B9,0x66C9,0x66BE,0x66BC, + + /* ku 59 */ + 0x66C4,0x66B8,0x66D6,0x66DA,0x66E0,0x663F,0x66E6,0x66E9, + 0x66F0,0x66F5,0x66F7,0x670F,0x6716,0x671E,0x6726,0x6727, + 0x9738,0x672E,0x673F,0x6736,0x6741,0x6738,0x6737,0x6746, + 0x675E,0x6760,0x6759,0x6763,0x6764,0x6789,0x6770,0x67A9, + 0x677C,0x676A,0x678C,0x678B,0x67A6,0x67A1,0x6785,0x67B7, + 0x67EF,0x67B4,0x67EC,0x67B3,0x67E9,0x67B8,0x67E4,0x67DE, + 0x67DD,0x67E2,0x67EE,0x67B9,0x67CE,0x67C6,0x67E7,0x6A9C, + 0x681E,0x6846,0x6829,0x6840,0x684D,0x6832,0x684E,0x68B3, + 0x682B,0x6859,0x6863,0x6877,0x687F,0x689F,0x688F,0x68AD, + 0x6894,0x689D,0x689B,0x6883,0x6AAE,0x68B9,0x6874,0x68B5, + 0x68A0,0x68BA,0x690F,0x688D,0x687E,0x6901,0x68CA,0x6908, + 0x68D8,0x6922,0x6926,0x68E1,0x690C,0x68CD, + + /* ku 60 */ + 0x68D4,0x68E7,0x68D5,0x6936,0x6912,0x6904,0x68D7,0x68E3, + 0x6925,0x68F9,0x68E0,0x68EF,0x6928,0x692A,0x691A,0x6923, + 0x6921,0x68C6,0x6979,0x6977,0x695C,0x6978,0x696B,0x6954, + 0x697E,0x696E,0x6939,0x6974,0x693D,0x6959,0x6930,0x6961, + 0x695E,0x695D,0x6981,0x696A,0x69B2,0x69AE,0x69D0,0x69BF, + 0x69C1,0x69D3,0x69BE,0x69CE,0x5BE8,0x69CA,0x69DD,0x69BB, + 0x69C3,0x69A7,0x6A2E,0x6991,0x69A0,0x699C,0x6995,0x69B4, + 0x69DE,0x69E8,0x6A02,0x6A1B,0x69FF,0x6B0A,0x69F9,0x69F2, + 0x69E7,0x6A05,0x69B1,0x6A1E,0x69ED,0x6A14,0x69EB,0x6A0A, + 0x6A12,0x6AC1,0x6A23,0x6A13,0x6A44,0x6A0C,0x6A72,0x6A36, + 0x6A78,0x6A47,0x6A62,0x6A59,0x6A66,0x6A48,0x6A38,0x6A22, + 0x6A90,0x6A8D,0x6AA0,0x6A84,0x6AA2,0x6AA3, + + /* ku 61 */ + 0x6A97,0x8617,0x6ABB,0x6AC3,0x6AC2,0x6AB8,0x6AB3,0x6AAC, + 0x6ADE,0x6AD1,0x6ADF,0x6AAA,0x6ADA,0x6AEA,0x6AFB,0x6B05, + 0x8616,0x6AFA,0x6B12,0x6B16,0x9B31,0x6B1F,0x6B38,0x6B37, + 0x76DC,0x6B39,0x98EE,0x6B47,0x6B43,0x6B49,0x6B50,0x6B59, + 0x6B54,0x6B5B,0x6B5F,0x6B61,0x6B78,0x6B79,0x6B7F,0x6B80, + 0x6B84,0x6B83,0x6B8D,0x6B98,0x6B95,0x6B9E,0x6BA4,0x6BAA, + 0x6BAB,0x6BAF,0x6BB2,0x6BB1,0x6BB3,0x6BB7,0x6BBC,0x6BC6, + 0x6BCB,0x6BD3,0x6BDF,0x6BEC,0x6BEB,0x6BF3,0x6BEF,0x9EBE, + 0x6C08,0x6C13,0x6C14,0x6C1B,0x6C24,0x6C23,0x6C5E,0x6C55, + 0x6C62,0x6C6A,0x6C82,0x6C8D,0x6C9A,0x6C81,0x6C9B,0x6C7E, + 0x6C68,0x6C73,0x6C92,0x6C90,0x6CC4,0x6CF1,0x6CD3,0x6CBD, + 0x6CD7,0x6CC5,0x6CDD,0x6CAE,0x6CB1,0x6CBE, + + /* ku 62 */ + 0x6CBA,0x6CDB,0x6CEF,0x6CD9,0x6CEA,0x6D1F,0x884D,0x6D36, + 0x6D2B,0x6D3D,0x6D38,0x6D19,0x6D35,0x6D33,0x6D12,0x6D0C, + 0x6D63,0x6D93,0x6D64,0x6D5A,0x6D79,0x6D59,0x6D8E,0x6D95, + 0x6FE4,0x6D85,0x6DF9,0x6E15,0x6E0A,0x6DB5,0x6DC7,0x6DE6, + 0x6DB8,0x6DC6,0x6DEC,0x6DDE,0x6DCC,0x6DE8,0x6DD2,0x6DC5, + 0x6DFA,0x6DD9,0x6DE4,0x6DD5,0x6DEA,0x6DEE,0x6E2D,0x6E6E, + 0x6E2E,0x6E19,0x6E72,0x6E5F,0x6E3E,0x6E23,0x6E6B,0x6E2B, + 0x6E76,0x6E4D,0x6E1F,0x6E43,0x6E3A,0x6E4E,0x6E24,0x6EFF, + 0x6E1D,0x6E38,0x6E82,0x6EAA,0x6E98,0x6EC9,0x6EB7,0x6ED3, + 0x6EBD,0x6EAF,0x6EC4,0x6EB2,0x6ED4,0x6ED5,0x6E8F,0x6EA5, + 0x6EC2,0x6E9F,0x6F41,0x6F11,0x704C,0x6EEC,0x6EF8,0x6EFE, + 0x6F3F,0x6EF2,0x6F31,0x6EEF,0x6F32,0x6ECC, + + /* ku 63 */ + 0x6F3E,0x6F13,0x6EF7,0x6F86,0x6F7A,0x6F78,0x6F81,0x6F80, + 0x6F6F,0x6F5B,0x6FF3,0x6F6D,0x6F82,0x6F7C,0x6F58,0x6F8E, + 0x6F91,0x6FC2,0x6F66,0x6FB3,0x6FA3,0x6FA1,0x6FA4,0x6FB9, + 0x6FC6,0x6FAA,0x6FDF,0x6FD5,0x6FEC,0x6FD4,0x6FD8,0x6FF1, + 0x6FEE,0x6FDB,0x7009,0x700B,0x6FFA,0x7011,0x7001,0x700F, + 0x6FFE,0x701B,0x701A,0x6F74,0x701D,0x7018,0x701F,0x7030, + 0x703E,0x7032,0x7051,0x7063,0x7099,0x7092,0x70AF,0x70F1, + 0x70AC,0x70B8,0x70B3,0x70AE,0x70DF,0x70CB,0x70DD,0x70D9, + 0x7109,0x70FD,0x711C,0x7119,0x7165,0x7155,0x7188,0x7166, + 0x7162,0x714C,0x7156,0x716C,0x718F,0x71FB,0x7184,0x7195, + 0x71A8,0x71AC,0x71D7,0x71B9,0x71BE,0x71D2,0x71C9,0x71D4, + 0x71CE,0x71E0,0x71EC,0x71E7,0x71F5,0x71FC, + + /* ku 64 */ + 0x71F9,0x71FF,0x720D,0x7210,0x721B,0x7228,0x722D,0x722C, + 0x7230,0x7232,0x723B,0x723C,0x723F,0x7240,0x7246,0x724B, + 0x7258,0x7274,0x727E,0x7282,0x7281,0x7287,0x7292,0x7296, + 0x72A2,0x72A7,0x72B9,0x72B2,0x72C3,0x72C6,0x72C4,0x72CE, + 0x72D2,0x72E2,0x72E0,0x72E1,0x72F9,0x72F7,0x500F,0x7317, + 0x730A,0x731C,0x7316,0x731D,0x7334,0x732F,0x7329,0x7325, + 0x733E,0x734E,0x734F,0x9ED8,0x7357,0x736A,0x7368,0x7370, + 0x7378,0x7375,0x737B,0x737A,0x73C8,0x73B3,0x73CE,0x73BB, + 0x73C0,0x73E5,0x73EE,0x73DE,0x74A2,0x7405,0x746F,0x7425, + 0x73F8,0x7432,0x743A,0x7455,0x743F,0x745F,0x7459,0x7441, + 0x745C,0x7469,0x7470,0x7463,0x746A,0x7476,0x747E,0x748B, + 0x749E,0x74A7,0x74CA,0x74CF,0x74D4,0x73F1, + + /* ku 65 */ + 0x74E0,0x74E3,0x74E7,0x74E9,0x74EE,0x74F2,0x74F0,0x74F1, + 0x74F8,0x74F7,0x7504,0x7503,0x7505,0x750C,0x750E,0x750D, + 0x7515,0x7513,0x751E,0x7526,0x752C,0x753C,0x7544,0x754D, + 0x754A,0x7549,0x755B,0x7546,0x755A,0x7569,0x7564,0x7567, + 0x756B,0x756D,0x7578,0x7576,0x7586,0x7587,0x7574,0x758A, + 0x7589,0x7582,0x7594,0x759A,0x759D,0x75A5,0x75A3,0x75C2, + 0x75B3,0x75C3,0x75B5,0x75BD,0x75B8,0x75BC,0x75B1,0x75CD, + 0x75CA,0x75D2,0x75D9,0x75E3,0x75DE,0x75FE,0x75FF,0x75FC, + 0x7601,0x75F0,0x75FA,0x75F2,0x75F3,0x760B,0x760D,0x7609, + 0x761F,0x7627,0x7620,0x7621,0x7622,0x7624,0x7634,0x7630, + 0x763B,0x7647,0x7648,0x7646,0x765C,0x7658,0x7661,0x7662, + 0x7668,0x7669,0x766A,0x7667,0x766C,0x7670, + + /* ku 66 */ + 0x7672,0x7676,0x7678,0x767C,0x7680,0x7683,0x7688,0x768B, + 0x768E,0x7696,0x7693,0x7699,0x769A,0x76B0,0x76B4,0x76B8, + 0x76B9,0x76BA,0x76C2,0x76CD,0x76D6,0x76D2,0x76DE,0x76E1, + 0x76E5,0x76E7,0x76EA,0x862F,0x76FB,0x7708,0x7707,0x7704, + 0x7729,0x7724,0x771E,0x7725,0x7726,0x771B,0x7737,0x7738, + 0x7747,0x775A,0x7768,0x776B,0x775B,0x7765,0x777F,0x777E, + 0x7779,0x778E,0x778B,0x7791,0x77A0,0x779E,0x77B0,0x77B6, + 0x77B9,0x77BF,0x77BC,0x77BD,0x77BB,0x77C7,0x77CD,0x77D7, + 0x77DA,0x77DC,0x77E3,0x77EE,0x77FC,0x780C,0x7812,0x7926, + 0x7820,0x792A,0x7845,0x788E,0x7874,0x7886,0x787C,0x789A, + 0x788C,0x78A3,0x78B5,0x78AA,0x78AF,0x78D1,0x78C6,0x78CB, + 0x78D4,0x78BE,0x78BC,0x78C5,0x78CA,0x78EC, + + /* ku 67 */ + 0x78E7,0x78DA,0x78FD,0x78F4,0x7907,0x7912,0x7911,0x7919, + 0x792C,0x792B,0x7940,0x7960,0x7957,0x795F,0x795A,0x7955, + 0x7953,0x797A,0x797F,0x798A,0x799D,0x79A7,0x9F4B,0x79AA, + 0x79AE,0x79B3,0x79B9,0x79BA,0x79C9,0x79D5,0x79E7,0x79EC, + 0x79E1,0x79E3,0x7A08,0x7A0D,0x7A18,0x7A19,0x7A20,0x7A1F, + 0x7980,0x7A31,0x7A3B,0x7A3E,0x7A37,0x7A43,0x7A57,0x7A49, + 0x7A61,0x7A62,0x7A69,0x9F9D,0x7A70,0x7A79,0x7A7D,0x7A88, + 0x7A97,0x7A95,0x7A98,0x7A96,0x7AA9,0x7AC8,0x7AB0,0x7AB6, + 0x7AC5,0x7AC4,0x7ABF,0x9083,0x7AC7,0x7ACA,0x7ACD,0x7ACF, + 0x7AD5,0x7AD3,0x7AD9,0x7ADA,0x7ADD,0x7AE1,0x7AE2,0x7AE6, + 0x7AED,0x7AF0,0x7B02,0x7B0F,0x7B0A,0x7B06,0x7B33,0x7B18, + 0x7B19,0x7B1E,0x7B35,0x7B28,0x7B36,0x7B50, + + /* ku 68 */ + 0x7B7A,0x7B04,0x7B4D,0x7B0B,0x7B4C,0x7B45,0x7B75,0x7B65, + 0x7B74,0x7B67,0x7B70,0x7B71,0x7B6C,0x7B6E,0x7B9D,0x7B98, + 0x7B9F,0x7B8D,0x7B9C,0x7B9A,0x7B8B,0x7B92,0x7B8F,0x7B5D, + 0x7B99,0x7BCB,0x7BC1,0x7BCC,0x7BCF,0x7BB4,0x7BC6,0x7BDD, + 0x7BE9,0x7C11,0x7C14,0x7BE6,0x7BE5,0x7C60,0x7C00,0x7C07, + 0x7C13,0x7BF3,0x7BF7,0x7C17,0x7C0D,0x7BF6,0x7C23,0x7C27, + 0x7C2A,0x7C1F,0x7C37,0x7C2B,0x7C3D,0x7C4C,0x7C43,0x7C54, + 0x7C4F,0x7C40,0x7C50,0x7C58,0x7C5F,0x7C64,0x7C56,0x7C65, + 0x7C6C,0x7C75,0x7C83,0x7C90,0x7CA4,0x7CAD,0x7CA2,0x7CAB, + 0x7CA1,0x7CA8,0x7CB3,0x7CB2,0x7CB1,0x7CAE,0x7CB9,0x7CBD, + 0x7CC0,0x7CC5,0x7CC2,0x7CD8,0x7CD2,0x7CDC,0x7CE2,0x9B3B, + 0x7CEF,0x7CF2,0x7CF4,0x7CF6,0x7CFA,0x7D06, + + /* ku 69 */ + 0x7D02,0x7D1C,0x7D15,0x7D0A,0x7D45,0x7D4B,0x7D2E,0x7D32, + 0x7D3F,0x7D35,0x7D46,0x7D73,0x7D56,0x7D4E,0x7D72,0x7D68, + 0x7D6E,0x7D4F,0x7D63,0x7D93,0x7D89,0x7D5B,0x7D8F,0x7D7D, + 0x7D9B,0x7DBA,0x7DAE,0x7DA3,0x7DB5,0x7DC7,0x7DBD,0x7DAB, + 0x7E3D,0x7DA2,0x7DAF,0x7DDC,0x7DB8,0x7D9F,0x7DB0,0x7DD8, + 0x7DDD,0x7DE4,0x7DDE,0x7DFB,0x7DF2,0x7DE1,0x7E05,0x7E0A, + 0x7E23,0x7E21,0x7E12,0x7E31,0x7E1F,0x7E09,0x7E0B,0x7E22, + 0x7E46,0x7E66,0x7E3B,0x7E35,0x7E39,0x7E43,0x7E37,0x7E32, + 0x7E3A,0x7E67,0x7E5D,0x7E56,0x7E5E,0x7E59,0x7E5A,0x7E79, + 0x7E6A,0x7E69,0x7E7C,0x7E7B,0x7E83,0x7DD5,0x7E7D,0x8FAE, + 0x7E7F,0x7E88,0x7E89,0x7E8C,0x7E92,0x7E90,0x7E93,0x7E94, + 0x7E96,0x7E8E,0x7E9B,0x7E9C,0x7F38,0x7F3A, + + /* ku 70 */ + 0x7F45,0x7F4C,0x7F4D,0x7F4E,0x7F50,0x7F51,0x7F55,0x7F54, + 0x7F58,0x7F5F,0x7F60,0x7F68,0x7F69,0x7F67,0x7F78,0x7F82, + 0x7F86,0x7F83,0x7F88,0x7F87,0x7F8C,0x7F94,0x7F9E,0x7F9D, + 0x7F9A,0x7FA3,0x7FAF,0x7FB2,0x7FB9,0x7FAE,0x7FB6,0x7FB8, + 0x8B71,0x7FC5,0x7FC6,0x7FCA,0x7FD5,0x7FD4,0x7FE1,0x7FE6, + 0x7FE9,0x7FF3,0x7FF9,0x98DC,0x8006,0x8004,0x800B,0x8012, + 0x8018,0x8019,0x801C,0x8021,0x8028,0x803F,0x803B,0x804A, + 0x8046,0x8052,0x8058,0x805A,0x805F,0x8062,0x8068,0x8073, + 0x8072,0x8070,0x8076,0x8079,0x807D,0x807F,0x8084,0x8086, + 0x8085,0x809B,0x8093,0x809A,0x80AD,0x5190,0x80AC,0x80DB, + 0x80E5,0x80D9,0x80DD,0x80C4,0x80DA,0x80D6,0x8109,0x80EF, + 0x80F1,0x811B,0x8129,0x8123,0x812F,0x814B, + + /* ku 71 */ + 0x968B,0x8146,0x813E,0x8153,0x8151,0x80FC,0x8171,0x816E, + 0x8165,0x8166,0x8174,0x8183,0x8188,0x818A,0x8180,0x8182, + 0x81A0,0x8195,0x81A4,0x81A3,0x815F,0x8193,0x81A9,0x81B0, + 0x81B5,0x81BE,0x81B8,0x81BD,0x81C0,0x81C2,0x81BA,0x81C9, + 0x81CD,0x81D1,0x81D9,0x81D8,0x81C8,0x81DA,0x81DF,0x81E0, + 0x81E7,0x81FA,0x81FB,0x81FE,0x8201,0x8202,0x8205,0x8207, + 0x820A,0x820D,0x8210,0x8216,0x8229,0x822B,0x8238,0x8233, + 0x8240,0x8259,0x8258,0x825D,0x825A,0x825F,0x8264,0x8262, + 0x8268,0x826A,0x826B,0x822E,0x8271,0x8277,0x8278,0x827E, + 0x828D,0x8292,0x82AB,0x829F,0x82BB,0x82AC,0x82E1,0x82E3, + 0x82DF,0x82D2,0x82F4,0x82F3,0x82FA,0x8393,0x8303,0x82FB, + 0x82F9,0x82DE,0x8306,0x82DC,0x8309,0x82D9, + + /* ku 72 */ + 0x8335,0x8334,0x8316,0x8332,0x8331,0x8340,0x8339,0x8350, + 0x8345,0x832F,0x832B,0x8317,0x8318,0x8385,0x839A,0x83AA, + 0x839F,0x83A2,0x8396,0x8323,0x838E,0x8387,0x838A,0x837C, + 0x83B5,0x8373,0x8375,0x83A0,0x8389,0x83A8,0x83F4,0x8413, + 0x83EB,0x83CE,0x83FD,0x8403,0x83D8,0x840B,0x83C1,0x83F7, + 0x8407,0x83E0,0x83F2,0x840D,0x8422,0x8420,0x83BD,0x8438, + 0x8506,0x83FB,0x846D,0x842A,0x843C,0x855A,0x8484,0x8477, + 0x846B,0x84AD,0x846E,0x8482,0x8469,0x8446,0x842C,0x846F, + 0x8479,0x8435,0x84CA,0x8462,0x84B9,0x84BF,0x849F,0x84D9, + 0x84CD,0x84BB,0x84DA,0x84D0,0x84C1,0x84C6,0x84D6,0x84A1, + 0x8521,0x84FF,0x84F4,0x8517,0x8518,0x852C,0x851F,0x8515, + 0x8514,0x84FC,0x8540,0x8563,0x8558,0x8548, + + /* ku 73 */ + 0x8541,0x8602,0x854B,0x8555,0x8580,0x85A4,0x8588,0x8591, + 0x858A,0x85A8,0x856D,0x8594,0x859B,0x85EA,0x8587,0x859C, + 0x8577,0x857E,0x8590,0x85C9,0x85BA,0x85CF,0x85B9,0x85D0, + 0x85D5,0x85DD,0x85E5,0x85DC,0x85F9,0x860A,0x8613,0x860B, + 0x85FE,0x85FA,0x8606,0x8622,0x861A,0x8630,0x863F,0x864D, + 0x4E55,0x8654,0x865F,0x8667,0x8671,0x8693,0x86A3,0x86A9, + 0x86AA,0x868B,0x868C,0x86B6,0x86AF,0x86C4,0x86C6,0x86B0, + 0x86C9,0x8823,0x86AB,0x86D4,0x86DE,0x86E9,0x86EC,0x86DF, + 0x86DB,0x86EF,0x8712,0x8706,0x8708,0x8700,0x8703,0x86FB, + 0x8711,0x8709,0x870D,0x86F9,0x870A,0x8734,0x873F,0x8737, + 0x873B,0x8725,0x8729,0x871A,0x8760,0x875F,0x8778,0x874C, + 0x874E,0x8774,0x8757,0x8768,0x876E,0x8759, + + /* ku 74 */ + 0x8753,0x8763,0x876A,0x8805,0x87A2,0x879F,0x8782,0x87AF, + 0x87CB,0x87BD,0x87C0,0x87D0,0x96D6,0x87AB,0x87C4,0x87B3, + 0x87C7,0x87C6,0x87BB,0x87EF,0x87F2,0x87E0,0x880F,0x880D, + 0x87FE,0x87F6,0x87F7,0x880E,0x87D2,0x8811,0x8816,0x8815, + 0x8822,0x8821,0x8831,0x8836,0x8839,0x8827,0x883B,0x8844, + 0x8842,0x8852,0x8859,0x885E,0x8862,0x886B,0x8881,0x887E, + 0x889E,0x8875,0x887D,0x88B5,0x8872,0x8882,0x8897,0x8892, + 0x88AE,0x8899,0x88A2,0x888D,0x88A4,0x88B0,0x88BF,0x88B1, + 0x88C3,0x88C4,0x88D4,0x88D8,0x88D9,0x88DD,0x88F9,0x8902, + 0x88FC,0x88F4,0x88E8,0x88F2,0x8904,0x890C,0x890A,0x8913, + 0x8943,0x891E,0x8925,0x892A,0x892B,0x8941,0x8944,0x893B, + 0x8936,0x8938,0x894C,0x891D,0x8960,0x895E, + + /* ku 75 */ + 0x8966,0x8964,0x896D,0x896A,0x896F,0x8974,0x8977,0x897E, + 0x8983,0x8988,0x898A,0x8993,0x8998,0x89A1,0x89A9,0x89A6, + 0x89AC,0x89AF,0x89B2,0x89BA,0x89BD,0x89BF,0x89C0,0x89DA, + 0x89DC,0x89DD,0x89E7,0x89F4,0x89F8,0x8A03,0x8A16,0x8A10, + 0x8A0C,0x8A1B,0x8A1D,0x8A25,0x8A36,0x8A41,0x8A5B,0x8A52, + 0x8A46,0x8A48,0x8A7C,0x8A6D,0x8A6C,0x8A62,0x8A85,0x8A82, + 0x8A84,0x8AA8,0x8AA1,0x8A91,0x8AA5,0x8AA6,0x8A9A,0x8AA3, + 0x8AC4,0x8ACD,0x8AC2,0x8ADA,0x8AEB,0x8AF3,0x8AE7,0x8AE4, + 0x8AF1,0x8B14,0x8AE0,0x8AE2,0x8AF7,0x8ADE,0x8ADB,0x8B0C, + 0x8B07,0x8B1A,0x8AE1,0x8B16,0x8B10,0x8B17,0x8B20,0x8B33, + 0x97AB,0x8B26,0x8B2B,0x8B3E,0x8B28,0x8B41,0x8B4C,0x8B4F, + 0x8B4E,0x8B49,0x8B56,0x8B5B,0x8B5A,0x8B6B, + + /* ku 76 */ + 0x8B5F,0x8B6C,0x8B6F,0x8B74,0x8B7D,0x8B80,0x8B8C,0x8B8E, + 0x8B92,0x8B93,0x8B96,0x8B99,0x8B9A,0x8C3A,0x8C41,0x8C3F, + 0x8C48,0x8C4C,0x8C4E,0x8C50,0x8C55,0x8C62,0x8C6C,0x8C78, + 0x8C7A,0x8C82,0x8C89,0x8C85,0x8C8A,0x8C8D,0x8C8E,0x8C94, + 0x8C7C,0x8C98,0x621D,0x8CAD,0x8CAA,0x8CBD,0x8CB2,0x8CB3, + 0x8CAE,0x8CB6,0x8CC8,0x8CC1,0x8CE4,0x8CE3,0x8CDA,0x8CFD, + 0x8CFA,0x8CFB,0x8D04,0x8D05,0x8D0A,0x8D07,0x8D0F,0x8D0D, + 0x8D10,0x9F4E,0x8D13,0x8CCD,0x8D14,0x8D16,0x8D67,0x8D6D, + 0x8D71,0x8D73,0x8D81,0x8D99,0x8DC2,0x8DBE,0x8DBA,0x8DCF, + 0x8DDA,0x8DD6,0x8DCC,0x8DDB,0x8DCB,0x8DEA,0x8DEB,0x8DDF, + 0x8DE3,0x8DFC,0x8E08,0x8E09,0x8DFF,0x8E1D,0x8E1E,0x8E10, + 0x8E1F,0x8E42,0x8E35,0x8E30,0x8E34,0x8E4A, + + /* ku 77 */ + 0x8E47,0x8E49,0x8E4C,0x8E50,0x8E48,0x8E59,0x8E64,0x8E60, + 0x8E2A,0x8E63,0x8E55,0x8E76,0x8E72,0x8E7C,0x8E81,0x8E87, + 0x8E85,0x8E84,0x8E8B,0x8E8A,0x8E93,0x8E91,0x8E94,0x8E99, + 0x8EAA,0x8EA1,0x8EAC,0x8EB0,0x8EC6,0x8EB1,0x8EBE,0x8EC5, + 0x8EC8,0x8ECB,0x8EDB,0x8EE3,0x8EFC,0x8EFB,0x8EEB,0x8EFE, + 0x8F0A,0x8F05,0x8F15,0x8F12,0x8F19,0x8F13,0x8F1C,0x8F1F, + 0x8F1B,0x8F0C,0x8F26,0x8F33,0x8F3B,0x8F39,0x8F45,0x8F42, + 0x8F3E,0x8F4C,0x8F49,0x8F46,0x8F4E,0x8F57,0x8F5C,0x8F62, + 0x8F63,0x8F64,0x8F9C,0x8F9F,0x8FA3,0x8FAD,0x8FAF,0x8FB7, + 0x8FDA,0x8FE5,0x8FE2,0x8FEA,0x8FEF,0x9087,0x8FF4,0x9005, + 0x8FF9,0x8FFA,0x9011,0x9015,0x9021,0x900D,0x901E,0x9016, + 0x900B,0x9027,0x9036,0x9035,0x9039,0x8FF8, + + /* ku 78 */ + 0x904F,0x9050,0x9051,0x9052,0x900E,0x9049,0x903E,0x9056, + 0x9058,0x905E,0x9068,0x906F,0x9076,0x96A8,0x9072,0x9082, + 0x907D,0x9081,0x9080,0x908A,0x9089,0x908F,0x90A8,0x90AF, + 0x90B1,0x90B5,0x90E2,0x90E4,0x6248,0x90DB,0x9102,0x9112, + 0x9119,0x9132,0x9130,0x914A,0x9156,0x9158,0x9163,0x9165, + 0x9169,0x9173,0x9172,0x918B,0x9189,0x9182,0x91A2,0x91AB, + 0x91AF,0x91AA,0x91B5,0x91B4,0x91BA,0x91C0,0x91C1,0x91C9, + 0x91CB,0x91D0,0x91D6,0x91DF,0x91E1,0x91DB,0x91FC,0x91F5, + 0x91F6,0x921E,0x91FF,0x9214,0x922C,0x9215,0x9211,0x925E, + 0x9257,0x9245,0x9249,0x9264,0x9248,0x9295,0x923F,0x924B, + 0x9250,0x929C,0x9296,0x9293,0x929B,0x925A,0x92CF,0x92B9, + 0x92B7,0x92E9,0x930F,0x92FA,0x9344,0x932E, + + /* ku 79 */ + 0x9319,0x9322,0x931A,0x9323,0x933A,0x9335,0x933B,0x935C, + 0x9360,0x937C,0x936E,0x9356,0x93B0,0x93AC,0x93AD,0x9394, + 0x93B9,0x93D6,0x93D7,0x93E8,0x93E5,0x93D8,0x93C3,0x93DD, + 0x93D0,0x93C8,0x93E4,0x941A,0x9414,0x9413,0x9403,0x9407, + 0x9410,0x9436,0x942B,0x9435,0x9421,0x943A,0x9441,0x9452, + 0x9444,0x945B,0x9460,0x9462,0x945E,0x946A,0x9229,0x9470, + 0x9475,0x9477,0x947D,0x945A,0x947C,0x947E,0x9481,0x947F, + 0x9582,0x9587,0x958A,0x9594,0x9596,0x9598,0x9599,0x95A0, + 0x95A8,0x95A7,0x95AD,0x95BC,0x95BB,0x95B9,0x95BE,0x95CA, + 0x6FF6,0x95C3,0x95CD,0x95CC,0x95D5,0x95D4,0x95D6,0x95DC, + 0x95E1,0x95E5,0x95E2,0x9621,0x9628,0x962E,0x962F,0x9642, + 0x964C,0x964F,0x964B,0x9677,0x965C,0x965E, + + /* ku 80 */ + 0x965D,0x965F,0x9666,0x9672,0x966C,0x968D,0x9698,0x9695, + 0x9697,0x96AA,0x96A7,0x96B1,0x96B2,0x96B0,0x96B4,0x96B6, + 0x96B8,0x96B9,0x96CE,0x96CB,0x96C9,0x96CD,0x894D,0x96DC, + 0x970D,0x96D5,0x96F9,0x9704,0x9706,0x9708,0x9713,0x970E, + 0x9711,0x970F,0x9716,0x9719,0x9724,0x972A,0x9730,0x9739, + 0x973D,0x973E,0x9744,0x9746,0x9748,0x9742,0x9749,0x975C, + 0x9760,0x9764,0x9766,0x9768,0x52D2,0x976B,0x9771,0x9779, + 0x9785,0x977C,0x9781,0x977A,0x9786,0x978B,0x978F,0x9790, + 0x979C,0x97A8,0x97A6,0x97A3,0x97B3,0x97B4,0x97C3,0x97C6, + 0x97C8,0x97CB,0x97DC,0x97ED,0x9F4F,0x97F2,0x7ADF,0x97F6, + 0x97F5,0x980F,0x980C,0x9838,0x9824,0x9821,0x9837,0x983D, + 0x9846,0x984F,0x984B,0x986B,0x986F,0x9870, + + /* ku 81 */ + 0x9871,0x9874,0x9873,0x98AA,0x98AF,0x98B1,0x98B6,0x98C4, + 0x98C3,0x98C6,0x98E9,0x98EB,0x9903,0x9909,0x9912,0x9914, + 0x9918,0x9921,0x991D,0x991E,0x9924,0x9920,0x992C,0x992E, + 0x993D,0x993E,0x9942,0x9949,0x9945,0x9950,0x994B,0x9951, + 0x9952,0x994C,0x9955,0x9997,0x9998,0x99A5,0x99AD,0x99AE, + 0x99BC,0x99DF,0x99DB,0x99DD,0x99D8,0x99D1,0x99ED,0x99EE, + 0x99F1,0x99F2,0x99FB,0x99F8,0x9A01,0x9A0F,0x9A05,0x99E2, + 0x9A19,0x9A2B,0x9A37,0x9A45,0x9A42,0x9A40,0x9A43,0x9A3E, + 0x9A55,0x9A4D,0x9A5B,0x9A57,0x9A5F,0x9A62,0x9A65,0x9A64, + 0x9A69,0x9A6B,0x9A6A,0x9AAD,0x9AB0,0x9ABC,0x9AC0,0x9ACF, + 0x9AD1,0x9AD3,0x9AD4,0x9ADE,0x9ADF,0x9AE2,0x9AE3,0x9AE6, + 0x9AEF,0x9AEB,0x9AEE,0x9AF4,0x9AF1,0x9AF7, + + /* ku 82 */ + 0x9AFB,0x9B06,0x9B18,0x9B1A,0x9B1F,0x9B22,0x9B23,0x9B25, + 0x9B27,0x9B28,0x9B29,0x9B2A,0x9B2E,0x9B2F,0x9B32,0x9B44, + 0x9B43,0x9B4F,0x9B4D,0x9B4E,0x9B51,0x9B58,0x9B74,0x9B93, + 0x9B83,0x9B91,0x9B96,0x9B97,0x9B9F,0x9BA0,0x9BA8,0x9BB4, + 0x9BC0,0x9BCA,0x9BB9,0x9BC6,0x9BCF,0x9BD1,0x9BD2,0x9BE3, + 0x9BE2,0x9BE4,0x9BD4,0x9BE1,0x9C3A,0x9BF2,0x9BF1,0x9BF0, + 0x9C15,0x9C14,0x9C09,0x9C13,0x9C0C,0x9C06,0x9C08,0x9C12, + 0x9C0A,0x9C04,0x9C2E,0x9C1B,0x9C25,0x9C24,0x9C21,0x9C30, + 0x9C47,0x9C32,0x9C46,0x9C3E,0x9C5A,0x9C60,0x9C67,0x9C76, + 0x9C78,0x9CE7,0x9CEC,0x9CF0,0x9D09,0x9D08,0x9CEB,0x9D03, + 0x9D06,0x9D2A,0x9D26,0x9DAF,0x9D23,0x9D1F,0x9D44,0x9D15, + 0x9D12,0x9D41,0x9D3F,0x9D3E,0x9D46,0x9D48, + + /* ku 83 */ + 0x9D5D,0x9D5E,0x9D64,0x9D51,0x9D50,0x9D59,0x9D72,0x9D89, + 0x9D87,0x9DAB,0x9D6F,0x9D7A,0x9D9A,0x9DA4,0x9DA9,0x9DB2, + 0x9DC4,0x9DC1,0x9DBB,0x9DB8,0x9DBA,0x9DC6,0x9DCF,0x9DC2, + 0x9DD9,0x9DD3,0x9DF8,0x9DE6,0x9DED,0x9DEF,0x9DFD,0x9E1A, + 0x9E1B,0x9E1E,0x9E75,0x9E79,0x9E7D,0x9E81,0x9E88,0x9E8B, + 0x9E8C,0x9E92,0x9E95,0x9E91,0x9E9D,0x9EA5,0x9EA9,0x9EB8, + 0x9EAA,0x9EAD,0x9761,0x9ECC,0x9ECE,0x9ECF,0x9ED0,0x9ED4, + 0x9EDC,0x9EDE,0x9EDD,0x9EE0,0x9EE5,0x9EE8,0x9EEF,0x9EF4, + 0x9EF6,0x9EF7,0x9EF9,0x9EFB,0x9EFC,0x9EFD,0x9F07,0x9F08, + 0x76B7,0x9F15,0x9F21,0x9F2C,0x9F3E,0x9F4A,0x9F52,0x9F54, + 0x9F63,0x9F5F,0x9F60,0x9F61,0x9F66,0x9F67,0x9F6C,0x9F6A, + 0x9F77,0x9F72,0x9F76,0x9F95,0x9F9C,0x9FA0, + + /* ku 84 */ + 0x582F,0x69C7,0x9059,0x7464,0x51DC,0x7199 +}; + +const int jisx0208_ucs_table_size = (sizeof (jisx0208_ucs_table) / sizeof (unsigned short)); + +const unsigned short jisx0212_ucs_table[] = { + /* ku 1 */ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* ku 2 */ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x02D8,0x02C7, + 0x00B8,0x02D9,0x02DD,0x00AF,0x02DB,0x02DA,0x007E,0x0384, + 0x0385,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x00A1,0x00A6,0x00BF,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x00BA,0x00AA,0x00A9,0x00AE,0x2122,0x00A4, + 0x2116,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* ku 3 */ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* ku 4 */ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* ku 5 */ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* ku 6 */ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0386,0x0388,0x0389,0x038A,0x03AA,0x0000,0x038C,0x0000, + 0x038E,0x03AB,0x0000,0x038F,0x0000,0x0000,0x0000,0x0000, + 0x03AC,0x03AD,0x03AE,0x03AF,0x03CA,0x0390,0x03CC,0x03C2, + 0x03CD,0x03CB,0x03B0,0x03CE,0x0000,0x0000, + + /* ku 7 */ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0402,0x0403,0x0404,0x0405,0x0406,0x0407,0x0408, + 0x0409,0x040A,0x040B,0x040C,0x040E,0x040F,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0452,0x0453,0x0454,0x0455,0x0456,0x0457,0x0458, + 0x0459,0x045A,0x045B,0x045C,0x045E,0x045F, + + /* ku 8 */ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* ku 9 */ + 0x00C6,0x0110,0x0000,0x0126,0x0000,0x0132,0x0000,0x0141, + 0x013F,0x0000,0x014A,0x00D8,0x0152,0x0000,0x0166,0x00DE, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x00E6,0x0111,0x00F0,0x0127,0x0131,0x0133,0x0138,0x0142, + 0x0140,0x0149,0x014B,0x00F8,0x0153,0x00DF,0x0167,0x00FE, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* ku 10 */ + 0x00C1,0x00C0,0x00C4,0x00C2,0x0102,0x01CD,0x0100,0x0104, + 0x00C5,0x00C3,0x0106,0x0108,0x010C,0x00C7,0x010A,0x010E, + 0x00C9,0x00C8,0x00CB,0x00CA,0x011A,0x0116,0x0112,0x0118, + 0x0000,0x011C,0x011E,0x0122,0x0120,0x0124,0x00CD,0x00CC, + 0x00CF,0x00CE,0x01CF,0x0130,0x012A,0x012E,0x0128,0x0134, + 0x0136,0x0139,0x013D,0x013B,0x0143,0x0147,0x0145,0x00D1, + 0x00D3,0x00D2,0x00D6,0x00D4,0x01D1,0x0150,0x014C,0x00D5, + 0x0154,0x0158,0x0156,0x015A,0x015C,0x0160,0x015E,0x0164, + 0x0162,0x00DA,0x00D9,0x00DC,0x00DB,0x016C,0x01D3,0x0170, + 0x016A,0x0172,0x016E,0x0168,0x01D7,0x01DB,0x01D9,0x01D5, + 0x0174,0x00DD,0x0178,0x0176,0x0179,0x017D,0x017B,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* ku 11 */ + 0x00E1,0x00E0,0x00E4,0x00E2,0x0103,0x01CE,0x0101,0x0105, + 0x00E5,0x00E3,0x0107,0x0109,0x010D,0x00E7,0x010B,0x010F, + 0x00E9,0x00E8,0x00EB,0x00EA,0x011B,0x0117,0x0113,0x0119, + 0x01F5,0x011D,0x011F,0x0000,0x0121,0x0125,0x00ED,0x00EC, + 0x00EF,0x00EE,0x01D0,0x0000,0x012B,0x012F,0x0129,0x0135, + 0x0137,0x013A,0x013E,0x013C,0x0144,0x0148,0x0146,0x00F1, + 0x00F3,0x00F2,0x00F6,0x00F4,0x01D2,0x0151,0x014D,0x00F5, + 0x0155,0x0159,0x0157,0x015B,0x015D,0x0161,0x015F,0x0165, + 0x0163,0x00FA,0x00F9,0x00FC,0x00FB,0x016D,0x01D4,0x0171, + 0x016B,0x0173,0x016F,0x0169,0x01D8,0x01DC,0x01DA,0x01D6, + 0x0175,0x00FD,0x00FF,0x0177,0x017A,0x017E,0x017C,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* ku 12 */ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* ku 13 */ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* ku 14 */ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* ku 15 */ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* ku 16 */ + 0x4E02,0x4E04,0x4E05,0x4E0C,0x4E12,0x4E1F,0x4E23,0x4E24, + 0x4E28,0x4E2B,0x4E2E,0x4E2F,0x4E30,0x4E35,0x4E40,0x4E41, + 0x4E44,0x4E47,0x4E51,0x4E5A,0x4E5C,0x4E63,0x4E68,0x4E69, + 0x4E74,0x4E75,0x4E79,0x4E7F,0x4E8D,0x4E96,0x4E97,0x4E9D, + 0x4EAF,0x4EB9,0x4EC3,0x4ED0,0x4EDA,0x4EDB,0x4EE0,0x4EE1, + 0x4EE2,0x4EE8,0x4EEF,0x4EF1,0x4EF3,0x4EF5,0x4EFD,0x4EFE, + 0x4EFF,0x4F00,0x4F02,0x4F03,0x4F08,0x4F0B,0x4F0C,0x4F12, + 0x4F15,0x4F16,0x4F17,0x4F19,0x4F2E,0x4F31,0x4F60,0x4F33, + 0x4F35,0x4F37,0x4F39,0x4F3B,0x4F3E,0x4F40,0x4F42,0x4F48, + 0x4F49,0x4F4B,0x4F4C,0x4F52,0x4F54,0x4F56,0x4F58,0x4F5F, + 0x4F63,0x4F6A,0x4F6C,0x4F6E,0x4F71,0x4F77,0x4F78,0x4F79, + 0x4F7A,0x4F7D,0x4F7E,0x4F81,0x4F82,0x4F84, + + /* ku 17 */ + 0x4F85,0x4F89,0x4F8A,0x4F8C,0x4F8E,0x4F90,0x4F92,0x4F93, + 0x4F94,0x4F97,0x4F99,0x4F9A,0x4F9E,0x4F9F,0x4FB2,0x4FB7, + 0x4FB9,0x4FBB,0x4FBC,0x4FBD,0x4FBE,0x4FC0,0x4FC1,0x4FC5, + 0x4FC6,0x4FC8,0x4FC9,0x4FCB,0x4FCC,0x4FCD,0x4FCF,0x4FD2, + 0x4FDC,0x4FE0,0x4FE2,0x4FF0,0x4FF2,0x4FFC,0x4FFD,0x4FFF, + 0x5000,0x5001,0x5004,0x5007,0x500A,0x500C,0x500E,0x5010, + 0x5013,0x5017,0x5018,0x501B,0x501C,0x501D,0x501E,0x5022, + 0x5027,0x502E,0x5030,0x5032,0x5033,0x5035,0x5040,0x5041, + 0x5042,0x5045,0x5046,0x504A,0x504C,0x504E,0x5051,0x5052, + 0x5053,0x5057,0x5059,0x505F,0x5060,0x5062,0x5063,0x5066, + 0x5067,0x506A,0x506D,0x5070,0x5071,0x503B,0x5081,0x5083, + 0x5084,0x5086,0x508A,0x508E,0x508F,0x5090, + + /* ku 18 */ + 0x5092,0x5093,0x5094,0x5096,0x509B,0x509C,0x509E,0x509F, + 0x50A0,0x50A1,0x50A2,0x50AA,0x50AF,0x50B0,0x50B9,0x50BA, + 0x50BD,0x50C0,0x50C3,0x50C4,0x50C7,0x50CC,0x50CE,0x50D0, + 0x50D3,0x50D4,0x50D8,0x50DC,0x50DD,0x50DF,0x50E2,0x50E4, + 0x50E6,0x50E8,0x50E9,0x50EF,0x50F1,0x50F6,0x50FA,0x50FE, + 0x5103,0x5106,0x5107,0x5108,0x510B,0x510C,0x510D,0x510E, + 0x50F2,0x5110,0x5117,0x5119,0x511B,0x511C,0x511D,0x511E, + 0x5123,0x5127,0x5128,0x512C,0x512D,0x512F,0x5131,0x5133, + 0x5134,0x5135,0x5138,0x5139,0x5142,0x514A,0x514F,0x5153, + 0x5155,0x5157,0x5158,0x515F,0x5164,0x5166,0x517E,0x5183, + 0x5184,0x518B,0x518E,0x5198,0x519D,0x51A1,0x51A3,0x51AD, + 0x51B8,0x51BA,0x51BC,0x51BE,0x51BF,0x51C2, + + /* ku 19 */ + 0x51C8,0x51CF,0x51D1,0x51D2,0x51D3,0x51D5,0x51D8,0x51DE, + 0x51E2,0x51E5,0x51EE,0x51F2,0x51F3,0x51F4,0x51F7,0x5201, + 0x5202,0x5205,0x5212,0x5213,0x5215,0x5216,0x5218,0x5222, + 0x5228,0x5231,0x5232,0x5235,0x523C,0x5245,0x5249,0x5255, + 0x5257,0x5258,0x525A,0x525C,0x525F,0x5260,0x5261,0x5266, + 0x526E,0x5277,0x5278,0x5279,0x5280,0x5282,0x5285,0x528A, + 0x528C,0x5293,0x5295,0x5296,0x5297,0x5298,0x529A,0x529C, + 0x52A4,0x52A5,0x52A6,0x52A7,0x52AF,0x52B0,0x52B6,0x52B7, + 0x52B8,0x52BA,0x52BB,0x52BD,0x52C0,0x52C4,0x52C6,0x52C8, + 0x52CC,0x52CF,0x52D1,0x52D4,0x52D6,0x52DB,0x52DC,0x52E1, + 0x52E5,0x52E8,0x52E9,0x52EA,0x52EC,0x52F0,0x52F1,0x52F4, + 0x52F6,0x52F7,0x5300,0x5303,0x530A,0x530B, + + /* ku 20 */ + 0x530C,0x5311,0x5313,0x5318,0x531B,0x531C,0x531E,0x531F, + 0x5325,0x5327,0x5328,0x5329,0x532B,0x532C,0x532D,0x5330, + 0x5332,0x5335,0x533C,0x533D,0x533E,0x5342,0x534C,0x534B, + 0x5359,0x535B,0x5361,0x5363,0x5365,0x536C,0x536D,0x5372, + 0x5379,0x537E,0x5383,0x5387,0x5388,0x538E,0x5393,0x5394, + 0x5399,0x539D,0x53A1,0x53A4,0x53AA,0x53AB,0x53AF,0x53B2, + 0x53B4,0x53B5,0x53B7,0x53B8,0x53BA,0x53BD,0x53C0,0x53C5, + 0x53CF,0x53D2,0x53D3,0x53D5,0x53DA,0x53DD,0x53DE,0x53E0, + 0x53E6,0x53E7,0x53F5,0x5402,0x5413,0x541A,0x5421,0x5427, + 0x5428,0x542A,0x542F,0x5431,0x5434,0x5435,0x5443,0x5444, + 0x5447,0x544D,0x544F,0x545E,0x5462,0x5464,0x5466,0x5467, + 0x5469,0x546B,0x546D,0x546E,0x5474,0x547F, + + /* ku 21 */ + 0x5481,0x5483,0x5485,0x5488,0x5489,0x548D,0x5491,0x5495, + 0x5496,0x549C,0x549F,0x54A1,0x54A6,0x54A7,0x54A9,0x54AA, + 0x54AD,0x54AE,0x54B1,0x54B7,0x54B9,0x54BA,0x54BB,0x54BF, + 0x54C6,0x54CA,0x54CD,0x54CE,0x54E0,0x54EA,0x54EC,0x54EF, + 0x54F6,0x54FC,0x54FE,0x54FF,0x5500,0x5501,0x5505,0x5508, + 0x5509,0x550C,0x550D,0x550E,0x5515,0x552A,0x552B,0x5532, + 0x5535,0x5536,0x553B,0x553C,0x553D,0x5541,0x5547,0x5549, + 0x554A,0x554D,0x5550,0x5551,0x5558,0x555A,0x555B,0x555E, + 0x5560,0x5561,0x5564,0x5566,0x557F,0x5581,0x5582,0x5586, + 0x5588,0x558E,0x558F,0x5591,0x5592,0x5593,0x5594,0x5597, + 0x55A3,0x55A4,0x55AD,0x55B2,0x55BF,0x55C1,0x55C3,0x55C6, + 0x55C9,0x55CB,0x55CC,0x55CE,0x55D1,0x55D2, + + /* ku 22 */ + 0x55D3,0x55D7,0x55D8,0x55DB,0x55DE,0x55E2,0x55E9,0x55F6, + 0x55FF,0x5605,0x5608,0x560A,0x560D,0x560E,0x560F,0x5610, + 0x5611,0x5612,0x5619,0x562C,0x5630,0x5633,0x5635,0x5637, + 0x5639,0x563B,0x563C,0x563D,0x563F,0x5640,0x5641,0x5643, + 0x5644,0x5646,0x5649,0x564B,0x564D,0x564F,0x5654,0x565E, + 0x5660,0x5661,0x5662,0x5663,0x5666,0x5669,0x566D,0x566F, + 0x5671,0x5672,0x5675,0x5684,0x5685,0x5688,0x568B,0x568C, + 0x5695,0x5699,0x569A,0x569D,0x569E,0x569F,0x56A6,0x56A7, + 0x56A8,0x56A9,0x56AB,0x56AC,0x56AD,0x56B1,0x56B3,0x56B7, + 0x56BE,0x56C5,0x56C9,0x56CA,0x56CB,0x56CF,0x56D0,0x56CC, + 0x56CD,0x56D9,0x56DC,0x56DD,0x56DF,0x56E1,0x56E4,0x56E5, + 0x56E6,0x56E7,0x56E8,0x56F1,0x56EB,0x56ED, + + /* ku 23 */ + 0x56F6,0x56F7,0x5701,0x5702,0x5707,0x570A,0x570C,0x5711, + 0x5715,0x571A,0x571B,0x571D,0x5720,0x5722,0x5723,0x5724, + 0x5725,0x5729,0x572A,0x572C,0x572E,0x572F,0x5733,0x5734, + 0x573D,0x573E,0x573F,0x5745,0x5746,0x574C,0x574D,0x5752, + 0x5762,0x5765,0x5767,0x5768,0x576B,0x576D,0x576E,0x576F, + 0x5770,0x5771,0x5773,0x5774,0x5775,0x5777,0x5779,0x577A, + 0x577B,0x577C,0x577E,0x5781,0x5783,0x578C,0x5794,0x5797, + 0x5799,0x579A,0x579C,0x579D,0x579E,0x579F,0x57A1,0x5795, + 0x57A7,0x57A8,0x57A9,0x57AC,0x57B8,0x57BD,0x57C7,0x57C8, + 0x57CC,0x57CF,0x57D5,0x57DD,0x57DE,0x57E4,0x57E6,0x57E7, + 0x57E9,0x57ED,0x57F0,0x57F5,0x57F6,0x57F8,0x57FD,0x57FE, + 0x57FF,0x5803,0x5804,0x5808,0x5809,0x57E1, + + /* ku 24 */ + 0x580C,0x580D,0x581B,0x581E,0x581F,0x5820,0x5826,0x5827, + 0x582D,0x5832,0x5839,0x583F,0x5849,0x584C,0x584D,0x584F, + 0x5850,0x5855,0x585F,0x5861,0x5864,0x5867,0x5868,0x5878, + 0x587C,0x587F,0x5880,0x5881,0x5887,0x5888,0x5889,0x588A, + 0x588C,0x588D,0x588F,0x5890,0x5894,0x5896,0x589D,0x58A0, + 0x58A1,0x58A2,0x58A6,0x58A9,0x58B1,0x58B2,0x58C4,0x58BC, + 0x58C2,0x58C8,0x58CD,0x58CE,0x58D0,0x58D2,0x58D4,0x58D6, + 0x58DA,0x58DD,0x58E1,0x58E2,0x58E9,0x58F3,0x5905,0x5906, + 0x590B,0x590C,0x5912,0x5913,0x5914,0x8641,0x591D,0x5921, + 0x5923,0x5924,0x5928,0x592F,0x5930,0x5933,0x5935,0x5936, + 0x593F,0x5943,0x5946,0x5952,0x5953,0x5959,0x595B,0x595D, + 0x595E,0x595F,0x5961,0x5963,0x596B,0x596D, + + /* ku 25 */ + 0x596F,0x5972,0x5975,0x5976,0x5979,0x597B,0x597C,0x598B, + 0x598C,0x598E,0x5992,0x5995,0x5997,0x599F,0x59A4,0x59A7, + 0x59AD,0x59AE,0x59AF,0x59B0,0x59B3,0x59B7,0x59BA,0x59BC, + 0x59C1,0x59C3,0x59C4,0x59C8,0x59CA,0x59CD,0x59D2,0x59DD, + 0x59DE,0x59DF,0x59E3,0x59E4,0x59E7,0x59EE,0x59EF,0x59F1, + 0x59F2,0x59F4,0x59F7,0x5A00,0x5A04,0x5A0C,0x5A0D,0x5A0E, + 0x5A12,0x5A13,0x5A1E,0x5A23,0x5A24,0x5A27,0x5A28,0x5A2A, + 0x5A2D,0x5A30,0x5A44,0x5A45,0x5A47,0x5A48,0x5A4C,0x5A50, + 0x5A55,0x5A5E,0x5A63,0x5A65,0x5A67,0x5A6D,0x5A77,0x5A7A, + 0x5A7B,0x5A7E,0x5A8B,0x5A90,0x5A93,0x5A96,0x5A99,0x5A9C, + 0x5A9E,0x5A9F,0x5AA0,0x5AA2,0x5AA7,0x5AAC,0x5AB1,0x5AB2, + 0x5AB3,0x5AB5,0x5AB8,0x5ABA,0x5ABB,0x5ABF, + + /* ku 26 */ + 0x5AC4,0x5AC6,0x5AC8,0x5ACF,0x5ADA,0x5ADC,0x5AE0,0x5AE5, + 0x5AEA,0x5AEE,0x5AF5,0x5AF6,0x5AFD,0x5B00,0x5B01,0x5B08, + 0x5B17,0x5B34,0x5B19,0x5B1B,0x5B1D,0x5B21,0x5B25,0x5B2D, + 0x5B38,0x5B41,0x5B4B,0x5B4C,0x5B52,0x5B56,0x5B5E,0x5B68, + 0x5B6E,0x5B6F,0x5B7C,0x5B7D,0x5B7E,0x5B7F,0x5B81,0x5B84, + 0x5B86,0x5B8A,0x5B8E,0x5B90,0x5B91,0x5B93,0x5B94,0x5B96, + 0x5BA8,0x5BA9,0x5BAC,0x5BAD,0x5BAF,0x5BB1,0x5BB2,0x5BB7, + 0x5BBA,0x5BBC,0x5BC0,0x5BC1,0x5BCD,0x5BCF,0x5BD6,0x5BD7, + 0x5BD8,0x5BD9,0x5BDA,0x5BE0,0x5BEF,0x5BF1,0x5BF4,0x5BFD, + 0x5C0C,0x5C17,0x5C1E,0x5C1F,0x5C23,0x5C26,0x5C29,0x5C2B, + 0x5C2C,0x5C2E,0x5C30,0x5C32,0x5C35,0x5C36,0x5C59,0x5C5A, + 0x5C5C,0x5C62,0x5C63,0x5C67,0x5C68,0x5C69, + + /* ku 27 */ + 0x5C6D,0x5C70,0x5C74,0x5C75,0x5C7A,0x5C7B,0x5C7C,0x5C7D, + 0x5C87,0x5C88,0x5C8A,0x5C8F,0x5C92,0x5C9D,0x5C9F,0x5CA0, + 0x5CA2,0x5CA3,0x5CA6,0x5CAA,0x5CB2,0x5CB4,0x5CB5,0x5CBA, + 0x5CC9,0x5CCB,0x5CD2,0x5CDD,0x5CD7,0x5CEE,0x5CF1,0x5CF2, + 0x5CF4,0x5D01,0x5D06,0x5D0D,0x5D12,0x5D2B,0x5D23,0x5D24, + 0x5D26,0x5D27,0x5D31,0x5D34,0x5D39,0x5D3D,0x5D3F,0x5D42, + 0x5D43,0x5D46,0x5D48,0x5D55,0x5D51,0x5D59,0x5D4A,0x5D5F, + 0x5D60,0x5D61,0x5D62,0x5D64,0x5D6A,0x5D6D,0x5D70,0x5D79, + 0x5D7A,0x5D7E,0x5D7F,0x5D81,0x5D83,0x5D88,0x5D8A,0x5D92, + 0x5D93,0x5D94,0x5D95,0x5D99,0x5D9B,0x5D9F,0x5DA0,0x5DA7, + 0x5DAB,0x5DB0,0x5DB4,0x5DB8,0x5DB9,0x5DC3,0x5DC7,0x5DCB, + 0x5DD0,0x5DCE,0x5DD8,0x5DD9,0x5DE0,0x5DE4, + + /* ku 28 */ + 0x5DE9,0x5DF8,0x5DF9,0x5E00,0x5E07,0x5E0D,0x5E12,0x5E14, + 0x5E15,0x5E18,0x5E1F,0x5E20,0x5E2E,0x5E28,0x5E32,0x5E35, + 0x5E3E,0x5E4B,0x5E50,0x5E49,0x5E51,0x5E56,0x5E58,0x5E5B, + 0x5E5C,0x5E5E,0x5E68,0x5E6A,0x5E6B,0x5E6C,0x5E6D,0x5E6E, + 0x5E70,0x5E80,0x5E8B,0x5E8E,0x5EA2,0x5EA4,0x5EA5,0x5EA8, + 0x5EAA,0x5EAC,0x5EB1,0x5EB3,0x5EBD,0x5EBE,0x5EBF,0x5EC6, + 0x5ECC,0x5ECB,0x5ECE,0x5ED1,0x5ED2,0x5ED4,0x5ED5,0x5EDC, + 0x5EDE,0x5EE5,0x5EEB,0x5F02,0x5F06,0x5F07,0x5F08,0x5F0E, + 0x5F19,0x5F1C,0x5F1D,0x5F21,0x5F22,0x5F23,0x5F24,0x5F28, + 0x5F2B,0x5F2C,0x5F2E,0x5F30,0x5F34,0x5F36,0x5F3B,0x5F3D, + 0x5F3F,0x5F40,0x5F44,0x5F45,0x5F47,0x5F4D,0x5F50,0x5F54, + 0x5F58,0x5F5B,0x5F60,0x5F63,0x5F64,0x5F67, + + /* ku 29 */ + 0x5F6F,0x5F72,0x5F74,0x5F75,0x5F78,0x5F7A,0x5F7D,0x5F7E, + 0x5F89,0x5F8D,0x5F8F,0x5F96,0x5F9C,0x5F9D,0x5FA2,0x5FA7, + 0x5FAB,0x5FA4,0x5FAC,0x5FAF,0x5FB0,0x5FB1,0x5FB8,0x5FC4, + 0x5FC7,0x5FC8,0x5FC9,0x5FCB,0x5FD0,0x5FD1,0x5FD2,0x5FD3, + 0x5FD4,0x5FDE,0x5FE1,0x5FE2,0x5FE8,0x5FE9,0x5FEA,0x5FEC, + 0x5FED,0x5FEE,0x5FEF,0x5FF2,0x5FF3,0x5FF6,0x5FFA,0x5FFC, + 0x6007,0x600A,0x600D,0x6013,0x6014,0x6017,0x6018,0x601A, + 0x601F,0x6024,0x602D,0x6033,0x6035,0x6040,0x6047,0x6048, + 0x6049,0x604C,0x6051,0x6054,0x6056,0x6057,0x605D,0x6061, + 0x6067,0x6071,0x607E,0x607F,0x6082,0x6086,0x6088,0x608A, + 0x608E,0x6091,0x6093,0x6095,0x6098,0x609D,0x609E,0x60A2, + 0x60A4,0x60A5,0x60A8,0x60B0,0x60B1,0x60B7, + + /* ku 30 */ + 0x60BB,0x60BE,0x60C2,0x60C4,0x60C8,0x60C9,0x60CA,0x60CB, + 0x60CE,0x60CF,0x60D4,0x60D5,0x60D9,0x60DB,0x60DD,0x60DE, + 0x60E2,0x60E5,0x60F2,0x60F5,0x60F8,0x60FC,0x60FD,0x6102, + 0x6107,0x610A,0x610C,0x6110,0x6111,0x6112,0x6113,0x6114, + 0x6116,0x6117,0x6119,0x611C,0x611E,0x6122,0x612A,0x612B, + 0x6130,0x6131,0x6135,0x6136,0x6137,0x6139,0x6141,0x6145, + 0x6146,0x6149,0x615E,0x6160,0x616C,0x6172,0x6178,0x617B, + 0x617C,0x617F,0x6180,0x6181,0x6183,0x6184,0x618B,0x618D, + 0x6192,0x6193,0x6197,0x6198,0x619C,0x619D,0x619F,0x61A0, + 0x61A5,0x61A8,0x61AA,0x61AD,0x61B8,0x61B9,0x61BC,0x61C0, + 0x61C1,0x61C2,0x61CE,0x61CF,0x61D5,0x61DC,0x61DD,0x61DE, + 0x61DF,0x61E1,0x61E2,0x61E7,0x61E9,0x61E5, + + /* ku 31 */ + 0x61EC,0x61ED,0x61EF,0x6201,0x6203,0x6204,0x6207,0x6213, + 0x6215,0x621C,0x6220,0x6222,0x6223,0x6227,0x6229,0x622B, + 0x6239,0x623D,0x6242,0x6243,0x6244,0x6246,0x624C,0x6250, + 0x6251,0x6252,0x6254,0x6256,0x625A,0x625C,0x6264,0x626D, + 0x626F,0x6273,0x627A,0x627D,0x628D,0x628E,0x628F,0x6290, + 0x62A6,0x62A8,0x62B3,0x62B6,0x62B7,0x62BA,0x62BE,0x62BF, + 0x62C4,0x62CE,0x62D5,0x62D6,0x62DA,0x62EA,0x62F2,0x62F4, + 0x62FC,0x62FD,0x6303,0x6304,0x630A,0x630B,0x630D,0x6310, + 0x6313,0x6316,0x6318,0x6329,0x632A,0x632D,0x6335,0x6336, + 0x6339,0x633C,0x6341,0x6342,0x6343,0x6344,0x6346,0x634A, + 0x634B,0x634E,0x6352,0x6353,0x6354,0x6358,0x635B,0x6365, + 0x6366,0x636C,0x636D,0x6371,0x6374,0x6375, + + /* ku 32 */ + 0x6378,0x637C,0x637D,0x637F,0x6382,0x6384,0x6387,0x638A, + 0x6390,0x6394,0x6395,0x6399,0x639A,0x639E,0x63A4,0x63A6, + 0x63AD,0x63AE,0x63AF,0x63BD,0x63C1,0x63C5,0x63C8,0x63CE, + 0x63D1,0x63D3,0x63D4,0x63D5,0x63DC,0x63E0,0x63E5,0x63EA, + 0x63EC,0x63F2,0x63F3,0x63F5,0x63F8,0x63F9,0x6409,0x640A, + 0x6410,0x6412,0x6414,0x6418,0x641E,0x6420,0x6422,0x6424, + 0x6425,0x6429,0x642A,0x642F,0x6430,0x6435,0x643D,0x643F, + 0x644B,0x644F,0x6451,0x6452,0x6453,0x6454,0x645A,0x645B, + 0x645C,0x645D,0x645F,0x6460,0x6461,0x6463,0x646D,0x6473, + 0x6474,0x647B,0x647D,0x6485,0x6487,0x648F,0x6490,0x6491, + 0x6498,0x6499,0x649B,0x649D,0x649F,0x64A1,0x64A3,0x64A6, + 0x64A8,0x64AC,0x64B3,0x64BD,0x64BE,0x64BF, + + /* ku 33 */ + 0x64C4,0x64C9,0x64CA,0x64CB,0x64CC,0x64CE,0x64D0,0x64D1, + 0x64D5,0x64D7,0x64E4,0x64E5,0x64E9,0x64EA,0x64ED,0x64F0, + 0x64F5,0x64F7,0x64FB,0x64FF,0x6501,0x6504,0x6508,0x6509, + 0x650A,0x650F,0x6513,0x6514,0x6516,0x6519,0x651B,0x651E, + 0x651F,0x6522,0x6526,0x6529,0x652E,0x6531,0x653A,0x653C, + 0x653D,0x6543,0x6547,0x6549,0x6550,0x6552,0x6554,0x655F, + 0x6560,0x6567,0x656B,0x657A,0x657D,0x6581,0x6585,0x658A, + 0x6592,0x6595,0x6598,0x659D,0x65A0,0x65A3,0x65A6,0x65AE, + 0x65B2,0x65B3,0x65B4,0x65BF,0x65C2,0x65C8,0x65C9,0x65CE, + 0x65D0,0x65D4,0x65D6,0x65D8,0x65DF,0x65F0,0x65F2,0x65F4, + 0x65F5,0x65F9,0x65FE,0x65FF,0x6600,0x6604,0x6608,0x6609, + 0x660D,0x6611,0x6612,0x6615,0x6616,0x661D, + + /* ku 34 */ + 0x661E,0x6621,0x6622,0x6623,0x6624,0x6626,0x6629,0x662A, + 0x662B,0x662C,0x662E,0x6630,0x6631,0x6633,0x6639,0x6637, + 0x6640,0x6645,0x6646,0x664A,0x664C,0x6651,0x664E,0x6657, + 0x6658,0x6659,0x665B,0x665C,0x6660,0x6661,0x66FB,0x666A, + 0x666B,0x666C,0x667E,0x6673,0x6675,0x667F,0x6677,0x6678, + 0x6679,0x667B,0x6680,0x667C,0x668B,0x668C,0x668D,0x6690, + 0x6692,0x6699,0x669A,0x669B,0x669C,0x669F,0x66A0,0x66A4, + 0x66AD,0x66B1,0x66B2,0x66B5,0x66BB,0x66BF,0x66C0,0x66C2, + 0x66C3,0x66C8,0x66CC,0x66CE,0x66CF,0x66D4,0x66DB,0x66DF, + 0x66E8,0x66EB,0x66EC,0x66EE,0x66FA,0x6705,0x6707,0x670E, + 0x6713,0x6719,0x671C,0x6720,0x6722,0x6733,0x673E,0x6745, + 0x6747,0x6748,0x674C,0x6754,0x6755,0x675D, + + /* ku 35 */ + 0x6766,0x676C,0x676E,0x6774,0x6776,0x677B,0x6781,0x6784, + 0x678E,0x678F,0x6791,0x6793,0x6796,0x6798,0x6799,0x679B, + 0x67B0,0x67B1,0x67B2,0x67B5,0x67BB,0x67BC,0x67BD,0x67F9, + 0x67C0,0x67C2,0x67C3,0x67C5,0x67C8,0x67C9,0x67D2,0x67D7, + 0x67D9,0x67DC,0x67E1,0x67E6,0x67F0,0x67F2,0x67F6,0x67F7, + 0x6852,0x6814,0x6819,0x681D,0x681F,0x6828,0x6827,0x682C, + 0x682D,0x682F,0x6830,0x6831,0x6833,0x683B,0x683F,0x6844, + 0x6845,0x684A,0x684C,0x6855,0x6857,0x6858,0x685B,0x686B, + 0x686E,0x686F,0x6870,0x6871,0x6872,0x6875,0x6879,0x687A, + 0x687B,0x687C,0x6882,0x6884,0x6886,0x6888,0x6896,0x6898, + 0x689A,0x689C,0x68A1,0x68A3,0x68A5,0x68A9,0x68AA,0x68AE, + 0x68B2,0x68BB,0x68C5,0x68C8,0x68CC,0x68CF, + + /* ku 36 */ + 0x68D0,0x68D1,0x68D3,0x68D6,0x68D9,0x68DC,0x68DD,0x68E5, + 0x68E8,0x68EA,0x68EB,0x68EC,0x68ED,0x68F0,0x68F1,0x68F5, + 0x68F6,0x68FB,0x68FC,0x68FD,0x6906,0x6909,0x690A,0x6910, + 0x6911,0x6913,0x6916,0x6917,0x6931,0x6933,0x6935,0x6938, + 0x693B,0x6942,0x6945,0x6949,0x694E,0x6957,0x695B,0x6963, + 0x6964,0x6965,0x6966,0x6968,0x6969,0x696C,0x6970,0x6971, + 0x6972,0x697A,0x697B,0x697F,0x6980,0x698D,0x6992,0x6996, + 0x6998,0x69A1,0x69A5,0x69A6,0x69A8,0x69AB,0x69AD,0x69AF, + 0x69B7,0x69B8,0x69BA,0x69BC,0x69C5,0x69C8,0x69D1,0x69D6, + 0x69D7,0x69E2,0x69E5,0x69EE,0x69EF,0x69F1,0x69F3,0x69F5, + 0x69FE,0x6A00,0x6A01,0x6A03,0x6A0F,0x6A11,0x6A15,0x6A1A, + 0x6A1D,0x6A20,0x6A24,0x6A28,0x6A30,0x6A32, + + /* ku 37 */ + 0x6A34,0x6A37,0x6A3B,0x6A3E,0x6A3F,0x6A45,0x6A46,0x6A49, + 0x6A4A,0x6A4E,0x6A50,0x6A51,0x6A52,0x6A55,0x6A56,0x6A5B, + 0x6A64,0x6A67,0x6A6A,0x6A71,0x6A73,0x6A7E,0x6A81,0x6A83, + 0x6A86,0x6A87,0x6A89,0x6A8B,0x6A91,0x6A9B,0x6A9D,0x6A9E, + 0x6A9F,0x6AA5,0x6AAB,0x6AAF,0x6AB0,0x6AB1,0x6AB4,0x6ABD, + 0x6ABE,0x6ABF,0x6AC6,0x6AC9,0x6AC8,0x6ACC,0x6AD0,0x6AD4, + 0x6AD5,0x6AD6,0x6ADC,0x6ADD,0x6AE4,0x6AE7,0x6AEC,0x6AF0, + 0x6AF1,0x6AF2,0x6AFC,0x6AFD,0x6B02,0x6B03,0x6B06,0x6B07, + 0x6B09,0x6B0F,0x6B10,0x6B11,0x6B17,0x6B1B,0x6B1E,0x6B24, + 0x6B28,0x6B2B,0x6B2C,0x6B2F,0x6B35,0x6B36,0x6B3B,0x6B3F, + 0x6B46,0x6B4A,0x6B4D,0x6B52,0x6B56,0x6B58,0x6B5D,0x6B60, + 0x6B67,0x6B6B,0x6B6E,0x6B70,0x6B75,0x6B7D, + + /* ku 38 */ + 0x6B7E,0x6B82,0x6B85,0x6B97,0x6B9B,0x6B9F,0x6BA0,0x6BA2, + 0x6BA3,0x6BA8,0x6BA9,0x6BAC,0x6BAD,0x6BAE,0x6BB0,0x6BB8, + 0x6BB9,0x6BBD,0x6BBE,0x6BC3,0x6BC4,0x6BC9,0x6BCC,0x6BD6, + 0x6BDA,0x6BE1,0x6BE3,0x6BE6,0x6BE7,0x6BEE,0x6BF1,0x6BF7, + 0x6BF9,0x6BFF,0x6C02,0x6C04,0x6C05,0x6C09,0x6C0D,0x6C0E, + 0x6C10,0x6C12,0x6C19,0x6C1F,0x6C26,0x6C27,0x6C28,0x6C2C, + 0x6C2E,0x6C33,0x6C35,0x6C36,0x6C3A,0x6C3B,0x6C3F,0x6C4A, + 0x6C4B,0x6C4D,0x6C4F,0x6C52,0x6C54,0x6C59,0x6C5B,0x6C5C, + 0x6C6B,0x6C6D,0x6C6F,0x6C74,0x6C76,0x6C78,0x6C79,0x6C7B, + 0x6C85,0x6C86,0x6C87,0x6C89,0x6C94,0x6C95,0x6C97,0x6C98, + 0x6C9C,0x6C9F,0x6CB0,0x6CB2,0x6CB4,0x6CC2,0x6CC6,0x6CCD, + 0x6CCF,0x6CD0,0x6CD1,0x6CD2,0x6CD4,0x6CD6, + + /* ku 39 */ + 0x6CDA,0x6CDC,0x6CE0,0x6CE7,0x6CE9,0x6CEB,0x6CEC,0x6CEE, + 0x6CF2,0x6CF4,0x6D04,0x6D07,0x6D0A,0x6D0E,0x6D0F,0x6D11, + 0x6D13,0x6D1A,0x6D26,0x6D27,0x6D28,0x6C67,0x6D2E,0x6D2F, + 0x6D31,0x6D39,0x6D3C,0x6D3F,0x6D57,0x6D5E,0x6D5F,0x6D61, + 0x6D65,0x6D67,0x6D6F,0x6D70,0x6D7C,0x6D82,0x6D87,0x6D91, + 0x6D92,0x6D94,0x6D96,0x6D97,0x6D98,0x6DAA,0x6DAC,0x6DB4, + 0x6DB7,0x6DB9,0x6DBD,0x6DBF,0x6DC4,0x6DC8,0x6DCA,0x6DCE, + 0x6DCF,0x6DD6,0x6DDB,0x6DDD,0x6DDF,0x6DE0,0x6DE2,0x6DE5, + 0x6DE9,0x6DEF,0x6DF0,0x6DF4,0x6DF6,0x6DFC,0x6E00,0x6E04, + 0x6E1E,0x6E22,0x6E27,0x6E32,0x6E36,0x6E39,0x6E3B,0x6E3C, + 0x6E44,0x6E45,0x6E48,0x6E49,0x6E4B,0x6E4F,0x6E51,0x6E52, + 0x6E53,0x6E54,0x6E57,0x6E5C,0x6E5D,0x6E5E, + + /* ku 40 */ + 0x6E62,0x6E63,0x6E68,0x6E73,0x6E7B,0x6E7D,0x6E8D,0x6E93, + 0x6E99,0x6EA0,0x6EA7,0x6EAD,0x6EAE,0x6EB1,0x6EB3,0x6EBB, + 0x6EBF,0x6EC0,0x6EC1,0x6EC3,0x6EC7,0x6EC8,0x6ECA,0x6ECD, + 0x6ECE,0x6ECF,0x6EEB,0x6EED,0x6EEE,0x6EF9,0x6EFB,0x6EFD, + 0x6F04,0x6F08,0x6F0A,0x6F0C,0x6F0D,0x6F16,0x6F18,0x6F1A, + 0x6F1B,0x6F26,0x6F29,0x6F2A,0x6F2F,0x6F30,0x6F33,0x6F36, + 0x6F3B,0x6F3C,0x6F2D,0x6F4F,0x6F51,0x6F52,0x6F53,0x6F57, + 0x6F59,0x6F5A,0x6F5D,0x6F5E,0x6F61,0x6F62,0x6F68,0x6F6C, + 0x6F7D,0x6F7E,0x6F83,0x6F87,0x6F88,0x6F8B,0x6F8C,0x6F8D, + 0x6F90,0x6F92,0x6F93,0x6F94,0x6F96,0x6F9A,0x6F9F,0x6FA0, + 0x6FA5,0x6FA6,0x6FA7,0x6FA8,0x6FAE,0x6FAF,0x6FB0,0x6FB5, + 0x6FB6,0x6FBC,0x6FC5,0x6FC7,0x6FC8,0x6FCA, + + /* ku 41 */ + 0x6FDA,0x6FDE,0x6FE8,0x6FE9,0x6FF0,0x6FF5,0x6FF9,0x6FFC, + 0x6FFD,0x7000,0x7005,0x7006,0x7007,0x700D,0x7017,0x7020, + 0x7023,0x702F,0x7034,0x7037,0x7039,0x703C,0x7043,0x7044, + 0x7048,0x7049,0x704A,0x704B,0x7054,0x7055,0x705D,0x705E, + 0x704E,0x7064,0x7065,0x706C,0x706E,0x7075,0x7076,0x707E, + 0x7081,0x7085,0x7086,0x7094,0x7095,0x7096,0x7097,0x7098, + 0x709B,0x70A4,0x70AB,0x70B0,0x70B1,0x70B4,0x70B7,0x70CA, + 0x70D1,0x70D3,0x70D4,0x70D5,0x70D6,0x70D8,0x70DC,0x70E4, + 0x70FA,0x7103,0x7104,0x7105,0x7106,0x7107,0x710B,0x710C, + 0x710F,0x711E,0x7120,0x712B,0x712D,0x712F,0x7130,0x7131, + 0x7138,0x7141,0x7145,0x7146,0x7147,0x714A,0x714B,0x7150, + 0x7152,0x7157,0x715A,0x715C,0x715E,0x7160, + + /* ku 42 */ + 0x7168,0x7179,0x7180,0x7185,0x7187,0x718C,0x7192,0x719A, + 0x719B,0x71A0,0x71A2,0x71AF,0x71B0,0x71B2,0x71B3,0x71BA, + 0x71BF,0x71C0,0x71C1,0x71C4,0x71CB,0x71CC,0x71D3,0x71D6, + 0x71D9,0x71DA,0x71DC,0x71F8,0x71FE,0x7200,0x7207,0x7208, + 0x7209,0x7213,0x7217,0x721A,0x721D,0x721F,0x7224,0x722B, + 0x722F,0x7234,0x7238,0x7239,0x7241,0x7242,0x7243,0x7245, + 0x724E,0x724F,0x7250,0x7253,0x7255,0x7256,0x725A,0x725C, + 0x725E,0x7260,0x7263,0x7268,0x726B,0x726E,0x726F,0x7271, + 0x7277,0x7278,0x727B,0x727C,0x727F,0x7284,0x7289,0x728D, + 0x728E,0x7293,0x729B,0x72A8,0x72AD,0x72AE,0x72B1,0x72B4, + 0x72BE,0x72C1,0x72C7,0x72C9,0x72CC,0x72D5,0x72D6,0x72D8, + 0x72DF,0x72E5,0x72F3,0x72F4,0x72FA,0x72FB, + + /* ku 43 */ + 0x72FE,0x7302,0x7304,0x7305,0x7307,0x730B,0x730D,0x7312, + 0x7313,0x7318,0x7319,0x731E,0x7322,0x7324,0x7327,0x7328, + 0x732C,0x7331,0x7332,0x7335,0x733A,0x733B,0x733D,0x7343, + 0x734D,0x7350,0x7352,0x7356,0x7358,0x735D,0x735E,0x735F, + 0x7360,0x7366,0x7367,0x7369,0x736B,0x736C,0x736E,0x736F, + 0x7371,0x7377,0x7379,0x737C,0x7380,0x7381,0x7383,0x7385, + 0x7386,0x738E,0x7390,0x7393,0x7395,0x7397,0x7398,0x739C, + 0x739E,0x739F,0x73A0,0x73A2,0x73A5,0x73A6,0x73AA,0x73AB, + 0x73AD,0x73B5,0x73B7,0x73B9,0x73BC,0x73BD,0x73BF,0x73C5, + 0x73C6,0x73C9,0x73CB,0x73CC,0x73CF,0x73D2,0x73D3,0x73D6, + 0x73D9,0x73DD,0x73E1,0x73E3,0x73E6,0x73E7,0x73E9,0x73F4, + 0x73F5,0x73F7,0x73F9,0x73FA,0x73FB,0x73FD, + + /* ku 44 */ + 0x73FF,0x7400,0x7401,0x7404,0x7407,0x740A,0x7411,0x741A, + 0x741B,0x7424,0x7426,0x7428,0x7429,0x742A,0x742B,0x742C, + 0x742D,0x742E,0x742F,0x7430,0x7431,0x7439,0x7440,0x7443, + 0x7444,0x7446,0x7447,0x744B,0x744D,0x7451,0x7452,0x7457, + 0x745D,0x7462,0x7466,0x7467,0x7468,0x746B,0x746D,0x746E, + 0x7471,0x7472,0x7480,0x7481,0x7485,0x7486,0x7487,0x7489, + 0x748F,0x7490,0x7491,0x7492,0x7498,0x7499,0x749A,0x749C, + 0x749F,0x74A0,0x74A1,0x74A3,0x74A6,0x74A8,0x74A9,0x74AA, + 0x74AB,0x74AE,0x74AF,0x74B1,0x74B2,0x74B5,0x74B9,0x74BB, + 0x74BF,0x74C8,0x74C9,0x74CC,0x74D0,0x74D3,0x74D8,0x74DA, + 0x74DB,0x74DE,0x74DF,0x74E4,0x74E8,0x74EA,0x74EB,0x74EF, + 0x74F4,0x74FA,0x74FB,0x74FC,0x74FF,0x7506, + + /* ku 45 */ + 0x7512,0x7516,0x7517,0x7520,0x7521,0x7524,0x7527,0x7529, + 0x752A,0x752F,0x7536,0x7539,0x753D,0x753E,0x753F,0x7540, + 0x7543,0x7547,0x7548,0x754E,0x7550,0x7552,0x7557,0x755E, + 0x755F,0x7561,0x756F,0x7571,0x7579,0x757A,0x757B,0x757C, + 0x757D,0x757E,0x7581,0x7585,0x7590,0x7592,0x7593,0x7595, + 0x7599,0x759C,0x75A2,0x75A4,0x75B4,0x75BA,0x75BF,0x75C0, + 0x75C1,0x75C4,0x75C6,0x75CC,0x75CE,0x75CF,0x75D7,0x75DC, + 0x75DF,0x75E0,0x75E1,0x75E4,0x75E7,0x75EC,0x75EE,0x75EF, + 0x75F1,0x75F9,0x7600,0x7602,0x7603,0x7604,0x7607,0x7608, + 0x760A,0x760C,0x760F,0x7612,0x7613,0x7615,0x7616,0x7619, + 0x761B,0x761C,0x761D,0x761E,0x7623,0x7625,0x7626,0x7629, + 0x762D,0x7632,0x7633,0x7635,0x7638,0x7639, + + /* ku 46 */ + 0x763A,0x763C,0x764A,0x7640,0x7641,0x7643,0x7644,0x7645, + 0x7649,0x764B,0x7655,0x7659,0x765F,0x7664,0x7665,0x766D, + 0x766E,0x766F,0x7671,0x7674,0x7681,0x7685,0x768C,0x768D, + 0x7695,0x769B,0x769C,0x769D,0x769F,0x76A0,0x76A2,0x76A3, + 0x76A4,0x76A5,0x76A6,0x76A7,0x76A8,0x76AA,0x76AD,0x76BD, + 0x76C1,0x76C5,0x76C9,0x76CB,0x76CC,0x76CE,0x76D4,0x76D9, + 0x76E0,0x76E6,0x76E8,0x76EC,0x76F0,0x76F1,0x76F6,0x76F9, + 0x76FC,0x7700,0x7706,0x770A,0x770E,0x7712,0x7714,0x7715, + 0x7717,0x7719,0x771A,0x771C,0x7722,0x7728,0x772D,0x772E, + 0x772F,0x7734,0x7735,0x7736,0x7739,0x773D,0x773E,0x7742, + 0x7745,0x7746,0x774A,0x774D,0x774E,0x774F,0x7752,0x7756, + 0x7757,0x775C,0x775E,0x775F,0x7760,0x7762, + + /* ku 47 */ + 0x7764,0x7767,0x776A,0x776C,0x7770,0x7772,0x7773,0x7774, + 0x777A,0x777D,0x7780,0x7784,0x778C,0x778D,0x7794,0x7795, + 0x7796,0x779A,0x779F,0x77A2,0x77A7,0x77AA,0x77AE,0x77AF, + 0x77B1,0x77B5,0x77BE,0x77C3,0x77C9,0x77D1,0x77D2,0x77D5, + 0x77D9,0x77DE,0x77DF,0x77E0,0x77E4,0x77E6,0x77EA,0x77EC, + 0x77F0,0x77F1,0x77F4,0x77F8,0x77FB,0x7805,0x7806,0x7809, + 0x780D,0x780E,0x7811,0x781D,0x7821,0x7822,0x7823,0x782D, + 0x782E,0x7830,0x7835,0x7837,0x7843,0x7844,0x7847,0x7848, + 0x784C,0x784E,0x7852,0x785C,0x785E,0x7860,0x7861,0x7863, + 0x7864,0x7868,0x786A,0x786E,0x787A,0x787E,0x788A,0x788F, + 0x7894,0x7898,0x78A1,0x789D,0x789E,0x789F,0x78A4,0x78A8, + 0x78AC,0x78AD,0x78B0,0x78B1,0x78B2,0x78B3, + + /* ku 48 */ + 0x78BB,0x78BD,0x78BF,0x78C7,0x78C8,0x78C9,0x78CC,0x78CE, + 0x78D2,0x78D3,0x78D5,0x78D6,0x78E4,0x78DB,0x78DF,0x78E0, + 0x78E1,0x78E6,0x78EA,0x78F2,0x78F3,0x7900,0x78F6,0x78F7, + 0x78FA,0x78FB,0x78FF,0x7906,0x790C,0x7910,0x791A,0x791C, + 0x791E,0x791F,0x7920,0x7925,0x7927,0x7929,0x792D,0x7931, + 0x7934,0x7935,0x793B,0x793D,0x793F,0x7944,0x7945,0x7946, + 0x794A,0x794B,0x794F,0x7951,0x7954,0x7958,0x795B,0x795C, + 0x7967,0x7969,0x796B,0x7972,0x7979,0x797B,0x797C,0x797E, + 0x798B,0x798C,0x7991,0x7993,0x7994,0x7995,0x7996,0x7998, + 0x799B,0x799C,0x79A1,0x79A8,0x79A9,0x79AB,0x79AF,0x79B1, + 0x79B4,0x79B8,0x79BB,0x79C2,0x79C4,0x79C7,0x79C8,0x79CA, + 0x79CF,0x79D4,0x79D6,0x79DA,0x79DD,0x79DE, + + /* ku 49 */ + 0x79E0,0x79E2,0x79E5,0x79EA,0x79EB,0x79ED,0x79F1,0x79F8, + 0x79FC,0x7A02,0x7A03,0x7A07,0x7A09,0x7A0A,0x7A0C,0x7A11, + 0x7A15,0x7A1B,0x7A1E,0x7A21,0x7A27,0x7A2B,0x7A2D,0x7A2F, + 0x7A30,0x7A34,0x7A35,0x7A38,0x7A39,0x7A3A,0x7A44,0x7A45, + 0x7A47,0x7A48,0x7A4C,0x7A55,0x7A56,0x7A59,0x7A5C,0x7A5D, + 0x7A5F,0x7A60,0x7A65,0x7A67,0x7A6A,0x7A6D,0x7A75,0x7A78, + 0x7A7E,0x7A80,0x7A82,0x7A85,0x7A86,0x7A8A,0x7A8B,0x7A90, + 0x7A91,0x7A94,0x7A9E,0x7AA0,0x7AA3,0x7AAC,0x7AB3,0x7AB5, + 0x7AB9,0x7ABB,0x7ABC,0x7AC6,0x7AC9,0x7ACC,0x7ACE,0x7AD1, + 0x7ADB,0x7AE8,0x7AE9,0x7AEB,0x7AEC,0x7AF1,0x7AF4,0x7AFB, + 0x7AFD,0x7AFE,0x7B07,0x7B14,0x7B1F,0x7B23,0x7B27,0x7B29, + 0x7B2A,0x7B2B,0x7B2D,0x7B2E,0x7B2F,0x7B30, + + /* ku 50 */ + 0x7B31,0x7B34,0x7B3D,0x7B3F,0x7B40,0x7B41,0x7B47,0x7B4E, + 0x7B55,0x7B60,0x7B64,0x7B66,0x7B69,0x7B6A,0x7B6D,0x7B6F, + 0x7B72,0x7B73,0x7B77,0x7B84,0x7B89,0x7B8E,0x7B90,0x7B91, + 0x7B96,0x7B9B,0x7B9E,0x7BA0,0x7BA5,0x7BAC,0x7BAF,0x7BB0, + 0x7BB2,0x7BB5,0x7BB6,0x7BBA,0x7BBB,0x7BBC,0x7BBD,0x7BC2, + 0x7BC5,0x7BC8,0x7BCA,0x7BD4,0x7BD6,0x7BD7,0x7BD9,0x7BDA, + 0x7BDB,0x7BE8,0x7BEA,0x7BF2,0x7BF4,0x7BF5,0x7BF8,0x7BF9, + 0x7BFA,0x7BFC,0x7BFE,0x7C01,0x7C02,0x7C03,0x7C04,0x7C06, + 0x7C09,0x7C0B,0x7C0C,0x7C0E,0x7C0F,0x7C19,0x7C1B,0x7C20, + 0x7C25,0x7C26,0x7C28,0x7C2C,0x7C31,0x7C33,0x7C34,0x7C36, + 0x7C39,0x7C3A,0x7C46,0x7C4A,0x7C55,0x7C51,0x7C52,0x7C53, + 0x7C59,0x7C5A,0x7C5B,0x7C5C,0x7C5D,0x7C5E, + + /* ku 51 */ + 0x7C61,0x7C63,0x7C67,0x7C69,0x7C6D,0x7C6E,0x7C70,0x7C72, + 0x7C79,0x7C7C,0x7C7D,0x7C86,0x7C87,0x7C8F,0x7C94,0x7C9E, + 0x7CA0,0x7CA6,0x7CB0,0x7CB6,0x7CB7,0x7CBA,0x7CBB,0x7CBC, + 0x7CBF,0x7CC4,0x7CC7,0x7CC8,0x7CC9,0x7CCD,0x7CCF,0x7CD3, + 0x7CD4,0x7CD5,0x7CD7,0x7CD9,0x7CDA,0x7CDD,0x7CE6,0x7CE9, + 0x7CEB,0x7CF5,0x7D03,0x7D07,0x7D08,0x7D09,0x7D0F,0x7D11, + 0x7D12,0x7D13,0x7D16,0x7D1D,0x7D1E,0x7D23,0x7D26,0x7D2A, + 0x7D2D,0x7D31,0x7D3C,0x7D3D,0x7D3E,0x7D40,0x7D41,0x7D47, + 0x7D48,0x7D4D,0x7D51,0x7D53,0x7D57,0x7D59,0x7D5A,0x7D5C, + 0x7D5D,0x7D65,0x7D67,0x7D6A,0x7D70,0x7D78,0x7D7A,0x7D7B, + 0x7D7F,0x7D81,0x7D82,0x7D83,0x7D85,0x7D86,0x7D88,0x7D8B, + 0x7D8C,0x7D8D,0x7D91,0x7D96,0x7D97,0x7D9D, + + /* ku 52 */ + 0x7D9E,0x7DA6,0x7DA7,0x7DAA,0x7DB3,0x7DB6,0x7DB7,0x7DB9, + 0x7DC2,0x7DC3,0x7DC4,0x7DC5,0x7DC6,0x7DCC,0x7DCD,0x7DCE, + 0x7DD7,0x7DD9,0x7E00,0x7DE2,0x7DE5,0x7DE6,0x7DEA,0x7DEB, + 0x7DED,0x7DF1,0x7DF5,0x7DF6,0x7DF9,0x7DFA,0x7E08,0x7E10, + 0x7E11,0x7E15,0x7E17,0x7E1C,0x7E1D,0x7E20,0x7E27,0x7E28, + 0x7E2C,0x7E2D,0x7E2F,0x7E33,0x7E36,0x7E3F,0x7E44,0x7E45, + 0x7E47,0x7E4E,0x7E50,0x7E52,0x7E58,0x7E5F,0x7E61,0x7E62, + 0x7E65,0x7E6B,0x7E6E,0x7E6F,0x7E73,0x7E78,0x7E7E,0x7E81, + 0x7E86,0x7E87,0x7E8A,0x7E8D,0x7E91,0x7E95,0x7E98,0x7E9A, + 0x7E9D,0x7E9E,0x7F3C,0x7F3B,0x7F3D,0x7F3E,0x7F3F,0x7F43, + 0x7F44,0x7F47,0x7F4F,0x7F52,0x7F53,0x7F5B,0x7F5C,0x7F5D, + 0x7F61,0x7F63,0x7F64,0x7F65,0x7F66,0x7F6D, + + /* ku 53 */ + 0x7F71,0x7F7D,0x7F7E,0x7F7F,0x7F80,0x7F8B,0x7F8D,0x7F8F, + 0x7F90,0x7F91,0x7F96,0x7F97,0x7F9C,0x7FA1,0x7FA2,0x7FA6, + 0x7FAA,0x7FAD,0x7FB4,0x7FBC,0x7FBF,0x7FC0,0x7FC3,0x7FC8, + 0x7FCE,0x7FCF,0x7FDB,0x7FDF,0x7FE3,0x7FE5,0x7FE8,0x7FEC, + 0x7FEE,0x7FEF,0x7FF2,0x7FFA,0x7FFD,0x7FFE,0x7FFF,0x8007, + 0x8008,0x800A,0x800D,0x800E,0x800F,0x8011,0x8013,0x8014, + 0x8016,0x801D,0x801E,0x801F,0x8020,0x8024,0x8026,0x802C, + 0x802E,0x8030,0x8034,0x8035,0x8037,0x8039,0x803A,0x803C, + 0x803E,0x8040,0x8044,0x8060,0x8064,0x8066,0x806D,0x8071, + 0x8075,0x8081,0x8088,0x808E,0x809C,0x809E,0x80A6,0x80A7, + 0x80AB,0x80B8,0x80B9,0x80C8,0x80CD,0x80CF,0x80D2,0x80D4, + 0x80D5,0x80D7,0x80D8,0x80E0,0x80ED,0x80EE, + + /* ku 54 */ + 0x80F0,0x80F2,0x80F3,0x80F6,0x80F9,0x80FA,0x80FE,0x8103, + 0x810B,0x8116,0x8117,0x8118,0x811C,0x811E,0x8120,0x8124, + 0x8127,0x812C,0x8130,0x8135,0x813A,0x813C,0x8145,0x8147, + 0x814A,0x814C,0x8152,0x8157,0x8160,0x8161,0x8167,0x8168, + 0x8169,0x816D,0x816F,0x8177,0x8181,0x8190,0x8184,0x8185, + 0x8186,0x818B,0x818E,0x8196,0x8198,0x819B,0x819E,0x81A2, + 0x81AE,0x81B2,0x81B4,0x81BB,0x81CB,0x81C3,0x81C5,0x81CA, + 0x81CE,0x81CF,0x81D5,0x81D7,0x81DB,0x81DD,0x81DE,0x81E1, + 0x81E4,0x81EB,0x81EC,0x81F0,0x81F1,0x81F2,0x81F5,0x81F6, + 0x81F8,0x81F9,0x81FD,0x81FF,0x8200,0x8203,0x820F,0x8213, + 0x8214,0x8219,0x821A,0x821D,0x8221,0x8222,0x8228,0x8232, + 0x8234,0x823A,0x8243,0x8244,0x8245,0x8246, + + /* ku 55 */ + 0x824B,0x824E,0x824F,0x8251,0x8256,0x825C,0x8260,0x8263, + 0x8267,0x826D,0x8274,0x827B,0x827D,0x827F,0x8280,0x8281, + 0x8283,0x8284,0x8287,0x8289,0x828A,0x828E,0x8291,0x8294, + 0x8296,0x8298,0x829A,0x829B,0x82A0,0x82A1,0x82A3,0x82A4, + 0x82A7,0x82A8,0x82A9,0x82AA,0x82AE,0x82B0,0x82B2,0x82B4, + 0x82B7,0x82BA,0x82BC,0x82BE,0x82BF,0x82C6,0x82D0,0x82D5, + 0x82DA,0x82E0,0x82E2,0x82E4,0x82E8,0x82EA,0x82ED,0x82EF, + 0x82F6,0x82F7,0x82FD,0x82FE,0x8300,0x8301,0x8307,0x8308, + 0x830A,0x830B,0x8354,0x831B,0x831D,0x831E,0x831F,0x8321, + 0x8322,0x832C,0x832D,0x832E,0x8330,0x8333,0x8337,0x833A, + 0x833C,0x833D,0x8342,0x8343,0x8344,0x8347,0x834D,0x834E, + 0x8351,0x8355,0x8356,0x8357,0x8370,0x8378, + + /* ku 56 */ + 0x837D,0x837F,0x8380,0x8382,0x8384,0x8386,0x838D,0x8392, + 0x8394,0x8395,0x8398,0x8399,0x839B,0x839C,0x839D,0x83A6, + 0x83A7,0x83A9,0x83AC,0x83BE,0x83BF,0x83C0,0x83C7,0x83C9, + 0x83CF,0x83D0,0x83D1,0x83D4,0x83DD,0x8353,0x83E8,0x83EA, + 0x83F6,0x83F8,0x83F9,0x83FC,0x8401,0x8406,0x840A,0x840F, + 0x8411,0x8415,0x8419,0x83AD,0x842F,0x8439,0x8445,0x8447, + 0x8448,0x844A,0x844D,0x844F,0x8451,0x8452,0x8456,0x8458, + 0x8459,0x845A,0x845C,0x8460,0x8464,0x8465,0x8467,0x846A, + 0x8470,0x8473,0x8474,0x8476,0x8478,0x847C,0x847D,0x8481, + 0x8485,0x8492,0x8493,0x8495,0x849E,0x84A6,0x84A8,0x84A9, + 0x84AA,0x84AF,0x84B1,0x84B4,0x84BA,0x84BD,0x84BE,0x84C0, + 0x84C2,0x84C7,0x84C8,0x84CC,0x84CF,0x84D3, + + /* ku 57 */ + 0x84DC,0x84E7,0x84EA,0x84EF,0x84F0,0x84F1,0x84F2,0x84F7, + 0x8532,0x84FA,0x84FB,0x84FD,0x8502,0x8503,0x8507,0x850C, + 0x850E,0x8510,0x851C,0x851E,0x8522,0x8523,0x8524,0x8525, + 0x8527,0x852A,0x852B,0x852F,0x8533,0x8534,0x8536,0x853F, + 0x8546,0x854F,0x8550,0x8551,0x8552,0x8553,0x8556,0x8559, + 0x855C,0x855D,0x855E,0x855F,0x8560,0x8561,0x8562,0x8564, + 0x856B,0x856F,0x8579,0x857A,0x857B,0x857D,0x857F,0x8581, + 0x8585,0x8586,0x8589,0x858B,0x858C,0x858F,0x8593,0x8598, + 0x859D,0x859F,0x85A0,0x85A2,0x85A5,0x85A7,0x85B4,0x85B6, + 0x85B7,0x85B8,0x85BC,0x85BD,0x85BE,0x85BF,0x85C2,0x85C7, + 0x85CA,0x85CB,0x85CE,0x85AD,0x85D8,0x85DA,0x85DF,0x85E0, + 0x85E6,0x85E8,0x85ED,0x85F3,0x85F6,0x85FC, + + /* ku 58 */ + 0x85FF,0x8600,0x8604,0x8605,0x860D,0x860E,0x8610,0x8611, + 0x8612,0x8618,0x8619,0x861B,0x861E,0x8621,0x8627,0x8629, + 0x8636,0x8638,0x863A,0x863C,0x863D,0x8640,0x8642,0x8646, + 0x8652,0x8653,0x8656,0x8657,0x8658,0x8659,0x865D,0x8660, + 0x8661,0x8662,0x8663,0x8664,0x8669,0x866C,0x866F,0x8675, + 0x8676,0x8677,0x867A,0x868D,0x8691,0x8696,0x8698,0x869A, + 0x869C,0x86A1,0x86A6,0x86A7,0x86A8,0x86AD,0x86B1,0x86B3, + 0x86B4,0x86B5,0x86B7,0x86B8,0x86B9,0x86BF,0x86C0,0x86C1, + 0x86C3,0x86C5,0x86D1,0x86D2,0x86D5,0x86D7,0x86DA,0x86DC, + 0x86E0,0x86E3,0x86E5,0x86E7,0x8688,0x86FA,0x86FC,0x86FD, + 0x8704,0x8705,0x8707,0x870B,0x870E,0x870F,0x8710,0x8713, + 0x8714,0x8719,0x871E,0x871F,0x8721,0x8723, + + /* ku 59 */ + 0x8728,0x872E,0x872F,0x8731,0x8732,0x8739,0x873A,0x873C, + 0x873D,0x873E,0x8740,0x8743,0x8745,0x874D,0x8758,0x875D, + 0x8761,0x8764,0x8765,0x876F,0x8771,0x8772,0x877B,0x8783, + 0x8784,0x8785,0x8786,0x8787,0x8788,0x8789,0x878B,0x878C, + 0x8790,0x8793,0x8795,0x8797,0x8798,0x8799,0x879E,0x87A0, + 0x87A3,0x87A7,0x87AC,0x87AD,0x87AE,0x87B1,0x87B5,0x87BE, + 0x87BF,0x87C1,0x87C8,0x87C9,0x87CA,0x87CE,0x87D5,0x87D6, + 0x87D9,0x87DA,0x87DC,0x87DF,0x87E2,0x87E3,0x87E4,0x87EA, + 0x87EB,0x87ED,0x87F1,0x87F3,0x87F8,0x87FA,0x87FF,0x8801, + 0x8803,0x8806,0x8809,0x880A,0x880B,0x8810,0x8819,0x8812, + 0x8813,0x8814,0x8818,0x881A,0x881B,0x881C,0x881E,0x881F, + 0x8828,0x882D,0x882E,0x8830,0x8832,0x8835, + + /* ku 60 */ + 0x883A,0x883C,0x8841,0x8843,0x8845,0x8848,0x8849,0x884A, + 0x884B,0x884E,0x8851,0x8855,0x8856,0x8858,0x885A,0x885C, + 0x885F,0x8860,0x8864,0x8869,0x8871,0x8879,0x887B,0x8880, + 0x8898,0x889A,0x889B,0x889C,0x889F,0x88A0,0x88A8,0x88AA, + 0x88BA,0x88BD,0x88BE,0x88C0,0x88CA,0x88CB,0x88CC,0x88CD, + 0x88CE,0x88D1,0x88D2,0x88D3,0x88DB,0x88DE,0x88E7,0x88EF, + 0x88F0,0x88F1,0x88F5,0x88F7,0x8901,0x8906,0x890D,0x890E, + 0x890F,0x8915,0x8916,0x8918,0x8919,0x891A,0x891C,0x8920, + 0x8926,0x8927,0x8928,0x8930,0x8931,0x8932,0x8935,0x8939, + 0x893A,0x893E,0x8940,0x8942,0x8945,0x8946,0x8949,0x894F, + 0x8952,0x8957,0x895A,0x895B,0x895C,0x8961,0x8962,0x8963, + 0x896B,0x896E,0x8970,0x8973,0x8975,0x897A, + + /* ku 61 */ + 0x897B,0x897C,0x897D,0x8989,0x898D,0x8990,0x8994,0x8995, + 0x899B,0x899C,0x899F,0x89A0,0x89A5,0x89B0,0x89B4,0x89B5, + 0x89B6,0x89B7,0x89BC,0x89D4,0x89D5,0x89D6,0x89D7,0x89D8, + 0x89E5,0x89E9,0x89EB,0x89ED,0x89F1,0x89F3,0x89F6,0x89F9, + 0x89FD,0x89FF,0x8A04,0x8A05,0x8A07,0x8A0F,0x8A11,0x8A12, + 0x8A14,0x8A15,0x8A1E,0x8A20,0x8A22,0x8A24,0x8A26,0x8A2B, + 0x8A2C,0x8A2F,0x8A35,0x8A37,0x8A3D,0x8A3E,0x8A40,0x8A43, + 0x8A45,0x8A47,0x8A49,0x8A4D,0x8A4E,0x8A53,0x8A56,0x8A57, + 0x8A58,0x8A5C,0x8A5D,0x8A61,0x8A65,0x8A67,0x8A75,0x8A76, + 0x8A77,0x8A79,0x8A7A,0x8A7B,0x8A7E,0x8A7F,0x8A80,0x8A83, + 0x8A86,0x8A8B,0x8A8F,0x8A90,0x8A92,0x8A96,0x8A97,0x8A99, + 0x8A9F,0x8AA7,0x8AA9,0x8AAE,0x8AAF,0x8AB3, + + /* ku 62 */ + 0x8AB6,0x8AB7,0x8ABB,0x8ABE,0x8AC3,0x8AC6,0x8AC8,0x8AC9, + 0x8ACA,0x8AD1,0x8AD3,0x8AD4,0x8AD5,0x8AD7,0x8ADD,0x8ADF, + 0x8AEC,0x8AF0,0x8AF4,0x8AF5,0x8AF6,0x8AFC,0x8AFF,0x8B05, + 0x8B06,0x8B0B,0x8B11,0x8B1C,0x8B1E,0x8B1F,0x8B0A,0x8B2D, + 0x8B30,0x8B37,0x8B3C,0x8B42,0x8B43,0x8B44,0x8B45,0x8B46, + 0x8B48,0x8B52,0x8B53,0x8B54,0x8B59,0x8B4D,0x8B5E,0x8B63, + 0x8B6D,0x8B76,0x8B78,0x8B79,0x8B7C,0x8B7E,0x8B81,0x8B84, + 0x8B85,0x8B8B,0x8B8D,0x8B8F,0x8B94,0x8B95,0x8B9C,0x8B9E, + 0x8B9F,0x8C38,0x8C39,0x8C3D,0x8C3E,0x8C45,0x8C47,0x8C49, + 0x8C4B,0x8C4F,0x8C51,0x8C53,0x8C54,0x8C57,0x8C58,0x8C5B, + 0x8C5D,0x8C59,0x8C63,0x8C64,0x8C66,0x8C68,0x8C69,0x8C6D, + 0x8C73,0x8C75,0x8C76,0x8C7B,0x8C7E,0x8C86, + + /* ku 63 */ + 0x8C87,0x8C8B,0x8C90,0x8C92,0x8C93,0x8C99,0x8C9B,0x8C9C, + 0x8CA4,0x8CB9,0x8CBA,0x8CC5,0x8CC6,0x8CC9,0x8CCB,0x8CCF, + 0x8CD6,0x8CD5,0x8CD9,0x8CDD,0x8CE1,0x8CE8,0x8CEC,0x8CEF, + 0x8CF0,0x8CF2,0x8CF5,0x8CF7,0x8CF8,0x8CFE,0x8CFF,0x8D01, + 0x8D03,0x8D09,0x8D12,0x8D17,0x8D1B,0x8D65,0x8D69,0x8D6C, + 0x8D6E,0x8D7F,0x8D82,0x8D84,0x8D88,0x8D8D,0x8D90,0x8D91, + 0x8D95,0x8D9E,0x8D9F,0x8DA0,0x8DA6,0x8DAB,0x8DAC,0x8DAF, + 0x8DB2,0x8DB5,0x8DB7,0x8DB9,0x8DBB,0x8DC0,0x8DC5,0x8DC6, + 0x8DC7,0x8DC8,0x8DCA,0x8DCE,0x8DD1,0x8DD4,0x8DD5,0x8DD7, + 0x8DD9,0x8DE4,0x8DE5,0x8DE7,0x8DEC,0x8DF0,0x8DBC,0x8DF1, + 0x8DF2,0x8DF4,0x8DFD,0x8E01,0x8E04,0x8E05,0x8E06,0x8E0B, + 0x8E11,0x8E14,0x8E16,0x8E20,0x8E21,0x8E22, + + /* ku 64 */ + 0x8E23,0x8E26,0x8E27,0x8E31,0x8E33,0x8E36,0x8E37,0x8E38, + 0x8E39,0x8E3D,0x8E40,0x8E41,0x8E4B,0x8E4D,0x8E4E,0x8E4F, + 0x8E54,0x8E5B,0x8E5C,0x8E5D,0x8E5E,0x8E61,0x8E62,0x8E69, + 0x8E6C,0x8E6D,0x8E6F,0x8E70,0x8E71,0x8E79,0x8E7A,0x8E7B, + 0x8E82,0x8E83,0x8E89,0x8E90,0x8E92,0x8E95,0x8E9A,0x8E9B, + 0x8E9D,0x8E9E,0x8EA2,0x8EA7,0x8EA9,0x8EAD,0x8EAE,0x8EB3, + 0x8EB5,0x8EBA,0x8EBB,0x8EC0,0x8EC1,0x8EC3,0x8EC4,0x8EC7, + 0x8ECF,0x8ED1,0x8ED4,0x8EDC,0x8EE8,0x8EEE,0x8EF0,0x8EF1, + 0x8EF7,0x8EF9,0x8EFA,0x8EED,0x8F00,0x8F02,0x8F07,0x8F08, + 0x8F0F,0x8F10,0x8F16,0x8F17,0x8F18,0x8F1E,0x8F20,0x8F21, + 0x8F23,0x8F25,0x8F27,0x8F28,0x8F2C,0x8F2D,0x8F2E,0x8F34, + 0x8F35,0x8F36,0x8F37,0x8F3A,0x8F40,0x8F41, + + /* ku 65 */ + 0x8F43,0x8F47,0x8F4F,0x8F51,0x8F52,0x8F53,0x8F54,0x8F55, + 0x8F58,0x8F5D,0x8F5E,0x8F65,0x8F9D,0x8FA0,0x8FA1,0x8FA4, + 0x8FA5,0x8FA6,0x8FB5,0x8FB6,0x8FB8,0x8FBE,0x8FC0,0x8FC1, + 0x8FC6,0x8FCA,0x8FCB,0x8FCD,0x8FD0,0x8FD2,0x8FD3,0x8FD5, + 0x8FE0,0x8FE3,0x8FE4,0x8FE8,0x8FEE,0x8FF1,0x8FF5,0x8FF6, + 0x8FFB,0x8FFE,0x9002,0x9004,0x9008,0x900C,0x9018,0x901B, + 0x9028,0x9029,0x902F,0x902A,0x902C,0x902D,0x9033,0x9034, + 0x9037,0x903F,0x9043,0x9044,0x904C,0x905B,0x905D,0x9062, + 0x9066,0x9067,0x906C,0x9070,0x9074,0x9079,0x9085,0x9088, + 0x908B,0x908C,0x908E,0x9090,0x9095,0x9097,0x9098,0x9099, + 0x909B,0x90A0,0x90A1,0x90A2,0x90A5,0x90B0,0x90B2,0x90B3, + 0x90B4,0x90B6,0x90BD,0x90CC,0x90BE,0x90C3, + + /* ku 66 */ + 0x90C4,0x90C5,0x90C7,0x90C8,0x90D5,0x90D7,0x90D8,0x90D9, + 0x90DC,0x90DD,0x90DF,0x90E5,0x90D2,0x90F6,0x90EB,0x90EF, + 0x90F0,0x90F4,0x90FE,0x90FF,0x9100,0x9104,0x9105,0x9106, + 0x9108,0x910D,0x9110,0x9114,0x9116,0x9117,0x9118,0x911A, + 0x911C,0x911E,0x9120,0x9125,0x9122,0x9123,0x9127,0x9129, + 0x912E,0x912F,0x9131,0x9134,0x9136,0x9137,0x9139,0x913A, + 0x913C,0x913D,0x9143,0x9147,0x9148,0x914F,0x9153,0x9157, + 0x9159,0x915A,0x915B,0x9161,0x9164,0x9167,0x916D,0x9174, + 0x9179,0x917A,0x917B,0x9181,0x9183,0x9185,0x9186,0x918A, + 0x918E,0x9191,0x9193,0x9194,0x9195,0x9198,0x919E,0x91A1, + 0x91A6,0x91A8,0x91AC,0x91AD,0x91AE,0x91B0,0x91B1,0x91B2, + 0x91B3,0x91B6,0x91BB,0x91BC,0x91BD,0x91BF, + + /* ku 67 */ + 0x91C2,0x91C3,0x91C5,0x91D3,0x91D4,0x91D7,0x91D9,0x91DA, + 0x91DE,0x91E4,0x91E5,0x91E9,0x91EA,0x91EC,0x91ED,0x91EE, + 0x91EF,0x91F0,0x91F1,0x91F7,0x91F9,0x91FB,0x91FD,0x9200, + 0x9201,0x9204,0x9205,0x9206,0x9207,0x9209,0x920A,0x920C, + 0x9210,0x9212,0x9213,0x9216,0x9218,0x921C,0x921D,0x9223, + 0x9224,0x9225,0x9226,0x9228,0x922E,0x922F,0x9230,0x9233, + 0x9235,0x9236,0x9238,0x9239,0x923A,0x923C,0x923E,0x9240, + 0x9242,0x9243,0x9246,0x9247,0x924A,0x924D,0x924E,0x924F, + 0x9251,0x9258,0x9259,0x925C,0x925D,0x9260,0x9261,0x9265, + 0x9267,0x9268,0x9269,0x926E,0x926F,0x9270,0x9275,0x9276, + 0x9277,0x9278,0x9279,0x927B,0x927C,0x927D,0x927F,0x9288, + 0x9289,0x928A,0x928D,0x928E,0x9292,0x9297, + + /* ku 68 */ + 0x9299,0x929F,0x92A0,0x92A4,0x92A5,0x92A7,0x92A8,0x92AB, + 0x92AF,0x92B2,0x92B6,0x92B8,0x92BA,0x92BB,0x92BC,0x92BD, + 0x92BF,0x92C0,0x92C1,0x92C2,0x92C3,0x92C5,0x92C6,0x92C7, + 0x92C8,0x92CB,0x92CC,0x92CD,0x92CE,0x92D0,0x92D3,0x92D5, + 0x92D7,0x92D8,0x92D9,0x92DC,0x92DD,0x92DF,0x92E0,0x92E1, + 0x92E3,0x92E5,0x92E7,0x92E8,0x92EC,0x92EE,0x92F0,0x92F9, + 0x92FB,0x92FF,0x9300,0x9302,0x9308,0x930D,0x9311,0x9314, + 0x9315,0x931C,0x931D,0x931E,0x931F,0x9321,0x9324,0x9325, + 0x9327,0x9329,0x932A,0x9333,0x9334,0x9336,0x9337,0x9347, + 0x9348,0x9349,0x9350,0x9351,0x9352,0x9355,0x9357,0x9358, + 0x935A,0x935E,0x9364,0x9365,0x9367,0x9369,0x936A,0x936D, + 0x936F,0x9370,0x9371,0x9373,0x9374,0x9376, + + /* ku 69 */ + 0x937A,0x937D,0x937F,0x9380,0x9381,0x9382,0x9388,0x938A, + 0x938B,0x938D,0x938F,0x9392,0x9395,0x9398,0x939B,0x939E, + 0x93A1,0x93A3,0x93A4,0x93A6,0x93A8,0x93AB,0x93B4,0x93B5, + 0x93B6,0x93BA,0x93A9,0x93C1,0x93C4,0x93C5,0x93C6,0x93C7, + 0x93C9,0x93CA,0x93CB,0x93CC,0x93CD,0x93D3,0x93D9,0x93DC, + 0x93DE,0x93DF,0x93E2,0x93E6,0x93E7,0x93F9,0x93F7,0x93F8, + 0x93FA,0x93FB,0x93FD,0x9401,0x9402,0x9404,0x9408,0x9409, + 0x940D,0x940E,0x940F,0x9415,0x9416,0x9417,0x941F,0x942E, + 0x942F,0x9431,0x9432,0x9433,0x9434,0x943B,0x943F,0x943D, + 0x9443,0x9445,0x9448,0x944A,0x944C,0x9455,0x9459,0x945C, + 0x945F,0x9461,0x9463,0x9468,0x946B,0x946D,0x946E,0x946F, + 0x9471,0x9472,0x9484,0x9483,0x9578,0x9579, + + /* ku 70 */ + 0x957E,0x9584,0x9588,0x958C,0x958D,0x958E,0x959D,0x959E, + 0x959F,0x95A1,0x95A6,0x95A9,0x95AB,0x95AC,0x95B4,0x95B6, + 0x95BA,0x95BD,0x95BF,0x95C6,0x95C8,0x95C9,0x95CB,0x95D0, + 0x95D1,0x95D2,0x95D3,0x95D9,0x95DA,0x95DD,0x95DE,0x95DF, + 0x95E0,0x95E4,0x95E6,0x961D,0x961E,0x9622,0x9624,0x9625, + 0x9626,0x962C,0x9631,0x9633,0x9637,0x9638,0x9639,0x963A, + 0x963C,0x963D,0x9641,0x9652,0x9654,0x9656,0x9657,0x9658, + 0x9661,0x966E,0x9674,0x967B,0x967C,0x967E,0x967F,0x9681, + 0x9682,0x9683,0x9684,0x9689,0x9691,0x9696,0x969A,0x969D, + 0x969F,0x96A4,0x96A5,0x96A6,0x96A9,0x96AE,0x96AF,0x96B3, + 0x96BA,0x96CA,0x96D2,0x5DB2,0x96D8,0x96DA,0x96DD,0x96DE, + 0x96DF,0x96E9,0x96EF,0x96F1,0x96FA,0x9702, + + /* ku 71 */ + 0x9703,0x9705,0x9709,0x971A,0x971B,0x971D,0x9721,0x9722, + 0x9723,0x9728,0x9731,0x9733,0x9741,0x9743,0x974A,0x974E, + 0x974F,0x9755,0x9757,0x9758,0x975A,0x975B,0x9763,0x9767, + 0x976A,0x976E,0x9773,0x9776,0x9777,0x9778,0x977B,0x977D, + 0x977F,0x9780,0x9789,0x9795,0x9796,0x9797,0x9799,0x979A, + 0x979E,0x979F,0x97A2,0x97AC,0x97AE,0x97B1,0x97B2,0x97B5, + 0x97B6,0x97B8,0x97B9,0x97BA,0x97BC,0x97BE,0x97BF,0x97C1, + 0x97C4,0x97C5,0x97C7,0x97C9,0x97CA,0x97CC,0x97CD,0x97CE, + 0x97D0,0x97D1,0x97D4,0x97D7,0x97D8,0x97D9,0x97DD,0x97DE, + 0x97E0,0x97DB,0x97E1,0x97E4,0x97EF,0x97F1,0x97F4,0x97F7, + 0x97F8,0x97FA,0x9807,0x980A,0x9819,0x980D,0x980E,0x9814, + 0x9816,0x981C,0x981E,0x9820,0x9823,0x9826, + + /* ku 72 */ + 0x982B,0x982E,0x982F,0x9830,0x9832,0x9833,0x9835,0x9825, + 0x983E,0x9844,0x9847,0x984A,0x9851,0x9852,0x9853,0x9856, + 0x9857,0x9859,0x985A,0x9862,0x9863,0x9865,0x9866,0x986A, + 0x986C,0x98AB,0x98AD,0x98AE,0x98B0,0x98B4,0x98B7,0x98B8, + 0x98BA,0x98BB,0x98BF,0x98C2,0x98C5,0x98C8,0x98CC,0x98E1, + 0x98E3,0x98E5,0x98E6,0x98E7,0x98EA,0x98F3,0x98F6,0x9902, + 0x9907,0x9908,0x9911,0x9915,0x9916,0x9917,0x991A,0x991B, + 0x991C,0x991F,0x9922,0x9926,0x9927,0x992B,0x9931,0x9932, + 0x9933,0x9934,0x9935,0x9939,0x993A,0x993B,0x993C,0x9940, + 0x9941,0x9946,0x9947,0x9948,0x994D,0x994E,0x9954,0x9958, + 0x9959,0x995B,0x995C,0x995E,0x995F,0x9960,0x999B,0x999D, + 0x999F,0x99A6,0x99B0,0x99B1,0x99B2,0x99B5, + + /* ku 73 */ + 0x99B9,0x99BA,0x99BD,0x99BF,0x99C3,0x99C9,0x99D3,0x99D4, + 0x99D9,0x99DA,0x99DC,0x99DE,0x99E7,0x99EA,0x99EB,0x99EC, + 0x99F0,0x99F4,0x99F5,0x99F9,0x99FD,0x99FE,0x9A02,0x9A03, + 0x9A04,0x9A0B,0x9A0C,0x9A10,0x9A11,0x9A16,0x9A1E,0x9A20, + 0x9A22,0x9A23,0x9A24,0x9A27,0x9A2D,0x9A2E,0x9A33,0x9A35, + 0x9A36,0x9A38,0x9A47,0x9A41,0x9A44,0x9A4A,0x9A4B,0x9A4C, + 0x9A4E,0x9A51,0x9A54,0x9A56,0x9A5D,0x9AAA,0x9AAC,0x9AAE, + 0x9AAF,0x9AB2,0x9AB4,0x9AB5,0x9AB6,0x9AB9,0x9ABB,0x9ABE, + 0x9ABF,0x9AC1,0x9AC3,0x9AC6,0x9AC8,0x9ACE,0x9AD0,0x9AD2, + 0x9AD5,0x9AD6,0x9AD7,0x9ADB,0x9ADC,0x9AE0,0x9AE4,0x9AE5, + 0x9AE7,0x9AE9,0x9AEC,0x9AF2,0x9AF3,0x9AF5,0x9AF9,0x9AFA, + 0x9AFD,0x9AFF,0x9B00,0x9B01,0x9B02,0x9B03, + + /* ku 74 */ + 0x9B04,0x9B05,0x9B08,0x9B09,0x9B0B,0x9B0C,0x9B0D,0x9B0E, + 0x9B10,0x9B12,0x9B16,0x9B19,0x9B1B,0x9B1C,0x9B20,0x9B26, + 0x9B2B,0x9B2D,0x9B33,0x9B34,0x9B35,0x9B37,0x9B39,0x9B3A, + 0x9B3D,0x9B48,0x9B4B,0x9B4C,0x9B55,0x9B56,0x9B57,0x9B5B, + 0x9B5E,0x9B61,0x9B63,0x9B65,0x9B66,0x9B68,0x9B6A,0x9B6B, + 0x9B6C,0x9B6D,0x9B6E,0x9B73,0x9B75,0x9B77,0x9B78,0x9B79, + 0x9B7F,0x9B80,0x9B84,0x9B85,0x9B86,0x9B87,0x9B89,0x9B8A, + 0x9B8B,0x9B8D,0x9B8F,0x9B90,0x9B94,0x9B9A,0x9B9D,0x9B9E, + 0x9BA6,0x9BA7,0x9BA9,0x9BAC,0x9BB0,0x9BB1,0x9BB2,0x9BB7, + 0x9BB8,0x9BBB,0x9BBC,0x9BBE,0x9BBF,0x9BC1,0x9BC7,0x9BC8, + 0x9BCE,0x9BD0,0x9BD7,0x9BD8,0x9BDD,0x9BDF,0x9BE5,0x9BE7, + 0x9BEA,0x9BEB,0x9BEF,0x9BF3,0x9BF7,0x9BF8, + + /* ku 75 */ + 0x9BF9,0x9BFA,0x9BFD,0x9BFF,0x9C00,0x9C02,0x9C0B,0x9C0F, + 0x9C11,0x9C16,0x9C18,0x9C19,0x9C1A,0x9C1C,0x9C1E,0x9C22, + 0x9C23,0x9C26,0x9C27,0x9C28,0x9C29,0x9C2A,0x9C31,0x9C35, + 0x9C36,0x9C37,0x9C3D,0x9C41,0x9C43,0x9C44,0x9C45,0x9C49, + 0x9C4A,0x9C4E,0x9C4F,0x9C50,0x9C53,0x9C54,0x9C56,0x9C58, + 0x9C5B,0x9C5D,0x9C5E,0x9C5F,0x9C63,0x9C69,0x9C6A,0x9C5C, + 0x9C6B,0x9C68,0x9C6E,0x9C70,0x9C72,0x9C75,0x9C77,0x9C7B, + 0x9CE6,0x9CF2,0x9CF7,0x9CF9,0x9D0B,0x9D02,0x9D11,0x9D17, + 0x9D18,0x9D1C,0x9D1D,0x9D1E,0x9D2F,0x9D30,0x9D32,0x9D33, + 0x9D34,0x9D3A,0x9D3C,0x9D45,0x9D3D,0x9D42,0x9D43,0x9D47, + 0x9D4A,0x9D53,0x9D54,0x9D5F,0x9D63,0x9D62,0x9D65,0x9D69, + 0x9D6A,0x9D6B,0x9D70,0x9D76,0x9D77,0x9D7B, + + /* ku 76 */ + 0x9D7C,0x9D7E,0x9D83,0x9D84,0x9D86,0x9D8A,0x9D8D,0x9D8E, + 0x9D92,0x9D93,0x9D95,0x9D96,0x9D97,0x9D98,0x9DA1,0x9DAA, + 0x9DAC,0x9DAE,0x9DB1,0x9DB5,0x9DB9,0x9DBC,0x9DBF,0x9DC3, + 0x9DC7,0x9DC9,0x9DCA,0x9DD4,0x9DD5,0x9DD6,0x9DD7,0x9DDA, + 0x9DDE,0x9DDF,0x9DE0,0x9DE5,0x9DE7,0x9DE9,0x9DEB,0x9DEE, + 0x9DF0,0x9DF3,0x9DF4,0x9DFE,0x9E0A,0x9E02,0x9E07,0x9E0E, + 0x9E10,0x9E11,0x9E12,0x9E15,0x9E16,0x9E19,0x9E1C,0x9E1D, + 0x9E7A,0x9E7B,0x9E7C,0x9E80,0x9E82,0x9E83,0x9E84,0x9E85, + 0x9E87,0x9E8E,0x9E8F,0x9E96,0x9E98,0x9E9B,0x9E9E,0x9EA4, + 0x9EA8,0x9EAC,0x9EAE,0x9EAF,0x9EB0,0x9EB3,0x9EB4,0x9EB5, + 0x9EC6,0x9EC8,0x9ECB,0x9ED5,0x9EDF,0x9EE4,0x9EE7,0x9EEC, + 0x9EED,0x9EEE,0x9EF0,0x9EF1,0x9EF2,0x9EF5, + + /* ku 77 */ + 0x9EF8,0x9EFF,0x9F02,0x9F03,0x9F09,0x9F0F,0x9F10,0x9F11, + 0x9F12,0x9F14,0x9F16,0x9F17,0x9F19,0x9F1A,0x9F1B,0x9F1F, + 0x9F22,0x9F26,0x9F2A,0x9F2B,0x9F2F,0x9F31,0x9F32,0x9F34, + 0x9F37,0x9F39,0x9F3A,0x9F3C,0x9F3D,0x9F3F,0x9F41,0x9F43, + 0x9F44,0x9F45,0x9F46,0x9F47,0x9F53,0x9F55,0x9F56,0x9F57, + 0x9F58,0x9F5A,0x9F5D,0x9F5E,0x9F68,0x9F69,0x9F6D,0x9F6E, + 0x9F6F,0x9F70,0x9F71,0x9F73,0x9F75,0x9F7A,0x9F7D,0x9F8F, + 0x9F90,0x9F91,0x9F92,0x9F94,0x9F96,0x9F97,0x9F9E,0x9FA1, + 0x9FA2,0x9FA3,0x9FA5 +}; + +const int jisx0212_ucs_table_size = (sizeof (jisx0212_ucs_table) / sizeof (unsigned short)); + +const unsigned short ucs_a1_jis_table[] = { + /* 0000h */ + 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, + 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, + 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, + 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, + 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, + 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, + 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, + 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, + 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, + 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, + 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, + 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, + 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, + 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, + 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, + 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0xA2C2,0x2171,0x2172,0xA2F0,0x0000,0xA2C3,0x2178, + 0x212F,0xA2ED,0xA2EC,0x0000,0x224C,0x0000,0xA2EE,0xA2B4, + 0x216B,0x215E,0x0000,0x0000,0x212D,0x0000,0x2279,0x0000, + 0xA2B1,0x0000,0xA2EB,0x0000,0x0000,0x0000,0x0000,0xA2C4, + 0xAAA2,0xAAA1,0xAAA4,0xAAAA,0xAAA3,0xAAA9,0xA9A1,0xAAAE, + 0xAAB2,0xAAB1,0xAAB4,0xAAB3,0xAAC0,0xAABF,0xAAC2,0xAAC1, + 0x0000,0xAAD0,0xAAD2,0xAAD1,0xAAD4,0xAAD8,0xAAD3,0x215F, + 0xA9AC,0xAAE3,0xAAE2,0xAAE5,0xAAE4,0xAAF2,0xA9B0,0xA9CE, + 0xABA2,0xABA1,0xABA4,0xABAA,0xABA3,0xABA9,0xA9C1,0xABAE, + 0xABB2,0xABB1,0xABB4,0xABB3,0xABC0,0xABBF,0xABC2,0xABC1, + 0xA9C3,0xABD0,0xABD2,0xABD1,0xABD4,0xABD8,0xABD3,0x2160, + 0xA9CC,0xABE3,0xABE2,0xABE5,0xABE4,0xABF2,0xA9D0,0xABF3, + + /* 0100h */ + 0xAAA7,0xABA7,0xAAA5,0xABA5,0xAAA8,0xABA8,0xAAAB,0xABAB, + 0xAAAC,0xABAC,0xAAAF,0xABAF,0xAAAD,0xABAD,0xAAB0,0xABB0, + 0xA9A2,0xA9C2,0xAAB7,0xABB7,0x0000,0x0000,0xAAB6,0xABB6, + 0xAAB8,0xABB8,0xAAB5,0xABB5,0xAABA,0xABBA,0xAABB,0xABBB, + 0xAABD,0xABBD,0xAABC,0x0000,0xAABE,0xABBE,0xA9A4,0xA9C4, + 0xAAC7,0xABC7,0xAAC5,0xABC5,0x0000,0x0000,0xAAC6,0xABC6, + 0xAAC4,0xA9C5,0xA9A6,0xA9C6,0xAAC8,0xABC8,0xAAC9,0xABC9, + 0xA9C7,0xAACA,0xABCA,0xAACC,0xABCC,0xAACB,0xABCB,0xA9A9, + 0xA9C9,0xA9A8,0xA9C8,0xAACD,0xABCD,0xAACF,0xABCF,0xAACE, + 0xABCE,0xA9CA,0xA9AB,0xA9CB,0xAAD7,0xABD7,0x0000,0x0000, + 0xAAD6,0xABD6,0xA9AD,0xA9CD,0xAAD9,0xABD9,0xAADB,0xABDB, + 0xAADA,0xABDA,0xAADC,0xABDC,0xAADD,0xABDD,0xAADF,0xABDF, + 0xAADE,0xABDE,0xAAE1,0xABE1,0xAAE0,0xABE0,0xA9AF,0xA9CF, + 0xAAEC,0xABEC,0xAAE9,0xABE9,0xAAE6,0xABE6,0xAAEB,0xABEB, + 0xAAE8,0xABE8,0xAAEA,0xABEA,0xAAF1,0xABF1,0xAAF4,0xABF4, + 0xAAF3,0xAAF5,0xABF5,0xAAF7,0xABF7,0xAAF6,0xABF6,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0xAAA6,0xABA6,0xAAC3, + 0xABC3,0xAAD5,0xABD5,0xAAE7,0xABE7,0xAAF0,0xABF0,0xAAED, + 0xABED,0xAAEF,0xABEF,0xAAEE,0xABEE,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0xABB9,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* 0200h */ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xA2B0, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xA2AF,0xA2B2,0xA2B6,0xA2B5,0x0000,0xA2B3,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* 0300h */ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0xA2B8,0xA2B9,0xA6E1,0x0000, + 0xA6E2,0xA6E3,0xA6E4,0x0000,0xA6E7,0x0000,0xA6E9,0xA6EC, + 0xA6F6,0x2621,0x2622,0x2623,0x2624,0x2625,0x2626,0x2627, + 0x2628,0x2629,0x262A,0x262B,0x262C,0x262D,0x262E,0x262F, + 0x2630,0x2631,0x0000,0x2632,0x2633,0x2634,0x2635,0x2636, + 0x2637,0x2638,0xA6E5,0xA6EA,0xA6F1,0xA6F2,0xA6F3,0xA6F4, + 0xA6FB,0x2641,0x2642,0x2643,0x2644,0x2645,0x2646,0x2647, + 0x2648,0x2649,0x264A,0x264B,0x264C,0x264D,0x264E,0x264F, + 0x2650,0x2651,0xA6F8,0x2652,0x2653,0x2654,0x2655,0x2656, + 0x2657,0x2658,0xA6F5,0xA6FA,0xA6F7,0xA6F9,0xA6FC,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* 0400h */ + 0x0000,0x2727,0xA7C2,0xA7C3,0xA7C4,0xA7C5,0xA7C6,0xA7C7, + 0xA7C8,0xA7C9,0xA7CA,0xA7CB,0xA7CC,0x0000,0xA7CD,0xA7CE, + 0x2721,0x2722,0x2723,0x2724,0x2725,0x2726,0x2728,0x2729, + 0x272A,0x272B,0x272C,0x272D,0x272E,0x272F,0x2730,0x2731, + 0x2732,0x2733,0x2734,0x2735,0x2736,0x2737,0x2738,0x2739, + 0x273A,0x273B,0x273C,0x273D,0x273E,0x273F,0x2740,0x2741, + 0x2751,0x2752,0x2753,0x2754,0x2755,0x2756,0x2758,0x2759, + 0x275A,0x275B,0x275C,0x275D,0x275E,0x275F,0x2760,0x2761, + 0x2762,0x2763,0x2764,0x2765,0x2766,0x2767,0x2768,0x2769, + 0x276A,0x276B,0x276C,0x276D,0x276E,0x276F,0x2770,0x2771, + 0x0000,0x2757,0xA7F2,0xA7F3,0xA7F4,0xA7F5,0xA7F6,0xA7F7, + 0xA7F8,0xA7F9,0xA7FA,0xA7FB,0xA7FC,0x0000,0xA7FD,0xA7FE +}; +const int ucs_a1_jis_table_min = 0x0000; +const int ucs_a1_jis_table_max = 0x0000 + (sizeof (ucs_a1_jis_table) / sizeof (unsigned short)); + + +const unsigned short ucs_a2_jis_table[] = { + /* 2000h */ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x213E,0x0000,0x0000,0x0000,0x0000,0x213D,0x2142,0x0000, + 0x2146,0x2147,0x0000,0x0000,0x2148,0x2149,0x0000,0x0000, + 0x2277,0x2278,0x0000,0x0000,0x0000,0x2145,0x2144,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x2273,0x0000,0x216C,0x216D,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x2228,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* 2100h */ + 0x0000,0x0000,0x0000,0x216E,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xA2F1,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0xA2EF,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x2272,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x222B,0x222C,0x222A,0x222D,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x224D,0x0000,0x224E,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* 2200h */ + 0x224F,0x0000,0x225F,0x2250,0x0000,0x0000,0x0000,0x2260, + 0x223A,0x0000,0x0000,0x223B,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x215D,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x2265,0x0000,0x0000,0x2267,0x2167,0x0000, + 0x225C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x224A, + 0x224B,0x2241,0x2240,0x2269,0x226A,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x2168,0x2268,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x2266,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x2262,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x2162,0x2261,0x0000,0x0000,0x0000,0x0000,0x2165,0x2166, + 0x0000,0x0000,0x2263,0x2264,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x223E,0x223F,0x0000,0x0000,0x223C,0x223D, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x225D,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* 2300h */ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x225E,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* 2400h */ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* 2500h */ + 0x2821,0x282C,0x2822,0x282D,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x2823,0x0000,0x0000,0x282E, + 0x2824,0x0000,0x0000,0x282F,0x2826,0x0000,0x0000,0x2831, + 0x2825,0x0000,0x0000,0x2830,0x2827,0x283C,0x0000,0x0000, + 0x2837,0x0000,0x0000,0x2832,0x2829,0x283E,0x0000,0x0000, + 0x2839,0x0000,0x0000,0x2834,0x2828,0x0000,0x0000,0x2838, + 0x283D,0x0000,0x0000,0x2833,0x282A,0x0000,0x0000,0x283A, + 0x283F,0x0000,0x0000,0x2835,0x282B,0x0000,0x0000,0x283B, + 0x0000,0x0000,0x2840,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x2836,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x2223,0x2222,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x2225,0x2224,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x2227,0x2226,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x2221,0x217E, + 0x0000,0x0000,0x0000,0x217B,0x0000,0x0000,0x217D,0x217C, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x227E, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* 2600h */ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x217A,0x2179,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x216A,0x0000,0x2169,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x2276,0x0000,0x0000,0x2275,0x0000,0x2274, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* 2700h */ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* 2800h */ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* 2900h */ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* 2A00h */ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* 2B00h */ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* 2C00h */ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* 2D00h */ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* 2E00h */ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* 2F00h */ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* 3000h */ + 0x2121,0x2122,0x2123,0x2137,0x0000,0x2139,0x213A,0x213B, + 0x2152,0x2153,0x2154,0x2155,0x2156,0x2157,0x2158,0x2159, + 0x215A,0x215B,0x2229,0x222E,0x214C,0x214D,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x2141,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x2421,0x2422,0x2423,0x2424,0x2425,0x2426,0x2427, + 0x2428,0x2429,0x242A,0x242B,0x242C,0x242D,0x242E,0x242F, + 0x2430,0x2431,0x2432,0x2433,0x2434,0x2435,0x2436,0x2437, + 0x2438,0x2439,0x243A,0x243B,0x243C,0x243D,0x243E,0x243F, + 0x2440,0x2441,0x2442,0x2443,0x2444,0x2445,0x2446,0x2447, + 0x2448,0x2449,0x244A,0x244B,0x244C,0x244D,0x244E,0x244F, + 0x2450,0x2451,0x2452,0x2453,0x2454,0x2455,0x2456,0x2457, + 0x2458,0x2459,0x245A,0x245B,0x245C,0x245D,0x245E,0x245F, + 0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467, + 0x2468,0x2469,0x246A,0x246B,0x246C,0x246D,0x246E,0x246F, + 0x2470,0x2471,0x2472,0x2473,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x212B,0x212C,0x2135,0x2136,0x0000, + 0x0000,0x2521,0x2522,0x2523,0x2524,0x2525,0x2526,0x2527, + 0x2528,0x2529,0x252A,0x252B,0x252C,0x252D,0x252E,0x252F, + 0x2530,0x2531,0x2532,0x2533,0x2534,0x2535,0x2536,0x2537, + 0x2538,0x2539,0x253A,0x253B,0x253C,0x253D,0x253E,0x253F, + 0x2540,0x2541,0x2542,0x2543,0x2544,0x2545,0x2546,0x2547, + 0x2548,0x2549,0x254A,0x254B,0x254C,0x254D,0x254E,0x254F, + 0x2550,0x2551,0x2552,0x2553,0x2554,0x2555,0x2556,0x2557, + 0x2558,0x2559,0x255A,0x255B,0x255C,0x255D,0x255E,0x255F, + 0x2560,0x2561,0x2562,0x2563,0x2564,0x2565,0x2566,0x2567, + 0x2568,0x2569,0x256A,0x256B,0x256C,0x256D,0x256E,0x256F, + 0x2570,0x2571,0x2572,0x2573,0x2574,0x2575,0x2576,0x0000, + 0x0000,0x0000,0x0000,0x2126,0x213C,0x2133,0x2134,0x0000 +}; +const int ucs_a2_jis_table_min = 0x2000; +const int ucs_a2_jis_table_max = 0x2000 + (sizeof (ucs_a2_jis_table) / sizeof (unsigned short)); + + +const unsigned short ucs_i_jis_table[] = { + /* 4E00h */ + 0x306C,0x437A,0xB0A1,0x3C37,0xB0A2,0xB0A3,0x0000,0x4B7C, + 0x3E66,0x3B30,0x3E65,0x323C,0xB0A4,0x4954,0x4D3F,0x0000, + 0x5022,0x312F,0xB0A5,0x0000,0x336E,0x5023,0x4024,0x5242, + 0x3556,0x4A3A,0x0000,0x0000,0x0000,0x0000,0x3E67,0xB0A6, + 0x0000,0x4E3E,0x0000,0xB0A7,0xB0A8,0x0000,0x4A42,0x0000, + 0xB0A9,0x0000,0x5024,0xB0AA,0x0000,0x4366,0xB0AB,0xB0AC, + 0xB0AD,0x5025,0x367A,0x0000,0x0000,0xB0AE,0x5026,0x0000, + 0x345D,0x4330,0x0000,0x3C67,0x5027,0x0000,0x0000,0x5028, + 0xB0AF,0xB0B0,0x5029,0x4735,0xB0B1,0x3557,0x0000,0xB0B2, + 0x0000,0x0000,0x0000,0x4737,0x0000,0x4663,0x3843,0x4B33, + 0x0000,0xB0B3,0x0000,0x0000,0x0000,0x6949,0x502A,0x3E68, + 0x502B,0x3235,0xB0B4,0x0000,0xB0B5,0x3665,0x3870,0x4C69, + 0x0000,0x0000,0x5626,0xB0B6,0x0000,0x0000,0x0000,0x0000, + 0xB0B7,0xB0B8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x4D70,0x0000,0x467D,0xB0B9,0xB0BA,0x0000,0x0000, + 0x0000,0xB0BB,0x0000,0x0000,0x0000,0x0000,0x3425,0xB0BC, + 0x3535,0x0000,0x502C,0x0000,0x0000,0x502D,0x4E3B,0x0000, + 0x4D3D,0x4168,0x502F,0x3B76,0x4673,0xB0BD,0x5032,0x0000, + 0x0000,0x313E,0x385F,0x0000,0x385E,0x3066,0xB0BE,0xB0BF, + 0x4F4B,0x4F4A,0x0000,0x3A33,0x3021,0xB0C0,0x5033,0x5034, + 0x5035,0x4B34,0x5036,0x0000,0x3872,0x3067,0x4B72,0x0000, + 0x357C,0x0000,0x0000,0x357D,0x357E,0x4462,0x4E3C,0xB0C1, + 0x5037,0x0000,0x0000,0x5038,0x0000,0x0000,0x5039,0x0000, + 0x0000,0xB0C2,0x3F4D,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x3D3A,0x3F4E,0x503E,0xB0C3,0x503C,0x0000,0x503D,0x3558, + 0x0000,0x0000,0x3A23,0x3270,0x0000,0x503B,0x503A,0x4A29, + 0xB0C4,0x0000,0x0000,0x0000,0x3B46,0x3B45,0x423E,0x503F, + 0x4955,0x4067,0xB0C5,0xB0C6,0x0000,0x2138,0x5040,0x5042, + 0xB0C7,0xB0C8,0xB0C9,0x4265,0x4E61,0x304A,0x0000,0x0000, + 0xB0CA,0x0000,0x0000,0x0000,0x0000,0x5041,0x323E,0xB0CB, + 0x3644,0xB0CC,0x4367,0xB0CD,0x0000,0xB0CE,0x376F,0x5043, + 0x0000,0x0000,0x0000,0x4724,0x0000,0xB0CF,0xB0D0,0xB0D1, + + /* 4F00h */ + 0xB0D2,0x346B,0xB0D3,0xB0D4,0x0000,0x0000,0x0000,0x0000, + 0xB0D5,0x5044,0x304B,0xB0D6,0xB0D7,0x3860,0x346C,0x497A, + 0x4832,0x3559,0xB0D8,0x0000,0x0000,0xB0D9,0xB0DA,0xB0DB, + 0x0000,0xB0DC,0x3271,0x0000,0x5067,0x4541,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xB0DD,0x476C, + 0x5046,0xB0DE,0x0000,0xB0E0,0x483C,0xB0E1,0x4E62,0xB0E2, + 0x3F2D,0xB0E3,0x3B47,0xB0E4,0x3B77,0x3240,0xB0E5,0x0000, + 0xB0E6,0x0000,0xB0E7,0x4451,0x0000,0x0000,0x4322,0x504A, + 0xB0E8,0xB0E9,0x0000,0xB0EA,0xB0EB,0x304C,0x4463,0x3D3B, + 0x3A34,0x4D24,0xB0EC,0x424E,0xB0ED,0x323F,0xB0EE,0x5049, + 0xB0EF,0x4D3E,0x5045,0x5047,0x3A6E,0x5048,0x5524,0xB0F0, + 0xB0DF,0x0000,0x0000,0xB0F1,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x5050,0xB0F2,0x0000,0xB0F3,0x0000,0xB0F4,0x5053, + 0x5051,0xB0F5,0x0000,0x3242,0x0000,0x4A3B,0x504B,0xB0F6, + 0xB0F7,0xB0F8,0xB0F9,0x504F,0x3873,0xB0FA,0xB0FB,0x3B48, + 0x0000,0xB0FC,0xB0FD,0x3426,0xB0FE,0xB1A1,0x5054,0x0000, + 0x504C,0xB1A2,0xB1A3,0x4E63,0xB1A4,0x3B78,0xB1A5,0x504D, + 0xB1A6,0x5052,0xB1A7,0xB1A8,0xB1A9,0x0000,0x5055,0xB1AA, + 0x504E,0xB1AB,0xB1AC,0x3621,0x0000,0x304D,0xB1AD,0xB1AE, + 0x3622,0x3241,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x5525,0x0000,0x4B79,0x496E,0x3874, + 0x0000,0x0000,0xB1AF,0x0000,0x0000,0x3F2F,0x4E37,0xB1B0, + 0x0000,0xB1B1,0x0000,0xB1B2,0xB1B3,0xB1B4,0xB1B5,0x4A58, + 0xB1B6,0xB1B7,0x3738,0x4225,0x3264,0xB1B8,0xB1B9,0x0000, + 0xB1BA,0xB1BB,0x3D53,0xB1BC,0xB1BD,0xB1BE,0x5059,0xB1BF, + 0x505E,0x505C,0xB1C0,0x0000,0x5057,0x0000,0x0000,0x422F, + 0x505A,0x0000,0x505D,0x505B,0xB1C1,0x4A5D,0x0000,0x5058, + 0xB1C2,0x3F2E,0xB1C3,0x4B73,0x505F,0x5060,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x3D24,0x506D, + 0xB1C4,0x0000,0xB1C5,0x4750,0x0000,0x4936,0x5068,0x0000, + 0x4A70,0x0000,0x3236,0x0000,0xB1C6,0xB1C7,0x506C,0xB1C8, + + /* 5000h */ + 0xB1C9,0xB1CA,0x0000,0x0000,0xB1CB,0x5066,0x506F,0xB1CC, + 0x0000,0x4152,0xB1CD,0x3844,0xB1CE,0x475C,0xB1CF,0x6047, + 0xB1D0,0x506E,0x455D,0xB1D1,0x5063,0x0000,0x3876,0xB1D2, + 0xB1D3,0x3875,0x5061,0xB1D4,0xB1D5,0xB1D6,0xB1D7,0x3C5A, + 0x0000,0x5069,0xB1D8,0x4A6F,0x434D,0x5065,0x3771,0xB1D9, + 0x5062,0x506A,0x5064,0x4E51,0x506B,0x4F41,0xB1DA,0x0000, + 0xB1DB,0x0000,0xB1DC,0xB1DD,0x0000,0xB1DE,0x3666,0x0000, + 0x0000,0x3770,0x0000,0xB1F6,0x0000,0x0000,0x0000,0x0000, + 0xB1DF,0xB1E0,0xB1E1,0x5070,0x0000,0xB1E2,0xB1E3,0x5071, + 0x5075,0x304E,0xB1E4,0x0000,0xB1E5,0x0000,0xB1E6,0x4A50, + 0x5074,0xB1E7,0xB1E8,0xB1E9,0x0000,0x5073,0x5077,0xB1EA, + 0x0000,0xB1EB,0x5076,0x0000,0x4464,0x0000,0x0000,0xB1EC, + 0xB1ED,0x0000,0xB1EE,0xB1EF,0x0000,0x3772,0xB1F0,0xB1F1, + 0x0000,0x0000,0xB1F2,0x0000,0x5078,0xB1F3,0x0000,0x0000, + 0xB1F4,0xB1F5,0x3C45,0x0000,0x4226,0x4465,0x3676,0x0000, + 0x5079,0x0000,0x0000,0x0000,0x0000,0x3536,0x0000,0x0000, + 0x507A,0xB1F7,0x0000,0xB1F8,0xB1F9,0x507C,0xB1FA,0x0000, + 0x0000,0x0000,0xB1FB,0x0000,0x0000,0x4B35,0xB1FC,0xB1FD, + 0xB1FE,0x3766,0xB2A1,0xB2A2,0xB2A3,0x0000,0xB2A4,0x0000, + 0x3B31,0x4877,0x507B,0xB2A5,0xB2A6,0x0000,0xB2A7,0xB2A8, + 0xB2A9,0xB2AA,0xB2AB,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0xB2AC,0x0000,0x3A45,0x4D43,0x0000,0xB2AD, + 0xB2AE,0x0000,0x507E,0x5123,0x507D,0x3A44,0x0000,0x3D7D, + 0x0000,0xB2AF,0xB2B0,0x0000,0x0000,0xB2B1,0x3739,0x0000, + 0xB2B2,0x0000,0x5124,0xB2B3,0xB2B4,0x364F,0x0000,0xB2B5, + 0x0000,0x5121,0x5122,0x0000,0xB2B6,0x462F,0xB2B7,0x417C, + 0xB2B8,0x3623,0x0000,0xB2B9,0xB2BA,0x4B4D,0x5125,0x0000, + 0xB2BB,0x0000,0x4E3D,0x0000,0xB2BC,0xB2BD,0x5126,0xB2BE, + 0x0000,0x0000,0xB2BF,0x5129,0xB2C0,0x5127,0xB2C1,0x414E, + 0xB2C2,0xB2C3,0x0000,0x0000,0x0000,0x5128,0x512A,0xB2C4, + 0x0000,0xB2C5,0xB2D1,0x0000,0x0000,0x512C,0xB2C6,0x0000, + 0x0000,0x512B,0xB2C7,0x4A48,0x0000,0x0000,0xB2C8,0x0000, + + /* 5100h */ + 0x3537,0x512E,0x512F,0xB2C9,0x322F,0x0000,0xB2CA,0xB2CB, + 0xB2CC,0x512D,0x0000,0xB2CD,0xB2CE,0xB2CF,0xB2D0,0x0000, + 0xB2D2,0x0000,0x3C74,0x0000,0x5132,0x5131,0x5130,0xB2D3, + 0x5056,0xB2D4,0x5133,0xB2D5,0xB2D6,0xB2D7,0xB2D8,0x3D7E, + 0x0000,0x5134,0x0000,0xB2D9,0x0000,0x0000,0x0000,0xB2DA, + 0xB2DB,0x0000,0x4D25,0x0000,0xB2DC,0xB2DD,0x0000,0xB2DE, + 0x0000,0xB2DF,0x4C59,0xB2E0,0xB2E1,0xB2E2,0x0000,0x5136, + 0xB2E3,0xB2E4,0x5135,0x5138,0x5137,0x0000,0x0000,0x5139, + 0x513A,0x3074,0xB2E5,0x3835,0x373B,0x3D3C,0x437B,0x3624, + 0x4068,0x3877,0xB2E6,0x396E,0x513C,0x4C48,0x4546,0xB2E7, + 0x3B79,0x0000,0x513B,0xB2E8,0x513D,0xB2E9,0x0000,0xB2EA, + 0xB2EB,0x0000,0x455E,0x0000,0x3375,0x0000,0x0000,0xB2EC, + 0x0000,0x0000,0x513E,0x0000,0xB2ED,0x467E,0xB2EE,0x0000, + 0x4134,0x5140,0x5141,0x482C,0x3878,0x4F3B,0x5142,0x0000, + 0x0000,0x3626,0x0000,0x0000,0x0000,0x4A3C,0x4236,0x3671, + 0x4535,0x0000,0x0000,0x0000,0x3773,0x0000,0xB2EF,0x0000, + 0x5143,0x0000,0x5144,0xB2F0,0xB2F1,0x4662,0x315F,0x0000, + 0x0000,0x5147,0x3A7D,0xB2F2,0x5146,0x3A46,0xB2F3,0x5148, + 0x666E,0x5149,0x4B41,0x514A,0x0000,0x514B,0x514C,0x3E69, + 0xB2F4,0x3C4C,0x0000,0x0000,0x0000,0xB2F5,0x0000,0x0000, + 0x3427,0xB2F6,0x514F,0xB2F7,0x514D,0x4C3D,0x514E,0x0000, + 0x495A,0x5150,0x5151,0x5152,0x455F,0xB2F8,0x0000,0x0000, + 0x5156,0x5154,0x5155,0x5153,0x3A63,0x5157,0x4C6A,0x4E64, + 0xB2F9,0x0000,0xB2FA,0x0000,0xB2FB,0x5158,0xB2FC,0xB2FD, + 0x0000,0x0000,0xB2FE,0x0000,0x4028,0x5159,0x3D5A,0x0000, + 0xB3A1,0x515A,0x0000,0x437C,0x4E3F,0x4560,0x0000,0xB3A2, + 0x0000,0xB3A3,0xB3A4,0xB3A5,0x0000,0xB3A6,0x5245,0x0000, + 0xB3A7,0x0000,0x0000,0x515B,0x7425,0x3645,0xB3A8,0x0000, + 0x515C,0x4B5E,0xB3A9,0x0000,0x0000,0xB3AA,0x3D68,0x427C, + 0x0000,0x515E,0x4664,0x0000,0x0000,0x515F,0xB3AB,0x0000, + 0x5160,0x332E,0xB3AC,0xB3AD,0xB3AE,0x5161,0x3627,0xB3AF, + 0x464C,0x317A,0x3D50,0x0000,0x0000,0x4821,0x5162,0x0000, + + /* 5200h */ + 0x4561,0xB3B0,0xB3B1,0x3F4F,0x5163,0xB3B2,0x4A2C,0x405A, + 0x3422,0x0000,0x3429,0x5164,0x0000,0x0000,0x5166,0x0000, + 0x0000,0x373A,0xB3B3,0xB3B4,0x5165,0xB3B5,0xB3B6,0x4E73, + 0xB3B7,0x0000,0x0000,0x0000,0x0000,0x3D69,0x0000,0x0000, + 0x0000,0x0000,0xB3B8,0x0000,0x483D,0x4A4C,0x0000,0x5167, + 0xB3B9,0x4D78,0x5168,0x0000,0x0000,0x0000,0x5169,0x0000, + 0x457E,0xB3BA,0xB3BB,0x516A,0x0000,0xB3BC,0x4029,0x3A7E, + 0x3774,0x516B,0x3B49,0x396F,0xB3BD,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x4466,0x516D,0xB3BE,0x0000,0x4227, + 0x0000,0xB3BF,0x3A6F,0x516E,0x516F,0x4130,0x0000,0x516C, + 0x0000,0x0000,0x0000,0x0000,0x5171,0xB3C0,0x4B36,0xB3C1, + 0xB3C2,0x0000,0xB3C3,0x3964,0xB3C4,0x0000,0x5170,0xB3C5, + 0xB3C6,0xB3C7,0x0000,0x3775,0x3A5E,0x476D,0xB3C8,0x0000, + 0x0000,0x5174,0x5172,0x0000,0x0000,0x0000,0xB3C9,0x497B, + 0x3E6A,0x517B,0x3364,0x5175,0x5173,0x414F,0x0000,0xB3CA, + 0xB3CB,0xB3CC,0x0000,0x0000,0x0000,0x5177,0x0000,0x5176, + 0xB3CD,0x0000,0xB3CE,0x3344,0x0000,0xB3CF,0x0000,0x3760, + 0x517C,0x4E2D,0xB3D0,0x0000,0xB3D1,0x5178,0x0000,0x0000, + 0x0000,0x517D,0x517A,0xB3D2,0x5179,0xB3D3,0xB3D4,0xB3D5, + 0xB3D6,0x0000,0xB3D7,0x4E4F,0xB3D8,0x0000,0x0000,0x3879, + 0x3243,0x0000,0x0000,0x4E74,0xB3D9,0xB3DA,0xB3DB,0xB3DC, + 0x0000,0x3D75,0x4558,0x3965,0x5222,0x5223,0x0000,0xB3DD, + 0xB3DE,0x4E65,0x0000,0x0000,0x4F2B,0x5225,0xB3DF,0xB3E0, + 0xB3E1,0x387A,0xB3E2,0xB3E3,0x5224,0xB3E4,0x332F,0x0000, + 0xB3E5,0x5226,0x0000,0x4B56,0xB3E6,0x443C,0xB3E7,0x4D26, + 0xB3E8,0x4A59,0x0000,0x0000,0xB3E9,0x5227,0x0000,0xB3EA, + 0x0000,0xB3EB,0x7055,0x0000,0xB3EC,0x4630,0xB3ED,0x5228, + 0x342A,0x4C33,0x0000,0xB3EE,0xB3EF,0x3E21,0x5229,0x4A67, + 0x522D,0xB3F0,0x402A,0x522A,0x3650,0xB3F1,0x522B,0x342B, + 0xB3F2,0xB3F3,0xB3F4,0x0000,0xB3F5,0x0000,0x0000,0x0000, + 0xB3F6,0xB3F7,0x372E,0x522E,0xB3F8,0x522F,0xB3F9,0xB3FA, + 0x5230,0x5231,0x3C5B,0x0000,0x0000,0x0000,0x387B,0x4C5E, + + /* 5300h */ + 0xB3FB,0x4C68,0x4677,0xB3FC,0x0000,0x4A71,0x5232,0x0000, + 0x5233,0x0000,0xB3FD,0xB3FE,0xB4A1,0x5235,0x0000,0x5237, + 0x5236,0xB4A2,0x0000,0xB4A3,0x0000,0x5238,0x323D,0x4B4C, + 0xB4A4,0x3A7C,0x5239,0xB4A5,0xB4A6,0x4159,0xB4A7,0xB4A8, + 0x3E22,0x3629,0x0000,0x523A,0x0000,0xB4A9,0x0000,0xB4AA, + 0xB4AB,0xB4AC,0x485B,0xB4AD,0xB4AE,0xB4AF,0x0000,0x523B, + 0xB4B0,0x523C,0xB4B1,0x523D,0x0000,0xB4B2,0x0000,0x0000, + 0x523E,0x4924,0x3668,0x3065,0xB4B3,0xB4B4,0xB4B5,0x463F, + 0x523F,0x3D3D,0xB4B6,0x4069,0x0000,0x5241,0x5240,0x3E23, + 0x3861,0x5243,0x483E,0xB4B8,0xB4B7,0x5244,0x0000,0x0000, + 0x0000,0x485C,0x4234,0x426E,0x3628,0x0000,0x0000,0x466E, + 0x4331,0xB4B9,0x476E,0xB4BA,0x4B4E,0x0000,0x5246,0x0000, + 0x406A,0xB4BB,0x0000,0xB4BC,0x0000,0xB4BD,0x3735,0x0000, + 0x0000,0x5247,0x0000,0x0000,0xB4BE,0xB4BF,0x5248,0x312C, + 0x3075,0x346D,0xB4C0,0x4228,0x3551,0x4D71,0x0000,0x524B, + 0x3237,0xB4C1,0x0000,0x524A,0x0000,0x0000,0xB4C2,0x362A, + 0x0000,0x0000,0x524C,0xB4C3,0x4C71,0x0000,0x0000,0xB4C4, + 0xB4C5,0x0000,0x0000,0x0000,0x0000,0x0000,0xB4C6,0x0000, + 0x0000,0x0000,0x0000,0xB4C7,0xB4C8,0x0000,0x524D,0x0000, + 0x4E52,0xB4C9,0x387C,0x0000,0x0000,0xB4CA,0x0000,0x3836, + 0x524E,0xB4CB,0x0000,0x0000,0xB4CC,0x5250,0x524F,0x0000, + 0x3F5F,0x3139,0xB4CD,0xB4CE,0x0000,0x315E,0x5251,0xB4CF, + 0x5252,0x0000,0xB4D0,0x3837,0xB4D1,0xB4D2,0x5253,0xB4D3, + 0xB4D4,0x0000,0xB4D5,0x356E,0x0000,0xB4D6,0x0000,0x0000, + 0xB4D7,0x0000,0x3B32,0x5254,0x0000,0xB4D8,0x0000,0x0000, + 0x4B74,0x3A35,0x355A,0x4D27,0x4150,0x483F,0x3C7D,0xB4D9, + 0x0000,0x0000,0xB4DA,0xB4DB,0x3D47,0xB4DC,0x3C68,0x3C75, + 0x0000,0x3D76,0xB4DD,0x4840,0x0000,0xB4DE,0xB4DF,0x5257, + 0xB4E0,0x3143,0x4151,0x387D,0x3845,0x3667,0xB4E1,0xB4E2, + 0x525B,0x4321,0x427E,0x362B,0x3E24,0x525C,0x525A,0x3244, + 0x4266,0x3C38,0x3B4B,0x3126,0x0000,0xB4E3,0x3370,0x3966, + 0x3B4A,0x0000,0x525D,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* 5400h */ + 0x0000,0x525E,0xB4E4,0x3549,0x3346,0x0000,0x0000,0x0000, + 0x3967,0x3548,0x445F,0x3125,0x4631,0x4C3E,0x3921,0x4D79, + 0x4547,0x387E,0x0000,0xB4E5,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0xB4E6,0x372F,0x0000,0x5267,0x0000,0x3663, + 0x4B4A,0xB4E7,0x0000,0x0000,0x0000,0x0000,0x485D,0xB4E8, + 0xB4E9,0x5266,0xB4EA,0x345E,0x5261,0x5262,0x5264,0xB4EB, + 0x0000,0xB4EC,0x0000,0x0000,0xB4ED,0xB4EE,0x5265,0x0000, + 0x355B,0x3F61,0x0000,0x4A2D,0x5263,0x525F,0x3863,0x0000, + 0x5260,0x0000,0x4F24,0xB4EF,0xB4F0,0x0000,0x4A72,0xB4F1, + 0x4468,0x3862,0x3970,0x0000,0x0000,0xB4F2,0x5268,0xB4F3, + 0x0000,0x465D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xB4F4,0x526C, + 0x0000,0x0000,0xB4F5,0x0000,0xB4F6,0x0000,0xB4F7,0xB4F8, + 0x3C7E,0xB4F9,0x3C76,0xB4FA,0x0000,0xB4FB,0xB4FC,0x0000, + 0x526F,0x526D,0x0000,0x4C23,0xB4FD,0x526A,0x5273,0x526E, + 0x0000,0x0000,0x0000,0x5271,0x3846,0x4C3F,0x0000,0xB4FE, + 0x5272,0xB5A1,0x0000,0xB5A2,0x5274,0xB5A3,0x5276,0x0000, + 0xB5A4,0xB5A5,0x0000,0x3A70,0x4F42,0xB5A6,0x526B,0x5269, + 0x5275,0xB5A7,0x5270,0x0000,0x0000,0xB5A8,0xB5A9,0x0000, + 0x0000,0x0000,0x0000,0x0000,0xB5AA,0x0000,0x0000,0xB5AB, + 0x0000,0xB5AC,0x5278,0x0000,0x5323,0x527A,0xB5AD,0xB5AE, + 0x527E,0xB5AF,0xB5B0,0x5321,0x527B,0xB5B1,0xB5B2,0x533E, + 0x0000,0xB5B3,0x3A69,0x3331,0x0000,0x0000,0x0000,0xB5B4, + 0x5279,0xB5B5,0xB5B6,0xB5B7,0x5325,0x3076,0x5324,0xB5B8, + 0x3025,0x494A,0x5322,0x0000,0x527C,0x0000,0xB5B9,0x5277, + 0x527D,0x3A48,0xB5BA,0x0000,0x0000,0xB5BB,0xB5BC,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x5326,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xB5BD,0x3077,0x532F,0x0000,0x0000,0x5327,0x5328,0x0000, + 0x3E25,0x4B69,0xB5BE,0x0000,0xB5BF,0x532D,0x532C,0xB5C0, + 0x0000,0x0000,0x452F,0x0000,0x0000,0x0000,0xB5C1,0x0000, + 0x0000,0x0000,0x532E,0x0000,0xB5C2,0x532B,0xB5C3,0xB5C4, + + /* 5500h */ + 0xB5C5,0xB5C6,0x0000,0x0000,0x3134,0xB5C7,0x3A36,0x3F30, + 0xB5C8,0xB5C9,0x0000,0x0000,0xB5CA,0xB5CB,0xB5CC,0x5329, + 0x4562,0x0000,0x0000,0x0000,0x532A,0xB5CD,0x3022,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0xB5CE,0xB5CF,0x0000,0x0000,0x5334,0x4D23, + 0x0000,0x3E27,0xB5D0,0x533A,0x0000,0xB5D1,0xB5D2,0x0000, + 0x5339,0x5330,0x0000,0xB5D3,0xB5D4,0xB5D5,0x4243,0x0000, + 0x5331,0xB5D6,0x0000,0x0000,0x426F,0x5336,0x3E26,0xB5D7, + 0x0000,0xB5D8,0xB5D9,0x0000,0x5333,0xB5DA,0x0000,0x4C64, + 0xB5DB,0xB5DC,0x0000,0x373C,0x0000,0x0000,0x5337,0x5338, + 0xB5DD,0x0000,0xB5DE,0xB5DF,0x5335,0x533B,0xB5E0,0x0000, + 0xB5E1,0xB5E2,0x0000,0x5332,0xB5E3,0x0000,0xB5E4,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x5341,0x5346,0x0000,0x5342,0xB5E5, + 0x533D,0xB5E6,0xB5E7,0x5347,0x4131,0x0000,0xB5E8,0x5349, + 0xB5E9,0x3922,0x533F,0x437D,0x0000,0x0000,0xB5EA,0xB5EB, + 0x0000,0xB5EC,0xB5ED,0xB5EE,0xB5EF,0x0000,0x0000,0xB5F0, + 0x5343,0x533C,0x342D,0x0000,0x346E,0x3365,0x5344,0x5340, + 0x0000,0x0000,0x0000,0xB5F1,0xB5F2,0x0000,0x0000,0x3776, + 0x534A,0x5348,0x4153,0x354A,0x362C,0xB5F3,0x5345,0x0000, + 0x3674,0x0000,0xB5F4,0x0000,0x0000,0x0000,0x3144,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xB5F5, + 0x0000,0xB5F6,0x0000,0xB5F7,0x534E,0x534C,0xB5F8,0x5427, + 0x0000,0xB5F9,0x0000,0xB5FA,0xB5FB,0x0000,0xB5FC,0x0000, + 0x0000,0xB5FD,0xB5FE,0xB6A1,0x5351,0x0000,0x0000,0xB6A2, + 0xB6A3,0x0000,0x534B,0xB6A4,0x534F,0x0000,0xB6A5,0x534D, + 0x0000,0x0000,0xB6A6,0x3B4C,0x5350,0x0000,0x0000,0x0000, + 0x0000,0xB6A7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xB6A8,0x5353, + 0x0000,0x5358,0x0000,0x0000,0x0000,0x5356,0x5355,0xB6A9, + + /* 5600h */ + 0x0000,0x0000,0x0000,0x0000,0x0000,0xB6AA,0x4332,0x0000, + 0xB6AB,0x3245,0xB6AC,0x0000,0x0000,0xB6AD,0xB6AE,0xB6AF, + 0xB6B0,0xB6B1,0xB6B2,0x0000,0x5352,0x0000,0x5354,0x3E28, + 0x3133,0xB6B3,0x0000,0x5357,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x325E,0x0000,0x0000,0xB6B4,0x0000,0x0000,0x5362, + 0xB6B5,0x3E7C,0x535E,0xB6B6,0x535C,0xB6B7,0x535D,0xB6B8, + 0x535F,0xB6B9,0x0000,0xB6BA,0xB6BB,0xB6BC,0x0000,0xB6BD, + 0xB6BE,0xB6BF,0x313D,0xB6C0,0xB6C1,0x0000,0xB6C2,0x0000, + 0x0000,0xB6C3,0x0000,0xB6C4,0x4139,0xB6C5,0x5359,0xB6C6, + 0x535A,0x0000,0x0000,0x0000,0xB6C7,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x337A,0x0000,0x0000,0xB6C8,0x0000, + 0xB6C9,0xB6CA,0xB6CB,0xB6CC,0x5361,0x0000,0xB6CD,0x0000, + 0x346F,0xB6CE,0x5364,0x5360,0x5363,0xB6CF,0x0000,0xB6D0, + 0x0000,0xB6D1,0xB6D2,0x0000,0x4A2E,0xB6D3,0x0000,0x0000, + 0x4655,0x0000,0x4838,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x5366,0x0000,0x0000,0x0000,0xB6D4,0xB6D5,0x5365,0x3345, + 0xB6D6,0x0000,0x5367,0xB6D7,0xB6D8,0x0000,0x0000,0x536A, + 0x0000,0x0000,0x0000,0x0000,0x5369,0xB6D9,0x0000,0x0000, + 0x0000,0xB6DA,0xB6DB,0x0000,0x0000,0xB6DC,0xB6DD,0xB6DE, + 0x5368,0x0000,0x4739,0x0000,0x0000,0x536B,0xB6DF,0xB6E0, + 0xB6E1,0xB6E2,0x0000,0xB6E3,0xB6E4,0xB6E5,0x536C,0x0000, + 0x0000,0xB6E6,0x0000,0xB6E7,0x536E,0x0000,0x536D,0xB6E8, + 0x0000,0x0000,0x0000,0x0000,0x5370,0x0000,0xB6E9,0x0000, + 0x5373,0x5371,0x536F,0x5372,0x0000,0xB6EA,0x0000,0x0000, + 0x5374,0xB6EB,0xB6EC,0xB6ED,0xB6F0,0xB6F1,0x5375,0xB6EE, + 0xB6EF,0x5376,0x0000,0x5377,0x0000,0x0000,0x0000,0x5378, + 0x5145,0xB6F2,0x3C7C,0x3B4D,0xB6F3,0xB6F4,0x3273,0xB6F5, + 0x3078,0xB6F6,0x0000,0x4344,0xB6F7,0xB6F8,0xB6F9,0xB6FA, + 0xB6FB,0x0000,0x0000,0xB6FD,0x0000,0xB6FE,0x5379,0x0000, + 0x3A24,0xB6FC,0x304F,0x3F5E,0x0000,0x0000,0xB7A1,0xB7A2, + 0x0000,0x537A,0x3847,0x0000,0x0000,0x3971,0x0000,0x537C, + + /* 5700h */ + 0x537B,0xB7A3,0xB7A4,0x4A60,0x537D,0x0000,0x0000,0xB7A5, + 0x5421,0x537E,0xB7A6,0x5422,0xB7A7,0x5423,0x0000,0x3777, + 0x0000,0xB7A8,0x3160,0x5424,0x0000,0xB7A9,0x5426,0x0000, + 0x5425,0x0000,0xB7AA,0xB7AB,0x5428,0xB7AC,0x0000,0x455A, + 0xB7AD,0x0000,0xB7AE,0xB7AF,0xB7B0,0xB7B1,0x5429,0x3035, + 0x3A5F,0xB7B2,0xB7B3,0x0000,0xB7B4,0x373D,0xB7B5,0xB7B6, + 0x434F,0x0000,0x0000,0xB7B7,0xB7B8,0x0000,0x0000,0x542A, + 0x542B,0x0000,0x0000,0x542D,0x0000,0xB7B9,0xB7BA,0xB7BB, + 0x542E,0x0000,0x3A64,0x0000,0x0000,0xB7BC,0xB7BD,0x3651, + 0x0000,0x0000,0x4B37,0x0000,0xB7BE,0xB7BF,0x542C,0x542F, + 0x3A41,0x3923,0xB7C0,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x5433,0xB7C1,0x0000,0x3A25,0xB7C2,0x4333,0xB7C3, + 0xB7C4,0x5430,0x445A,0xB7C5,0x0000,0xB7C6,0xB7C7,0xB7C8, + 0xB7C9,0xB7CA,0x0000,0xB7CB,0xB7CC,0xB7CD,0x0000,0xB7CE, + 0x0000,0xB7CF,0xB7D0,0xB7D1,0xB7D2,0x0000,0xB7D3,0x5434, + 0x0000,0xB7D4,0x3F62,0xB7D5,0x0000,0x0000,0x0000,0x0000, + 0x5432,0x5435,0x0000,0x373F,0xB7D6,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x5436,0xB7D7,0xB7E0,0x0000,0xB7D8, + 0x0000,0xB7D9,0xB7DA,0x0000,0xB7DB,0xB7DC,0xB7DD,0xB7DE, + 0x5437,0xB7DF,0x3924,0x3340,0x5439,0x0000,0x0000,0xB7E1, + 0xB7E2,0xB7E3,0x543A,0x0000,0xB7E4,0x0000,0x0000,0x0000, + 0x543B,0x0000,0x0000,0x5438,0x0000,0x0000,0x0000,0x0000, + 0xB7E5,0x0000,0x0000,0x0000,0x0000,0xB7E6,0x0000,0x0000, + 0x5431,0x0000,0x0000,0x543C,0x0000,0x0000,0x543D,0xB7E7, + 0xB7E8,0x0000,0x0000,0x4B64,0xB7E9,0x0000,0x3E6B,0xB7EA, + 0x0000,0x0000,0x543F,0x5440,0x543E,0xB7EB,0x5442,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x4738,0xB7EC,0xB7ED,0x3068, + 0x4956,0xB7FE,0x0000,0x5443,0xB7EE,0x0000,0xB7EF,0xB7F0, + 0x0000,0xB7F1,0x0000,0x0000,0x0000,0xB7F2,0x0000,0x0000, + 0xB7F3,0x0000,0x0000,0x0000,0x3E7D,0xB7F4,0xB7F5,0x3C39, + 0xB7F6,0x475D,0x3470,0x0000,0x3A6B,0xB7F7,0xB7F8,0xB7F9, + + /* 5800h */ + 0x4B59,0x0000,0x4632,0xB7FA,0xB7FB,0x3778,0x424F,0x0000, + 0xB7FC,0xB7FD,0x5441,0x5444,0xB8A1,0xB8A2,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x4244,0x0000,0x0000, + 0x0000,0x5445,0x0000,0xB8A3,0x0000,0x5446,0xB8A4,0xB8A5, + 0xB8A6,0x5448,0x0000,0x0000,0x4469,0x0000,0xB8A7,0xB8A8, + 0x0000,0x0000,0x342E,0x0000,0x0000,0xB8A9,0x0000,0x7421, + 0x3161,0x4A73,0xB8AA,0x0000,0x3E6C,0x4548,0x0000,0x0000, + 0x0000,0xB8AB,0x3A66,0x0000,0x0000,0x544E,0x0000,0xB8AC, + 0x4A3D,0x4E5D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0xB8AD,0x3274,0x544A,0xB8AE,0xB8AF,0x0000,0xB8B0, + 0xB8B1,0x413A,0x544D,0x0000,0x4563,0xB8B2,0x0000,0x4549, + 0x4564,0x4839,0x444D,0x0000,0x0000,0x0000,0x3A49,0xB8B3, + 0x0000,0xB8B4,0x5449,0x0000,0xB8B5,0x0000,0x0000,0xB8B6, + 0xB8B7,0x3176,0x0000,0x4536,0x0000,0x0000,0x0000,0x0000, + 0x544B,0x0000,0x5447,0x0000,0x0000,0x3F50,0x0000,0x0000, + 0xB8B8,0x544F,0x0000,0x0000,0xB8B9,0x0000,0x3D4E,0xB8BA, + 0xB8BB,0xB8BC,0x0000,0x362D,0x0000,0x5450,0x0000,0xB8BD, + 0xB8BE,0xB8BF,0xB8C0,0x0000,0xB8C1,0xB8C2,0x0000,0xB8C3, + 0xB8C4,0x0000,0x0000,0x4A68,0xB8C5,0x0000,0xB8C6,0x417D, + 0x0000,0x0000,0x0000,0x0000,0x4446,0xB8C7,0x0000,0x5452, + 0xB8C8,0xB8C9,0xB8CA,0x0000,0x0000,0x0000,0xB8CB,0x0000, + 0x4B4F,0xB8CC,0x0000,0x5453,0x0000,0x0000,0x5458,0x0000, + 0x0000,0xB8CD,0xB8CE,0x4A2F,0x0000,0x0000,0x0000,0x0000, + 0x5457,0x5451,0x5454,0x5456,0xB8D0,0x0000,0x3A26,0x0000, + 0x0000,0x4A49,0xB8D1,0x0000,0xB8CF,0x5459,0x0000,0x4345, + 0xB8D2,0x0000,0x3275,0x0000,0x3E6D,0xB8D3,0xB8D4,0x0000, + 0xB8D5,0x545B,0xB8D6,0x545A,0xB8D7,0x3968,0xB8D8,0x545C, + 0x545E,0x545D,0xB8D9,0x0000,0x5460,0xB8DA,0x5455,0x5462, + 0x0000,0xB8DB,0xB8DC,0x0000,0x5461,0x545F,0x0000,0x0000, + 0x0000,0xB8DD,0x0000,0x3B4E,0x3F51,0x0000,0x4154,0x5463, + 0x403C,0x306D,0x4764,0xB8DE,0x0000,0x0000,0x0000,0x445B, + 0x0000,0x5465,0x5464,0x5466,0x5467,0x5468,0x0000,0x0000, + + /* 5900h */ + 0x0000,0x0000,0x5469,0x0000,0x0000,0xB8DF,0xB8E0,0x0000, + 0x0000,0x4A51,0x546A,0xB8E1,0xB8E2,0x0000,0x0000,0x3246, + 0x546B,0x0000,0xB8E3,0xB8E4,0xB8E5,0x4D3C,0x3330,0x0000, + 0x5249,0x3D48,0x423F,0x546C,0x4C6B,0xB8E7,0x0000,0x0000, + 0x0000,0xB8E8,0x4C34,0xB8E9,0xB8EA,0x546E,0x0000,0x4267, + 0xB8EB,0x4537,0x4240,0x4957,0x546F,0x5470,0x317B,0xB8EC, + 0xB8ED,0x3C3A,0x5471,0xB8EE,0x0000,0xB8EF,0xB8F0,0x3050, + 0x5472,0x0000,0x0000,0x0000,0x0000,0x0000,0x5473,0xB8F1, + 0x0000,0x0000,0x0000,0xB8F2,0x3162,0x0000,0xB8F3,0x3471, + 0x4660,0x4A74,0x0000,0x0000,0x0000,0x0000,0x5477,0x4155, + 0x5476,0x3740,0xB8F4,0xB8F5,0x4B5B,0x5475,0x0000,0x4565, + 0x5479,0xB8F6,0x5478,0xB8F7,0x0000,0xB8F8,0xB8F9,0xB8FA, + 0x547B,0xB8FB,0x547A,0xB8FC,0x0000,0x317C,0x0000,0x547C, + 0x3E29,0x547E,0x4325,0xB8FD,0x547D,0xB8FE,0x4A33,0xB9A1, + 0x0000,0x0000,0xB9A2,0x3D77,0x455B,0xB9A3,0xB9A4,0x0000, + 0x5521,0xB9A5,0x0000,0xB9A6,0xB9A7,0x3925,0x0000,0x0000, + 0x0000,0x5522,0x4721,0x485E,0x4C51,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x4725,0xB9A8,0xB9A9,0x552B,0xB9AA,0x0000, + 0x0000,0x0000,0xB9AB,0x3538,0x0000,0xB9AC,0x4D45,0xB9AD, + 0x0000,0x4C2F,0x0000,0x562C,0x0000,0x5523,0x0000,0xB9AE, + 0x0000,0x0000,0x0000,0x5526,0xB9AF,0x4245,0x0000,0xB9B0, + 0x4B38,0x0000,0x0000,0x0000,0x454A,0xB9B1,0xB9B2,0xB9B3, + 0xB9B4,0x0000,0x5527,0xB9B5,0x0000,0x0000,0x0000,0xB9B6, + 0x0000,0x4B65,0xB9B7,0x3A4A,0xB9B8,0x0000,0x3E2A,0x0000, + 0x0000,0xB9B9,0x0000,0xB9BA,0xB9BB,0x0000,0x5528,0x0000, + 0xB9BC,0x3B50,0xB9BD,0x3B4F,0x0000,0xB9BE,0x0000,0x0000, + 0x3039,0x3848,0xB9BF,0x402B,0x3051,0x0000,0x0000,0x0000, + 0x0000,0x552C,0x552D,0x0000,0x552A,0xB9C0,0xB9C1,0xB9C2, + 0x0000,0x0000,0x0000,0xB9C3,0xB9C4,0x3138,0x342F,0xB9C5, + 0x5529,0x0000,0x4C45,0x4931,0x0000,0x0000,0xB9C6,0xB9C7, + 0x0000,0xB9C8,0xB9C9,0x0000,0xB9CA,0x0000,0x3028,0xB9CB, + 0x0000,0x0000,0x0000,0x3079,0x0000,0x0000,0x0000,0x3B51, + + /* 5A00h */ + 0xB9CC,0x3052,0x0000,0x3023,0xB9CD,0x0000,0x0000,0x0000, + 0x0000,0x5532,0x0000,0x0000,0xB9CE,0xB9CF,0xB9D0,0x0000, + 0x0000,0x5530,0xB9D1,0xB9D2,0x0000,0x0000,0x0000,0x0000, + 0x4C3C,0x0000,0x5533,0x0000,0x5531,0x0000,0xB9D3,0x552F, + 0x3F31,0x0000,0x0000,0xB9D4,0xB9D5,0x552E,0x0000,0xB9D6, + 0xB9D7,0x4A5A,0xB9D8,0x0000,0x0000,0xB9D9,0x0000,0x3864, + 0xB9DA,0x0000,0x0000,0x0000,0x0000,0x5537,0x5538,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x3E2B,0x0000,0x0000,0x0000, + 0x5534,0x4F2C,0x0000,0x0000,0xB9DB,0xB9DC,0x474C,0xB9DD, + 0xB9DE,0x5536,0x0000,0x0000,0xB9DF,0x0000,0x0000,0x0000, + 0xB9E0,0x0000,0x0000,0x0000,0x0000,0xB9E1,0x0000,0x0000, + 0x0000,0x0000,0x3A27,0x0000,0x0000,0x0000,0xB9E2,0x0000, + 0x0000,0x0000,0x5539,0xB9E3,0x0000,0xB9E4,0x4958,0xB9E5, + 0x0000,0x0000,0x553A,0x0000,0x5535,0xB9E6,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xB9E7, + 0x0000,0x0000,0xB9E8,0xB9E9,0x0000,0x0000,0xB9EA,0x4C3B, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0xB9EB,0x0000,0x0000,0x0000,0x0000, + 0xB9EC,0x0000,0x475E,0xB9ED,0x0000,0x0000,0xB9EE,0x0000, + 0x0000,0xB9EF,0x553B,0x4932,0xB9F0,0x0000,0xB9F1,0xB9F2, + 0xB9F3,0x0000,0xB9F4,0x0000,0x0000,0x0000,0x0000,0xB9F5, + 0x0000,0x0000,0x0000,0x0000,0xB9F6,0x0000,0x0000,0x0000, + 0x0000,0xB9F7,0xB9F8,0xB9F9,0x0000,0xB9FA,0x0000,0x0000, + 0xB9FB,0x0000,0xB9FC,0xB9FD,0x553C,0x5540,0x553D,0xB9FE, + 0x0000,0x3247,0x553F,0x0000,0xBAA1,0x0000,0xBAA2,0x0000, + 0xBAA3,0x3C3B,0x0000,0x553E,0x3779,0x0000,0x0000,0xBAA4, + 0x554C,0x0000,0x0000,0x0000,0x0000,0x0000,0x5545,0x5542, + 0x0000,0x0000,0xBAA5,0x0000,0xBAA6,0x0000,0x0000,0x0000, + 0xBAA7,0x4364,0x0000,0x5541,0x0000,0xBAA8,0x5543,0x0000, + 0x0000,0x5544,0xBAA9,0x0000,0x0000,0x0000,0xBAAA,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0xBAAB,0xBAAC,0x0000, + 0x0000,0x0000,0x5546,0x5547,0x0000,0xBAAD,0x0000,0x0000, + + /* 5B00h */ + 0xBAAE,0xBAAF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xBAB0,0x3472,0x0000,0x5549,0x5548,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x554A,0xBAB1, + 0x0000,0xBAB3,0x0000,0xBAB4,0x0000,0xBAB5,0x0000,0x0000, + 0x0000,0xBAB6,0x3E6E,0x0000,0x0000,0xBAB7,0x0000,0x0000, + 0x0000,0x0000,0x554D,0x0000,0x445C,0xBAB8,0x0000,0x0000, + 0x3145,0x0000,0x554B,0x0000,0xBAB2,0x0000,0x554E,0x0000, + 0xBAB9,0x0000,0x0000,0x0000,0x0000,0x0000,0x554F,0x0000, + 0x5552,0xBABA,0x0000,0x5550,0x0000,0x5551,0x0000,0x0000, + 0x0000,0x0000,0x0000,0xBABB,0xBABC,0x0000,0x0000,0x0000, + 0x3B52,0x5553,0xBABD,0x0000,0x3926,0x5554,0xBABE,0x3B7A, + 0x4238,0x0000,0x5555,0x5556,0x3B5A,0x3927,0xBABF,0x4C52, + 0x0000,0x0000,0x0000,0x3528,0x3849,0x5557,0x3358,0x0000, + 0xBAC0,0x5558,0x0000,0x4239,0x0000,0x0000,0xBAC1,0xBAC2, + 0x5559,0x5623,0x0000,0x555A,0x0000,0x555B,0x0000,0x0000, + 0x555C,0x0000,0x555E,0x0000,0xBAC3,0xBAC4,0xBAC5,0xBAC6, + 0x555F,0xBAC7,0x0000,0x5560,0xBAC8,0x4270,0xBAC9,0x3127, + 0x3C69,0x3042,0xBACA,0x4157,0x3430,0x3C35,0xBACB,0x3928, + 0xBACC,0xBACD,0x0000,0xBACE,0xBACF,0x4566,0xBAD0,0x3D21, + 0x3431,0x4368,0x446A,0x3038,0x3539,0x4A75,0x0000,0x3C42, + 0x0000,0x0000,0x3552,0x406B,0x3C3C,0x4D28,0x5561,0x0000, + 0xBAD1,0xBAD2,0x0000,0x0000,0xBAD3,0xBAD4,0x355C,0xBAD5, + 0x3A4B,0xBAD6,0xBAD7,0x3332,0x3163,0x3E2C,0x3248,0xBAD8, + 0x5562,0x4D46,0xBAD9,0x0000,0xBADA,0x0000,0x0000,0x3D49, + 0xBADB,0xBADC,0x3C64,0x5563,0x3473,0x4652,0x4C29,0x5564, + 0x0000,0x5565,0x0000,0x0000,0x4959,0xBADD,0x0000,0xBADE, + 0x5567,0x0000,0x3428,0x3677,0x5566,0x0000,0xBADF,0xBAE0, + 0xBAE1,0xBAE2,0xBAE3,0x3432,0x0000,0x3F32,0x556B,0x3B21, + 0xBAE4,0x3249,0x556A,0x0000,0x5568,0x556C,0x5569,0x472B, + 0x5C4D,0x3F33,0x0000,0x556D,0x0000,0x0000,0x4E40,0xBAE5, + 0x556E,0xBAE6,0x0000,0x5570,0xBAE7,0x437E,0x556F,0x0000, + 0x4023,0x0000,0x3B7B,0x0000,0x0000,0xBAE8,0x4250,0x3C77, + + /* 5C00h */ + 0x0000,0x4975,0x406C,0x0000,0x3C4D,0x5571,0x3E2D,0x5572, + 0x5573,0x3053,0x423A,0x3F52,0xBAE9,0x5574,0x4633,0x3E2E, + 0x0000,0x3E2F,0x0000,0x5575,0x0000,0x0000,0x406D,0xBAEA, + 0x0000,0x0000,0x3E30,0x0000,0x0000,0x0000,0xBAEB,0xBAEC, + 0x5576,0x0000,0x5577,0xBAED,0x4C60,0x0000,0xBAEE,0x0000, + 0x5578,0xBAEF,0x0000,0xBAF0,0xBAF1,0x3646,0xBAF2,0x0000, + 0xBAF3,0x3D22,0xBAF4,0x0000,0x0000,0xBAF5,0xBAF6,0x0000, + 0x5579,0x557A,0x3C5C,0x3F2C,0x4674,0x3F54,0x4878,0x4722, + 0x3649,0x557B,0x0000,0x0000,0x0000,0x356F,0x557C,0x0000, + 0x367E,0x0000,0x464F,0x3230,0x0000,0x3B53,0x557D,0x5622, + 0x5621,0x367D,0x0000,0x557E,0x0000,0x4538,0x0000,0x0000, + 0x0000,0xBAF7,0xBAF8,0x0000,0xBAF9,0x0000,0x4230,0x0000, + 0x454B,0x3C48,0xBAFA,0xBAFB,0x4158,0x4D7A,0x0000,0xBAFC, + 0xBAFD,0xBAFE,0x0000,0x0000,0x5624,0xBBA1,0x5625,0x4656, + 0xBBA2,0x3B33,0x0000,0x0000,0xBBA3,0xBBA4,0x5627,0x0000, + 0x0000,0x5628,0xBBA5,0xBBA6,0xBBA7,0xBBA8,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xBBA9, + 0xBBAA,0x0000,0xBBAB,0x0000,0x5629,0x0000,0x0000,0xBBAC, + 0x3474,0x562A,0xBBAD,0x0000,0x562B,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0xBBAE,0x0000,0xBBAF, + 0xBBB0,0x322C,0xBBB1,0xBBB2,0x0000,0x0000,0xBBB3,0x0000, + 0x413B,0x3464,0xBBB4,0x562D,0x4C28,0x0000,0x0000,0x0000, + 0x0000,0x4252,0xBBB5,0x3359,0xBBB6,0xBBB7,0x562F,0x5631, + 0x345F,0x0000,0xBBB8,0x562E,0x5630,0x0000,0x5633,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x5632,0x0000,0x5634, + 0x0000,0xBBB9,0x0000,0xBBBA,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0xBBBB,0x0000,0x0000,0x0000,0x0000,0xBBBD, + 0x0000,0x5635,0x0000,0x0000,0x0000,0xBBBC,0x0000,0x0000, + 0x463D,0x362E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x3265,0x5636,0x563B,0x0000,0x0000,0x5639,0xBBBE,0x4A77, + 0x4A76,0xBBBF,0xBBC0,0x0000,0xBBC1,0x0000,0x4567,0x0000, + 0x0000,0x0000,0x5638,0x3D54,0x0000,0x5637,0x0000,0x0000, + + /* 5D00h */ + 0x0000,0xBBC2,0x0000,0x0000,0x0000,0x0000,0xBBC3,0x3F72, + 0x0000,0x0000,0x0000,0x563C,0x0000,0xBBC4,0x3A6A,0x0000, + 0x0000,0x5642,0xBBC5,0x0000,0x5643,0x563D,0x3333,0x563E, + 0x5647,0x5646,0x5645,0x5641,0x0000,0x0000,0x0000,0x5640, + 0x0000,0x0000,0x5644,0xBBC7,0xBBC8,0x0000,0xBBC9,0xBBCA, + 0x0000,0x4A78,0x0000,0xBBC6,0x0000,0x0000,0x0000,0x0000, + 0x0000,0xBBCB,0x0000,0x0000,0xBBCC,0x0000,0x0000,0x0000, + 0x0000,0xBBCD,0x0000,0x0000,0x0000,0xBBCE,0x0000,0xBBCF, + 0x0000,0x0000,0xBBD0,0xBBD1,0x0000,0x0000,0xBBD2,0x0000, + 0xBBD3,0x0000,0xBBD7,0x564B,0x5648,0x0000,0x564A,0x0000, + 0x4D72,0xBBD5,0x5649,0x0000,0x0000,0xBBD4,0x0000,0x0000, + 0x0000,0xBBD6,0x0000,0x0000,0x563F,0x0000,0x0000,0xBBD8, + 0xBBD9,0xBBDA,0xBBDB,0x0000,0xBBDC,0x0000,0x0000,0x0000, + 0x0000,0x3F73,0xBBDD,0x0000,0x564C,0xBBDE,0x0000,0x3A37, + 0xBBDF,0x0000,0x0000,0x564D,0x0000,0x0000,0x564E,0x0000, + 0x0000,0xBBE0,0xBBE1,0x0000,0x0000,0x0000,0xBBE2,0xBBE3, + 0x0000,0xBBE4,0x5651,0xBBE5,0x5650,0x0000,0x0000,0x564F, + 0xBBE6,0x0000,0xBBE7,0x4568,0x563A,0x0000,0x0000,0x0000, + 0x5657,0x0000,0xBBE8,0xBBE9,0xBBEA,0xBBEB,0x0000,0x0000, + 0x0000,0xBBEC,0x0000,0xBBED,0x0000,0x5653,0x0000,0xBBEE, + 0xBBEF,0x0000,0x5652,0x0000,0x0000,0x0000,0x0000,0xBBF0, + 0x0000,0x0000,0x0000,0xBBF1,0x5654,0x0000,0x5655,0x0000, + 0xBBF2,0x0000,0xE6F4,0x0000,0xBBF3,0x0000,0x0000,0x5658, + 0xBBF4,0xBBF5,0x4E66,0x0000,0x5659,0x5656,0x0000,0x0000, + 0x0000,0x0000,0x0000,0xBBF6,0x0000,0x0000,0x0000,0xBBF7, + 0x0000,0x565A,0x0000,0xBBF8,0x3460,0x565B,0xBBFA,0x0000, + 0xBBF9,0x0000,0x565D,0x565C,0x0000,0x0000,0x565E,0x0000, + 0xBBFB,0xBBFC,0x0000,0x565F,0x0000,0x406E,0x3D23,0x0000, + 0xBBFD,0x3D64,0x0000,0x4163,0xBBFE,0x3929,0x3A38,0x392A, + 0x3570,0xBCA1,0x0000,0x5660,0x0000,0x0000,0x3A39,0x0000, + 0x0000,0x384A,0x5661,0x4C26,0x4743,0x5662,0x0000,0x392B, + 0xBCA2,0xBCA3,0x0000,0x342C,0x0000,0x4327,0x3652,0x0000, + + /* 5E00h */ + 0xBCA4,0x0000,0x3B54,0x495B,0x0000,0x0000,0x4841,0xBCA5, + 0x0000,0x0000,0x0000,0x5663,0x3475,0xBCA6,0x0000,0x0000, + 0x0000,0x5666,0xBCA7,0x0000,0xBCA8,0xBCA9,0x4421,0x0000, + 0xBCAA,0x5665,0x5664,0x5667,0x0000,0x446B,0x0000,0xBCAB, + 0xBCAC,0x0000,0x0000,0x0000,0x0000,0x3F63,0x0000,0x0000, + 0xBCAE,0x0000,0x0000,0x3B55,0x0000,0x404A,0xBCAD,0x4253, + 0x3522,0x0000,0xBCAF,0x4422,0x0000,0xBCB0,0x5668,0x5669, + 0x3E6F,0x0000,0x0000,0x0000,0x0000,0x4B39,0xBCB1,0x0000, + 0x566C,0x0000,0x0000,0x566B,0x566A,0x497D,0x0000,0x5673, + 0x0000,0xBCB4,0x0000,0xBCB2,0x4B5A,0x0000,0x566D,0x0000, + 0xBCB3,0xBCB5,0x0000,0x0000,0x566F,0x4B6B,0xBCB6,0x566E, + 0xBCB7,0x0000,0x0000,0xBCB8,0xBCB9,0x0000,0xBCBA,0x5670, + 0x0000,0x4828,0x5671,0x4A3E,0x5672,0x0000,0x0000,0x0000, + 0xBCBB,0x0000,0xBCBC,0xBCBD,0xBCBE,0xBCBF,0xBCC0,0x0000, + 0xBCC1,0x0000,0x3433,0x4A3F,0x472F,0x5674,0x5675,0x0000, + 0x392C,0x3434,0x5676,0x3838,0x4D44,0x4D29,0x3476,0x5678, + 0xBCC2,0x4423,0x0000,0x392D,0x3E31,0x0000,0x0000,0x485F, + 0x0000,0x0000,0x3E32,0xBCC3,0x0000,0x0000,0xBCC4,0x3D78, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x446C,0x4A79,0x4539, + 0x0000,0x0000,0x392E,0x0000,0x495C,0x0000,0x0000,0x0000, + 0x5679,0x0000,0xBCC5,0x0000,0xBCC6,0xBCC7,0x4559,0x3A42, + 0xBCC8,0x0000,0xBCC9,0x384B,0xBCCA,0x446D,0x0000,0x0000, + 0x0000,0xBCCB,0x0000,0xBCCC,0x0000,0x3043,0x3D6E,0x392F, + 0x4D47,0x0000,0x0000,0x0000,0x0000,0xBCCD,0xBCCE,0xBCCF, + 0x0000,0x567A,0x567B,0x4751,0x0000,0x0000,0xBCD0,0x0000, + 0x567C,0x4E77,0x4F2D,0xBCD2,0xBCD1,0x0000,0xBCD3,0x567E, + 0x567D,0xBCD4,0xBCD5,0x3347,0xBCD6,0xBCD7,0x5721,0x0000, + 0x0000,0x0000,0x5724,0x5725,0xBCD8,0x5723,0xBCD9,0x4940, + 0x3E33,0x5727,0x5726,0x5722,0x0000,0xBCDA,0x0000,0x0000, + 0x5728,0x5729,0x0000,0xBCDB,0x572A,0x0000,0x0000,0x0000, + 0x572D,0x572B,0x0000,0x572C,0x572E,0x0000,0x3164,0x446E, + 0x572F,0x0000,0x377A,0x3276,0x4736,0x0000,0x5730,0x467B, + + /* 5F00h */ + 0x0000,0x4A5B,0xBCDC,0x5731,0x4F2E,0x0000,0xBCDD,0xBCDE, + 0xBCDF,0x5732,0x4A40,0x5735,0x5021,0x5031,0xBCE0,0x3C30, + 0x4675,0x5736,0x0000,0x355D,0x4424,0x307A,0x5737,0x4A26, + 0x3930,0xBCE1,0x0000,0x4350,0xBCE2,0xBCE3,0x0000,0x446F, + 0x0000,0xBCE4,0xBCE5,0xBCE6,0xBCE7,0x4C6F,0x3839,0x384C, + 0xBCE8,0x5738,0x0000,0xBCE9,0xBCEA,0x5739,0xBCEB,0x573F, + 0xBCEC,0x3C65,0x0000,0x0000,0xBCED,0x4425,0xBCEE,0x362F, + 0x573A,0x0000,0x0000,0xBCEF,0x492B,0xBCF0,0x4346,0xBCF1, + 0xBCF2,0x573B,0x0000,0x0000,0xBCF3,0xBCF4,0x0000,0xBCF5, + 0x573C,0x0000,0x3630,0x0000,0x573D,0xBCF6,0x573E,0x0000, + 0xBCF7,0x5740,0x0000,0x4576,0xBCF8,0x0000,0x5741,0x5742, + 0xBCF9,0x5743,0x0000,0xBCFA,0x5734,0x5733,0x0000,0x0000, + 0xBCFB,0x5744,0x3741,0xBCFC,0xBCFD,0x0000,0x4927,0xBCFE, + 0x0000,0x3A4C,0x4937,0x4426,0x494B,0x5745,0x0000,0xBDA1, + 0x3E34,0x3146,0xBDA2,0x5746,0xBDA3,0xBDA4,0x0000,0x5747, + 0xBDA5,0x4C72,0xBDA6,0x0000,0x4860,0xBDA7,0xBDA8,0x574A, + 0x317D,0x402C,0x5749,0x5748,0x3742,0x4254,0x0000,0x574E, + 0x574C,0xBDA9,0x574B,0x4E27,0x3865,0xBDAA,0x0000,0xBDAB, + 0x3D79,0x574D,0x454C,0x3D3E,0x0000,0x0000,0xBDAC,0x4640, + 0x5751,0x5750,0x0000,0x0000,0xBDAD,0xBDAE,0x574F,0x0000, + 0x5752,0x3866,0xBDAF,0x0000,0xBDB2,0x0000,0x0000,0xBDB0, + 0x5753,0x497C,0x3D5B,0xBDB1,0xBDB3,0x5754,0x4879,0xBDB4, + 0xBDB5,0xBDB6,0x0000,0x4641,0x4427,0x0000,0x0000,0x0000, + 0xBDB7,0x4530,0x0000,0x0000,0x5755,0x352B,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x3F34,0xBDB8,0x492C,0x0000,0xBDB9, + 0xBDBA,0xBDBB,0x0000,0xBDBC,0x3477,0x4726,0x0000,0x0000, + 0xBDBD,0xBDBE,0xBDBF,0xBDC0,0xBDC1,0x0000,0x5756,0x3B56, + 0x4B3A,0x4B3B,0x0000,0x0000,0x317E,0x575B,0xBDC2,0x0000, + 0x4369,0xBDC3,0xBDC4,0x0000,0x5758,0x0000,0x0000,0x0000, + 0xBDC5,0xBDC6,0xBDC7,0x3277,0xBDC8,0xBDC9,0xBDCA,0xBDCB, + 0x582D,0x575A,0xBDCC,0xBDCD,0x0000,0x4730,0xBDCE,0x0000, + 0x5759,0x0000,0xBDCF,0x5757,0xBDD0,0x397A,0x0000,0x575D, + + /* 6000h */ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xBDD1, + 0x0000,0x0000,0xBDD2,0x0000,0x0000,0xBDD3,0x5763,0x5769, + 0x5761,0x0000,0x455C,0xBDD4,0xBDD5,0x5766,0x495D,0xBDD6, + 0xBDD7,0x5760,0xBDD8,0x5765,0x4E67,0x3B57,0x0000,0xBDD9, + 0x4255,0x575E,0x0000,0x0000,0xBDDA,0x355E,0x5768,0x402D, + 0x3165,0x5762,0x3278,0x5767,0x0000,0xBDDB,0x0000,0x3631, + 0x0000,0x5764,0x0000,0xBDDC,0x0000,0xBDDD,0x0000,0x0000, + 0x0000,0x0000,0x576A,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xBDDE,0x576C,0x5776,0x5774,0x0000,0x0000,0x5771,0xBDDF, + 0xBDE0,0xBDE1,0x5770,0x4E78,0xBDE2,0x5772,0x0000,0x0000, + 0x3632,0xBDE3,0x3931,0x0000,0xBDE4,0x3D7A,0xBDE5,0xBDE6, + 0x0000,0x5779,0x576B,0x0000,0x0000,0xBDE7,0x0000,0x576F, + 0x575F,0xBDE8,0x327A,0x5773,0x5775,0x4351,0x0000,0xBDE9, + 0x3A28,0x3238,0x576D,0x5778,0x5777,0x3633,0x0000,0x4229, + 0x3366,0xBDEA,0x0000,0x0000,0x0000,0x3743,0x0000,0x576E, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xBDEB,0xBDEC, + 0x0000,0x577A,0xBDED,0x577D,0x5821,0x0000,0xBDEE,0x0000, + 0xBDEF,0x3C3D,0xBDF0,0x5827,0x4470,0x577B,0xBDF1,0x0000, + 0x0000,0xBDF2,0x5825,0xBDF3,0x3279,0xBDF4,0x5823,0x5824, + 0xBDF5,0x0000,0x577E,0x5822,0x0000,0xBDF6,0xBDF7,0x3867, + 0x4D2A,0x0000,0xBDF8,0x3435,0xBDF9,0xBDFA,0x3159,0x5826, + 0xBDFB,0x473A,0x302D,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xBDFC,0xBDFD,0x4861,0x575C,0x582C,0x5830,0x4C65,0xBDFE, + 0x5829,0x0000,0x0000,0xBEA1,0x4569,0x582E,0xBEA2,0x0000, + 0x0000,0x0000,0xBEA3,0x0000,0xBEA4,0x3E70,0x582F,0x4657, + 0xBEA5,0xBEA6,0xBEA7,0xBEA8,0x0000,0x0000,0xBEA9,0xBEAA, + 0x0000,0x4F47,0x0000,0x582B,0xBEAB,0xBEAC,0x0000,0x0000, + 0x5831,0xBEAD,0x397B,0xBEAE,0x404B,0xBEAF,0xBEB0,0x3054, + 0x582A,0x5828,0xBEB1,0x415A,0x0000,0xBEB2,0x0000,0x577C, + 0x3B34,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x4246,0x583D,0xBEB3,0x415B,0x5838,0xBEB4,0x5835,0x5836, + 0xBEB5,0x3C66,0x5839,0x583C,0xBEB6,0xBEB7,0x0000,0x0000, + + /* 6100h */ + 0x5837,0x3D25,0xBEB8,0x583A,0x0000,0x0000,0x5834,0xBEB9, + 0x4C7C,0x4C7B,0xBEBA,0x0000,0xBEBB,0x583E,0x583F,0x3055, + 0xBEBC,0xBEBD,0xBEBE,0xBEBF,0xBEC0,0x5833,0xBEC1,0xBEC2, + 0x0000,0xBEC3,0x3672,0x3026,0xBEC4,0x0000,0xBEC5,0x3436, + 0x0000,0x583B,0xBEC6,0x0000,0x0000,0x0000,0x0000,0x5843, + 0x5842,0x0000,0xBEC7,0xBEC8,0x5847,0x0000,0x0000,0x0000, + 0xBEC9,0xBECA,0x0000,0x0000,0x5848,0xBECB,0xBECC,0xBECD, + 0x0000,0xBECE,0x0000,0x0000,0x5846,0x5849,0x5841,0x5845, + 0x0000,0xBECF,0x584A,0x0000,0x584B,0xBED0,0xBED1,0x5840, + 0x3B7C,0xBED2,0x5844,0x4256,0x3932,0x5832,0x3F35,0x0000, + 0x0000,0x0000,0x0000,0x5858,0x0000,0x4A69,0x0000,0x0000, + 0x584E,0x584F,0x5850,0x0000,0x0000,0x5857,0xBED3,0x5856, + 0xBED4,0x0000,0x4B7D,0x3437,0x0000,0x5854,0x0000,0x3745, + 0x3334,0x0000,0x0000,0x5851,0xBED5,0x0000,0x4E38,0x5853, + 0x3056,0x5855,0xBED6,0x584C,0x5852,0x5859,0x3744,0x584D, + 0xBED7,0x0000,0x0000,0xBED8,0xBED9,0x0000,0x4D5D,0xBEDA, + 0xBEDB,0xBEDC,0x4D2B,0xBEDD,0xBEDE,0x0000,0x0000,0x585C, + 0x0000,0x0000,0x5860,0xBEDF,0x0000,0xBEE0,0x417E,0x0000, + 0x4E79,0x5861,0xBEE1,0xBEE2,0x585E,0x0000,0x585B,0xBEE3, + 0xBEE4,0x585A,0x585F,0x0000,0xBEE5,0xBEE6,0x0000,0xBEE7, + 0xBEE8,0x0000,0x0000,0x0000,0x4A30,0xBEE9,0x0000,0x4634, + 0xBEEA,0x3746,0xBEEB,0x5862,0x585D,0xBEEC,0x5863,0x0000, + 0x0000,0x0000,0x377B,0x0000,0x0000,0x0000,0x3231,0x0000, + 0xBEED,0xBEEE,0x586B,0x0000,0xBEEF,0x0000,0x3438,0x0000, + 0xBEF0,0xBEF1,0xBEF2,0x5869,0x0000,0x0000,0x586A,0x3A29, + 0x5868,0x5866,0x5865,0x586C,0x5864,0x586E,0xBEF3,0xBEF4, + 0x327B,0x0000,0x0000,0x0000,0x0000,0xBEF5,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0xBEF6,0xBEF7,0xBEF8,0xBEF9, + 0x0000,0xBEFA,0xBEFB,0x5870,0x0000,0xBEFE,0x586F,0xBEFC, + 0x0000,0xBEFD,0x0000,0x0000,0xBFA1,0xBFA2,0x0000,0xBFA3, + 0x0000,0x0000,0x4428,0x0000,0x5873,0x0000,0x5871,0x5867, + 0x377C,0x0000,0x5872,0x0000,0x5876,0x5875,0x5877,0x5874, + + /* 6200h */ + 0x5878,0xBFA4,0x0000,0xBFA5,0xBFA6,0x0000,0x0000,0xBFA7, + 0x5879,0x587A,0x4A6A,0x0000,0x587C,0x587B,0x3D3F,0x0000, + 0x402E,0x3266,0x327C,0xBFA8,0x587D,0xBFA9,0x303F,0x0000, + 0x0000,0x0000,0x404C,0x587E,0xBFAA,0x6C43,0x5921,0x3761, + 0xBFAB,0x5922,0xBFAC,0xBFAD,0x0000,0x0000,0x406F,0xBFAE, + 0x0000,0xBFAF,0x5923,0xBFB0,0x0000,0x0000,0x5924,0x353A, + 0x5925,0x0000,0x5926,0x5927,0x4257,0x0000,0x0000,0x0000, + 0x384D,0xBFB1,0x0000,0x4C61,0x0000,0xBFB2,0x0000,0x4B3C, + 0x3D6A,0x5928,0xBFB3,0xBFB4,0xBFB5,0x0000,0xBFB6,0x4070, + 0x6E3D,0x4862,0x0000,0x3C6A,0xBFB7,0x3A4D,0x5929,0x0000, + 0xBFB8,0xBFB9,0xBFBA,0x4247,0xBFBB,0x4A27,0xBFBC,0x0000, + 0x4271,0x0000,0xBFBD,0x592C,0xBFBE,0x0000,0x592A,0x0000, + 0x592D,0x0000,0x0000,0x592B,0xBFBF,0x0000,0x0000,0x0000, + 0x592E,0x0000,0x0000,0x0000,0x0000,0xBFC0,0x4A31,0xBFC1, + 0x0000,0x3037,0x0000,0xBFC2,0x0000,0x0000,0x495E,0x0000, + 0x0000,0x4863,0xBFC3,0x0000,0x592F,0xBFC4,0x5932,0x3E35, + 0x353B,0x0000,0x5930,0x5937,0x3E36,0x0000,0x0000,0x0000, + 0x0000,0x5931,0x4744,0x0000,0x0000,0xBFC5,0xBFC6,0xBFC7, + 0xBFC8,0x4D5E,0x5933,0x5934,0x5938,0x456A,0x5935,0x3933, + 0x405E,0x0000,0x0000,0x5946,0x4834,0x0000,0x4272,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xBFC9,0x0000, + 0xBFCA,0x0000,0x0000,0x4864,0x5A2D,0x0000,0x0000,0x0000, + 0x0000,0x4A7A,0x0000,0xBFCB,0x0000,0x4471,0xBFCC,0xBFCD, + 0x0000,0x4B75,0xBFCE,0x593B,0x3221,0x436A,0xBFCF,0xBFD0, + 0x0000,0x0000,0x5944,0x0000,0xBFD1,0x4334,0x593E,0x5945, + 0x5940,0x5947,0x5943,0x0000,0x5942,0x476F,0xBFD2,0x593C, + 0x327D,0x593A,0x3571,0x4273,0x5936,0xBFD3,0xBFD4,0x5939, + 0x3934,0x405B,0xBFD5,0x3E37,0x5941,0x4752,0x0000,0x0000, + 0x3572,0x3348,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0xBFD6,0x0000,0x3367,0x3F21,0x5949,0x594E, + 0x0000,0x594A,0xBFD7,0x377D,0xBFD8,0x594F,0x3B22,0x3969, + 0x0000,0x0000,0x0000,0x0000,0xBFD9,0xBFDA,0x3D26,0x593D, + + /* 6300h */ + 0x0000,0x3B7D,0x594C,0xBFDB,0xBFDC,0x0000,0x0000,0x3B58, + 0x594D,0x3044,0xBFDD,0xBFDE,0x5948,0xBFDF,0x0000,0x0000, + 0xBFE0,0x4429,0x0000,0xBFE1,0x0000,0x0000,0xBFE2,0x0000, + 0xBFE3,0x3573,0x0000,0x0000,0x0000,0x0000,0x0000,0x3634, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x594B, + 0x3027,0xBFE4,0xBFE5,0x3A43,0x0000,0xBFE6,0x0000,0x3F36, + 0x0000,0x0000,0x0000,0x0000,0x0000,0xBFE7,0xBFE8,0x0000, + 0x0000,0xBFE9,0x4472,0x0000,0xBFEA,0x4854,0x5951,0x415E, + 0x0000,0xBFEB,0xBFEC,0xBFED,0xBFEE,0x0000,0xBFEF,0x0000, + 0x0000,0x422A,0xBFF0,0xBFF1,0x3B2B,0x5952,0xBFF2,0x5954, + 0x5950,0x0000,0xBFF3,0xBFF4,0xBFF5,0x4A61,0x0000,0x443D, + 0xBFF6,0x0000,0x0000,0xBFF7,0x415C,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0xBFF8,0xBFF9,0x4A7B, + 0x3C4E,0x5960,0x0000,0x595F,0xBFFA,0xBFFB,0x3F78,0x0000, + 0x0000,0xBFFC,0x377E,0x0000,0xBFFD,0xBFFE,0x5959,0x3E39, + 0xC0A1,0x0000,0x4668,0x4731,0xC0A2,0xC0A3,0x0000,0xC0A4, + 0x5957,0x0000,0xC0A5,0x415D,0xC0A6,0x0000,0x0000,0xC0A7, + 0x3C78,0x595C,0xC0A8,0x0000,0x3E38,0x0000,0x5956,0x595B, + 0xC0A9,0x0000,0x4753,0x0000,0xC0AA,0xC0AB,0x5955,0x0000, + 0x3721,0xC0AC,0xC0AD,0x335D,0x0000,0x0000,0xC0AE,0x595D, + 0x4E2B,0x3A4E,0x4335,0x595A,0xC0AF,0x405C,0xC0B0,0x3935, + 0x3F64,0x3166,0x413C,0x5958,0x3545,0xC0B1,0xC0B2,0xC0B3, + 0x0000,0x0000,0x3747,0x0000,0x444F,0x595E,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x415F,0x0000,0xC0B4,0x5961,0x0000, + 0x5963,0xC0B5,0x0000,0x4237,0x5969,0xC0B6,0x5964,0x0000, + 0xC0B7,0x5966,0x0000,0x0000,0x0000,0x0000,0xC0B8,0x4941, + 0x4473,0xC0B9,0x5967,0xC0BA,0xC0BB,0xC0BC,0x4D2C,0x0000, + 0x0000,0x0000,0x4D48,0x3439,0xC0BD,0x0000,0x0000,0x0000, + 0xC0BE,0x302E,0x0000,0x5965,0x0000,0xC0BF,0x0000,0x0000, + 0x0000,0x5962,0xC0C0,0x0000,0xC0C1,0x0000,0x3478,0x0000, + 0x0000,0x0000,0xC0C2,0xC0C3,0x3167,0xC0C4,0x5968,0x0000, + 0xC0C5,0xC0C6,0x4D49,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* 6400h */ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x596C,0x0000, + 0x0000,0xC0C7,0xC0C8,0x0000,0x0000,0x423B,0x0000,0x5973, + 0xC0C9,0x0000,0xC0CA,0x596D,0xC0CB,0x0000,0x596A,0x5971, + 0xC0CC,0x0000,0x0000,0x0000,0x5953,0x0000,0xC0CD,0x0000, + 0xC0CE,0x0000,0xC0CF,0x0000,0xC0D0,0xC0D1,0x596E,0x0000, + 0x5972,0xC0D2,0xC0D3,0x0000,0x4842,0x456B,0x0000,0xC0D4, + 0xC0D5,0x0000,0x0000,0x0000,0x596B,0xC0D6,0x596F,0x0000, + 0x0000,0x0000,0x3748,0x0000,0x0000,0xC0D7,0x3A71,0xC0D8, + 0x0000,0x0000,0x405D,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0xC0D9,0x0000,0x0000,0x5977,0xC0DA, + 0x0000,0xC0DB,0xC0DC,0xC0DD,0xC0DE,0x0000,0x0000,0x0000, + 0x4526,0x0000,0xC0DF,0xC0E0,0xC0E1,0xC0E2,0x0000,0xC0E3, + 0xC0E4,0xC0E5,0x0000,0xC0E6,0x0000,0x0000,0x0000,0x5974, + 0x0000,0x4B60,0x0000,0x0000,0x0000,0xC0E7,0x0000,0x5975, + 0x0000,0x0000,0x0000,0xC0E8,0xC0E9,0x0000,0x5976,0x0000, + 0x4C4E,0x0000,0x4022,0xC0EA,0x0000,0xC0EB,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x3762,0x0000,0xC0EC,0x0000,0xC0ED, + 0x597D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xC0EE, + 0xC0EF,0xC0F0,0x3B35,0x597A,0x0000,0x5979,0x0000,0x0000, + 0xC0F1,0xC0F2,0x4732,0xC0F3,0x0000,0xC0F4,0x4635,0xC0F5, + 0x0000,0xC0F6,0x0000,0xC0F7,0x4531,0x597B,0xC0F8,0x0000, + 0xC0F9,0x597C,0x0000,0x496F,0xC0FA,0x4745,0x3B23,0x0000, + 0x4071,0x0000,0x4B50,0xC0FB,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x3349,0x0000,0x5A25,0x597E,0xC0FC,0xC0FD,0xC0FE, + 0x0000,0x4D4A,0x5A27,0x0000,0xC1A1,0x5A23,0x0000,0x5A24, + 0x0000,0xC1A2,0xC1A3,0xC1A4,0xC1A5,0x4160,0xC1A6,0x0000, + 0xC1A7,0xC1A8,0x5A22,0x0000,0x593F,0xC1A9,0x0000,0xC1AA, + 0x5A26,0x0000,0x5A21,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x5A2B,0x5A2C,0x4527,0x5A2E,0xC1AB,0xC1AC,0x3B24,0x5A29, + 0x0000,0xC1AD,0xC1AE,0x0000,0x353C,0xC1AF,0x0000,0x5A2F, + 0xC1B0,0x5A28,0x5A33,0x0000,0x5A32,0xC1B1,0x5A31,0xC1B2, + 0x0000,0x0000,0x5A34,0xC1B3,0x0000,0x5A36,0x3E71,0xC1B4, + + /* 6500h */ + 0x5A35,0xC1B5,0x0000,0x0000,0xC1B6,0x5A39,0x0000,0x0000, + 0xC1B7,0xC1B8,0xC1B9,0x0000,0x0000,0x0000,0x0000,0xC1BA, + 0x0000,0x0000,0x0000,0xC1BB,0xC1BC,0x0000,0xC1BD,0x0000, + 0x5A37,0xC1BE,0x0000,0xC1BF,0x5A38,0x5970,0xC1C0,0xC1C1, + 0x0000,0x0000,0xC1C2,0x5A3B,0x5A3A,0x0000,0xC1C3,0x0000, + 0x0000,0xC1C4,0x5978,0x5A3C,0x5A30,0x0000,0xC1C5,0x3B59, + 0x0000,0xC1C6,0x0000,0x0000,0x5A3D,0x5A3E,0x5A40,0x5A3F, + 0x5A41,0x327E,0xC1C7,0x3936,0xC1C8,0xC1C9,0x4A7C,0x402F, + 0x0000,0x0000,0x0000,0xC1CA,0x0000,0x384E,0x0000,0xC1CB, + 0x5A43,0xC1CC,0x0000,0x0000,0x0000,0x5A46,0x0000,0x4952, + 0xC1CD,0x355F,0xC1CE,0x0000,0xC1CF,0x5A45,0x5A44,0x4754, + 0x5A47,0x3635,0x0000,0x0000,0x0000,0x5A49,0x5A48,0xC1D0, + 0xC1D1,0x0000,0x343A,0x3B36,0x0000,0x0000,0x4658,0xC1D2, + 0x0000,0x0000,0x0000,0xC1D3,0x3749,0x0000,0x0000,0x0000, + 0x3F74,0x0000,0x5A4A,0x0000,0x4030,0x4528,0x0000,0x495F, + 0x5A4B,0x0000,0xC1D4,0x0000,0x0000,0xC1D5,0x0000,0x0000, + 0x0000,0xC1D6,0x5A4C,0x5A4D,0x0000,0xC1D7,0x0000,0x4A38, + 0x555D,0x4046,0xC1D8,0x0000,0x494C,0x0000,0x3A58,0x0000, + 0x4865,0x4843,0xC1D9,0x0000,0x0000,0xC1DA,0x0000,0x454D, + 0xC1DB,0x4E41,0x0000,0x5A4F,0x3C50,0xC1DC,0x0000,0x5A50, + 0xC1DD,0x3036,0x0000,0xC1DE,0x3654,0x404D,0xC1DF,0x4960, + 0x0000,0x0000,0x0000,0x5A51,0x3B42,0x4347,0xC1E0,0x3B5B, + 0x3F37,0x0000,0xC1E1,0xC1E2,0xC1E3,0x0000,0x0000,0x5A52, + 0x0000,0x4A7D,0x0000,0x0000,0x3177,0x3B5C,0x0000,0xC1E4, + 0x0000,0x5A55,0xC1E5,0x5A53,0x5A56,0x4E39,0x5A54,0x0000, + 0xC1E6,0xC1E7,0x0000,0x407B,0x5A57,0x0000,0xC1E8,0x4232, + 0xC1E9,0x0000,0x5A58,0x0000,0xC1EA,0x0000,0xC1EB,0x347A, + 0xC1EC,0x5A5A,0x0000,0x5A59,0x0000,0x0000,0x0000,0xC1ED, + 0x5A5B,0x5A5C,0x347B,0x0000,0x0000,0x467C,0x4336,0x356C, + 0x3B5D,0x4161,0x0000,0x0000,0x3D5C,0x3030,0x0000,0x0000, + 0xC1EE,0x5A5D,0xC1EF,0x0000,0xC1F0,0xC1F1,0x0000,0x0000, + 0x0000,0xC1F2,0x3222,0x5A61,0x0000,0x0000,0xC1F3,0xC1F4, + + /* 6600h */ + 0xC1F5,0x0000,0x3937,0x5A60,0xC1F6,0x0000,0x3A2B,0x3E3A, + 0xC1F7,0xC1F8,0x5A5F,0x0000,0x3E3B,0xC1F9,0x4C40,0x3A2A, + 0x0000,0xC1FA,0xC1FB,0x3057,0x404E,0xC1FC,0xC1FD,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x5A66,0xC1FE,0xC2A1,0x4031, + 0x3147,0xC2A2,0xC2A3,0xC2A4,0xC2A5,0x3D55,0xC2A6,0x4B66, + 0x3A72,0xC2A7,0xC2A8,0xC2A9,0xC2AA,0x3E3C,0xC2AB,0x4027, + 0xC2AC,0xC2AD,0x0000,0xC2AE,0x5A65,0x5A63,0x5A64,0xC2B0, + 0x0000,0xC2AF,0x0000,0x0000,0x436B,0x0000,0x0000,0x5B26, + 0xC2B1,0x5A6A,0x3B7E,0x3938,0x5A68,0xC2B2,0xC2B3,0x0000, + 0x0000,0x5A69,0xC2B4,0x3F38,0xC2B5,0x0000,0xC2B7,0x5A67, + 0x0000,0xC2B6,0x3B2F,0x0000,0x0000,0x0000,0x0000,0xC2B8, + 0xC2B9,0xC2BA,0x0000,0xC2BB,0xC2BC,0x5A6C,0x5A6B,0x5A70, + 0xC2BD,0xC2BE,0x5A71,0x0000,0x5A6D,0x0000,0x3322,0x5A6E, + 0x5A6F,0x4855,0xC2C0,0xC2C1,0xC2C2,0x0000,0x4961,0x374A, + 0x5A72,0x0000,0x0000,0xC2C4,0x4032,0xC2C5,0x3E3D,0xC2C7, + 0xC2C8,0xC2C9,0x4352,0xC2CA,0xC2CC,0x0000,0xC2C3,0xC2C6, + 0xC2CB,0x3647,0x0000,0x5A73,0x5A77,0x0000,0x0000,0x324B, + 0x5A74,0x5A76,0x0000,0xC2CD,0xC2CE,0xC2CF,0x5A75,0x0000, + 0xC2D0,0x3D6B,0xC2D1,0x0000,0x0000,0x0000,0x4348,0x3045, + 0x5A78,0xC2D2,0xC2D3,0xC2D4,0xC2D5,0x5A79,0x0000,0xC2D6, + 0xC2D7,0x0000,0x442A,0x0000,0xC2D8,0x0000,0x4E71,0x0000, + 0x0000,0x0000,0x0000,0x3B43,0x0000,0xC2D9,0x4A6B,0x0000, + 0x0000,0xC2DA,0xC2DB,0x0000,0x4B3D,0xC2DC,0x0000,0x0000, + 0x5B22,0x5A7B,0x0000,0xC2DD,0x5A7E,0x0000,0x5A7D,0xC2DE, + 0xC2DF,0x5A7A,0xC2E0,0xC2E1,0x5B21,0x0000,0x0000,0x465E, + 0xC2E2,0x5A7C,0x0000,0x0000,0xC2E3,0x0000,0xC2E4,0xC2E5, + 0x0000,0x0000,0x0000,0x0000,0xC2E6,0x0000,0x5B23,0x0000, + 0x0000,0x3D6C,0x5B24,0xC2E7,0x4D4B,0x4778,0x0000,0xC2E8, + 0x5B25,0x0000,0x0000,0x0000,0x0000,0x0000,0x5B27,0x0000, + 0xC2E9,0x5B28,0x0000,0xC2EA,0xC2EB,0x0000,0xC2EC,0x0000, + 0x5B29,0x0000,0x364A,0x3148,0x3939,0x5B2A,0x0000,0x5B2B, + 0x3D71,0x4162,0xC2ED,0xC2BF,0x5258,0x413E,0x413D,0x4258, + + /* 6700h */ + 0x3A47,0x0000,0x0000,0x5072,0x0000,0xC2EE,0x0000,0xC2EF, + 0x376E,0x4D2D,0x0000,0x4A7E,0x0000,0x497E,0xC2F0,0x5B2C, + 0x0000,0x0000,0x0000,0xC2F1,0x3A73,0x443F,0x5B2D,0x4F2F, + 0x0000,0xC2F2,0x0000,0x4B3E,0xC2F3,0x442B,0x5B2E,0x347C, + 0xC2F4,0x0000,0xC2F5,0x0000,0x0000,0x0000,0x5B2F,0x5B30, + 0x4C5A,0x0000,0x4C24,0x4B76,0x4B5C,0x3B25,0x5B32,0x0000, + 0x0000,0x3C6B,0x0000,0xC2F6,0x4B51,0x0000,0x5B34,0x5B37, + 0x5B36,0x0000,0x3479,0x0000,0x0000,0x3560,0xC2F7,0x5B33, + 0x0000,0x5B35,0x0000,0x0000,0x0000,0xC2F8,0x5B38,0xC2F9, + 0xC2FA,0x3F79,0x0000,0x0000,0xC2FB,0x0000,0x4D7B,0x3049, + 0x3A60,0x423C,0x0000,0x3C5D,0xC2FC,0xC2FD,0x3E73,0x0000, + 0x0000,0x5B3B,0x0000,0x0000,0x454E,0xC2FE,0x5B39,0x422B, + 0x5B3A,0x3E72,0x4C5D,0x5B3C,0x5B3D,0x4D68,0xC3A1,0x0000, + 0x0000,0x0000,0x5B42,0x0000,0xC3A2,0x393A,0xC3A3,0x4755, + 0x5B3F,0x456C,0x5A5E,0x5A62,0xC3A4,0x354F,0xC3A5,0x4747, + 0x0000,0x0000,0x0000,0xC3A6,0x5B41,0x0000,0x3E3E,0x4844, + 0x0000,0xC3A7,0x0000,0x0000,0xC3A8,0x5B47,0x0000,0x487A, + 0x0000,0x5B3E,0x0000,0x5B44,0x5B43,0x0000,0xC3A9,0xC3AA, + 0x404F,0xC3AB,0x0000,0xC3AC,0x0000,0x4B6D,0xC3AD,0x4E53, + 0xC3AE,0xC3AF,0x4B67,0xC3B0,0x324C,0x3B5E,0x0000,0x0000, + 0x4F48,0x5B46,0x3F75,0x0000,0x0000,0x0000,0x5B45,0x0000, + 0x0000,0x5B40,0x0000,0x0000,0x0000,0x0000,0x0000,0x384F, + 0xC3B1,0xC3B2,0xC3B3,0x5B4C,0x5B4A,0xC3B4,0x324D,0x5B48, + 0x5B4E,0x5B54,0x0000,0xC3B5,0xC3B6,0xC3B7,0x0000,0x0000, + 0xC3B9,0x4248,0xC3BA,0xC3BB,0x4A41,0xC3BC,0x5B56,0x0000, + 0xC3BD,0xC3BE,0x4922,0x0000,0x0000,0x0000,0x5B55,0x4770, + 0x4B3F,0x343B,0xC3BF,0x4077,0x3D40,0x0000,0x0000,0xC3C0, + 0x4453,0xC3C1,0x4D2E,0x0000,0xC3C2,0x5B51,0x5B50,0x0000, + 0x0000,0xC3C3,0x5B52,0x0000,0x5B4F,0x0000,0xC3C4,0x5B57, + 0x0000,0x5B4D,0x0000,0x0000,0x5B4B,0x0000,0x5B53,0x5B49, + 0xC3C5,0x436C,0xC3C6,0x4C78,0x3C46,0x3A74,0xC3C7,0xC3C8, + 0x0000,0xC3B8,0x0000,0x3A3A,0x0000,0x0000,0x4B6F,0x3341, + + /* 6800h */ + 0x0000,0x0000,0x444E,0x464A,0x3149,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x4072,0xC3CA,0x0000,0x4034,0x372A, + 0x0000,0xC3CB,0x0000,0x0000,0x0000,0xC3CC,0x5B59,0xC3CD, + 0x0000,0x393B,0x337C,0x0000,0x0000,0x0000,0x0000,0xC3CF, + 0xC3CE,0x5B5B,0x3374,0x5B61,0xC3D0,0xC3D1,0x0000,0xC3D2, + 0xC3D3,0xC3D4,0x5B5E,0xC3D5,0x4073,0x0000,0x0000,0x0000, + 0x334B,0x3A2C,0x0000,0xC3D6,0x334A,0x3A4F,0x0000,0xC3D7, + 0x5B5C,0x3765,0x374B,0x456D,0xC3D8,0xC3D9,0x5B5A,0x0000, + 0x3046,0x0000,0xC3DA,0x0000,0xC3DB,0x5B5D,0x5B5F,0x0000, + 0x364D,0x372C,0xC3C9,0x343C,0x354B,0xC3DC,0x0000,0xC3DD, + 0xC3DE,0x5B62,0x0000,0xC3DF,0x3A79,0x4B71,0x0000,0x3B37, + 0x0000,0x0000,0x0000,0x5B63,0x0000,0x0000,0x0000,0x4930, + 0x0000,0x0000,0x0000,0xC3E0,0x0000,0x0000,0xC3E1,0xC3E2, + 0xC3E3,0xC3E4,0xC3E5,0x0000,0x5B6F,0xC3E6,0x3233,0x5B64, + 0x0000,0xC3E7,0xC3E8,0xC3E9,0xC3EA,0x0000,0x5B75,0x5B65, + 0x0000,0x4E42,0xC3EB,0x5B6C,0xC3EC,0x475F,0xC3ED,0x0000, + 0xC3EE,0x0000,0x0000,0x0000,0x0000,0x5B74,0x0000,0x5B67, + 0x0000,0x0000,0x0000,0x3034,0x5B69,0x0000,0xC3EF,0x393C, + 0xC3F0,0x0000,0xC3F1,0x5B6B,0xC3F2,0x5B6A,0x0000,0x5B66, + 0x5B71,0xC3F3,0x3E3F,0xC3F4,0x0000,0xC3F5,0x546D,0x3868, + 0x4D7C,0xC3F6,0xC3F7,0x0000,0x0000,0x5B68,0xC3F8,0x4474, + 0x3323,0x3A2D,0xC3F9,0x5B60,0x0000,0x5B70,0x3361,0x0000, + 0x0000,0x5B6E,0x5B72,0xC3FA,0x456E,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x347E,0xC3FB,0x5C32,0x0000, + 0xC3FC,0x4C49,0x5B77,0x347D,0xC3FD,0x5B7E,0x0000,0xC3FE, + 0xC4A1,0xC4A2,0x4B40,0xC4A3,0x5C21,0x5C23,0xC4A4,0x5C27, + 0x5B79,0xC4A5,0x432A,0x0000,0xC4A6,0xC4A7,0x0000,0x456F, + 0x5C2B,0x5B7C,0x0000,0x5C28,0x0000,0xC4A8,0x0000,0x5C22, + 0xC4A9,0x0000,0xC4AA,0xC4AB,0xC4AC,0xC4AD,0x3F39,0x5C2C, + 0xC4AE,0xC4AF,0x4033,0x0000,0x0000,0xC4B0,0xC4B1,0x0000, + 0x0000,0x5C2A,0x343D,0xC4B2,0xC4B3,0xC4B4,0x0000,0x0000, + + /* 6900h */ + 0x4F50,0x5B76,0x0000,0x0000,0x5C26,0x3058,0xC4B5,0x0000, + 0x5B78,0xC4B6,0xC4B7,0x4C3A,0x5B7D,0x3F22,0x4447,0x5B73, + 0xC4B8,0xC4B9,0x5C25,0xC4BA,0x0000,0x0000,0xC4BB,0xC4BC, + 0x0000,0x3F7A,0x5C2F,0x3371,0x3821,0x0000,0x0000,0x0000, + 0x0000,0x5C31,0x5B7A,0x5C30,0x0000,0x5C29,0x5B7B,0x0000, + 0x5C2D,0x0000,0x5C2E,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x5C3F,0xC4BD,0x0000,0xC4BE,0x464E,0xC4BF,0x5C24,0x0000, + 0xC4C0,0x5C3B,0x0000,0xC4C1,0x0000,0x5C3D,0x0000,0x4458, + 0x0000,0x0000,0xC4C2,0x0000,0x0000,0xC4C3,0x0000,0x0000, + 0x0000,0xC4C4,0x4D4C,0x0000,0x0000,0x0000,0xC4C5,0x0000, + 0x0000,0x0000,0x0000,0x4976,0x5C38,0x424A,0x0000,0xC4C6, + 0x0000,0x5C3E,0x413F,0xC4C7,0x5C35,0x5C42,0x5C41,0x0000, + 0x466F,0x5C40,0x466A,0xC4C8,0xC4C9,0xC4CA,0xC4CB,0x0000, + 0xC4CC,0xC4CD,0x5C44,0x5C37,0xC4CE,0x3648,0x5C3A,0x3D5D, + 0xC4CF,0xC4D0,0xC4D1,0x4760,0x5C3C,0x364B,0x0000,0x5C34, + 0x5C36,0x5C33,0xC4D2,0xC4D3,0x4F30,0x335A,0x5C39,0xC4D4, + 0xC4D5,0x5C43,0x3335,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x3A67,0x0000,0x0000,0xC4D6,0x315D,0x0000, + 0x0000,0x5C54,0xC4D7,0x0000,0x4F31,0x5C57,0xC4D8,0x0000, + 0xC4D9,0x0000,0x0000,0x3F3A,0x5C56,0x0000,0x0000,0x0000, + 0x5C55,0xC4DA,0x0000,0x0000,0x0000,0xC4DB,0xC4DC,0x5C52, + 0xC4DD,0x0000,0x0000,0xC4DE,0x0000,0xC4DF,0x5C46,0xC4E0, + 0x0000,0x5C63,0x5C45,0x0000,0x5C58,0x0000,0x0000,0xC4E1, + 0xC4E2,0x0000,0xC4E3,0x5C50,0xC4E4,0x0000,0x5C4B,0x5C48, + 0x0000,0x5C49,0x0000,0x5C51,0x0000,0xC4E5,0x0000,0x7422, + 0xC4E6,0x0000,0x5C4E,0x393D,0x4448,0x4164,0x5C4C,0x0000, + 0x5C47,0xC4E7,0x0000,0x5C4A,0x0000,0x0000,0xC4E8,0xC4E9, + 0x4D4D,0x4B6A,0x0000,0x0000,0x0000,0x5C4F,0x5C59,0x0000, + 0x0000,0x0000,0xC4EA,0x0000,0x0000,0xC4EB,0x0000,0x5C61, + 0x5C5A,0x0000,0x0000,0x5C67,0x0000,0x5C65,0xC4EC,0xC4ED, + 0x0000,0xC4EE,0x5C60,0xC4EF,0x0000,0xC4F0,0x0000,0x0000, + 0x0000,0x5C5F,0x0000,0x4450,0x0000,0x4165,0xC4F1,0x5C5D, + + /* 6A00h */ + 0xC4F2,0xC4F3,0x5C5B,0xC4F4,0x0000,0x5C62,0x0000,0x0000, + 0x0000,0x0000,0x5C68,0x4875,0x5C6E,0x0000,0x0000,0xC4F5, + 0x0000,0xC4F6,0x5C69,0x5C6C,0x5C66,0xC4F7,0x0000,0x4374, + 0x0000,0x4938,0xC4F8,0x5C5C,0x0000,0xC4F9,0x5C64,0x3E40, + 0xC4FA,0x4C4F,0x5C78,0x5C6B,0xC4FB,0x0000,0x0000,0x0000, + 0xC4FC,0x3822,0x3223,0x335F,0x0000,0x0000,0x5C53,0x0000, + 0xC4FD,0x0000,0xC4FE,0x0000,0xC5A1,0x3E41,0x5C70,0xC5A2, + 0x5C77,0x3C79,0x3372,0xC5A3,0x0000,0x432E,0xC5A4,0xC5A5, + 0x0000,0x0000,0x0000,0x0000,0x5C6D,0xC5A6,0xC5A7,0x5C72, + 0x5C76,0xC5A8,0xC5A9,0x3636,0x0000,0x0000,0xC5AA,0x0000, + 0xC5AB,0xC5AC,0xC5AD,0x0000,0x0000,0xC5AE,0xC5AF,0x0000, + 0x354C,0x5C74,0x0000,0xC5B0,0x0000,0x0000,0x0000,0x3521, + 0x0000,0x464B,0x5C73,0x0000,0xC5B1,0x0000,0x5C75,0xC5B2, + 0x0000,0x0000,0xC5B3,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0xC5B4,0x5C6F,0xC5B5,0x0000,0x0000,0x0000,0x0000, + 0x5C71,0x0000,0x0000,0x0000,0x0000,0x0000,0xC5B6,0x3360, + 0x4349,0xC5B7,0x0000,0xC5B8,0x5C7C,0x0000,0xC5B9,0xC5BA, + 0x0000,0xC5BB,0x0000,0xC5BC,0x0000,0x5C7A,0x3869,0x0000, + 0x5C79,0xC5BD,0x0000,0x0000,0x0000,0x0000,0x0000,0x5D21, + 0x0000,0x0000,0x0000,0xC5BE,0x5B58,0xC5BF,0xC5C0,0xC5C1, + 0x5C7B,0x0000,0x5C7D,0x5C7E,0x0000,0xC5C2,0x0000,0x0000, + 0x0000,0x0000,0x5D2C,0xC5C3,0x5D28,0x0000,0x5B6D,0xC5C4, + 0xC5C5,0xC5C6,0x0000,0x5D27,0xC5C7,0x0000,0x0000,0x0000, + 0x5D26,0x0000,0x0000,0x5D23,0x0000,0xC5C8,0xC5C9,0xC5CA, + 0x0000,0x5C6A,0x5D25,0x5D24,0x0000,0x0000,0xC5CB,0x0000, + 0xC5CD,0xC5CC,0x0000,0x0000,0xC5CE,0x0000,0x0000,0x0000, + 0xC5CF,0x5D2A,0x0000,0x4F26,0xC5D0,0xC5D1,0xC5D2,0x0000, + 0x0000,0x0000,0x5D2D,0x367B,0xC5D3,0xC5D4,0x5D29,0x5D2B, + 0x0000,0x0000,0x0000,0x0000,0xC5D5,0x0000,0x0000,0xC5D6, + 0x4827,0x0000,0x5D2E,0x0000,0xC5D7,0x0000,0x0000,0x0000, + 0xC5D8,0xC5D9,0xC5DA,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x5D32,0x5D2F,0xC5DB,0xC5DC,0x0000,0x0000, + + /* 6B00h */ + 0x0000,0x0000,0xC5DD,0xC5DE,0x4D73,0x5D30,0xC5DF,0xC5E0, + 0x0000,0xC5E1,0x5C5E,0x0000,0x0000,0x0000,0x0000,0xC5E2, + 0xC5E3,0xC5E4,0x5D33,0x0000,0x0000,0x0000,0x5D34,0xC5E5, + 0x0000,0x0000,0x0000,0xC5E6,0x0000,0x3135,0xC5E7,0x5D36, + 0x3767,0x3C21,0x0000,0x3655,0xC5E8,0x0000,0x0000,0x3224, + 0xC5E9,0x0000,0x0000,0xC5EA,0xC5EB,0x0000,0x0000,0xC5EC, + 0x0000,0x0000,0x4D5F,0x0000,0x0000,0xC5ED,0xC5EE,0x5D38, + 0x5D37,0x5D3A,0x353D,0xC5EF,0x0000,0x3656,0x343E,0xC5F0, + 0x0000,0x0000,0x0000,0x5D3D,0x0000,0x0000,0xC5F1,0x5D3C, + 0x0000,0x5D3E,0xC5F2,0x0000,0x324E,0xC5F3,0x4337,0x0000, + 0x5D3F,0x0000,0xC5F4,0x343F,0x5D41,0x0000,0xC5F5,0x0000, + 0xC5F6,0x5D40,0x0000,0x5D42,0x0000,0xC5F7,0x0000,0x5D43, + 0xC5F8,0x5D44,0x3B5F,0x4035,0x3A21,0x0000,0x4970,0xC5F9, + 0x0000,0x4A62,0x4F44,0xC5FA,0x0000,0x0000,0xC5FB,0x3B75, + 0xC5FC,0x0000,0x0000,0x3A50,0x4E72,0xC5FD,0x0000,0x0000, + 0x5D45,0x5D46,0x0000,0x3B60,0x0000,0xC5FE,0xC6A1,0x5D47, + 0x5D48,0x0000,0xC6A2,0x5D4A,0x5D49,0xC6A3,0x4B58,0x0000, + 0x0000,0x3D5E,0x3C6C,0x3B44,0x0000,0x5D4B,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x5D4D,0x3F23,0xC6A4, + 0x5D4C,0x0000,0x0000,0xC6A5,0x0000,0x0000,0x5D4E,0xC6A6, + 0xC6A7,0x0000,0xC6A8,0xC6A9,0x5D4F,0x0000,0x0000,0x0000, + 0xC6AA,0xC6AB,0x5D50,0x5D51,0xC6AC,0xC6AD,0xC6AE,0x5D52, + 0xC6AF,0x5D54,0x5D53,0x5D55,0x3225,0x434A,0x0000,0x5D56, + 0xC6B0,0xC6B1,0x3B26,0x334C,0x5D57,0xC6B2,0xC6B3,0x4542, + 0x544C,0x0000,0x0000,0xC6B4,0xC6B5,0x3523,0x5D58,0x0000, + 0x0000,0xC6B6,0x0000,0x5D59,0xC6B7,0x4A6C,0x4B68,0x0000, + 0x0000,0x0000,0x4647,0x5D5A,0x4866,0x0000,0xC6B8,0x0000, + 0x487B,0x0000,0xC6B9,0x4C53,0x0000,0x0000,0x0000,0x5D5B, + 0x0000,0xC6BA,0x0000,0xC6BB,0x0000,0x0000,0xC6BC,0xC6BD, + 0x0000,0x0000,0x0000,0x5D5D,0x5D5C,0x0000,0xC6BE,0x5D5F, + 0x0000,0xC6BF,0x0000,0x5D5E,0x0000,0x0000,0x0000,0xC6C0, + 0x0000,0xC6C1,0x0000,0x0000,0x0000,0x0000,0x0000,0xC6C2, + + /* 6C00h */ + 0x0000,0x0000,0xC6C3,0x0000,0xC6C4,0xC6C5,0x0000,0x0000, + 0x5D61,0xC6C6,0x0000,0x0000,0x0000,0xC6C7,0xC6C8,0x3B61, + 0xC6C9,0x4C31,0xC6CA,0x5D62,0x5D63,0x0000,0x0000,0x3524, + 0x0000,0xC6CB,0x0000,0x5D64,0x0000,0x0000,0x0000,0xC6CC, + 0x0000,0x0000,0x0000,0x5D66,0x5D65,0x0000,0xC6CD,0xC6CE, + 0xC6CF,0x0000,0x0000,0x0000,0xC6D0,0x0000,0xC6D1,0x0000, + 0x0000,0x0000,0x0000,0xC6D2,0x3F65,0xC6D3,0xC6D4,0x4939, + 0x314A,0x0000,0xC6D5,0xC6D6,0x0000,0x0000,0x4845,0xC6D7, + 0x4475,0x3D41,0x3561,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0xC6D8,0xC6D9,0x0000,0xC6DA,0x4846,0xC6DB, + 0x3C2E,0x0000,0xC6DC,0x0000,0xC6DD,0x5D68,0x0000,0x3440, + 0x0000,0xC6DE,0x3178,0xC6DF,0xC6E0,0x4672,0x5D67,0x393E, + 0x4353,0x0000,0x5D69,0x0000,0x0000,0x0000,0x0000,0xC7B6, + 0x5D71,0x0000,0x5D6A,0xC6E1,0x0000,0xC6E2,0x0000,0xC6E3, + 0x4241,0x0000,0x3562,0x5D72,0xC6E4,0x0000,0xC6E5,0x0000, + 0xC6E6,0xC6E7,0x3768,0xC6E8,0x0000,0x3525,0x5D70,0x0000, + 0x0000,0x5D6E,0x5D6B,0x4D60,0x0000,0xC6E9,0xC6EA,0xC6EB, + 0x4440,0xC6EC,0x0000,0x0000,0x4659,0x5D6C,0x0000,0x0000, + 0x5D74,0x0000,0x5D73,0x3723,0xC6ED,0xC6EE,0x322D,0xC6EF, + 0xC6F0,0x3A3B,0x5D6D,0x5D6F,0xC6F1,0x0000,0x0000,0xC6F2, + 0x0000,0x4B57,0x4274,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x4B77,0x0000,0x0000,0x5D7C,0x0000, + 0xC6F3,0x5D7D,0xC6F4,0x324F,0xC6F5,0x0000,0x0000,0x0000, + 0x4A28,0x4C7D,0x5E21,0x3C23,0x3E42,0x5D78,0x5D7E,0x3168, + 0x0000,0x3637,0xC6F6,0x0000,0x5D75,0x5D7A,0xC6F7,0x0000, + 0x0000,0x4074,0x4771,0x0000,0x4867,0xC6F8,0x0000,0xC6F9, + 0xC6FA,0xC6FB,0xC6FC,0x5D77,0xC6FD,0x4B21,0xC6FE,0x5D79, + 0x0000,0x5E24,0xC7A1,0x5E22,0xC7A2,0x5D7B,0x0000,0x0000, + 0xC7A3,0x4B22,0x4748,0x3563,0x0000,0x4525,0x0000,0xC7A4, + 0x436D,0xC7A5,0x5E25,0xC7A6,0xC7A7,0x0000,0xC7A8,0x5E23, + 0x4259,0x5D76,0xC7A9,0x314B,0xC7AA,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* 6D00h */ + 0x0000,0x0000,0x0000,0x0000,0xC7AB,0x0000,0x0000,0xC7AC, + 0x0000,0x0000,0xC7AD,0x4D4E,0x5E30,0x0000,0xC7AE,0xC7AF, + 0x0000,0xC7B0,0x5E2F,0xC7B1,0x0000,0x0000,0x0000,0x4076, + 0x0000,0x5E2C,0xC7B2,0x4D6C,0x0000,0x0000,0x4636,0x5E26, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x4445,0xC7B3,0xC7B4, + 0xC7B5,0x314C,0x393F,0x5E29,0x0000,0x0000,0xC7B7,0xC7B8, + 0x0000,0xC7B9,0x3D27,0x5E2E,0x0000,0x5E2D,0x5E28,0x0000, + 0x5E2B,0xC7BA,0x0000,0x3368,0xC7BB,0x5E2A,0x4749,0xC7BC, + 0x0000,0x4E2E,0x0000,0x0000,0x3E74,0x4075,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xC7BD, + 0x0000,0x5E36,0x5E34,0x0000,0x494D,0x0000,0xC7BE,0xC7BF, + 0x0000,0xC7C0,0x0000,0x5E31,0x5E33,0xC7C1,0x313A,0xC7C2, + 0x0000,0x3940,0x4F32,0x0000,0x333D,0x0000,0x4962,0xC7C3, + 0xC7C4,0x0000,0x0000,0x0000,0x4D61,0x0000,0x0000,0x3324, + 0x3F3B,0x5E35,0x0000,0x0000,0xC7C5,0x0000,0x0000,0x0000, + 0x0000,0x0000,0xC7C6,0x0000,0x0000,0x5E3A,0x0000,0xC7C7, + 0x3E43,0x0000,0x0000,0x0000,0x4D30,0x0000,0x5E37,0x0000, + 0x0000,0xC7C8,0xC7C9,0x5E32,0xC7CA,0x5E38,0xC7CB,0xC7CC, + 0xC7CD,0x4E5E,0x0000,0x4573,0x4642,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0xC7CE,0x0000,0xC7CF,0x0000,0x0000,0x3336, + 0x0000,0x0000,0x3155,0x0000,0xC7D0,0x5E3E,0x0000,0xC7D1, + 0x5E41,0xC7D2,0x0000,0x0000,0x4E43,0xC7D3,0x0000,0xC7D4, + 0x4D64,0x0000,0x0000,0x0000,0xC7D5,0x5E48,0x5E42,0x5E3F, + 0xC7D6,0x0000,0xC7D7,0x4E54,0x5E45,0x0000,0xC7D8,0xC7D9, + 0x0000,0x3D4A,0x5E47,0x0000,0x0000,0x5E4C,0xC7DA,0x0000, + 0x4571,0x5E4A,0x0000,0xC7DB,0x0000,0xC7DC,0x5E44,0xC7DD, + 0xC7DE,0x4338,0xC7DF,0x0000,0x5E4B,0xC7E0,0x5E40,0x0000, + 0x5E46,0xC7E1,0x5E4D,0x307C,0x5E43,0x0000,0x5E4E,0xC7E2, + 0xC7E3,0x3F3C,0x0000,0x3D5F,0xC7E4,0x4A25,0xC7E5,0x3A2E, + 0x0000,0x5E3B,0x5E49,0x453A,0xC7E6,0x0000,0x0000,0x0000, + + /* 6E00h */ + 0xC7E7,0x0000,0x0000,0x0000,0xC7E8,0x4036,0x0000,0x3369, + 0x3A51,0x3E44,0x5E3D,0x3D42,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x374C,0x0000,0x5E3C,0x0000,0x0000, + 0x0000,0x5E52,0x3D6D,0x383A,0x0000,0x5E61,0xC7E9,0x5E5B, + 0x3574,0x454F,0xC7EA,0x5E56,0x5E5F,0x302F,0x3132,0xC7EB, + 0x0000,0x3239,0x0000,0x5E58,0x422C,0x5E4F,0x5E51,0x3941, + 0x0000,0x0000,0xC7EC,0x0000,0x0000,0x0000,0xC7ED,0x0000, + 0x5E62,0xC7EE,0x5E5D,0xC7EF,0xC7F0,0x0000,0x5E55,0x0000, + 0x0000,0x0000,0x0000,0x5E5C,0xC7F1,0xC7F2,0x0000,0x0000, + 0xC7F3,0xC7F4,0x4C2B,0xC7F5,0x0000,0x5E5A,0x5E5E,0xC7F6, + 0x0000,0xC7F7,0xC7F8,0xC7F9,0xC7FA,0x0000,0x3850,0xC7FB, + 0x3E45,0x0000,0x0000,0x4339,0xC7FC,0xC7FD,0xC7FE,0x5E54, + 0x0000,0x0000,0xC8A1,0xC8A2,0x0000,0x0000,0x0000,0x4D2F, + 0xC8A3,0x0000,0x0000,0x5E57,0x0000,0x0000,0x5E50,0x4572, + 0x0000,0x0000,0x5E53,0xC8A4,0x0000,0x0000,0x5E59,0x0000, + 0x0000,0x0000,0x0000,0xC8A5,0x0000,0xC8A6,0x4F51,0x3C3E, + 0x4B7E,0x0000,0x5E63,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x482E,0xC8A7,0x0000,0x5E6F, + 0x383B,0x0000,0x0000,0xC8A8,0x0000,0x0000,0x3D60,0x0000, + 0x5E65,0xC8A9,0x0000,0x0000,0x4E2F,0x3942,0x0000,0x5E72, + 0xC8AA,0x0000,0x306E,0x0000,0x0000,0x5E70,0x0000,0xC8AB, + 0x0000,0x0000,0x5E64,0x0000,0x0000,0xC8AC,0xC8AD,0x5E6A, + 0x0000,0xC8AE,0x5E6C,0xC8AF,0x0000,0x0000,0x4D4F,0x5E67, + 0x0000,0x0000,0x452E,0xC8B0,0x0000,0x5E69,0x0000,0xC8B1, + 0xC8B2,0xC8B3,0x5E71,0xC8B4,0x5E6B,0x4C47,0x0000,0xC8B5, + 0xC8B6,0x5E66,0xC8B7,0x3C22,0x5E7E,0xC8B8,0xC8B9,0xC8BA, + 0x0000,0x336A,0x0000,0x5E68,0x5E6D,0x5E6E,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x426C,0x425A,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0xC8BB,0x5E76,0xC8BC,0xC8BD,0x5E7C, + 0x0000,0x0000,0x5E7A,0x0000,0x4529,0x0000,0x0000,0x5F23, + 0x5E77,0xC8BE,0x0000,0xC8BF,0x0000,0xC8C0,0x5E78,0x5E60, + + /* 6F00h */ + 0x0000,0x3579,0x493A,0x0000,0xC8C1,0x0000,0x3C3F,0x0000, + 0xC8C2,0x3977,0xC8C3,0x0000,0xC8C4,0xC8C5,0x0000,0x4F33, + 0x0000,0x5E74,0x0000,0x5F22,0x3169,0x4166,0xC8C6,0x0000, + 0xC8C7,0x0000,0xC8C8,0xC8C9,0x0000,0x0000,0x0000,0x0000, + 0x4779,0x0000,0x3441,0x4E7A,0x0000,0x0000,0xC8CA,0x0000, + 0x0000,0xC8CB,0xC8CC,0x4C21,0x4452,0xC8D3,0x0000,0xC8CD, + 0xC8CE,0x5E7B,0x5E7D,0xC8CF,0x0000,0x0000,0xC8D0,0x0000, + 0x4132,0x0000,0x0000,0xC8D1,0xC8D2,0x0000,0x5F21,0x5E79, + 0x0000,0x5E73,0x0000,0x0000,0x0000,0x3443,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xC8D4, + 0x0000,0xC8D5,0xC8D6,0xC8D7,0x3769,0x0000,0x0000,0xC8D8, + 0x5F2F,0xC8D9,0xC8DA,0x5F2A,0x4078,0xC8DB,0xC8DC,0x3363, + 0x0000,0xC8DD,0xC8DE,0x0000,0x3D61,0x0000,0x5F33,0x0000, + 0xC8DF,0x0000,0x0000,0x0000,0xC8E0,0x5F2C,0x442C,0x5F29, + 0x4459,0x0000,0x0000,0x0000,0x5F4C,0x0000,0x0000,0x0000, + 0x5F26,0x0000,0x5F25,0x0000,0x5F2E,0xC8E1,0xC8E2,0x0000, + 0x5F28,0x5F27,0x5F2D,0xC8E3,0x4021,0x0000,0x5F24,0xC8E4, + 0xC8E5,0x0000,0x0000,0xC8E6,0xC8E7,0xC8E8,0x5F30,0x0000, + 0xC8E9,0x5F31,0xC8EA,0xC8EB,0xC8EC,0x0000,0xC8ED,0x3442, + 0x0000,0x0000,0xC8EE,0x0000,0x0000,0x0000,0x0000,0xC8EF, + 0xC8F0,0x5F36,0x0000,0x5F35,0x5F37,0xC8F1,0xC8F2,0xC8F3, + 0xC8F4,0x0000,0x5F3A,0x0000,0x0000,0x0000,0xC8F5,0xC8F6, + 0xC8F7,0x4543,0x0000,0x5F34,0x0000,0xC8F8,0xC8F9,0x0000, + 0x0000,0x5F38,0x0000,0x0000,0xC8FA,0x0000,0x0000,0x0000, + 0x3763,0x4279,0x5F32,0x473B,0x0000,0xC8FB,0x5F39,0xC8FC, + 0xC8FD,0x0000,0xC8FE,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x5F3E,0x5F3C,0x0000,0x0000, + 0x5F3F,0x0000,0xC9A1,0x5F42,0x0000,0x0000,0xC9A2,0x5F3B, + 0x396A,0x4728,0x0000,0x0000,0x5E39,0x0000,0x0000,0x0000, + 0xC9A3,0xC9A4,0x0000,0x4D74,0x5F3D,0x0000,0x5F41,0x4275, + 0xC9A5,0x5F40,0x0000,0x5F2B,0x0000,0xC9A6,0x6F69,0x0000, + 0x0000,0xC9A7,0x5F45,0x0000,0xC9A8,0xC9A9,0x5F49,0x0000, + + /* 7000h */ + 0xC9AA,0x5F47,0x0000,0x0000,0x0000,0xC9AB,0xC9AC,0xC9AD, + 0x0000,0x5F43,0x0000,0x5F44,0x0000,0xC9AE,0x0000,0x5F48, + 0x0000,0x5F46,0x0000,0x0000,0x0000,0x494E,0x0000,0xC9AF, + 0x5F4E,0x0000,0x5F4B,0x5F4A,0x0000,0x5F4D,0x4654,0x5F4F, + 0xC9B0,0x0000,0x0000,0xC9B1,0x0000,0x0000,0x4375,0x426D, + 0x0000,0x0000,0x0000,0x0000,0x4025,0x0000,0x0000,0xC9B2, + 0x5F50,0x0000,0x5F52,0x0000,0xC9B3,0x0000,0x0000,0xC9B4, + 0x0000,0xC9B5,0x0000,0x0000,0xC9B6,0x0000,0x5F51,0x0000, + 0x0000,0x0000,0x0000,0xC9B7,0xC9B8,0x0000,0x0000,0x0000, + 0xC9B9,0xC9BA,0xC9BB,0xC9BC,0x5E75,0x0000,0xC9C1,0x0000, + 0x0000,0x5F53,0x0000,0x0000,0xC9BD,0xC9BE,0x0000,0x0000, + 0x4667,0x0000,0x0000,0x0000,0x0000,0xC9BF,0xC9C0,0x0000, + 0x0000,0x0000,0x0000,0x5F54,0xC9C2,0xC9C3,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x3250,0xC9C4,0x0000,0xC9C5,0x4574, + 0x3325,0x0000,0x0000,0x0000,0x0000,0xC9C6,0xC9C7,0x0000, + 0x3564,0x0000,0x0000,0x0000,0x3C5E,0x3A52,0xC9C8,0x0000, + 0x0000,0xC9C9,0x0000,0x0000,0x0000,0xC9CA,0xC9CB,0x0000, + 0x0000,0x4F27,0x3F66,0x0000,0x0000,0x0000,0x316A,0x0000, + 0x0000,0x0000,0x5F56,0x0000,0xC9CC,0xC9CD,0xC9CE,0xC9CF, + 0xC9D0,0x5F55,0x0000,0xC9D1,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0xC9D2,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0xC9D3,0x5F59,0x433A,0x5F5C,0x5F57, + 0xC9D4,0xC9D5,0x0000,0x5F5B,0xC9D6,0x0000,0x0000,0xC9D7, + 0x5F5A,0x4540,0x3059,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x4E75,0x0000,0xC9D8,0x5F5E,0x0000,0x0000,0x0000,0x3128, + 0x0000,0xC9D9,0x0000,0xC9DA,0xC9DB,0xC9DC,0xC9DD,0x0000, + 0xC9DE,0x5F60,0x0000,0x0000,0xC9DF,0x5F5F,0x0000,0x5F5D, + 0x0000,0x0000,0x0000,0x0000,0xC9E0,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x5F58,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x4B23,0xC9E1,0x0000,0x0000,0x5F62,0x0000,0x0000, + + /* 7100h */ + 0x0000,0x0000,0x0000,0xC9E2,0xC9E3,0xC9E4,0xC9E5,0xC9E6, + 0x0000,0x5F61,0x0000,0xC9E7,0xC9E8,0x0000,0x0000,0xC9E9, + 0x0000,0x0000,0x0000,0x0000,0x316B,0x0000,0x0000,0x0000, + 0x0000,0x5F64,0x4A32,0x0000,0x5F63,0x0000,0xC9EA,0x0000, + 0xC9EB,0x4C35,0x0000,0x0000,0x0000,0x0000,0x3E47,0x0000, + 0x0000,0x0000,0x0000,0xC9EC,0x0000,0xC9ED,0x0000,0xC9EE, + 0xC9EF,0xC9F0,0x0000,0x0000,0x0000,0x0000,0x4133,0x0000, + 0xC9F1,0x0000,0x0000,0x0000,0x3E46,0x0000,0x0000,0x0000, + 0x0000,0xC9F2,0x0000,0x0000,0x0000,0xC9F3,0xC9F4,0xC9F5, + 0x0000,0x4E7B,0xC9F6,0xC9F7,0x5F6A,0x0000,0x4079,0x0000, + 0xC9F8,0x0000,0xC9F9,0x0000,0x0000,0x5F66,0x5F6B,0xC9FA, + 0x0000,0x316C,0xC9FB,0x0000,0xC9FC,0x0000,0xC9FD,0x0000, + 0xC9FE,0x0000,0x5F69,0x0000,0x4761,0x5F65,0x5F68,0x3E48, + 0xCAA1,0x4851,0x0000,0x0000,0x5F6C,0x0000,0x3C51,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0xCAA2,0x0000,0x0000,0x0000,0x407A,0x0000,0x0000, + 0xCAA3,0x0000,0x0000,0x0000,0x5F6F,0xCAA4,0x0000,0xCAA5, + 0x5F67,0x0000,0x3727,0x0000,0xCAA6,0x0000,0x0000,0x5F6D, + 0x0000,0x0000,0xCAA7,0x0000,0x4D50,0x5F70,0x0000,0x0000, + 0x0000,0x7426,0xCAA8,0xCAA9,0x0000,0x0000,0x0000,0x3D4F, + 0xCAAA,0x0000,0xCAAB,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x5F71,0x0000,0x0000,0x0000,0x5F72,0x0000,0x0000,0xCAAC, + 0xCAAD,0x472E,0xCAAE,0xCAAF,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x5F74,0xCAB0,0x0000,0x0000,0x0000,0x5F75,0xCAB1, + 0xCAB2,0xCAB3,0x0000,0x4733,0xCAB4,0x0000,0x0000,0x0000, + 0x4575,0x5F77,0x0000,0xCAB5,0xCAB6,0x0000,0x5F79,0x0000, + 0x4E55,0x0000,0x5F76,0xCAB7,0x5F78,0x316D,0xCAB8,0x5F73, + 0x0000,0xCAB9,0xCABA,0x0000,0xCABB,0x0000,0x0000,0x535B, + 0x5F7A,0x0000,0x0000,0x0000,0x0000,0x4167,0x3B38,0x5F7C, + 0x0000,0x0000,0x0000,0x0000,0x5F7B,0x3F24,0x5259,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x5F7D,0x0000,0x0000, + 0xCABC,0x6021,0x0000,0x5F6E,0x5F7E,0x0000,0xCABD,0x6022, + + /* 7200h */ + 0xCABE,0x0000,0x0000,0x0000,0x0000,0x0000,0x477A,0xCABF, + 0xCAC0,0xCAC1,0x0000,0x0000,0x0000,0x6023,0x0000,0x0000, + 0x6024,0x0000,0x0000,0xCAC2,0x0000,0x0000,0x0000,0xCAC3, + 0x0000,0x0000,0xCAC4,0x6025,0x0000,0xCAC5,0x0000,0xCAC6, + 0x0000,0x0000,0x0000,0x0000,0xCAC7,0x0000,0x0000,0x0000, + 0x6026,0x0000,0x445E,0xCAC8,0x6028,0x6027,0x0000,0xCAC9, + 0x6029,0x0000,0x602A,0x0000,0xCACA,0x3C5F,0x4963,0x0000, + 0xCACB,0xCACC,0x4C6C,0x602B,0x602C,0x4156,0x3C24,0x602D, + 0x602E,0xCACD,0xCACE,0xCACF,0x0000,0xCAD0,0x602F,0x4A52, + 0x4847,0x0000,0x0000,0x6030,0x4757,0x0000,0xCAD1,0xCAD2, + 0xCAD3,0x0000,0x442D,0xCAD4,0x0000,0xCAD5,0xCAD6,0x0000, + 0x6031,0x3267,0xCAD7,0x356D,0xCAD8,0x4C46,0xCAD9,0x4C36, + 0xCADA,0x3234,0x4F34,0xCADB,0x0000,0x0000,0x0000,0x4B52, + 0xCADC,0x4A2A,0x0000,0xCADD,0x0000,0x0000,0xCADE,0xCADF, + 0x0000,0xCAE0,0x4037,0x0000,0x6032,0x0000,0x0000,0xCAE1, + 0xCAE2,0x4643,0x0000,0xCAE3,0xCAE4,0x3823,0x6033,0xCAE5, + 0x3A54,0x6035,0x6034,0x0000,0xCAE6,0x0000,0x0000,0x6036, + 0x0000,0xCAE7,0x0000,0x0000,0x0000,0xCAE8,0xCAE9,0x0000, + 0x0000,0x0000,0x6037,0xCAEA,0x0000,0x0000,0x6038,0x0000, + 0x0000,0x0000,0x0000,0xCAEB,0x0000,0x0000,0x0000,0x0000, + 0x353E,0x0000,0x6039,0x0000,0x0000,0x0000,0x0000,0x603A, + 0xCAEC,0x0000,0x0000,0x0000,0x3824,0xCAED,0xCAEE,0x4848, + 0x0000,0xCAEF,0x603C,0x0000,0xCAF0,0x0000,0x3E75,0x0000, + 0x0000,0x603B,0x0000,0x0000,0x0000,0x0000,0xCAF1,0x0000, + 0x0000,0xCAF2,0x3638,0x603D,0x603F,0x0000,0x603E,0xCAF3, + 0x0000,0xCAF4,0x0000,0x0000,0xCAF5,0x0000,0x6040,0x0000, + 0x3851,0x0000,0x6041,0x0000,0x0000,0xCAF6,0xCAF7,0x3669, + 0xCAF8,0x4140,0x0000,0x397D,0x0000,0x0000,0x0000,0xCAF9, + 0x6043,0x6044,0x6042,0x0000,0x0000,0xCAFA,0x0000,0x0000, + 0x0000,0x3C6D,0x0000,0x0000,0x4648,0x3639,0x0000,0x0000, + 0x0000,0x0000,0x0000,0xCAFB,0xCAFC,0x0000,0x0000,0x6046, + 0x432C,0x6045,0xCAFD,0xCAFE,0x4F35,0x4762,0xCBA1,0x0000, + + /* 7300h */ + 0x0000,0x0000,0xCBA2,0x0000,0xCBA3,0xCBA4,0x0000,0xCBA5, + 0x0000,0x0000,0x6049,0xCBA6,0x0000,0xCBA7,0x0000,0x0000, + 0x0000,0x0000,0xCBA8,0xCBA9,0x0000,0x0000,0x604B,0x6048, + 0xCBAA,0xCBAB,0x0000,0x4C54,0x604A,0x604C,0xCBAC,0x4E44, + 0x0000,0x0000,0xCBAD,0x0000,0xCBAE,0x6050,0x0000,0xCBAF, + 0xCBB0,0x604F,0x4376,0x472D,0xCBB1,0x0000,0x3825,0x604E, + 0x0000,0xCBB2,0xCBB3,0x0000,0x604D,0xCBB4,0x4D31,0x4D32, + 0x0000,0x0000,0xCBB5,0xCBB6,0x0000,0xCBB7,0x6051,0x316E, + 0x0000,0x0000,0x0000,0xCBB8,0x3976,0x3B62,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0xCBB9,0x6052,0x6053, + 0xCBBA,0x0000,0xCBBB,0x0000,0x0000,0x0000,0xCBBC,0x6055, + 0xCBBD,0x0000,0x0000,0x0000,0x0000,0xCBBE,0xCBBF,0xCBC0, + 0xCBC1,0x0000,0x0000,0x3D43,0x0000,0x0000,0xCBC2,0xCBC3, + 0x6057,0xCBC4,0x6056,0xCBC5,0xCBC6,0x0000,0xCBC7,0xCBC8, + 0x6058,0xCBC9,0x334D,0x0000,0x0000,0x605A,0x0000,0xCBCA, + 0x6059,0xCBCB,0x605C,0x605B,0xCBCC,0x0000,0x0000,0x0000, + 0xCBCD,0xCBCE,0x0000,0xCBCF,0x383C,0xCBD0,0xCBD1,0x4E28, + 0x0000,0x364C,0x0000,0x3226,0x0000,0x0000,0xCBD2,0x0000, + 0xCBD3,0x0000,0x0000,0xCBD4,0x0000,0xCBD5,0x366A,0xCBD6, + 0xCBD7,0x0000,0x0000,0x0000,0xCBD8,0x0000,0xCBD9,0xCBDA, + 0xCBDB,0x0000,0xCBDC,0x0000,0x0000,0xCBDD,0xCBDE,0x0000, + 0x0000,0x3461,0xCBDF,0xCBE0,0x0000,0xCBE1,0x0000,0x0000, + 0x0000,0x0000,0x4E68,0x605E,0x0000,0xCBE2,0x0000,0xCBE3, + 0x0000,0xCBE4,0x0000,0x6060,0xCBE5,0xCBE6,0x0000,0xCBE7, + 0x6061,0x0000,0x3251,0x0000,0x0000,0xCBE8,0xCBE9,0x0000, + 0x605D,0xCBEA,0x3B39,0xCBEB,0xCBEC,0x4441,0x605F,0xCBED, + 0x0000,0x0000,0xCBEE,0xCBEF,0x0000,0x0000,0xCBF0,0x0000, + 0x0000,0xCBF1,0x0000,0x0000,0x0000,0xCBF2,0x6064,0x0000, + 0x3C6E,0xCBF3,0x0000,0xCBF4,0x0000,0x6062,0xCBF5,0xCBF6, + 0x0000,0xCBF7,0x373E,0x0000,0x0000,0x4849,0x6063,0x0000, + 0x0000,0x607E,0x0000,0x0000,0xCBF8,0xCBF9,0x0000,0xCBFA, + 0x6069,0xCBFB,0xCBFC,0xCBFD,0x0000,0xCBFE,0x383D,0xCCA1, + + /* 7400h */ + 0xCCA2,0xCCA3,0x0000,0x3565,0xCCA4,0x6066,0x4D7D,0xCCA5, + 0x0000,0x4E30,0xCCA6,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0xCCA7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0xCCA8,0xCCA9,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x4276,0x0000,0xCCAA,0x6068,0xCCAB,0x0000, + 0xCCAC,0xCCAD,0xCCAE,0xCCAF,0xCCB0,0xCCB1,0xCCB2,0xCCB3, + 0xCCB4,0xCCB5,0x606A,0x4E56,0x3657,0x487C,0x474A,0x0000, + 0x0000,0xCCB6,0x606B,0x0000,0x0000,0x0000,0x0000,0x606D, + 0xCCB7,0x6070,0x0000,0xCCB8,0xCCB9,0x0000,0xCCBA,0xCCBB, + 0x0000,0x0000,0x0000,0xCCBC,0x0000,0xCCBD,0x0000,0x0000, + 0x0000,0xCCBE,0xCCBF,0x0000,0x0000,0x606C,0x0000,0xCCC0, + 0x0000,0x606F,0x386A,0x314D,0x6071,0xCCC1,0x3F70,0x606E, + 0x4E5C,0x0000,0xCCC2,0x6074,0x7424,0x0000,0xCCC3,0xCCC4, + 0xCCC5,0x6072,0x6075,0xCCC6,0x0000,0xCCC7,0xCCC8,0x6067, + 0x6073,0xCCC9,0xCCCA,0x3A3C,0x0000,0x0000,0x6076,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x6077,0x0000, + 0xCCCB,0xCCCC,0x0000,0x4D7E,0x0000,0xCCCD,0xCCCE,0xCCCF, + 0x0000,0xCCD0,0x0000,0x6078,0x0000,0x0000,0x0000,0xCCD1, + 0xCCD2,0xCCD3,0xCCD4,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xCCD5,0xCCD6,0xCCD7,0x0000,0xCCD8,0x0000,0x6079,0xCCD9, + 0xCCDA,0xCCDB,0x6065,0xCCDC,0x0000,0x0000,0xCCDD,0x607A, + 0xCCDE,0xCCDF,0xCCE0,0xCCE1,0x0000,0x0000,0xCCE2,0xCCE3, + 0x3444,0xCCE4,0xCCE5,0x0000,0x0000,0xCCE6,0x0000,0x0000, + 0x0000,0xCCE7,0x0000,0xCCE8,0x0000,0x3C25,0x0000,0xCCE9, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xCCEA,0xCCEB,0x607B,0x0000,0xCCEC,0x0000,0x0000,0x607C, + 0xCCED,0x0000,0x0000,0xCCEE,0x607D,0x0000,0x0000,0x0000, + 0xCCEF,0x0000,0xCCF0,0xCCF1,0x313B,0x0000,0xCCF2,0xCCF3, + 0x6121,0x0000,0x493B,0x6122,0xCCF4,0x0000,0x3424,0x6123, + 0xCCF5,0x6124,0xCCF6,0xCCF7,0x0000,0x0000,0x6125,0xCCF8, + 0x6127,0x6128,0x6126,0x0000,0xCCF9,0x0000,0x4953,0x612A, + 0x6129,0x0000,0xCCFA,0xCCFB,0xCCFC,0x0000,0x0000,0xCCFD, + + /* 7500h */ + 0x0000,0x0000,0x0000,0x612C,0x612B,0x612D,0xCCFE,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x612E,0x6130,0x612F,0x0000, + 0x0000,0x3979,0xCDA1,0x6132,0x0000,0x6131,0xCDA2,0xCDA3, + 0x3445,0x0000,0x3F53,0x0000,0x453C,0x0000,0x6133,0x4038, + 0xCDA4,0xCDA5,0x0000,0x3B3A,0xCDA6,0x3179,0x6134,0xCDA7, + 0x4D51,0xCDA8,0xCDA9,0x4A63,0x6135,0x0000,0x0000,0xCDAA, + 0x4544,0x4D33,0x3943,0x3F3D,0x0000,0x0000,0xCDAB,0x434B, + 0x5234,0xCDAC,0x442E,0x3268,0x6136,0xCDAD,0xCDAE,0xCDAF, + 0xCDB0,0x0000,0x0000,0xCDB1,0x6137,0x0000,0x613C,0xCDB2, + 0xCDB3,0x613A,0x6139,0x5A42,0x3326,0x6138,0xCDB4,0x305A, + 0xCDB5,0x482A,0xCDB6,0x0000,0x484A,0x0000,0x0000,0xCDB7, + 0x0000,0x4E31,0x613D,0x613B,0x435C,0x4026,0xCDB8,0xCDB9, + 0x482B,0xCDBA,0x492D,0x0000,0x613F,0x4E2C,0x374D,0x6140, + 0x0000,0x613E,0x4856,0x6141,0x0000,0x6142,0x0000,0xCDBB, + 0x305B,0xCDBC,0x0000,0x3E76,0x6147,0x0000,0x6144,0x466D, + 0x6143,0xCDBD,0xCDBE,0xCDBF,0xCDC0,0xCDC1,0xCDC2,0x3526, + 0x0000,0xCDC3,0x614A,0x0000,0x0000,0xCDC4,0x6145,0x6146, + 0x0000,0x6149,0x6148,0x4925,0x0000,0x0000,0x4142,0x4141, + 0xCDC5,0x353F,0xCDC6,0xCDC7,0x614B,0xCDC8,0x0000,0x0000, + 0x0000,0xCDC9,0x614C,0x0000,0xCDCA,0x614D,0x0000,0x0000, + 0x0000,0x0000,0xCDCB,0x614F,0xCDCC,0x614E,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x3156,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x6157,0x4868,0x6151,0xCDCD,0x6153,0x0000,0x0000, + 0x6155,0x3F3E,0xCDCE,0x0000,0x6156,0x6154,0x3C40,0xCDCF, + 0xCDD0,0xCDD1,0x6150,0x6152,0xCDD2,0x4942,0xCDD3,0x3E49, + 0x0000,0x0000,0x6159,0x0000,0xCDD4,0x6158,0xCDD5,0xCDD6, + 0x0000,0x0000,0x615A,0x0000,0x3C26,0x3A2F,0x0000,0xCDD7, + 0x4577,0x615B,0x0000,0x444B,0xCDD8,0x0000,0x615D,0xCDD9, + 0xCDDA,0xCDDB,0x4E21,0x615C,0xCDDC,0x0000,0x0000,0xCDDD, + 0x0000,0x4169,0x0000,0x0000,0xCDDE,0x0000,0xCDDF,0xCDE0, + 0x6162,0xCDE1,0x6164,0x6165,0x4354,0x0000,0x0000,0x0000, + 0x0000,0xCDE2,0x6163,0x0000,0x6160,0x0000,0x615E,0x615F, + + /* 7600h */ + 0xCDE3,0x6161,0xCDE4,0xCDE5,0xCDE6,0x0000,0x0000,0xCDE7, + 0xCDE8,0x6168,0xCDE9,0x6166,0xCDEA,0x6167,0x0000,0xCDEB, + 0x0000,0x0000,0xCDEC,0xCDED,0x0000,0xCDEE,0xCDEF,0x0000, + 0x0000,0xCDF0,0x0000,0xCDF1,0xCDF2,0xCDF3,0xCDF4,0x6169, + 0x616B,0x616C,0x616D,0xCDF5,0x616E,0xCDF6,0xCDF7,0x616A, + 0x0000,0xCDF8,0x0000,0x0000,0x0000,0xCDF9,0x0000,0x0000, + 0x6170,0x0000,0xCDFA,0xCDFB,0x616F,0xCDFC,0x0000,0x0000, + 0xCDFD,0xCDFE,0xCEA1,0x6171,0xCEA2,0x0000,0x0000,0x0000, + 0xCEA4,0xCEA5,0x4E45,0xCEA6,0xCEA7,0xCEA8,0x6174,0x6172, + 0x6173,0xCEA9,0xCEA3,0xCEAA,0x3462,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x4C7E,0x0000,0x0000,0xCEAB,0x4A4A,0x0000, + 0x6176,0xCEAC,0x0000,0x0000,0x6175,0x0000,0x0000,0xCEAD, + 0x0000,0x6177,0x6178,0x0000,0xCEAE,0xCEAF,0x0000,0x617C, + 0x6179,0x617A,0x617B,0x0000,0x617D,0xCEB0,0xCEB1,0xCEB2, + 0x617E,0xCEB3,0x6221,0x0000,0xCEB4,0x0000,0x6222,0x0000, + 0x6223,0x0000,0x482F,0x4550,0x6224,0x4772,0x4934,0x0000, + 0x6225,0xCEB5,0x0000,0x6226,0x452A,0xCEB6,0x3327,0x3944, + 0x6227,0x0000,0x0000,0x6228,0xCEB7,0xCEB8,0x6229,0x0000, + 0x3B29,0x0000,0x0000,0x622B,0x0000,0xCEB9,0x622A,0x0000, + 0x0000,0x622C,0x622D,0xCEBA,0xCEBB,0xCEBC,0x0000,0xCEBD, + 0xCEBE,0x0000,0xCEBF,0xCEC0,0xCEC1,0xCEC2,0xCEC3,0xCEC4, + 0xCEC5,0x0000,0xCEC6,0x0000,0x0000,0xCEC7,0x4869,0x0000, + 0x622E,0x0000,0x0000,0x0000,0x622F,0x0000,0x0000,0x7369, + 0x6230,0x6231,0x6232,0x0000,0x0000,0xCEC8,0x0000,0x3B2E, + 0x0000,0xCEC9,0x6233,0x4756,0x0000,0xCECA,0x4B5F,0x0000, + 0x314E,0xCECB,0x3157,0xCECC,0xCECD,0x6234,0xCECE,0x0000, + 0x0000,0x0000,0x6236,0x0000,0xCECF,0x0000,0x6235,0x4570, + 0x0000,0xCED0,0x0000,0x4039,0x5D39,0x0000,0x6237,0x4C41, + 0xCED1,0x6238,0x0000,0x3446,0x4857,0x6239,0xCED2,0x623A, + 0xCED3,0x0000,0x623B,0x0000,0xCED4,0x0000,0x4C5C,0x0000, + 0xCED5,0xCED6,0x4C55,0x0000,0x443E,0x0000,0xCED7,0x0000, + 0x416A,0xCED8,0x0000,0x623D,0xCED9,0x0000,0x3D62,0x0000, + + /* 7700h */ + 0xCEDA,0x3E4A,0x0000,0x0000,0x6240,0x0000,0xCEDB,0x623F, + 0x623E,0x487D,0xCEDC,0x3447,0x3829,0x0000,0xCEDD,0x0000, + 0x0000,0x0000,0xCEDE,0x0000,0xCEDF,0xCEE0,0x0000,0xCEE1, + 0x0000,0xCEE2,0xCEE3,0x6246,0xCEE4,0x0000,0x6243,0x3F3F, + 0x4C32,0x0000,0xCEE5,0x0000,0x6242,0x6244,0x6245,0x0000, + 0xCEE6,0x6241,0x0000,0x0000,0x0000,0xCEE7,0xCEE8,0xCEE9, + 0x0000,0x0000,0x0000,0x0000,0xCEEA,0xCEEB,0xCEEC,0x6247, + 0x6248,0xCEED,0x442F,0x0000,0x3463,0xCEEE,0xCEEF,0x0000, + 0x4365,0x0000,0xCEF0,0x0000,0x0000,0xCEF1,0xCEF2,0x6249, + 0x0000,0x0000,0xCEF3,0x0000,0x0000,0xCEF4,0xCEF5,0xCEF6, + 0x0000,0x0000,0xCEF7,0x0000,0x0000,0x0000,0xCEF8,0xCEF9, + 0x0000,0x0000,0x624A,0x624D,0xCEFA,0x0000,0xCEFB,0xCEFC, + 0xCEFD,0x3F67,0xCEFE,0x4644,0xCFA1,0x624E,0x4B53,0xCFA2, + 0x624B,0x0000,0xCFA3,0x624C,0xCFA4,0x0000,0x0000,0x0000, + 0xCFA5,0x0000,0xCFA6,0xCFA7,0xCFA8,0x0000,0x0000,0x0000, + 0x0000,0x6251,0xCFA9,0x0000,0x0000,0xCFAA,0x6250,0x624F, + 0xCFAB,0x0000,0x0000,0x0000,0xCFAC,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x6253,0xCFAD,0xCFAE,0x6252,0x0000, + 0x0000,0x6254,0x0000,0x0000,0xCFAF,0xCFB0,0xCFB1,0x0000, + 0x0000,0x0000,0xCFB2,0x0000,0x0000,0x0000,0x6256,0xCFB3, + 0x6255,0x0000,0xCFB4,0x0000,0x0000,0x4A4D,0x0000,0xCFB5, + 0x0000,0x0000,0xCFB6,0x0000,0x3D56,0x4E46,0xCFB7,0xCFB8, + 0x6257,0xCFB9,0x0000,0x4637,0x0000,0xCFBA,0x6258,0x0000, + 0x0000,0x6259,0x0000,0x625D,0x625B,0x625C,0xCFBB,0x625A, + 0x0000,0x0000,0x0000,0xCFBC,0x0000,0x0000,0x0000,0x625E, + 0x0000,0xCFBD,0x0000,0x0000,0x0000,0x625F,0x0000,0x0000, + 0x0000,0xCFBE,0xCFBF,0x0000,0x0000,0xCFC0,0x0000,0x6260, + 0x0000,0xCFC1,0x6261,0x4C37,0x6262,0x0000,0xCFC2,0xCFC3, + 0xCFC4,0x0000,0x4C70,0x6263,0xCFC5,0x434E,0xCFC6,0x476A, + 0x0000,0x366B,0xCFC7,0x0000,0xCFC8,0x433B,0x6264,0x363A, + 0xCFC9,0xCFCA,0x0000,0x4050,0xCFCB,0x0000,0x0000,0x0000, + 0xCFCC,0x0000,0x0000,0xCFCD,0x6265,0x0000,0x0000,0x0000, + + /* 7800h */ + 0x0000,0x0000,0x3A3D,0x0000,0x0000,0xCFCE,0xCFCF,0x0000, + 0x0000,0xCFD0,0x0000,0x0000,0x6266,0xCFD1,0xCFD2,0x0000, + 0x0000,0xCFD3,0x6267,0x0000,0x3826,0x3A55,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0xCFD4,0x0000,0x0000, + 0x6269,0xCFD5,0xCFD6,0xCFD7,0x0000,0x4556,0x3A56,0x354E, + 0x0000,0x0000,0x0000,0x0000,0x0000,0xCFD8,0xCFD9,0x0000, + 0xCFDA,0x0000,0x4B24,0x0000,0x474B,0xCFDB,0x0000,0xCFDC, + 0x0000,0x0000,0x4557,0x0000,0x0000,0x0000,0x0000,0x395C, + 0x0000,0x0000,0x0000,0xCFDD,0xCFDE,0x626B,0x0000,0xCFDF, + 0xCFE0,0x0000,0x0000,0x0000,0xCFE1,0x0000,0xCFE2,0x0000, + 0x0000,0x0000,0xCFE3,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0xCFE4,0x3E4B,0xCFE5,0x0000, + 0xCFE6,0xCFE7,0x0000,0xCFE8,0xCFE9,0x0000,0x0000,0x0000, + 0xCFEA,0x0000,0xCFEB,0x4E32,0x3945,0x0000,0xCFEC,0x3827, + 0x0000,0x0000,0x4823,0x0000,0x626D,0x0000,0x0000,0x0000, + 0x0000,0x0000,0xCFED,0x0000,0x626F,0x0000,0xCFEE,0x0000, + 0x0000,0x386B,0x0000,0x0000,0x0000,0x0000,0x626E,0x4476, + 0x0000,0x0000,0xCFEF,0x0000,0x6271,0x3337,0x626C,0xCFF0, + 0x0000,0x486A,0x0000,0x3130,0xCFF1,0x3A6C,0x0000,0x4F52, + 0xCFF2,0x0000,0x6270,0x0000,0x0000,0xCFF4,0xCFF5,0xCFF6, + 0x0000,0xCFF3,0x0000,0x6272,0xCFF7,0x0000,0x0000,0x4A4B, + 0xCFF8,0x4059,0x6274,0x0000,0xCFF9,0xCFFA,0x0000,0x6275, + 0xCFFB,0xCFFC,0xCFFD,0xCFFE,0x0000,0x6273,0x0000,0x0000, + 0x0000,0x0000,0x334E,0xD0A1,0x627B,0xD0A2,0x627A,0xD0A3, + 0x0000,0x3C27,0x0000,0x0000,0x0000,0x627C,0x6277,0xD0A4, + 0xD0A5,0xD0A6,0x627D,0x6278,0xD0A7,0x0000,0xD0A8,0x0000, + 0x4858,0x6276,0xD0A9,0xD0AA,0x6279,0xD0AB,0xD0AC,0x0000, + 0x0000,0x0000,0x6322,0xD0AE,0x0000,0x0000,0x0000,0xD0AF, + 0xD0B0,0xD0B1,0x0000,0x0000,0xD0AD,0x0000,0xD0B2,0x6321, + 0x4B61,0x0000,0xD0B3,0x0000,0x627E,0x0000,0x0000,0x306B, + 0x0000,0x0000,0xD0B4,0xD0B5,0x6324,0x0000,0xD0B7,0xD0B8, + 0x0000,0x0000,0xD0B9,0xD0BA,0x0000,0x6323,0x0000,0xD0BB, + + /* 7900h */ + 0xD0B6,0x3E4C,0x0000,0x0000,0x0000,0x0000,0xD0BC,0x6325, + 0x0000,0x0000,0x0000,0x0000,0xD0BD,0x0000,0x4143,0x0000, + 0xD0BE,0x6327,0x6326,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x6328,0xD0BF,0x0000,0xD0C0,0x0000,0xD0C1,0xD0C2, + 0xD0C3,0x0000,0x0000,0x0000,0x0000,0xD0C4,0x6268,0xD0C5, + 0x0000,0xD0C6,0x626A,0x632A,0x6329,0xD0C7,0x0000,0x0000, + 0x0000,0xD0C8,0x0000,0x0000,0xD0C9,0xD0CA,0x0000,0x0000, + 0x0000,0x0000,0x3C28,0xD0CB,0x4E69,0xD0CC,0x3C52,0xD0CD, + 0x632B,0x3737,0x0000,0x0000,0xD0CE,0xD0CF,0xD0D0,0x3540, + 0x3527,0x3B63,0xD0D1,0xD0D2,0x0000,0x0000,0x0000,0xD0D3, + 0x4D34,0xD0D4,0x0000,0x6331,0xD0D5,0x6330,0x4144,0x632D, + 0xD0D6,0x0000,0x632F,0xD0D7,0xD0D8,0x3D4B,0x3F40,0x632E, + 0x632C,0x0000,0x472A,0x0000,0x0000,0x3E4D,0x0000,0xD0D9, + 0x493C,0xD0DA,0x0000,0xD0DB,0x0000,0x3A57,0x0000,0x0000, + 0x0000,0x0000,0xD0DC,0x0000,0x0000,0x0000,0x0000,0x4578, + 0x0000,0xD0DD,0x6332,0xD0DE,0xD0DF,0x0000,0xD0E0,0x6333, + 0x6349,0x3658,0x0000,0x0000,0x4F3D,0x4135,0x0000,0x0000, + 0x0000,0x0000,0x6334,0xD0E1,0xD0E2,0x3252,0x4477,0x4A21, + 0x0000,0xD0E3,0x0000,0xD0E4,0xD0E5,0xD0E6,0xD0E7,0x0000, + 0xD0E8,0x0000,0x0000,0xD0E9,0xD0EA,0x6335,0x0000,0x0000, + 0x0000,0xD0EB,0x0000,0x0000,0x0000,0x0000,0x357A,0x6336, + 0xD0EC,0xD0ED,0x6338,0xD0EE,0x0000,0x0000,0x6339,0xD0EF, + 0x4729,0xD0F0,0x0000,0x633A,0xD0F1,0x0000,0x0000,0x0000, + 0xD0F2,0x633B,0x633C,0xD0F3,0x0000,0x3659,0x3253,0x4645, + 0x3D28,0x3B64,0xD0F4,0x0000,0xD0F5,0x0000,0x0000,0xD0F6, + 0xD0F7,0x633D,0xD0F8,0x3D29,0x0000,0x0000,0x0000,0xD0F9, + 0x0000,0x324A,0x4943,0x0000,0xD0FA,0x633E,0xD0FB,0x0000, + 0x486B,0x0000,0xD0FC,0x0000,0x0000,0xD0FD,0xD0FE,0x4145, + 0xD1A1,0x6341,0xD1A2,0x6342,0x4769,0xD1A3,0x3F41,0x633F, + 0x0000,0x4361,0xD1A4,0xD1A5,0x6340,0xD1A6,0x0000,0x0000, + 0x3E4E,0xD1A7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xD1A8,0x0000,0x0000,0x305C,0xD1A9,0x0000,0x0000,0x0000, + + /* 7A00h */ + 0x3529,0x0000,0xD1AA,0xD1AB,0x0000,0x0000,0x0000,0xD1AC, + 0x6343,0xD1AD,0xD1AE,0x4478,0xD1AF,0x6344,0x4047,0x0000, + 0x0000,0xD1B0,0x0000,0x0000,0x4C2D,0xD1B1,0x0000,0x4923, + 0x6345,0x6346,0x4355,0xD1B2,0x4E47,0x0000,0xD1B3,0x6348, + 0x6347,0xD1B4,0x0000,0x0000,0x0000,0x0000,0x0000,0xD1B5, + 0x0000,0x0000,0x0000,0xD1B6,0x0000,0xD1B7,0x3C6F,0xD1B8, + 0xD1B9,0x634A,0x3070,0x0000,0xD1BA,0xD1BB,0x0000,0x634D, + 0xD1BC,0xD1BD,0xD1BE,0x634B,0x3254,0x374E,0x634C,0x3946, + 0x3972,0x0000,0x4A66,0x634E,0xD1BF,0xD1C0,0x4B54,0xD1C1, + 0xD1C2,0x6350,0x0000,0x0000,0xD1C3,0x4051,0x314F,0x323A, + 0x302C,0x0000,0x0000,0x0000,0x0000,0xD1C4,0xD1C5,0x634F, + 0x0000,0xD1C6,0x0000,0x0000,0xD1C7,0xD1C8,0x0000,0xD1C9, + 0xD1CA,0x6351,0x6352,0x3E77,0x0000,0xD1CB,0x0000,0xD1CC, + 0x0000,0x6353,0xD1CD,0x334F,0x0000,0xD1CE,0x0000,0x0000, + 0x6355,0x0000,0x0000,0x0000,0x376A,0xD1CF,0x3566,0x0000, + 0xD1D0,0x6356,0x3675,0x0000,0x0000,0x6357,0xD1D1,0x407C, + 0xD1D2,0x464D,0xD1D3,0x4060,0x3A75,0xD1D4,0xD1D5,0x0000, + 0x6358,0x0000,0xD1D6,0xD1D7,0x0000,0x0000,0x0000,0x0000, + 0xD1D8,0xD1D9,0x4362,0x416B,0xD1DA,0x635A,0x635C,0x6359, + 0x635B,0x0000,0x0000,0x0000,0x0000,0x0000,0xD1DB,0x3722, + 0xD1DC,0x0000,0x0000,0xD1DD,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x635D,0x3726,0x0000,0xD1DE,0x0000,0x3567,0x4D52, + 0x635F,0x0000,0x0000,0xD1DF,0x0000,0xD1E0,0x6360,0x0000, + 0x0000,0xD1E1,0x312E,0xD1E2,0xD1E3,0x0000,0x0000,0x6363, + 0x0000,0x0000,0x0000,0x3376,0x6362,0x6361,0xD1E4,0x6365, + 0x635E,0xD1E5,0x6366,0x4E29,0xD1E6,0x6367,0xD1E7,0x6368, + 0x0000,0xD1E8,0x5474,0x636A,0x0000,0x6369,0x0000,0x0000, + 0x0000,0x636B,0x636C,0xD1E9,0x4E35,0x636D,0x0000,0x706F, + 0x3E4F,0x636E,0x636F,0x3D57,0x0000,0x4638,0x6370,0x0000, + 0xD1EA,0xD1EB,0x4328,0xD1EC,0xD1ED,0x6371,0x0000,0x433C, + 0x6372,0xD1EE,0x0000,0x0000,0xD1EF,0x0000,0x3625,0x0000, + 0x513F,0x435D,0x3C33,0xD1F0,0x0000,0xD1F1,0xD1F2,0x3448, + + /* 7B00h */ + 0x0000,0x0000,0x6373,0x0000,0x6422,0x0000,0x6376,0xD1F3, + 0x3568,0x0000,0x6375,0x6424,0x0000,0x0000,0x0000,0x6374, + 0x0000,0x3E50,0x0000,0x0000,0xD1F4,0x0000,0x0000,0x0000, + 0x6378,0x6379,0x0000,0x452B,0x0000,0x0000,0x637A,0xD1F5, + 0x335E,0x0000,0x0000,0xD1F6,0x0000,0x3F5A,0x4964,0xD1F7, + 0x637C,0xD1F8,0xD1F9,0xD1FA,0x4268,0xD1FB,0xD1FC,0xD1FD, + 0xD1FE,0xD2A1,0x0000,0x6377,0xD2A2,0x637B,0x637D,0x0000, + 0x0000,0x3A7B,0x0000,0x0000,0x0000,0xD2A3,0x0000,0xD2A4, + 0xD2A5,0xD2A6,0x0000,0x0000,0x0000,0x6426,0x492E,0xD2A7, + 0x4826,0x4579,0x0000,0x365A,0x6425,0x6423,0xD2A8,0x4835, + 0x637E,0x435E,0x457B,0x0000,0x457A,0xD2A9,0x3A76,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x6438,0x0000,0x0000, + 0xD2AA,0x0000,0x0000,0x0000,0xD2AB,0x6428,0xD2AC,0x642A, + 0x0000,0xD2AD,0xD2AE,0x0000,0x642D,0xD2AF,0x642E,0xD2B0, + 0x642B,0x642C,0xD2B1,0xD2B2,0x6429,0x6427,0x0000,0xD2B3, + 0x0000,0x0000,0x6421,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0xD2B4,0x0000,0x4A4F,0x3255, + 0x0000,0xD2B5,0x0000,0x6435,0x0000,0x6432,0xD2B6,0x6437, + 0xD2B7,0xD2B8,0x6436,0x0000,0x4773,0x4C27,0xD2B9,0x3B3B, + 0x6430,0x6439,0x6434,0xD2BA,0x6433,0x642F,0xD2BB,0x6431, + 0xD2BC,0x3449,0x0000,0x0000,0x0000,0xD2BD,0x0000,0x0000, + 0x0000,0x0000,0x433D,0x0000,0xD2BE,0x407D,0x0000,0xD2BF, + 0xD2C0,0x4822,0xD2C1,0x0000,0x643E,0xD2C2,0xD2C3,0x0000, + 0x4824,0x0000,0xD2C4,0xD2C5,0xD2C6,0xD2C7,0x0000,0x0000, + 0x4061,0x643B,0xD2C8,0x0000,0x484F,0xD2C9,0x643F,0x4A53, + 0xD2CA,0x435B,0xD2CB,0x643A,0x643C,0x0000,0x0000,0x643D, + 0x0000,0x0000,0x0000,0x0000,0xD2CC,0x0000,0xD2CD,0xD2CE, + 0x0000,0xD2CF,0xD2D0,0xD2D1,0x0000,0x6440,0x0000,0x0000, + 0x3C44,0x0000,0x0000,0x0000,0x4646,0x6445,0x6444,0x0000, + 0xD2D2,0x6441,0xD2D3,0x0000,0x0000,0x4F36,0x0000,0x0000, + 0x0000,0x0000,0xD2D4,0x644A,0xD2D5,0xD2D6,0x644E,0x644B, + 0xD2D7,0xD2D8,0xD2D9,0x0000,0xD2DA,0x0000,0xD2DB,0x0000, + + /* 7C00h */ + 0x6447,0xD2DC,0xD2DD,0xD2DE,0xD2DF,0x0000,0xD2E0,0x6448, + 0x0000,0xD2E1,0x0000,0xD2E2,0xD2E3,0x644D,0xD2E4,0xD2E5, + 0x0000,0x6442,0x5255,0x6449,0x6443,0x0000,0x0000,0x644C, + 0x0000,0xD2E6,0x0000,0xD2E7,0x0000,0x0000,0x0000,0x6452, + 0xD2E8,0x344A,0x0000,0x644F,0x0000,0xD2E9,0xD2EA,0x6450, + 0xD2EB,0x0000,0x6451,0x6454,0xD2EC,0x0000,0x0000,0x0000, + 0x0000,0xD2ED,0x0000,0xD2EE,0xD2EF,0x0000,0xD2F0,0x6453, + 0x4876,0xD2F1,0xD2F2,0x0000,0x0000,0x6455,0x4E7C,0x4A6D, + 0x645A,0x0000,0x0000,0x6457,0x0000,0x0000,0xD2F3,0x0000, + 0x0000,0x0000,0xD2F4,0x0000,0x6456,0x4052,0x0000,0x6459, + 0x645B,0xD2F6,0xD2F7,0xD2F8,0x6458,0xD2F5,0x645F,0x0000, + 0x645C,0xD2F9,0xD2FA,0xD2FB,0xD2FC,0xD2FD,0xD2FE,0x645D, + 0x6446,0xD3A1,0x0000,0xD3A2,0x645E,0x6460,0x0000,0xD3A3, + 0x0000,0xD3A4,0x0000,0x0000,0x6461,0xD3A5,0xD3A6,0x0000, + 0xD3A7,0x0000,0xD3A8,0x4A46,0x0000,0x6462,0x0000,0x0000, + 0x0000,0xD3A9,0x0000,0x0000,0xD3AA,0xD3AB,0x4C62,0x0000, + 0x0000,0x364E,0x3729,0x6463,0x0000,0x0000,0xD3AC,0xD3AD, + 0x0000,0x4A34,0x0000,0x3F68,0x0000,0x4C30,0x0000,0xD3AE, + 0x6464,0x0000,0x4E33,0x0000,0xD3AF,0x4774,0x0000,0x4146, + 0x4734,0x0000,0x0000,0x3D4D,0x0000,0x0000,0xD3B0,0x3040, + 0xD3B1,0x6469,0x6467,0x0000,0x6465,0x3421,0xD3B2,0x3E51, + 0x646A,0x0000,0x0000,0x6468,0x0000,0x6466,0x646E,0x0000, + 0xD3B3,0x646D,0x646C,0x646B,0x0000,0x0000,0xD3B4,0xD3B5, + 0x0000,0x646F,0xD3B6,0xD3B7,0xD3B8,0x6470,0x403A,0xD3B9, + 0x6471,0x0000,0x6473,0x0000,0xD3BA,0x6472,0x0000,0xD3BB, + 0xD3BC,0xD3BD,0x3852,0x0000,0x0000,0xD3BE,0x4138,0xD3BF, + 0x0000,0x0000,0x6475,0xD3C0,0xD3C1,0xD3C2,0x457C,0xD3C3, + 0x6474,0xD3C4,0xD3C5,0x0000,0x6476,0xD3C6,0x4A35,0x416C, + 0x3947,0x0000,0x6477,0x0000,0x0000,0x0000,0xD3C7,0x4E48, + 0x0000,0xD3C8,0x0000,0xD3C9,0x0000,0x0000,0x0000,0x6479, + 0x0000,0x0000,0x647A,0x0000,0x647B,0xD3CA,0x647C,0x0000, + 0x3B65,0x0000,0x647D,0x374F,0x0000,0x0000,0x356A,0x0000, + + /* 7D00h */ + 0x352A,0x0000,0x6521,0xD3CB,0x4C73,0x3948,0x647E,0xD3CC, + 0xD3CD,0xD3CE,0x6524,0x4C66,0x0000,0x473C,0x0000,0xD3CF, + 0x4933,0xD3D0,0xD3D1,0xD3D2,0x3D63,0x6523,0xD3D3,0x3C53, + 0x3949,0x3B66,0x3569,0x4A36,0x6522,0xD3D4,0xD3D5,0x0000, + 0x4147,0x4B42,0x3A77,0xD3D6,0x0000,0x0000,0xD3D7,0x0000, + 0x0000,0x0000,0xD3D8,0x3B67,0x445D,0xD3D9,0x6527,0x4E5F, + 0x3A59,0xD3DA,0x6528,0x3F42,0x0000,0x652A,0x0000,0x0000, + 0x0000,0x3E52,0x3A30,0x0000,0xD3DB,0xD3DC,0xD3DD,0x6529, + 0xD3DE,0xD3DF,0x3D2A,0x383E,0x4148,0x6525,0x652B,0xD3E0, + 0xD3E1,0x0000,0x0000,0x6526,0x3750,0xD3E2,0x652E,0x6532, + 0x376B,0xD3E3,0x0000,0xD3E4,0x0000,0x0000,0x652D,0xD3E5, + 0x0000,0xD3E6,0xD3E7,0x6536,0xD3E8,0xD3E9,0x394A,0x0000, + 0x0000,0x4D6D,0x303C,0x6533,0x0000,0xD3EA,0x356B,0xD3EB, + 0x6530,0x0000,0xD3EC,0x0000,0x0000,0x0000,0x6531,0x0000, + 0xD3ED,0x457D,0x652F,0x652C,0x0000,0x3328,0x4064,0x0000, + 0xD3EE,0x3828,0xD3EF,0xD3F0,0x0000,0x6538,0x0000,0xD3F1, + 0x0000,0xD3F2,0xD3F3,0xD3F4,0x0000,0xD3F5,0xD3F6,0x0000, + 0xD3F7,0x6535,0x0000,0xD3F8,0xD3F9,0xD3FA,0x0000,0x6537, + 0x0000,0xD3FB,0x0000,0x6534,0x0000,0x0000,0xD3FC,0xD3FD, + 0x0000,0x3751,0x4233,0x6539,0x416E,0xD3FE,0xD4A1,0x6546, + 0x0000,0x0000,0x6542,0x653C,0x0000,0x0000,0xD4A2,0xD4A3, + 0x0000,0x0000,0xD4A4,0x6540,0x3C7A,0x305D,0x653B,0x6543, + 0x6547,0x394B,0x4C56,0xD4A5,0x4456,0x653D,0xD4A6,0xD4A7, + 0x6545,0xD4A8,0x653A,0x433E,0x0000,0x653F,0x303D,0x4C4A, + 0x0000,0x0000,0xD4A9,0xD4AA,0xD4AB,0xD4AC,0xD4AD,0x653E, + 0x0000,0x0000,0x365B,0x486C,0xD4AE,0xD4AF,0xD4B0,0x416D, + 0x0000,0x4E50,0x3D6F,0x0000,0x0000,0x656E,0x0000,0xD4B1, + 0x6548,0xD4B2,0x407E,0x0000,0x6544,0x6549,0x654B,0x0000, + 0x4479,0x654E,0xD4B4,0x0000,0x654A,0xD4B5,0xD4B6,0x0000, + 0x4A54,0x344B,0xD4B7,0xD4B8,0x4C4B,0xD4B9,0x0000,0x305E, + 0x0000,0xD4BA,0x654D,0x0000,0x4E7D,0xD4BB,0xD4BC,0x0000, + 0x0000,0xD4BD,0xD4BE,0x654C,0x0000,0x0000,0x0000,0x0000, + + /* 7E00h */ + 0xD4B3,0x316F,0x0000,0x0000,0x466C,0x654F,0x0000,0x0000, + 0xD4BF,0x6556,0x6550,0x6557,0x0000,0x0000,0x0000,0x0000, + 0xD4C0,0xD4C1,0x6553,0x0000,0x0000,0xD4C2,0x0000,0xD4C3, + 0x0000,0x0000,0x0000,0x477B,0xD4C4,0xD4C5,0x3C4A,0x6555, + 0xD4C6,0x6552,0x6558,0x6551,0x0000,0x0000,0x3D44,0xD4C7, + 0xD4C8,0x0000,0x0000,0x4B25,0xD4C9,0xD4CA,0x3D4C,0xD4CB, + 0x0000,0x6554,0x6560,0xD4CC,0x0000,0x655C,0xD4CD,0x655F, + 0x0000,0x655D,0x6561,0x655B,0x0000,0x6541,0x4053,0xD4CE, + 0x0000,0x484B,0x0000,0x655E,0xD4CF,0xD4D0,0x6559,0xD4D1, + 0x0000,0x0000,0x4121,0x3752,0x0000,0x3D2B,0xD4D2,0x0000, + 0xD4D3,0x0000,0xD4D4,0x0000,0x3F25,0x4136,0x6564,0x0000, + 0xD4D5,0x6566,0x6567,0x0000,0x0000,0x6563,0x6565,0xD4D6, + 0x0000,0xD4D7,0xD4D8,0x0000,0x0000,0xD4D9,0x655A,0x6562, + 0x0000,0x656A,0x6569,0xD4DA,0x0000,0x4B7A,0xD4DB,0xD4DC, + 0x372B,0x0000,0x0000,0xD4DD,0x0000,0x0000,0x0000,0x0000, + 0xD4DE,0x6568,0x0000,0x656C,0x656B,0x656F,0xD4DF,0x6571, + 0x0000,0xD4E0,0x3B3C,0x656D,0x0000,0x0000,0xD4E1,0xD4E2, + 0x6572,0x6573,0xD4E3,0x0000,0x6574,0xD4E4,0x657A,0x453B, + 0x6576,0xD4E5,0x6575,0x6577,0x6578,0xD4E6,0x6579,0x0000, + 0xD4E7,0x0000,0xD4E8,0x657B,0x657C,0xD4E9,0xD4EA,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* 7F00h */ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x344C,0x0000, + 0x657D,0x0000,0x657E,0xD4EC,0xD4EB,0xD4ED,0xD4EE,0xD4EF, + 0x0000,0x0000,0x0000,0xD4F0,0xD4F1,0x6621,0x0000,0xD4F2, + 0x0000,0x0000,0x0000,0x0000,0x6622,0x6623,0x6624,0xD4F3, + 0x6625,0x6626,0xD4F4,0xD4F5,0x6628,0x6627,0x0000,0x0000, + 0x6629,0x0000,0x0000,0xD4F6,0xD4F7,0xD4F8,0x0000,0x662A, + 0x662B,0xD4F9,0x0000,0xD4FA,0xD4FB,0xD4FC,0xD4FD,0x662E, + 0x662C,0x662D,0x3A61,0x3753,0x0000,0xD4FE,0x4356,0x0000, + 0x4833,0xD5A1,0x3D70,0x0000,0x0000,0x474D,0x0000,0x486D, + 0x662F,0x586D,0x0000,0x0000,0x0000,0xD5A2,0xD5A3,0xD5A4, + 0xD5A5,0x0000,0x6630,0x6632,0x0000,0x4D65,0x6631,0x6634, + 0x6633,0x0000,0x4D53,0xD5A6,0x6635,0xD5A7,0x487E,0xD5A8, + 0xD5A9,0xD5AA,0x0000,0x0000,0x6636,0x0000,0xD5AB,0xD5AC, + 0x0000,0x0000,0x6639,0x0000,0xD5AD,0x6638,0x6637,0x0000, + 0x0000,0xD5AE,0xD5AF,0x663A,0x3732,0x0000,0xD5B0,0x0000, + 0x4122,0x3541,0xD5B1,0x0000,0x0000,0xD5B2,0x663E,0x663B, + 0x0000,0x0000,0x663C,0x0000,0xD5B3,0x0000,0x663F,0x0000, + 0x6640,0x663D,0x0000,0x0000,0xD5B4,0x3129,0x0000,0xD5B5, + 0xD5B6,0x3227,0x0000,0xD5B7,0x0000,0x6642,0x6643,0x0000, + 0xD5B8,0x0000,0x6644,0x0000,0x4D62,0x0000,0xD5B9,0xD5BA, + 0x0000,0x0000,0x3D2C,0x0000,0x6646,0x6645,0x0000,0x0000, + 0x0000,0x0000,0x0000,0xD5BB,0x0000,0x0000,0x0000,0xD5BC, + 0x3F69,0x6647,0x0000,0xD5BD,0x0000,0xD5BE,0x6648,0x0000, + 0xD5BF,0x6649,0x0000,0x3465,0xD5C0,0x0000,0xD5C1,0xD5C2, + 0x344D,0x0000,0xD5C3,0x664A,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x664B,0xD5C4,0x4B5D,0x4D63,0xD5C5,0xD5C6,0xD5C7, + + /* 8000h */ + 0x4D54,0x4F37,0x0000,0x394D,0x664E,0x3C54,0x664D,0xD5C8, + 0xD5C9,0x0000,0xD5CA,0x664F,0x3C29,0xD5CB,0xD5CC,0xD5CD, + 0x4251,0xD5CE,0x6650,0xD5CF,0xD5D0,0x394C,0xD5D1,0x4C57, + 0x6651,0x6652,0x0000,0x0000,0x6653,0xD5D2,0xD5D3,0xD5D4, + 0xD5D5,0x6654,0x0000,0x0000,0xD5D6,0x0000,0xD5D7,0x0000, + 0x6655,0x0000,0x0000,0x0000,0xD5D8,0x0000,0xD5D9,0x0000, + 0xD5DA,0x0000,0x0000,0x3C2A,0xD5DB,0xD5DC,0x4C6D,0xD5DD, + 0x0000,0xD5DE,0xD5DF,0x6657,0xD5E0,0x433F,0xD5E1,0x6656, + 0xD5E2,0x0000,0x0000,0x0000,0xD5E3,0x0000,0x6659,0x0000, + 0x0000,0x0000,0x6658,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x665A,0x0000,0x0000,0x0000,0x403B,0x0000, + 0x665B,0x0000,0x665C,0x0000,0x0000,0x0000,0x4A39,0x665D, + 0xD5E4,0x416F,0x665E,0x0000,0xD5E5,0x0000,0xD5E6,0x0000, + 0x665F,0x0000,0x0000,0x0000,0x0000,0xD5E7,0x0000,0x4E7E, + 0x6662,0xD5E8,0x6661,0x6660,0x4430,0xD5E9,0x6663,0x3F26, + 0x0000,0x6664,0x0000,0x0000,0x0000,0x6665,0x4F38,0x6666, + 0x0000,0xD5EA,0x0000,0x0000,0x6667,0x6669,0x6668,0x4825, + 0xD5EB,0x4679,0x0000,0x4F3E,0x4829,0x0000,0xD5EC,0x0000, + 0x0000,0x0000,0x0000,0x666B,0x0000,0x0000,0x3E53,0x0000, + 0x492A,0x0000,0x666C,0x666A,0xD5ED,0x344E,0xD5EE,0x0000, + 0x0000,0x3854,0x3B68,0x0000,0x0000,0x486E,0xD5EF,0xD5F0, + 0x0000,0x382A,0x4B43,0xD5F1,0x666F,0x666D,0x0000,0x394E, + 0x0000,0x394F,0x3069,0x0000,0x3A68,0x0000,0x0000,0x0000, + 0xD5F2,0xD5F3,0x4759,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x305F,0x6674,0x0000,0x4340,0x0000, + 0xD5F4,0x0000,0x0000,0x0000,0x4758,0xD5F5,0x425B,0xD5F6, + 0x0000,0x0000,0xD5F7,0x0000,0xD5F8,0xD5F9,0x6676,0xD5FA, + 0xD5FB,0x6672,0x6675,0x6670,0x0000,0x6673,0x4B26,0x0000, + 0xD5FC,0x3855,0x0000,0x0000,0x307D,0x6671,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0xD5FD,0xD5FE,0x6678, + 0xD6A1,0x6679,0xD6A2,0xD6A3,0x4639,0x0000,0xD6A4,0x0000, + 0x363B,0xD6A5,0xD6A6,0x0000,0x6726,0x473D,0xD6A7,0x0000, + + /* 8100h */ + 0x0000,0x0000,0x3B69,0xD6A8,0x0000,0x363C,0x4048,0x4F46, + 0x4C2E,0x6677,0x4054,0xD6A9,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xD6AA,0xD6AB, + 0xD6AC,0x0000,0x3553,0x667A,0xD6AD,0x0000,0xD6AE,0x0000, + 0xD6AF,0x0000,0x0000,0x667C,0xD6B0,0x0000,0x0000,0xD6B1, + 0x0000,0x667B,0x0000,0x0000,0xD6B2,0x0000,0x0000,0x667D, + 0xD6B3,0x4326,0x0000,0x473E,0x0000,0xD6B4,0x0000,0x0000, + 0x0000,0x4431,0xD6B5,0x0000,0xD6B6,0x0000,0x6723,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0xD6B7,0x6722,0xD6B8, + 0x0000,0x0000,0xD6B9,0x667E,0xD6BA,0x0000,0x3F55,0x0000, + 0x4965,0x6725,0xD6BB,0x6724,0x3950,0x4F53,0x0000,0xD6BC, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x6735, + 0xD6BD,0xD6BE,0x0000,0x0000,0x0000,0x6729,0x672A,0xD6BF, + 0xD6C0,0xD6C1,0x0000,0x3C70,0x0000,0xD6C2,0x6728,0xD6C3, + 0x3978,0x6727,0x0000,0x0000,0x672B,0x0000,0x0000,0xD6C4, + 0x4432,0x4A22,0x4123,0x0000,0x0000,0x0000,0x0000,0x425C, + 0x672F,0xD6C5,0x6730,0x672C,0xD6C7,0xD6C8,0xD6C9,0x0000, + 0x672D,0x0000,0x672E,0xD6CA,0x0000,0x0000,0xD6CB,0x3951, + 0xD6C6,0x0000,0x0000,0x6736,0x0000,0x6732,0xD6CC,0x0000, + 0xD6CD,0x0000,0x4966,0xD6CE,0x4B6C,0x4928,0xD6CF,0x0000, + 0x6731,0x0000,0xD6D0,0x6734,0x6733,0x0000,0x0000,0x0000, + 0x4B44,0x6737,0x0000,0x0000,0x0000,0x0000,0xD6D1,0x0000, + 0x6738,0x0000,0xD6D2,0x4137,0xD6D3,0x6739,0x0000,0x0000, + 0x673B,0x0000,0x673F,0xD6D4,0x0000,0x673C,0x673A,0x473F, + 0x673D,0x0000,0x673E,0xD6D6,0x0000,0xD6D7,0x3232,0x0000, + 0x6745,0x6740,0xD6D8,0xD6D5,0x0000,0x6741,0xD6D9,0xD6DA, + 0x0000,0x6742,0x0000,0x4221,0x0000,0xD6DB,0x0000,0xD6DC, + 0x6744,0x6743,0x6746,0xD6DD,0x0000,0xD6DE,0xD6DF,0x6747, + 0x6748,0xD6E0,0x0000,0x3F43,0xD6E1,0x3269,0x0000,0x6749, + 0x4E57,0x0000,0x3C2B,0xD6E2,0xD6E3,0x3D2D,0x0000,0x0000, + 0xD6E4,0xD6E5,0xD6E6,0x3B6A,0x4357,0xD6E7,0xD6E8,0x0000, + 0xD6E9,0xD6EA,0x674A,0x674B,0x3131,0xD6EB,0x674C,0xD6EC, + + /* 8200h */ + 0xD6ED,0x674D,0x674E,0xD6EE,0x0000,0x674F,0x0000,0x6750, + 0x363D,0x5A2A,0x6751,0x0000,0x4065,0x6752,0x3C4B,0xD6EF, + 0x6753,0x0000,0x5030,0xD6F0,0xD6F1,0x0000,0x6754,0x4A5E, + 0x345C,0xD6F2,0xD6F3,0x4124,0x3D58,0xD6F4,0x4971,0x3D2E, + 0x0000,0xD6F5,0xD6F6,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xD6F7,0x6755,0x3952,0x6756,0x484C,0x0000,0x6764,0x0000, + 0x0000,0x0000,0xD6F8,0x6758,0xD6F9,0x4249,0x4775,0x383F, + 0x6757,0x4125,0xD6FA,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x6759,0x0000,0x0000,0xD6FB,0xD6FC,0xD6FD,0xD6FE,0x447A, + 0x0000,0x0000,0x0000,0xD7A1,0x0000,0x0000,0xD7A2,0xD7A3, + 0x0000,0xD7A4,0x0000,0x0000,0x0000,0x0000,0xD7A5,0x0000, + 0x675B,0x675A,0x675D,0x0000,0xD7A6,0x675C,0x0000,0x675E, + 0xD7A7,0x0000,0x6760,0xD7A8,0x675F,0x0000,0x344F,0xD7A9, + 0x6761,0x0000,0x6762,0x6763,0x0000,0xD7AA,0x3A31,0x4E49, + 0x0000,0x6765,0x3F27,0x0000,0xD7AB,0x0000,0x3170,0x6766, + 0x6767,0x0000,0x0000,0xD7AC,0x0000,0xD7AD,0x6768,0xD7AE, + 0xD7AF,0xD7B0,0x0000,0xD7B1,0xD7B2,0x0000,0x0000,0xD7B3, + 0x0000,0xD7B4,0xD7B5,0x3072,0x0000,0x6769,0xD7B6,0x0000, + 0x0000,0xD7B7,0x676A,0x0000,0xD7B8,0x0000,0xD7B9,0x0000, + 0xD7BA,0x4967,0xD7BB,0xD7BC,0x0000,0x3C47,0x0000,0x676C, + 0xD7BD,0xD7BE,0x0000,0xD7BF,0xD7C0,0x3329,0x3032,0xD7C1, + 0xD7C2,0xD7C3,0xD7C4,0x676B,0x676E,0x474E,0xD7C5,0x3F44, + 0xD7C6,0x3256,0xD7C7,0x4B27,0xD7C8,0x0000,0x0000,0xD7C9, + 0x375D,0x365C,0xD7CA,0x676D,0xD7CB,0x326A,0xD7CC,0xD7CD, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x3423,0xD7CE,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xD7CF,0x3171,0x6772,0x4E6A,0x425D,0xD7D0,0x0000,0x4944, + 0x0000,0x677E,0xD7D1,0x3257,0x677C,0x0000,0x677A,0x6771, + 0xD7D2,0x676F,0xD7D3,0x6770,0xD7D4,0x3C63,0x366C,0x4377, + 0xD7D5,0x0000,0xD7D6,0x4651,0x0000,0xD7D7,0x0000,0xD7D8, + 0x0000,0x3151,0x0000,0x6774,0x6773,0x0000,0xD7D9,0xD7DA, + 0x0000,0x6779,0x6775,0x6778,0x0000,0xD7DB,0xD7DC,0x0000, + + /* 8300h */ + 0xD7DD,0xD7DE,0x4C50,0x6777,0x3258,0x337D,0x677B,0xD7DF, + 0xD7E0,0x677D,0xD7E1,0xD7E2,0x0000,0x0000,0x3754,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x6823,0x682C, + 0x682D,0x0000,0x0000,0xD7E4,0x302B,0xD7E5,0xD7E6,0xD7E7, + 0x0000,0xD7E8,0xD7E9,0x6834,0x0000,0x0000,0x0000,0x0000, + 0x3071,0x0000,0x0000,0x682B,0xD7EA,0xD7EB,0xD7EC,0x682A, + 0xD7ED,0x6825,0x6824,0xD7EE,0x6822,0x6821,0x4363,0xD7EF, + 0x427B,0x6827,0xD7F0,0x0000,0xD7F1,0xD7F2,0x0000,0x0000, + 0x6826,0x0000,0xD7F3,0xD7F4,0xD7F5,0x6829,0x0000,0xD7F6, + 0x0000,0x4170,0x3755,0x0000,0x0000,0xD7F7,0xD7F8,0x3141, + 0x6828,0xD7F9,0x3953,0xD8BE,0xD7E3,0xD7FA,0xD7FB,0xD7FC, + 0x4171,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xD7FD,0x0000,0x0000,0x683A,0x0000,0x683B,0x0000,0x3259, + 0xD7FE,0x0000,0x0000,0x322E,0x6838,0xD8A1,0x0000,0xD8A2, + 0xD8A3,0x0000,0xD8A4,0x0000,0xD8A5,0x682E,0xD8A6,0x6836, + 0x0000,0x683D,0x6837,0x0000,0x0000,0xD8A7,0x6835,0x0000, + 0x0000,0x0000,0xD8A8,0x6776,0xD8A9,0xD8AA,0x6833,0x0000, + 0xD8AB,0xD8AC,0x682F,0xD8AD,0xD8AE,0xD8AF,0x3450,0x6831, + 0x683C,0x0000,0x6832,0x0000,0x0000,0x0000,0xD8B0,0xD8B1, + 0x683E,0xD8B2,0x6830,0x477C,0xD8B3,0xD8CC,0x0000,0x0000, + 0x0000,0x4D69,0x0000,0x0000,0x0000,0x6839,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x684F,0xD8B4,0xD8B5, + 0xD8B6,0x6847,0x0000,0x0000,0x0000,0x3F7B,0x0000,0xD8B7, + 0x0000,0xD8B8,0x3546,0x0000,0x365D,0x0000,0x6842,0xD8B9, + 0xD8BA,0xD8BB,0x0000,0x325B,0xD8BC,0x0000,0x3E54,0x0000, + 0x6845,0x0000,0x0000,0x0000,0x3A5A,0xD8BD,0x0000,0x4551, + 0x684A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xD8BF,0x4A6E,0xD8C0,0x6841,0x0000,0x0000,0x0000,0x325A, + 0x3856,0x4929,0x684B,0x0000,0x683F,0x0000,0xD8C1,0x6848, + 0xD8C2,0xD8C3,0x0000,0x6852,0xD8C4,0x6843,0x0000,0x0000, + + /* 8400h */ + 0x0000,0xD8C5,0x0000,0x6844,0x463A,0x0000,0xD8C6,0x6849, + 0x0000,0x0000,0xD8C7,0x6846,0x4B28,0x684C,0x3060,0xD8C8, + 0x0000,0xD8C9,0x0000,0x6840,0x0000,0xD8CA,0x0000,0x0000, + 0x0000,0xD8CB,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x684E,0x0000,0x684D,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x476B,0x6854,0x0000,0x685F,0x0000,0x0000,0xD8CD, + 0x0000,0x337E,0x0000,0x0000,0x0000,0x6862,0x0000,0x0000, + 0x6850,0xD8CE,0x0000,0x0000,0x6855,0x4D6E,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0xD8CF,0x685E,0xD8D0, + 0xD8D1,0x4D55,0xD8D2,0x0000,0x0000,0xD8D3,0x4E2A,0xD8D4, + 0x0000,0xD8D5,0xD8D6,0x0000,0x0000,0x0000,0xD8D7,0x4378, + 0xD8D8,0xD8D9,0xD8DA,0x336B,0xD8DB,0x0000,0x0000,0x0000, + 0xD8DC,0x4972,0x6864,0x4621,0xD8DD,0xD8DE,0x3031,0xD8DF, + 0x0000,0x685D,0xD8E0,0x6859,0x4172,0x6853,0x685B,0x6860, + 0xD8E1,0x472C,0x0000,0xD8E2,0xD8E3,0x302A,0xD8E4,0x6858, + 0xD8E5,0x6861,0x4978,0x0000,0xD8E6,0xD8E7,0x0000,0x0000, + 0x0000,0xD8E8,0x685C,0x0000,0x6857,0xD8E9,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x3E55,0x0000,0x0000,0x0000,0x0000, + 0x3D2F,0x0000,0xD8EA,0xD8EB,0x3C2C,0xD8EC,0x0000,0x0000, + 0x0000,0x4C58,0x0000,0x0000,0x4947,0x0000,0xD8ED,0x6867, + 0x0000,0x6870,0x0000,0x0000,0x0000,0x0000,0xD8EE,0x0000, + 0xD8EF,0xD8F0,0xD8F1,0x0000,0x0000,0x685A,0x0000,0xD8F2, + 0x0000,0xD8F3,0x3377,0x0000,0xD8F4,0x0000,0x0000,0x0000, + 0x3E78,0x6865,0xD8F5,0x686A,0x4173,0xD8F6,0xD8F7,0x6866, + 0xD8F8,0x686D,0xD8F9,0x0000,0x435F,0x0000,0x686E,0xD8FA, + 0xD8FB,0x4D56,0x6863,0x3338,0xD8FC,0x6869,0x0000,0xD8FD, + 0x686C,0x4C2C,0x0000,0xD8FE,0x0000,0x0000,0x686F,0x0000, + 0x0000,0x6868,0x686B,0x0000,0xD9A1,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xD9A2, + 0x0000,0x0000,0xD9A3,0x0000,0x4B29,0x0000,0x4F21,0xD9A4, + 0xD9A5,0xD9A6,0xD9A7,0x0000,0x6873,0x0000,0x0000,0xD9A8, + 0x0000,0x0000,0xD9AA,0xD9AB,0x687A,0xD9AC,0x0000,0x6872, + + /* 8500h */ + 0x3C43,0x0000,0xD9AD,0xD9AE,0x0000,0x0000,0x6851,0xD9AF, + 0x0000,0x0000,0x0000,0x0000,0xD9B0,0x0000,0xD9B1,0x0000, + 0xD9B2,0x4A4E,0x0000,0x4C22,0x6879,0x6878,0x0000,0x6874, + 0x6875,0x0000,0x3136,0x0000,0xD9B3,0x0000,0xD9B4,0x6877, + 0x0000,0x6871,0xD9B5,0xD9B6,0xD9B7,0xD9B8,0x4455,0xD9B9, + 0x0000,0x0000,0xD9BA,0xD9BB,0x6876,0x307E,0x0000,0xD9BC, + 0x0000,0x0000,0xD9A9,0xD9BD,0xD9BE,0x4222,0xD9BF,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x4A43,0x0000,0xD9C0, + 0x687B,0x6921,0x0000,0x4859,0x0000,0x0000,0xD9C1,0x0000, + 0x687E,0x3E56,0x3C49,0x6923,0x0000,0x0000,0x363E,0xD9C2, + 0xD9C3,0xD9C4,0xD9C5,0xD9C6,0x0000,0x6924,0xD9C7,0x4979, + 0x687D,0xD9C8,0x6856,0x0000,0xD9C9,0xD9CA,0xD9CB,0xD9CC, + 0xD9CD,0xD9CE,0xD9CF,0x687C,0xD9D0,0x0000,0x0000,0x0000, + 0x4F4F,0x4622,0x4973,0xD9D1,0x0000,0x692B,0x0000,0xD9D2, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x6931, + 0x0000,0xD9D3,0xD9D4,0xD9D5,0x0000,0xD9D6,0x6932,0xD9D7, + 0x6925,0xD9D8,0x0000,0x0000,0x4776,0xD9D9,0xD9DA,0x692F, + 0x6927,0xD9DB,0x6929,0xD9DC,0xD9DD,0x0000,0x0000,0xD9DE, + 0x6933,0x6928,0x0000,0xD9DF,0x692C,0x0000,0x0000,0x3172, + 0xD9E0,0x4665,0x0000,0x692D,0x6930,0xD9E1,0x0000,0xD9E2, + 0xD9E3,0x0000,0xD9E4,0x0000,0x6926,0xD9E5,0x4126,0xD9E6, + 0x692A,0x3B27,0x3F45,0x3730,0x4C74,0xD9F4,0x4C79,0x3D72, + 0x0000,0x0000,0x0000,0x0000,0xD9E7,0x0000,0xD9E8,0xD9E9, + 0xD9EA,0x6937,0x6935,0x0000,0xD9EB,0xD9EC,0xD9ED,0xD9EE, + 0x0000,0x4F4E,0xD9EF,0x0000,0x0000,0x0000,0x0000,0xD9F0, + 0x0000,0x6934,0xD9F1,0xD9F2,0x0000,0x4D75,0xD9F3,0x6936, + 0x6938,0x0000,0x0000,0x0000,0x0000,0x6939,0x0000,0x0000, + 0xD9F5,0x0000,0xD9F6,0x0000,0x693C,0x693A,0x0000,0xD9F7, + 0xD9F8,0x0000,0x0000,0x0000,0x4623,0x693B,0xD9F9,0x0000, + 0xD9FA,0x484D,0x692E,0x0000,0x0000,0xD9FB,0x0000,0x0000, + 0x0000,0x0000,0x0000,0xD9FC,0x0000,0x0000,0xD9FD,0x3D73, + 0x0000,0x693D,0x6942,0x4174,0xD9FE,0x0000,0x6941,0xDAA1, + + /* 8600h */ + 0xDAA2,0x0000,0x6922,0x0000,0xDAA3,0xDAA4,0x6943,0x4149, + 0x0000,0x0000,0x693E,0x6940,0x0000,0xDAA5,0xDAA6,0x0000, + 0xDAA7,0xDAA8,0xDAA9,0x693F,0x0000,0x0000,0x5D31,0x5D22, + 0xDAAA,0xDAAB,0x6945,0xDAAC,0x0000,0x0000,0xDAAD,0x0000, + 0x0000,0xDAAE,0x6944,0x0000,0x0000,0x0000,0x0000,0xDAAF, + 0x0000,0xDAB0,0x0000,0x0000,0x0000,0x4D76,0x0000,0x623C, + 0x6946,0x0000,0x0000,0x0000,0x0000,0x0000,0xDAB1,0x0000, + 0xDAB2,0x0000,0xDAB3,0x0000,0xDAB4,0xDAB5,0x0000,0x6947, + 0xDAB6,0xB8E6,0xDAB7,0x0000,0x0000,0x0000,0xDAB8,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x6948,0x3857,0x0000, + 0x3554,0x0000,0xDAB9,0xDABA,0x694A,0x515D,0xDABB,0xDABC, + 0xDABD,0xDABE,0x3575,0x0000,0x4E3A,0xDABF,0x3673,0x694B, + 0xDAC0,0xDAC1,0xDAC2,0xDAC3,0xDAC4,0x0000,0x0000,0x694C, + 0x0000,0xDAC5,0x0000,0x436E,0xDAC6,0x0000,0x0000,0xDAC7, + 0x0000,0x694D,0x0000,0x0000,0x0000,0xDAC8,0xDAC9,0xDACA, + 0x0000,0x467A,0xDACB,0x303A,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xDAED,0x0000,0x3263,0x6952,0x6953,0xDACC,0x0000,0x0000, + 0x0000,0xDACD,0x0000,0x694E,0x0000,0x3B3D,0xDACE,0x0000, + 0xDACF,0x0000,0xDAD0,0x0000,0xDAD1,0x0000,0x0000,0x0000, + 0x0000,0xDAD2,0x0000,0x694F,0x4742,0x0000,0xDAD3,0xDAD4, + 0xDAD5,0x6950,0x6951,0x695B,0x0000,0xDAD6,0x0000,0x6955, + 0x6958,0xDAD7,0x0000,0xDAD8,0xDAD9,0xDADA,0x6954,0xDADB, + 0xDADC,0xDADD,0x0000,0x0000,0x0000,0x0000,0x0000,0xDADE, + 0xDADF,0xDAE0,0x0000,0xDAE1,0x6956,0xDAE2,0x6957,0x3C58, + 0x0000,0x6959,0x0000,0x4341,0x0000,0x3756,0x3342,0x0000, + 0x0000,0xDAE3,0xDAE4,0x0000,0x695C,0xDAE5,0x0000,0xDAE6, + 0x0000,0x333F,0xDAE7,0x6961,0xDAE8,0x0000,0x695D,0x6960, + 0xDAE9,0x0000,0x0000,0xDAEA,0x483A,0xDAEB,0x0000,0xDAEC, + 0x0000,0x695E,0x0000,0x0000,0x695F,0x4948,0x485A,0x6962, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x427D,0x696C,0xDAEE,0x6968,0xDAEF,0xDAF0,0x326B,0x0000, + + /* 8700h */ + 0x6966,0x0000,0x4B2A,0x6967,0xDAF1,0xDAF2,0x6964,0xDAF3, + 0x6965,0x696A,0x696D,0xDAF4,0x0000,0x696B,0xDAF5,0xDAF6, + 0xDAF7,0x6969,0x6963,0xDAF8,0xDAF9,0x0000,0x0000,0x0000, + 0x4358,0xDAFA,0x6974,0x0000,0x4C2A,0x0000,0xDAFB,0xDAFC, + 0x0000,0xDAFD,0x0000,0xDAFE,0x0000,0x6972,0x0000,0x0000, + 0xDBA1,0x6973,0x0000,0x0000,0x0000,0x0000,0xDBA2,0xDBA3, + 0x0000,0xDBA4,0xDBA5,0x0000,0x696E,0x0000,0x0000,0x6970, + 0x0000,0xDBA6,0xDBA7,0x6971,0xDBA8,0xDBA9,0xDBAA,0x696F, + 0xDBAB,0x0000,0x0000,0xDBAC,0x0000,0xDBAD,0x0000,0x0000, + 0x0000,0x4066,0x0000,0x4F39,0x6978,0xDBAE,0x6979,0x0000, + 0x0000,0x0000,0x0000,0x6A21,0x0000,0x3F2A,0x0000,0x697B, + 0xDBAF,0x697E,0x0000,0x0000,0x0000,0xDBB0,0x0000,0x6976, + 0x6975,0xDBB1,0x0000,0x6A22,0xDBB2,0xDBB3,0x325C,0x0000, + 0x697C,0x0000,0x6A23,0x0000,0x0000,0x0000,0x697D,0xDBB4, + 0x0000,0xDBB5,0xDBB6,0x0000,0x697A,0x0000,0x4433,0x0000, + 0x6977,0x0000,0x0000,0xDBB7,0x0000,0x0000,0x0000,0x4768, + 0x0000,0x0000,0x6A27,0xDBB8,0xDBB9,0xDBBA,0xDBBB,0xDBBC, + 0xDBBD,0xDBBE,0x0000,0xDBBF,0xDBC0,0x4D3B,0x0000,0x0000, + 0xDBC1,0x0000,0x0000,0xDBC2,0x0000,0xDBC3,0x0000,0xDBC4, + 0xDBC5,0xDBC6,0x0000,0x0000,0x0000,0x0000,0xDBC7,0x6A26, + 0xDBC8,0x0000,0x6A25,0xDBC9,0x0000,0x0000,0x0000,0xDBCA, + 0x0000,0x0000,0x0000,0x6A2E,0xDBCB,0xDBCC,0xDBCD,0x6A28, + 0x0000,0xDBCE,0x0000,0x6A30,0x0000,0xDBCF,0x0000,0x0000, + 0x0000,0x0000,0x4D66,0x6A33,0x0000,0x6A2A,0xDBD0,0xDBD1, + 0x6A2B,0xDBD2,0x0000,0x0000,0x6A2F,0x0000,0x6A32,0x6A31, + 0xDBD3,0xDBD4,0xDBD5,0x6A29,0x0000,0x0000,0xDBD6,0x0000, + 0x6A2C,0x0000,0x6A3D,0x0000,0x0000,0xDBD7,0xDBD8,0x0000, + 0x0000,0xDBD9,0xDBDA,0x0000,0xDBDB,0x0000,0x0000,0xDBDC, + 0x6A36,0x0000,0xDBDD,0xDBDE,0xDBDF,0x0000,0x0000,0x0000, + 0x0000,0x0000,0xDBE0,0xDBE1,0x0000,0xDBE2,0x0000,0x6A34, + 0x0000,0xDBE3,0x6A35,0xDBE4,0x0000,0x0000,0x6A3A,0x6A3B, + 0xDBE5,0x332A,0xDBE6,0x3542,0x0000,0x0000,0x6A39,0xDBE7, + + /* 8800h */ + 0x0000,0xDBE8,0x0000,0xDBE9,0x0000,0x6A24,0xDBEA,0x0000, + 0x0000,0xDBEB,0xDBEC,0xDBED,0x0000,0x6A38,0x6A3C,0x6A37, + 0xDBEE,0x6A3E,0xDBF0,0xDBF1,0xDBF2,0x6A40,0x6A3F,0x0000, + 0xDBF3,0xDBEF,0xDBF4,0xDBF5,0xDBF6,0x0000,0xDBF7,0xDBF8, + 0x0000,0x6A42,0x6A41,0x695A,0x0000,0x0000,0x0000,0x6A46, + 0xDBF9,0x0000,0x0000,0x0000,0x0000,0xDBFA,0xDBFB,0x0000, + 0xDBFC,0x6A43,0xDBFD,0x0000,0x0000,0xDBFE,0x6A44,0x0000, + 0x0000,0x6A45,0xDCA1,0x6A47,0xDCA2,0x0000,0x0000,0x0000, + 0x376C,0xDCA3,0x6A49,0xDCA4,0x6A48,0xDCA5,0x3D30,0x0000, + 0xDCA6,0xDCA7,0xDCA8,0xDCA9,0x3954,0x5E27,0xDCAA,0x0000, + 0x0000,0xDCAB,0x6A4A,0x3D51,0x0000,0xDCAC,0xDCAD,0x3339, + 0xDCAE,0x6A4B,0xDCAF,0x3152,0xDCB0,0x3E57,0x6A4C,0xDCB1, + 0xDCB2,0x3955,0x6A4D,0x3061,0xDCB3,0x0000,0x0000,0x0000, + 0x493D,0xDCB4,0x0000,0x6A4E,0x0000,0x0000,0x0000,0x0000, + 0x3F6A,0xDCB5,0x6A55,0x0000,0x0000,0x6A52,0x0000,0x436F, + 0x0000,0xDCB6,0x0000,0xDCB7,0x0000,0x6A53,0x6A50,0x365E, + 0xDCB8,0x6A4F,0x6A56,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x3736,0x0000,0x0000,0x425E,0x0000,0x6A5C,0x0000,0x0000, + 0x0000,0x0000,0x6A58,0x0000,0x0000,0x0000,0x4235,0x6A57, + 0xDCB9,0x6A5A,0xDCBA,0xDCBB,0xDCBC,0x0000,0x6A51,0xDCBD, + 0xDCBE,0x0000,0x6A5B,0x0000,0x6A5D,0x0000,0x0000,0x0000, + 0xDCBF,0x0000,0xDCC0,0x486F,0x0000,0x0000,0x6A59,0x0000, + 0x6A5E,0x6A60,0x0000,0x0000,0x3853,0x6A54,0x0000,0x3041, + 0x0000,0x0000,0xDCC1,0x0000,0x0000,0xDCC2,0xDCC3,0x6A5F, + 0xDCC4,0x3A5B,0x4E76,0x6A61,0x6A62,0x4175,0x0000,0x0000, + 0x0000,0x0000,0xDCC5,0xDCC6,0xDCC7,0xDCC8,0xDCC9,0x4E22, + 0x0000,0xDCCA,0xDCCB,0xDCCC,0x6A63,0x4D35,0x0000,0x0000, + 0x6A64,0x6A65,0x0000,0xDCCD,0x4A64,0x6A66,0xDCCE,0x3A40, + 0x0000,0x4E23,0x0000,0x0000,0x0000,0x0000,0x0000,0xDCCF, + 0x6A6B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xDCD0, + 0xDCD1,0xDCD2,0x6A6C,0x3E58,0x6A6A,0xDCD3,0x0000,0xDCD4, + 0x4D67,0x6A67,0x0000,0x0000,0x6A69,0x403D,0x3F7E,0x0000, + + /* 8900h */ + 0x0000,0xDCD5,0x6A68,0x0000,0x6A6D,0x0000,0xDCD6,0x4A23, + 0x0000,0x0000,0x6A6F,0x0000,0x6A6E,0xDCD7,0xDCD8,0xDCD9, + 0x336C,0x0000,0x4B2B,0x6A70,0x0000,0xDCDA,0xDCDB,0x0000, + 0xDCDC,0xDCDD,0xDCDE,0x0000,0xDCDF,0x6A7C,0x6A72,0x0000, + 0xDCE0,0x0000,0x0000,0x0000,0x0000,0x6A73,0xDCE1,0xDCE2, + 0xDCE3,0x0000,0x6A74,0x6A75,0x0000,0x0000,0x0000,0x0000, + 0xDCE4,0xDCE5,0xDCE6,0x0000,0x0000,0xDCE7,0x6A79,0x0000, + 0x6A7A,0xDCE8,0xDCE9,0x6A78,0x0000,0x0000,0xDCEA,0x0000, + 0xDCEB,0x6A76,0xDCEC,0x6A71,0x6A77,0xDCED,0xDCEE,0x0000, + 0x0000,0xDCEF,0x0000,0x0000,0x6A7B,0x7037,0x0000,0xDCF0, + 0x0000,0x0000,0xDCF1,0x0000,0x0000,0x0000,0x3228,0xDCF2, + 0x0000,0x0000,0xDCF3,0xDCF4,0xDCF5,0x0000,0x6A7E,0x365F, + 0x6A7D,0xDCF6,0xDCF7,0xDCF8,0x6B22,0x0000,0x6B21,0x0000, + 0x0000,0x0000,0x6B24,0xDCF9,0x0000,0x6B23,0xDCFA,0x6B25, + 0xDCFB,0x0000,0x3D31,0xDCFC,0x6B26,0xDCFD,0x0000,0x6B27, + 0x0000,0x0000,0xDCFE,0xDDA1,0xDDA2,0xDDA3,0x6B28,0x403E, + 0x0000,0x4D57,0x0000,0x6B29,0x0000,0x0000,0x4A24,0x4746, + 0x6B2A,0xDDA4,0x6B2B,0x382B,0x0000,0xDDA5,0x0000,0x352C, + 0xDDA6,0x0000,0x0000,0x6B2C,0xDDA7,0xDDA8,0x3B6B,0x4741, + 0x6B2D,0x0000,0x3350,0xDDA9,0xDDAA,0x0000,0x0000,0xDDAB, + 0xDDAC,0x6B2E,0x0000,0x0000,0x0000,0xDDAD,0x6B30,0x4D77, + 0x0000,0x6B2F,0x3F46,0x0000,0x6B31,0x0000,0x0000,0x6B32, + 0xDDAE,0x0000,0x6B33,0x3451,0xDDAF,0xDDB0,0xDDB1,0xDDB2, + 0x0000,0x0000,0x6B34,0x0000,0xDDB3,0x6B35,0x0000,0x6B36, + 0x6B37,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x3351,0x0000,0xDDB4,0xDDB5,0xDDB6,0xDDB7, + 0xDDB8,0x0000,0x6B38,0x0000,0x6B39,0x6B3A,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x3272,0x0000,0xDDB9,0x3F28,0x6B3B, + 0x0000,0xDDBA,0x0000,0xDDBB,0x0000,0xDDBC,0x0000,0x0000, + 0x0000,0xDDBD,0x0000,0xDDBE,0x6B3C,0x0000,0xDDBF,0x0000, + 0x6B3D,0xDDC0,0x0000,0x0000,0x0000,0xDDC1,0x0000,0xDDC2, + + /* 8A00h */ + 0x3840,0x0000,0x447B,0x6B3E,0xDDC3,0xDDC4,0x0000,0xDDC5, + 0x3757,0x0000,0x3F56,0x0000,0x6B41,0x0000,0x4624,0xDDC6, + 0x6B40,0xDDC7,0xDDC8,0x3731,0xDDC9,0xDDCA,0x6B3F,0x4277, + 0x352D,0x0000,0x0000,0x6B42,0x0000,0x6B43,0xDDCB,0x3E59, + 0xDDCC,0x0000,0xDDCD,0x376D,0xDDCE,0x6B44,0xDDCF,0x0000, + 0x0000,0x0000,0x4B2C,0xDDD0,0xDDD1,0x405F,0x0000,0xDDD2, + 0x0000,0x3576,0x0000,0x4C75,0x414A,0xDDD3,0x6B45,0xDDD4, + 0x0000,0x0000,0x3F47,0x4370,0x3E5A,0xDDD5,0xDDD6,0x0000, + 0xDDD7,0x6B46,0x0000,0xDDD8,0x0000,0xDDD9,0x6B49,0xDDDA, + 0x6B4A,0xDDDB,0x0000,0x0000,0x0000,0xDDDC,0xDDDD,0x0000, + 0x3A3E,0x4242,0x6B48,0xDDDE,0x3E5B,0x493E,0xDDDF,0xDDE0, + 0xDDE1,0x0000,0x0000,0x6B47,0xDDE2,0xDDE3,0x3B6C,0x0000, + 0x3153,0xDDE4,0x6B4E,0x3758,0x0000,0xDDE5,0x3B6E,0xDDE6, + 0x0000,0x3B6D,0x0000,0x4F4D,0x6B4D,0x6B4C,0x4127,0x0000, + 0x354D,0x4F43,0x333A,0x3E5C,0x0000,0xDDE7,0xDDE8,0xDDE9, + 0x0000,0xDDEA,0xDDEB,0xDDEC,0x6B4B,0x0000,0xDDED,0xDDEE, + 0xDDEF,0x0000,0x6B50,0xDDF0,0x6B51,0x6B4F,0xDDF1,0x3858, + 0x0000,0x4D40,0x0000,0xDDF2,0x3B6F,0x4727,0x0000,0xDDF3, + 0xDDF4,0x6B54,0xDDF5,0x4040,0x0000,0x4342,0xDDF6,0xDDF7, + 0x4D36,0xDDF8,0x6B57,0x0000,0x0000,0x0000,0x386C,0xDDF9, + 0x403F,0x6B53,0x0000,0x6B58,0x386D,0x6B55,0x6B56,0xDDFA, + 0x6B52,0xDDFB,0x0000,0x0000,0x4062,0x4649,0xDDFC,0xDDFD, + 0x432F,0x0000,0x325D,0xDDFE,0x0000,0x0000,0xDEA1,0xDEA2, + 0x0000,0x4870,0x0000,0xDEA3,0x3543,0x0000,0xDEA4,0x4434, + 0x0000,0x0000,0x6B5B,0xDEA5,0x6B59,0x0000,0xDEA6,0x434C, + 0xDEA7,0xDEA8,0xDEA9,0x4041,0x3452,0x6B5A,0x0000,0x3F5B, + 0x0000,0xDEAA,0x4E4A,0xDEAB,0xDEAC,0xDEAD,0x4F40,0xDEAE, + 0x0000,0x0000,0x6B5C,0x6B67,0x4435,0xDEAF,0x6B66,0xDEB0, + 0x6B63,0x6B6B,0x6B64,0x0000,0x6B60,0x0000,0x447C,0x6B5F, + 0x0000,0x0000,0x0000,0x6B5D,0xDEB1,0x4D21,0x3B70,0x0000, + 0xDEB2,0x6B61,0x0000,0x6B5E,0xDEB3,0xDEB4,0xDEB5,0x6B65, + 0x3D74,0x0000,0x3841,0x0000,0xDEB6,0x0000,0x427A,0xDEB7, + + /* 8B00h */ + 0x4B45,0x315A,0x3062,0x0000,0x4625,0xDEB8,0xDEB9,0x6B69, + 0x0000,0x0000,0xDEBF,0xDEBA,0x6B68,0x0000,0x4666,0x0000, + 0x6B6D,0xDEBB,0x0000,0x0000,0x6B62,0x0000,0x6B6C,0x6B6E, + 0x0000,0x382C,0x6B6A,0x3956,0xDEBC,0x3C55,0xDEBD,0xDEBE, + 0x6B6F,0x4D58,0x0000,0x0000,0x0000,0x0000,0x6B72,0x0000, + 0x6B75,0x0000,0x0000,0x6B73,0x4935,0xDEC0,0x0000,0x0000, + 0xDEC1,0x0000,0x0000,0x6B70,0x0000,0x0000,0x0000,0xDEC2, + 0x0000,0x3660,0x0000,0x0000,0xDEC3,0x0000,0x6B74,0x0000, + 0x0000,0x6B76,0xDEC4,0xDEC5,0xDEC6,0xDEC7,0xDEC8,0x0000, + 0xDEC9,0x6B7A,0x0000,0x0000,0x6B77,0xDECE,0x6B79,0x6B78, + 0x0000,0x0000,0xDECA,0xDECB,0xDECC,0x0000,0x6B7B,0x0000, + 0x3C31,0xDECD,0x6B7D,0x6B7C,0x4968,0x0000,0xDECF,0x6C21, + 0x0000,0x0000,0x0000,0xDED0,0x0000,0x0000,0x3759,0x0000, + 0x0000,0x0000,0x0000,0x6B7E,0x6C22,0xDED1,0x0000,0x6C23, + 0x3544,0x6641,0x3E79,0x0000,0x6C24,0x0000,0xDED2,0x386E, + 0xDED3,0xDED4,0x0000,0x0000,0xDED5,0x6C25,0xDED6,0x0000, + 0x6C26,0xDED7,0x0000,0x3B3E,0xDED8,0xDED9,0x0000,0x0000, + 0x0000,0x0000,0x5A4E,0xDEDA,0x6C27,0xDEDB,0x6C28,0xDEDC, + 0x3D32,0x0000,0x6C29,0x6C2A,0xDEDD,0xDEDE,0x6C2B,0x0000, + 0x0000,0x6C2C,0x6C2D,0x0000,0xDEDF,0x0000,0xDEE0,0xDEE1, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* 8C00h */ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x432B, + 0xDEE2,0xDEE3,0x6C2E,0x0000,0x0000,0xDEE4,0xDEE5,0x6C30, + 0x0000,0x6C2F,0x0000,0x0000,0x0000,0xDEE6,0x4626,0xDEE7, + 0x6C31,0xDEE8,0x4B2D,0xDEE9,0x6C32,0x0000,0x6C33,0xDEEA, + 0x6C34,0xDEEB,0x0000,0xDEEC,0xDEED,0x6C35,0x0000,0xDEEE, + 0xDEEF,0xDEF2,0x465A,0xDEF0,0x0000,0xDEF1,0x0000,0x0000, + 0x0000,0x3E5D,0x6C36,0xDEF3,0xDEF4,0x0000,0xDEF5,0x0000, + 0xDEF6,0xDEF7,0x396B,0x502E,0x6C37,0xDEF8,0x0000,0x0000, + 0x0000,0x0000,0x0000,0xDEF9,0x0000,0xDEFA,0xDEFB,0x0000, + 0x6C38,0x493F,0x6C39,0xDEFC,0x6C41,0x0000,0xDEFD,0x0000, + 0x0000,0x0000,0x6C3A,0x0000,0x0000,0x6C3C,0xDEFE,0xDFA1, + 0x0000,0x6C3B,0x6C3D,0xDFA2,0x4B46,0x6C3E,0x6C3F,0x0000, + 0xDFA3,0x0000,0xDFA4,0xDFA5,0x6C40,0x0000,0x0000,0x0000, + 0x6C42,0xDFA6,0x0000,0xDFA7,0xDFA8,0x332D,0x4467,0x0000, + 0x4969,0x3A62,0x3957,0x0000,0xDFA9,0x0000,0x0000,0x494F, + 0x325F,0x484E,0x6C45,0x3453,0x4055,0x6C44,0x6C49,0x4379, + 0x4C63,0x0000,0x6C47,0x6C48,0x352E,0x0000,0x6C4A,0x4763, + 0x425F,0xDFAA,0xDFAB,0x4871,0x453D,0x6C46,0x0000,0x4B47, + 0x326C,0x6C4C,0x4F28,0x4442,0x4F45,0xDFAC,0xDFAD,0x3B71, + 0x6C4B,0xDFAE,0x4231,0xDFAF,0x0000,0x6C5C,0x4128,0xDFB0, + 0x0000,0x4678,0x0000,0x4950,0x0000,0xDFB2,0xDFB1,0x0000, + 0x0000,0xDFB3,0x6C4F,0x3B3F,0x3B72,0xDFB4,0x3E5E,0x0000, + 0x4765,0xDFB5,0x382D,0x6C4E,0x6C4D,0x0000,0x496A,0x0000, + 0xDFB6,0x0000,0x3C41,0x0000,0xDFB7,0x4552,0x0000,0xDFB8, + 0xDFB9,0x0000,0xDFBA,0x0000,0x0000,0xDFBB,0x0000,0xDFBC, + 0xDFBD,0x0000,0x6C51,0x6C52,0x3958,0x6C50,0xDFBE,0xDFBF, + + /* 8D00h */ + 0x0000,0xDFC0,0x0000,0xDFC1,0x6C53,0x6C54,0x0000,0x6C56, + 0x4223,0xDFC2,0x6C55,0x3466,0x0000,0x6C58,0x0000,0x6C57, + 0x6C59,0x0000,0xDFC3,0x6C5B,0x6C5D,0x0000,0x6C5E,0xDFC4, + 0x0000,0x0000,0x0000,0xDFC5,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x4056,0xDFC6,0x3C4F,0x6C5F, + 0x0000,0xDFC7,0x0000,0x3352,0xDFC8,0x6C60,0xDFC9,0x0000, + 0x4176,0x6C61,0x0000,0x6C62,0x496B,0x0000,0x0000,0x352F, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xDFCA, + 0x0000,0x6C63,0xDFCB,0x0000,0xDFCC,0x4436,0x0000,0x0000, + 0xDFCD,0x0000,0x315B,0x0000,0x0000,0xDFCE,0x0000,0x0000, + 0xDFCF,0xDFD0,0x0000,0x0000,0x0000,0xDFD1,0x0000,0x0000, + 0x0000,0x6C64,0x0000,0x0000,0x0000,0x0000,0xDFD2,0xDFD3, + 0xDFD4,0x0000,0x0000,0x3C71,0x0000,0x0000,0xDFD5,0x0000, + 0x3F76,0x0000,0x0000,0xDFD6,0xDFD7,0x0000,0x0000,0xDFD8, + 0x0000,0x0000,0xDFD9,0x422D,0x0000,0xDFDA,0x0000,0xDFDB, + 0x0000,0xDFDC,0x6C67,0xDFDD,0xDFEF,0x0000,0x6C66,0x0000, + 0xDFDE,0x0000,0x6C65,0x0000,0x0000,0xDFDF,0xDFE0,0xDFE1, + 0xDFE2,0x0000,0xDFE3,0x6C6D,0x6C6B,0x0000,0xDFE4,0x6C68, + 0x0000,0xDFE5,0x0000,0x0000,0xDFE6,0xDFE7,0x6C6A,0xDFE8, + 0x0000,0xDFE9,0x6C69,0x6C6C,0x0000,0x3577,0x0000,0x6C70, + 0x0000,0x4057,0x0000,0x6C71,0xDFEA,0xDFEB,0x0000,0xDFEC, + 0x3859,0x0000,0x6C6E,0x6C6F,0xDFED,0x0000,0x0000,0x4F29, + 0xDFEE,0xDFF0,0xDFF1,0x4437,0xDFF2,0x4129,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x6C72,0xDFF3,0x0000,0x6C75, + + /* 8E00h */ + 0x0000,0xDFF4,0x0000,0x0000,0xDFF5,0xDFF6,0xDFF7,0x0000, + 0x6C73,0x6C74,0x4D59,0xDFF8,0x0000,0x0000,0x0000,0x4627, + 0x6C78,0xDFF9,0x0000,0x0000,0xDFFA,0x0000,0xDFFB,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x6C76,0x6C77,0x6C79, + 0xDFFC,0xDFFD,0xDFFE,0xE0A1,0x0000,0x0000,0xE0A2,0xE0A3, + 0x0000,0x0000,0x6D29,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x6C7C,0xE0A4,0x0000,0xE0A5,0x6C7D,0x6C7B,0xE0A6,0xE0A7, + 0xE0A8,0xE0A9,0x0000,0x0000,0x0000,0xE0AA,0x0000,0x0000, + 0xE0AB,0xE0AC,0x6C7A,0x0000,0x447D,0x0000,0x0000,0x6D21, + 0x6D25,0x6D22,0x6C7E,0xE0AD,0x6D23,0xE0AE,0xE0AF,0xE0B0, + 0x6D24,0x0000,0x0000,0x0000,0xE0B1,0x6D2B,0x0000,0x0000, + 0x0000,0x6D26,0x0000,0xE0B2,0xE0B3,0xE0B4,0xE0B5,0x4058, + 0x6D28,0xE0B6,0xE0B7,0x6D2A,0x6D27,0x0000,0x0000,0x0000, + 0x0000,0xE0B8,0x0000,0x0000,0xE0B9,0xE0BA,0x0000,0xE0BB, + 0xE0BC,0xE0BD,0x6D2D,0x0000,0x3D33,0x0000,0x6D2C,0x0000, + 0x0000,0xE0BE,0xE0BF,0xE0C0,0x6D2E,0x0000,0x0000,0x0000, + 0x0000,0x6D2F,0xE0C1,0xE0C2,0x6D32,0x6D31,0x0000,0x6D30, + 0x0000,0xE0C3,0x6D34,0x6D33,0x0000,0x4C76,0x0000,0x0000, + 0xE0C4,0x6D36,0xE0C5,0x6D35,0x6D37,0xE0C6,0x0000,0x0000, + 0x0000,0x6D38,0xE0C7,0xE0C8,0x0000,0xE0C9,0xE0CA,0x0000, + 0x0000,0x6D3A,0xE0CB,0x0000,0x0000,0x0000,0x0000,0xE0CC, + 0x0000,0xE0CD,0x6D39,0x3F48,0x6D3B,0xE0CE,0xE0CF,0x366D, + 0x6D3C,0x6D3E,0x0000,0xE0D0,0x0000,0xE0D1,0x0000,0x0000, + 0x0000,0x0000,0xE0D2,0xE0D3,0x0000,0x0000,0x6D3F,0x0000, + 0xE0D4,0xE0D5,0x0000,0xE0D6,0xE0D7,0x6D40,0x6D3D,0xE0D8, + 0x6D41,0x0000,0x3C56,0x6D42,0x3530,0x3733,0x0000,0xE0D9, + 0x0000,0xE0DA,0x382E,0x0000,0xE0DB,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x6D43,0xE0DC,0x0000,0x0000,0x4670, + 0x0000,0x0000,0x453E,0x6D44,0x0000,0x0000,0x0000,0x0000, + 0xE0DD,0x0000,0x0000,0x6D47,0x0000,0xE0E4,0xE0DE,0x0000, + 0xE0DF,0xE0E0,0x0000,0x0000,0x0000,0x0000,0x0000,0xE0E1, + 0x3C34,0xE0E2,0xE0E3,0x6D46,0x6D45,0x375A,0x6D48,0x0000, + + /* 8F00h */ + 0xE0E5,0x0000,0xE0E6,0x3353,0x0000,0x6D4A,0x0000,0xE0E7, + 0xE0E8,0x3A5C,0x6D49,0x0000,0x6D52,0x0000,0x0000,0xE0E9, + 0xE0EA,0x0000,0x6D4C,0x6D4E,0x4A65,0x6D4B,0xE0EB,0xE0EC, + 0xE0ED,0x6D4D,0x0000,0x6D51,0x6D4F,0x3531,0xE0EE,0x6D50, + 0xE0EF,0xE0F0,0x0000,0xE0F1,0x0000,0xE0F2,0x6D53,0xE0F3, + 0xE0F4,0x475A,0x4E58,0x0000,0xE0F5,0xE0F6,0xE0F7,0x3D34, + 0x0000,0x0000,0x0000,0x6D54,0xE0F8,0xE0F9,0xE0FA,0xE0FB, + 0x4D22,0x6D56,0xE0FC,0x6D55,0x0000,0x0000,0x6D59,0x4D41, + 0xE0FD,0xE0FE,0x6D58,0xE1A1,0x336D,0x6D57,0x6D5C,0xE1A2, + 0x0000,0x6D5B,0x0000,0x0000,0x6D5A,0x4532,0x6D5D,0xE1A3, + 0x0000,0xE1A4,0xE1A5,0xE1A6,0xE1A7,0xE1A8,0x0000,0x6D5E, + 0xE1A9,0x0000,0x0000,0x0000,0x6D5F,0xE1AA,0xE1AB,0x396C, + 0x0000,0x3725,0x6D60,0x6D61,0x6D62,0xE1AC,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x3F49,0x6D63,0xE1AD,0x3C2D,0x6D64, + 0xE1AE,0xE1AF,0x0000,0x6D65,0xE1B0,0xE1B1,0xE1B2,0x5221, + 0x517E,0x0000,0x0000,0x0000,0x0000,0x6D66,0x6570,0x6D67, + 0x4324,0x3F2B,0x4740,0x0000,0x0000,0xE1B3,0xE1B4,0x6D68, + 0xE1B5,0x0000,0x4A55,0x4454,0x397E,0x0000,0xE1B6,0x4329, + 0xE1B7,0xE1B8,0x312A,0x0000,0x4B78,0x3F57,0xE1B9,0x0000, + 0x0000,0x0000,0xE1BA,0xE1BB,0x0000,0xE1BC,0x375E,0x0000, + 0xE1BD,0x3661,0xE1BE,0xE1BF,0x4A56,0xE1C0,0x0000,0x0000, + 0x0000,0x0000,0x6D69,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xE1C1,0x0000,0x6D6B,0xE1C2,0xE1C3,0x6D6A,0x3260,0x0000, + 0xE1C4,0x4676,0x6D6C,0x4777,0x0000,0x4533,0xE1C5,0x6D6D, + 0x3D52,0xE1C6,0x0000,0x0000,0x6D6F,0xE1C7,0xE1C8,0x4C42, + 0x6D7E,0x6D71,0x6D72,0xE1C9,0x0000,0x4449,0xE1CA,0x0000, + + /* 9000h */ + 0x4260,0x4177,0xE1CB,0x4628,0xE1CC,0x6D70,0x3555,0x0000, + 0xE1CD,0x0000,0x0000,0x6D79,0xE1CE,0x6D76,0x6E25,0x4629, + 0x4360,0x6D73,0x0000,0x447E,0x4553,0x6D74,0x6D78,0x3F60, + 0xE1CF,0x4767,0x444C,0xE1D0,0x0000,0x4042,0x6D77,0x422E, + 0x4224,0x6D75,0x3029,0x4F22,0x0000,0x0000,0x0000,0x6D7A, + 0xE1D1,0xE1D2,0xE1D4,0x0000,0xE1D5,0xE1D6,0x4261,0xE1D3, + 0x0000,0x3D35,0x3F4A,0xE1D7,0xE1D8,0x6D7C,0x6D7B,0xE1D9, + 0x306F,0x6D7D,0x0000,0x0000,0x492F,0x0000,0x6E27,0xE1DA, + 0x0000,0x465B,0x3F6B,0xE1DB,0xE1DC,0x4359,0x0000,0x3678, + 0x0000,0x6E26,0x4D37,0x313F,0xE1DD,0x4A57,0x3261,0x6E21, + 0x6E22,0x6E23,0x6E24,0x463B,0x4323,0x3063,0x6E28,0x0000, + 0x6E29,0x7423,0x0000,0xE1DE,0x423D,0xE1DF,0x6E2A,0x0000, + 0x3173,0x414C,0xE1E0,0x382F,0x0000,0x4D5A,0xE1E1,0xE1E2, + 0x6E2B,0x452C,0x0000,0x0000,0xE1E3,0x4178,0x3C57,0x6E2C, + 0xE1E4,0x0000,0x6E2F,0x0000,0xE1E5,0x3D65,0x6E2D,0x412B, + 0x412A,0xE1E6,0x3064,0x0000,0x4E4B,0x6E31,0x0000,0x4872, + 0x6E33,0x6E32,0x6E30,0x6364,0x3454,0xE1E7,0x0000,0x6D6E, + 0xE1E8,0x6E35,0x6E34,0xE1E9,0xE1EA,0x0000,0xE1EB,0x6E36, + 0xE1EC,0x4D38,0x0000,0x0000,0x0000,0xE1ED,0x0000,0xE1EE, + 0xE1EF,0xE1F0,0x0000,0xE1F1,0x0000,0x0000,0x0000,0x0000, + 0xE1F2,0xE1F3,0xE1F4,0x4661,0x0000,0xE1F5,0x4B2E,0x0000, + 0x6E37,0x0000,0x3C59,0x0000,0x0000,0x0000,0x0000,0x6E38, + 0xE1F6,0x6E39,0xE1F7,0xE1F8,0xE1F9,0x6E3A,0xE1FA,0x0000, + 0x4521,0x0000,0x0000,0x0000,0x0000,0xE1FB,0xE1FD,0x0000, + 0x0000,0x306A,0x0000,0xE1FE,0xE2A1,0xE2A2,0x0000,0xE2A3, + 0xE2A4,0x0000,0x3959,0x0000,0xE1FC,0x0000,0x4F3A,0x0000, + 0x0000,0x0000,0xE2AD,0x0000,0x0000,0xE2A5,0x0000,0xE2A6, + 0xE2A7,0xE2A8,0x0000,0x6E3E,0xE2A9,0xE2AA,0x0000,0xE2AB, + 0x0000,0x3734,0x6E3B,0x0000,0x6E3C,0xE2AC,0x0000,0x0000, + 0x4974,0x0000,0x0000,0xE2AF,0x0000,0x3354,0x0000,0xE2B0, + 0xE2B1,0x0000,0x0000,0x0000,0xE2B2,0x4D39,0xE2AE,0x363F, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x4554,0xE2B3,0xE2B4, + + /* 9100h */ + 0xE2B5,0x0000,0x6E3F,0x0000,0xE2B6,0xE2B7,0xE2B8,0x0000, + 0xE2B9,0x0000,0x0000,0x0000,0x0000,0xE2BA,0x0000,0x0000, + 0xE2BB,0x0000,0x6E40,0x0000,0xE2BC,0x0000,0xE2BD,0xE2BE, + 0xE2BF,0x6E41,0xE2C0,0x0000,0xE2C1,0x0000,0xE2C2,0x0000, + 0xE2C3,0x0000,0xE2C5,0xE2C6,0x0000,0xE2C4,0x0000,0xE2C7, + 0x0000,0xE2C8,0x0000,0x0000,0x0000,0x4522,0xE2C9,0xE2CA, + 0x6E43,0xE2CB,0x6E42,0x0000,0xE2CC,0x0000,0xE2CD,0xE2CE, + 0x0000,0xE2CF,0xE2D0,0x0000,0xE2D1,0xE2D2,0x0000,0x0000, + 0x0000,0x0000,0x0000,0xE2D3,0x0000,0x0000,0x0000,0xE2D4, + 0xE2D5,0x4653,0x6E44,0x3D36,0x3C60,0x475B,0x4371,0xE2D6, + 0x0000,0x0000,0x3C72,0xE2D7,0x3F6C,0x0000,0x6E45,0xE2D8, + 0x6E46,0xE2D9,0xE2DA,0xE2DB,0x0000,0x0000,0x0000,0x0000, + 0x0000,0xE2DC,0x3F5D,0x6E47,0xE2DD,0x6E48,0x0000,0xE2DE, + 0x0000,0x6E49,0x4D6F,0x0000,0x3D37,0xE2DF,0x0000,0x0000, + 0x0000,0x0000,0x6E4B,0x6E4A,0xE2E0,0x395A,0x0000,0x3973, + 0x3B40,0xE2E1,0xE2E2,0xE2E3,0x0000,0x0000,0x0000,0x0000, + 0x0000,0xE2E4,0x6E4E,0xE2E5,0x0000,0xE2E6,0xE2E7,0x3D66, + 0x0000,0x6E4D,0xE2E8,0x6E4C,0x0000,0x4269,0xE2E9,0x0000, + 0x386F,0xE2EA,0x4043,0xE2EB,0xE2EC,0xE2ED,0x0000,0x4830, + 0xE2EE,0x0000,0x0000,0x0000,0x3D39,0x0000,0xE2EF,0x0000, + 0x0000,0xE2F0,0x6E4F,0x0000,0x3E5F,0x0000,0xE2F1,0x0000, + 0xE2F2,0x0000,0x6E52,0x6E50,0xE2F3,0xE2F4,0xE2F5,0x6E51, + 0xE2F6,0xE2F7,0xE2F8,0xE2F9,0x6E54,0x6E53,0xE2FA,0x0000, + 0x3E7A,0x0000,0x6E55,0xE2FB,0xE2FC,0xE2FD,0x0000,0xE2FE, + 0x6E56,0x6E57,0xE3A1,0xE3A2,0x0000,0xE3A3,0x4850,0x3A53, + 0x3C61,0x6E58,0x0000,0x6E59,0x4E24,0x3D45,0x4C6E,0x4E4C, + 0x6E5A,0x3662,0x0000,0xE3A4,0xE3A5,0x0000,0x6E5B,0xE3A6, + 0x4523,0xE3A7,0xE3A8,0x6E5E,0x3378,0x3F4B,0xE3A9,0x6E5C, + 0x0000,0x6E5D,0x0000,0x4460,0xE3AA,0xE3AB,0x4B55,0x367C, + 0x0000,0xE3AC,0xE3AD,0x0000,0xE3AE,0xE3AF,0xE3B0,0xE3B1, + 0xE3B2,0xE3B3,0x0000,0x0000,0x0000,0x6E60,0x6E61,0xE3B4, + 0x0000,0xE3B5,0x0000,0xE3B6,0x6E5F,0xE3B7,0x0000,0x6E63, + + /* 9200h */ + 0xE3B8,0xE3B9,0x0000,0x0000,0xE3BA,0xE3BB,0xE3BC,0xE3BD, + 0x0000,0xE3BE,0xE3BF,0x0000,0xE3C0,0x465F,0x3343,0x0000, + 0xE3C1,0x6E67,0xE3C2,0xE3C3,0x6E64,0x6E66,0xE3C4,0x0000, + 0xE3C5,0x0000,0x0000,0x0000,0xE3C6,0xE3C7,0x6E62,0x0000, + 0x0000,0x0000,0x0000,0xE3C8,0xE3C9,0xE3CA,0xE3CB,0x0000, + 0xE3CC,0x6F4F,0x0000,0x0000,0x6E65,0x0000,0xE3CD,0xE3CE, + 0xE3CF,0x0000,0x0000,0xE3D0,0x4E6B,0xE3D1,0xE3D2,0x385A, + 0xE3D3,0xE3D4,0xE3D5,0x0000,0xE3D6,0x0000,0xE3D7,0x6E6F, + 0xE3D8,0x0000,0xE3D9,0xE3DA,0x4534,0x6E6A,0xE3DB,0xE3DC, + 0x6E6D,0x6E6B,0xE3DD,0x6E70,0x0000,0xE3DE,0xE3DF,0xE3E0, + 0x6E71,0xE3E1,0x0000,0x0000,0x0000,0x0000,0x0000,0x6E69, + 0xE3E2,0xE3E3,0x6E76,0x3174,0xE3E4,0xE3E5,0x6E68,0x0000, + 0xE3E6,0xE3E7,0x482D,0x0000,0x6E6C,0xE3E8,0x3E60,0xE3E9, + 0xE3EA,0xE3EB,0x0000,0x0000,0x0000,0x0000,0xE3EC,0xE3ED, + 0xE3EE,0x395B,0x0000,0x0000,0x0000,0xE3EF,0xE3F0,0xE3F1, + 0xE3F2,0xE3F3,0x0000,0xE3F4,0xE3F5,0xE3F6,0x4B48,0xE3F7, + 0x3664,0x0000,0x0000,0x3D46,0x0000,0x463C,0x0000,0x0000, + 0xE3F8,0xE3F9,0xE3FA,0x0000,0x0000,0xE3FB,0xE3FC,0x0000, + 0x0000,0x412D,0xE3FD,0x6E74,0x0000,0x6E6E,0x6E73,0xE3FE, + 0x4C43,0xE4A1,0x4438,0x6E75,0x6E72,0x0000,0x0000,0xE4A2, + 0xE4A3,0x0000,0x0000,0x0000,0xE4A4,0xE4A5,0x0000,0xE4A6, + 0xE4A7,0x0000,0x0000,0xE4A8,0x0000,0x412C,0x0000,0xE4A9, + 0x0000,0x0000,0xE4AA,0x0000,0x0000,0x0000,0xE4AB,0x6E79, + 0xE4AC,0x6E78,0xE4AD,0xE4AE,0xE4AF,0xE4B0,0x0000,0xE4B1, + 0xE4B2,0xE4B3,0xE4B4,0xE4B5,0x0000,0xE4B6,0xE4B7,0xE4B8, + 0xE4B9,0x0000,0x0000,0xE4BA,0xE4BB,0xE4BC,0xE4BD,0x6E77, + 0xE4BE,0x0000,0x4B2F,0xE4BF,0x0000,0xE4C0,0x0000,0xE4C1, + 0xE4C2,0xE4C3,0x0000,0x0000,0xE4C4,0xE4C5,0x0000,0xE4C6, + 0xE4C7,0xE4C8,0x0000,0xE4C9,0x3D7B,0xE4CA,0x0000,0xE4CB, + 0xE4CC,0x6E7A,0x4A5F,0x0000,0xE4CD,0x3154,0xE4CE,0x0000, + 0xE4CF,0x0000,0x4946,0x4372,0x0000,0x0000,0x0000,0x0000, + 0x3578,0xE4D0,0x6E7C,0xE4D1,0x395D,0x0000,0x0000,0xE4D2, + + /* 9300h */ + 0xE4D3,0x0000,0xE4D4,0x0000,0x0000,0x0000,0x3B2C,0x0000, + 0xE4D5,0x0000,0x0000,0x0000,0x0000,0xE4D6,0x0000,0x6E7B, + 0x3F6D,0xE4D7,0x0000,0x0000,0xE4D8,0xE4D9,0x0000,0x0000, + 0x3F6E,0x6F21,0x6F23,0x0000,0xE4DA,0xE4DB,0xE4DC,0xE4DD, + 0x3E7B,0xE4DE,0x6F22,0x6F24,0xE4DF,0xE4E0,0x3653,0xE4E1, + 0x4945,0xE4E2,0xE4E3,0x3C62,0x4F23,0x0000,0x6E7E,0x3A78, + 0x0000,0x0000,0x4F3F,0xE4E4,0xE4E5,0x6F26,0xE4E6,0xE4E7, + 0x0000,0x0000,0x6F25,0x6F27,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x6E7D,0x0000,0x0000,0xE4E8, + 0xE4E9,0xE4EA,0x0000,0x4669,0x0000,0x4555,0x0000,0x0000, + 0xE4EB,0xE4EC,0xE4ED,0x0000,0x4457,0xE4EE,0x6F2C,0xE4EF, + 0xE4F0,0x0000,0xE4F1,0x4343,0x6F28,0x0000,0xE4F2,0x0000, + 0x6F29,0x0000,0x0000,0x0000,0xE4F3,0xE4F4,0x0000,0xE4F5, + 0x0000,0xE4F6,0xE4F7,0x0000,0x372D,0xE4F8,0x6F2B,0xE4F9, + 0xE4FA,0xE4FB,0x0000,0xE4FC,0xE4FD,0x3830,0xE4FE,0x0000, + 0x0000,0x0000,0xE5A1,0x0000,0x6F2A,0xE5A2,0x3E61,0xE5A3, + 0xE5A4,0xE5A5,0xE5A6,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xE5A7,0x0000,0xE5A8,0xE5A9,0x3379,0xE5AA,0x0000,0xE5AB, + 0x0000,0x0000,0xE5AC,0x0000,0x6F30,0xE5AD,0x3A3F,0x4179, + 0xE5AE,0x0000,0x444A,0xE5AF,0x0000,0x0000,0xE5B0,0x0000, + 0x0000,0xE5B1,0x0000,0xE5B2,0xE5B3,0x0000,0xE5B4,0x333B, + 0xE5B5,0xE5BB,0x0000,0xE5B6,0x6F2E,0x6F2F,0x4443,0x0000, + 0x6F2D,0x0000,0x0000,0x0000,0xE5B7,0xE5B8,0xE5B9,0x0000, + 0x0000,0x6F31,0xE5BA,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0xE5BC,0x0000,0x6F37,0xE5BD,0xE5BE,0xE5BF,0xE5C0, + 0x6F3A,0xE5C1,0xE5C2,0xE5C3,0xE5C4,0xE5C5,0x0000,0x0000, + 0x6F39,0x452D,0x0000,0xE5C6,0x0000,0x0000,0x6F32,0x6F33, + 0x6F36,0xE5C7,0x0000,0x0000,0xE5C8,0x6F38,0xE5C9,0xE5CA, + 0x0000,0x3640,0xE5CB,0x0000,0x6F3B,0x6F35,0xE5CC,0xE5CD, + 0x6F34,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xE5CF, + 0xE5D0,0xE5CE,0xE5D1,0xE5D2,0x0000,0xE5D3,0x0000,0x0000, + + /* 9400h */ + 0x0000,0xE5D4,0xE5D5,0x6F3F,0xE5D6,0x0000,0x0000,0x6F40, + 0xE5D7,0xE5D8,0x0000,0x0000,0x0000,0xE5D9,0xE5DA,0xE5DB, + 0x6F41,0x0000,0x0000,0x6F3E,0x6F3D,0xE5DC,0xE5DD,0xE5DE, + 0x3E62,0x462A,0x6F3C,0x0000,0x0000,0x0000,0x0000,0xE5DF, + 0x0000,0x6F45,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x6F43,0x0000,0x0000,0xE5E0,0xE5E1, + 0x0000,0xE5E2,0xE5E3,0xE5E4,0xE5E5,0x6F44,0x6F42,0x0000, + 0x4278,0x0000,0x6F46,0xE5E6,0x0000,0xE5E8,0x0000,0xE5E7, + 0x0000,0x6F47,0x0000,0xE5E9,0x6F49,0xE5EA,0x0000,0x0000, + 0xE5EB,0x0000,0xE5EC,0x0000,0xE5ED,0x0000,0x0000,0x0000, + 0x0000,0x3455,0x6F48,0x4C7A,0x0000,0xE5EE,0x0000,0x0000, + 0x0000,0xE5EF,0x6F54,0x6F4A,0xE5F0,0x0000,0x6F4D,0xE5F1, + 0x6F4B,0xE5F2,0x6F4C,0xE5F3,0x0000,0x0000,0x0000,0x0000, + 0xE5F4,0x0000,0x6F4E,0xE5F5,0x0000,0xE5F6,0xE5F7,0xE5F8, + 0x6F50,0xE5F9,0xE5FA,0x0000,0x0000,0x6F51,0x0000,0x6F52, + 0x0000,0x0000,0x0000,0x0000,0x6F55,0x6F53,0x6F56,0x6F58, + 0x0000,0x6F57,0x0000,0xE5FC,0xE5FB,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* 9500h */ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x4439, + 0xE5FD,0xE5FE,0x0000,0x0000,0x0000,0x0000,0xE6A1,0x0000, + 0x4C67,0x0000,0x6F59,0x412E,0xE6A2,0x0000,0x0000,0x6F5A, + 0xE6A3,0x4A44,0x6F5B,0x332B,0xE6A4,0xE6A5,0xE6A6,0x313C, + 0x0000,0x3457,0x0000,0x3456,0x6F5C,0x0000,0x6F5D,0x0000, + 0x6F5E,0x6F5F,0x0000,0x0000,0x0000,0xE6A7,0xE6A8,0xE6A9, + 0x6F60,0xE6AA,0x3458,0x3355,0x395E,0x4836,0xE6AB,0x6F62, + 0x6F61,0xE6AC,0x0000,0xE6AD,0xE6AE,0x6F63,0x0000,0x0000, + 0x0000,0x0000,0x315C,0x0000,0xE6AF,0x0000,0xE6B0,0x0000, + 0x0000,0x6F66,0xE6B1,0x6F65,0x6F64,0xE6B2,0x6F67,0xE6B3, + 0x0000,0x0000,0x0000,0x6F6A,0x0000,0x0000,0xE6B4,0x3047, + 0xE6B5,0xE6B6,0x6F68,0xE6B7,0x6F6C,0x6F6B,0x0000,0x0000, + 0xE6B8,0xE6B9,0xE6BA,0xE6BB,0x6F6E,0x6F6D,0x6F6F,0x0000, + 0x462E,0xE6BC,0xE6BD,0x0000,0x6F70,0xE6BE,0xE6BF,0xE6C0, + 0xE6C1,0x6F71,0x6F73,0x0000,0xE6C2,0x6F72,0xE6C3,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* 9600h */ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x496C,0xE6C4,0xE6C5,0x0000, + 0x0000,0x6F74,0xE6C6,0x0000,0xE6C7,0xE6C8,0xE6C9,0x0000, + 0x6F75,0x0000,0x3A65,0x0000,0xE6CA,0x0000,0x6F76,0x6F77, + 0x0000,0xE6CB,0x4B49,0xE6CC,0x0000,0x0000,0x0000,0xE6CD, + 0xE6CE,0xE6CF,0xE6D0,0x414B,0xE6D1,0xE6D2,0x0000,0x3024, + 0x424B,0xE6D3,0x6F78,0x0000,0x496D,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x6F7B,0x6F79,0x395F,0x0000,0x6F7A, + 0x3842,0x0000,0xE6D4,0x0000,0xE6D5,0x0000,0xE6D6,0xE6D7, + 0xE6D8,0x0000,0x0000,0x4A45,0x6F7D,0x7021,0x6F7E,0x7022, + 0x0000,0xE6D9,0x3121,0x3F58,0x3D7C,0x3459,0x7023,0x0000, + 0x0000,0x0000,0x4766,0x0000,0x7025,0x0000,0xE6DA,0x0000, + 0x3122,0x0000,0x7024,0x4444,0xE6DB,0x4E4D,0x462B,0x6F7C, + 0x4E26,0x0000,0x3831,0xE6DC,0xE6DD,0x4D5B,0xE6DE,0xE6DF, + 0x0000,0xE6E0,0xE6E1,0xE6E2,0xE6E3,0x3679,0x4E34,0x0000, + 0x3728,0xE6E4,0x4262,0x6721,0x0000,0x7026,0x332C,0x3F6F, + 0x0000,0xE6E5,0x0000,0x0000,0x3356,0x7028,0xE6E6,0x7029, + 0x7027,0x3764,0xE6E7,0x3A5D,0x3E63,0xE6E8,0x0000,0xE6E9, + 0x3123,0x0000,0x0000,0x4E59,0xE6EA,0xE6EB,0xE6EC,0x702B, + 0x6E2E,0xE6ED,0x702A,0x0000,0x0000,0x0000,0xE6EE,0xE6EF, + 0x702E,0x702C,0x702D,0xE6F0,0x702F,0x0000,0x7030,0x4E6C, + 0x7031,0x7032,0xE6F1,0x4049,0x483B,0x0000,0x0000,0x0000, + 0x3F7D,0x3467,0x0000,0x0000,0x4D3A,0x326D,0x3D38,0x385B, + 0x0000,0x7035,0xE6F2,0x7034,0x3B73,0x7036,0x7033,0x0000, + 0x0000,0x3B28,0xE6F3,0x0000,0x0000,0x703A,0x6A2D,0x0000, + 0xE6F5,0x5256,0xE6F6,0x3F77,0x7038,0xE6F7,0xE6F8,0xE6F9, + 0x0000,0x0000,0x4E25,0x4671,0x0000,0x0000,0x0000,0x0000, + 0x312B,0xE6FA,0x4063,0x3C36,0x0000,0x0000,0x0000,0xE6FB, + 0x4A37,0xE6FC,0x3140,0x0000,0x0000,0x0000,0x4E6D,0x4D6B, + 0x0000,0x703B,0xE6FD,0x4545,0x0000,0x0000,0x0000,0x0000, + + /* 9700h */ + 0x3C7B,0x0000,0xE6FE,0xE7A1,0x703C,0xE7A2,0x703D,0x3F4C, + 0x703E,0xE7A3,0x4E6E,0x0000,0x0000,0x7039,0x7040,0x7042, + 0x0000,0x7041,0x0000,0x703F,0x0000,0x0000,0x7043,0x0000, + 0x0000,0x7044,0xE7A4,0xE7A5,0x417A,0xE7A6,0x3262,0x0000, + 0x0000,0xE7A7,0xE7A8,0xE7A9,0x7045,0x0000,0x0000,0x4C38, + 0xE7AA,0x0000,0x7046,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x7047,0xE7AB,0x4F2A,0xE7AC,0x0000,0x0000,0x0000,0x0000, + 0x5B31,0x7048,0x0000,0x0000,0x0000,0x7049,0x704A,0x0000, + 0x0000,0xE7AD,0x704E,0xE7AE,0x704B,0x0000,0x704C,0x0000, + 0x704D,0x704F,0xE7AF,0x0000,0x0000,0x0000,0xE7B0,0xE7B1, + 0x0000,0x0000,0x4044,0x0000,0x0000,0xE7B2,0x4C77,0xE7B3, + 0xE7B4,0x4045,0xE7B5,0xE7B6,0x7050,0x0000,0x4873,0x0000, + 0x7051,0x7353,0x4C4C,0xE7B7,0x7052,0x0000,0x7053,0xE7B8, + 0x7054,0x3357,0xE7B9,0x7056,0x0000,0x3F59,0xE7BA,0x0000, + 0x0000,0x7057,0x0000,0xE7BB,0x3724,0x0000,0xE7BC,0xE7BD, + 0xE7BE,0x7058,0x705C,0xE7BF,0x705A,0xE7C0,0x0000,0xE7C1, + 0xE7C2,0x705B,0x0000,0x0000,0x3373,0x7059,0x705D,0x0000, + 0x0000,0xE7C3,0x0000,0x705E,0x0000,0x3048,0x0000,0x705F, + 0x7060,0x0000,0x0000,0x0000,0x0000,0xE7C4,0xE7C5,0xE7C6, + 0x3E64,0xE7C7,0xE7C8,0x0000,0x7061,0x0000,0xE7C9,0xE7CA, + 0x3547,0x0000,0xE7CB,0x7064,0x0000,0x0000,0x7063,0x0000, + 0x7062,0x0000,0x0000,0x6B71,0xE7CC,0x4A5C,0xE7CD,0x0000, + 0x0000,0xE7CE,0xE7CF,0x7065,0x7066,0xE7D0,0xE7D1,0x0000, + 0xE7D2,0xE7D3,0xE7D4,0x0000,0xE7D5,0x0000,0xE7D6,0xE7D7, + 0x0000,0xE7D8,0x0000,0x7067,0xE7D9,0xE7DA,0x7068,0xE7DB, + 0x7069,0xE7DC,0xE7DD,0x706A,0xE7DE,0xE7DF,0xE7E0,0x0000, + 0xE7E1,0xE7E2,0x0000,0x345A,0xE7E3,0x0000,0x0000,0xE7E4, + 0xE7E5,0xE7E6,0x0000,0xE7EA,0x706B,0xE7E7,0xE7E8,0x0000, + 0xE7E9,0xE7EB,0x0000,0x0000,0xE7EC,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x706C,0x4723,0xE7ED, + 0x0000,0xE7EE,0x706E,0x323B,0xE7EF,0x7071,0x7070,0xE7F0, + 0xE7F1,0x0000,0xE7F2,0x3124,0x0000,0x0000,0x0000,0x3641, + + /* 9800h */ + 0x0000,0x4A47,0x443A,0x3A22,0x0000,0x3960,0x3D67,0xE7F3, + 0x3F5C,0x0000,0xE7F4,0x0000,0x7073,0xE7F6,0xE7F7,0x7072, + 0x4D42,0x3468,0x4852,0x465C,0xE7F8,0x0000,0xE7F9,0x3F7C, + 0x4E4E,0xE7F5,0x375B,0x0000,0xE7FA,0x0000,0xE7FB,0x0000, + 0xE7FC,0x7076,0x0000,0xE7FD,0x7075,0xE8A8,0xE7FE,0x0000, + 0x0000,0x0000,0x0000,0xE8A1,0x4B4B,0x462C,0xE8A2,0xE8A3, + 0xE8A4,0x0000,0xE8A5,0xE8A6,0x3150,0xE8A7,0x0000,0x7077, + 0x7074,0x0000,0x0000,0x4951,0x4D6A,0x7078,0xE8A9,0x0000, + 0x0000,0x0000,0x0000,0x0000,0xE8AA,0x0000,0x7079,0xE8AB, + 0x0000,0x0000,0xE8AC,0x707B,0x426A,0x335B,0x335C,0x707A, + 0x0000,0xE8AD,0xE8AE,0xE8AF,0x3469,0x3832,0xE8B0,0xE8B1, + 0x346A,0xE8B2,0xE8B3,0x453F,0x0000,0x0000,0x4E60,0x0000, + 0x0000,0x0000,0xE8B4,0xE8B5,0x0000,0xE8B6,0xE8B7,0x385C, + 0x0000,0x0000,0xE8B8,0x707C,0xE8B9,0x0000,0x0000,0x707D, + 0x707E,0x7121,0x0000,0x7123,0x7122,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x4977,0x0000,0x7124,0xE8BA,0x0000,0xE8BB,0xE8BC,0x7125, + 0xE8BD,0x7126,0x0000,0x0000,0xE8BE,0x0000,0x7127,0xE8BF, + 0xE8C0,0x0000,0xE8C1,0xE8C2,0x0000,0x0000,0x0000,0xE8C3, + 0x0000,0x0000,0xE8C4,0x7129,0x7128,0xE8C5,0x712A,0x0000, + 0xE8C6,0x0000,0x0000,0x0000,0xE8C7,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x4874,0x664C,0x0000,0x0000,0x3F29, + 0x0000,0xE8C8,0x3532,0xE8C9,0x0000,0xE8CA,0xE8CB,0xE8CC, + 0x0000,0x712B,0xE8CD,0x712C,0x0000,0x522C,0x5D3B,0x4853, + 0x0000,0x0000,0x307B,0xE8CE,0x303B,0x0000,0xE8CF,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x3B74,0x4B30,0x3E7E,0x0000, + + /* 9900h */ + 0x0000,0x0000,0xE8D0,0x712D,0x0000,0x4C5F,0x0000,0xE8D1, + 0xE8D2,0x712E,0x4D5C,0x0000,0x3142,0x0000,0x0000,0x0000, + 0x3B41,0xE8D3,0x712F,0x326E,0x7130,0xE8D4,0xE8D5,0xE8D6, + 0x7131,0x0000,0xE8D7,0xE8D8,0xE8D9,0x7133,0x7134,0xE8DA, + 0x7136,0x7132,0xE8DB,0x0000,0x7135,0x0000,0xE8DC,0xE8DD, + 0x345B,0x0000,0x0000,0xE8DE,0x7137,0x0000,0x7138,0x0000, + 0x0000,0xE8DF,0xE8E0,0xE8E1,0xE8E2,0xE8E3,0x0000,0x0000, + 0x0000,0xE8E4,0xE8E5,0xE8E6,0xE8E7,0x7139,0x713A,0x0000, + 0xE8E8,0xE8E9,0x713B,0x0000,0x0000,0x713D,0xE8EA,0xE8EB, + 0xE8EC,0x713C,0x0000,0x713F,0x7142,0xE8ED,0xE8EE,0x0000, + 0x713E,0x7140,0x7141,0x0000,0xE8EF,0x7143,0x0000,0x3642, + 0xE8F0,0xE8F1,0x0000,0xE8F2,0xE8F3,0x0000,0xE8F4,0xE8F5, + 0xE8F6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x3C73,0x7144, + 0x7145,0x3961,0x0000,0xE8F7,0x0000,0xE8F8,0x0000,0xE8F9, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x7146,0xE8FA,0x0000, + 0x333E,0x0000,0x0000,0x0000,0x474F,0x7147,0x7148,0x0000, + 0xE8FB,0xE8FC,0xE8FD,0x435A,0x466B,0xE8FE,0x0000,0x0000, + 0x0000,0xE9A1,0xE9A2,0x0000,0x7149,0xE9A3,0x0000,0xE9A4, + 0x0000,0x477D,0x0000,0xE9A5,0x424C,0x3158,0x366E,0x0000, + 0x366F,0xE9A6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x4373,0x714E,0x3670,0xE9A7,0xE9A8,0x326F,0x0000,0x0000, + 0x714D,0xE9A9,0xE9AA,0x714B,0xE9AB,0x714C,0xE9AC,0x714A, + 0x0000,0x0000,0x7158,0x0000,0x0000,0x0000,0x0000,0xE9AD, + 0x0000,0x0000,0xE9AE,0xE9AF,0xE9B0,0x714F,0x7150,0x0000, + 0xE9B1,0x7151,0x7152,0x0000,0xE9B2,0xE9B3,0x0000,0x0000, + 0x7154,0xE9B4,0x0000,0x7153,0x0000,0xE9B5,0xE9B6,0x3D59, + + /* 9A00h */ + 0x0000,0x7155,0xE9B7,0xE9B8,0xE9B9,0x7157,0x0000,0x0000, + 0x0000,0x0000,0x0000,0xE9BA,0xE9BB,0x0000,0x3533,0x7156, + 0xE9BC,0xE9BD,0x417B,0x3833,0x0000,0x0000,0xE9BE,0x0000, + 0x0000,0x7159,0x0000,0x0000,0x0000,0x0000,0xE9BF,0x0000, + 0xE9C0,0x0000,0xE9C1,0xE9C2,0xE9C3,0x0000,0x0000,0xE9C4, + 0x424D,0x0000,0x0000,0x715A,0x0000,0xE9C5,0xE9C6,0x0000, + 0x462D,0x0000,0x0000,0xE9C7,0x0000,0xE9C8,0xE9C9,0x715B, + 0xE9CA,0x0000,0x0000,0x0000,0x0000,0x0000,0x7160,0x0000, + 0x715E,0xE9CC,0x715D,0x715F,0xE9CD,0x715C,0x0000,0xE9CB, + 0x0000,0x0000,0xE9CE,0xE9CF,0xE9D0,0x7162,0xE9D1,0x0000, + 0x0000,0xE9D2,0x0000,0x0000,0xE9D3,0x7161,0xE9D4,0x7164, + 0x0000,0x0000,0x3643,0x7163,0x0000,0xE9D5,0x0000,0x7165, + 0x0000,0x0000,0x7166,0x0000,0x7168,0x7167,0x0000,0x0000, + 0x0000,0x7169,0x716B,0x716A,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x397C,0x0000,0xE9D6,0x0000,0xE9D7,0x716C,0xE9D8,0xE9D9, + 0x716D,0x0000,0xE9DA,0x0000,0xE9DB,0xE9DC,0xE9DD,0x0000, + 0x333C,0xE9DE,0x0000,0xE9DF,0x716E,0x0000,0xE9E0,0xE9E1, + 0x716F,0xE9E2,0x0000,0xE9E3,0x3F71,0x0000,0xE9E4,0x0000, + 0xE9E5,0x0000,0x0000,0x0000,0x0000,0x0000,0xE9E6,0x7170, + 0xE9E7,0x7171,0xE9E8,0x7172,0x7173,0xE9E9,0xE9EA,0xE9EB, + 0x3962,0x0000,0x0000,0xE9EC,0xE9ED,0x0000,0x7174,0x7175, + 0xE9EE,0x0000,0x7176,0x7177,0xE9EF,0xE9F0,0x7178,0xE9F1, + 0x0000,0xE9F2,0x4831,0x717A,0xE9F3,0x4926,0x717B,0x7179, + 0x0000,0x717D,0xE9F4,0xE9F5,0x717C,0xE9F6,0x0000,0x717E, + 0x0000,0xE9F7,0xE9F8,0x7221,0x0000,0xE9F9,0x0000,0xE9FA, + + /* 9B00h */ + 0xE9FB,0xE9FC,0xE9FD,0xE9FE,0xEAA1,0xEAA2,0x7222,0x0000, + 0xEAA3,0xEAA4,0x0000,0xEAA5,0xEAA6,0xEAA7,0xEAA8,0x0000, + 0xEAA9,0x0000,0xEAAA,0x0000,0x0000,0x0000,0xEAAB,0x0000, + 0x7223,0xEAAC,0x7224,0xEAAD,0xEAAE,0x0000,0x0000,0x7225, + 0xEAAF,0x0000,0x7226,0x7227,0x0000,0x7228,0xEAB0,0x7229, + 0x722A,0x722B,0x722C,0xEAB1,0x0000,0xEAB2,0x722D,0x722E, + 0x0000,0x5D35,0x722F,0xEAB3,0xEAB4,0xEAB5,0x0000,0xEAB6, + 0x0000,0xEAB7,0xEAB8,0x6478,0x3534,0xEAB9,0x0000,0x0000, + 0x0000,0x3321,0x3A32,0x7231,0x7230,0x4C25,0x0000,0x0000, + 0xEABA,0x0000,0x0000,0xEABB,0xEABC,0x7233,0x7234,0x7232, + 0x0000,0x7235,0x0000,0x0000,0x4B62,0xEABD,0xEABE,0xEABF, + 0x7236,0x0000,0x357B,0xEAC0,0x0000,0x0000,0xEAC1,0x0000, + 0x0000,0xEAC2,0x0000,0xEAC3,0x0000,0xEAC4,0xEAC5,0x0000, + 0xEAC6,0x0000,0xEAC7,0xEAC8,0xEAC9,0xEACA,0xEACB,0x4F25, + 0x0000,0x0000,0x0000,0xEACC,0x7237,0xEACD,0x0000,0xEACE, + 0xEACF,0xEAD0,0x0000,0x0000,0x0000,0x0000,0x0000,0xEAD1, + 0xEAD2,0x0000,0x0000,0x7239,0xEAD3,0xEAD4,0xEAD5,0xEAD6, + 0x0000,0xEAD7,0xEAD8,0xEAD9,0x0000,0xEADA,0x303E,0xEADB, + 0xEADC,0x723A,0x4A2B,0x7238,0xEADD,0x0000,0x723B,0x723C, + 0x0000,0x0000,0xEADE,0x0000,0x0000,0xEADF,0xEAE0,0x723D, + 0x723E,0x0000,0x0000,0x0000,0x0000,0x0000,0xEAE1,0xEAE2, + 0x723F,0xEAE3,0x4B6E,0x3B2D,0xEAE4,0x3A7A,0x412F,0x0000, + 0xEAE5,0xEAE6,0xEAE7,0x0000,0x7240,0x0000,0x0000,0xEAE8, + 0xEAE9,0x7243,0x0000,0xEAEA,0xEAEB,0x0000,0xEAEC,0xEAED, + 0x7241,0xEAEE,0x0000,0x0000,0x0000,0x0000,0x7244,0xEAEF, + 0xEAF0,0x3871,0x7242,0x0000,0x0000,0x0000,0xEAF1,0x7245, + 0xEAF2,0x7246,0x7247,0x0000,0x724B,0x0000,0x3B2A,0xEAF3, + 0xEAF4,0x0000,0x0000,0x4264,0x0000,0xEAF5,0x0000,0xEAF6, + 0x0000,0x724C,0x7249,0x7248,0x724A,0xEAF7,0x0000,0xEAF8, + 0x375F,0x0000,0xEAF9,0xEAFA,0x0000,0x0000,0x0000,0xEAFB, + 0x7250,0x724F,0x724E,0xEAFC,0x0000,0x3033,0x0000,0xEAFD, + 0xEAFE,0xEBA1,0xEBA2,0x0000,0x0000,0xEBA3,0x0000,0xEBA4, + + /* 9C00h */ + 0xEBA5,0x0000,0xEBA6,0x0000,0x725A,0x0000,0x7256,0x0000, + 0x7257,0x7253,0x7259,0xEBA7,0x7255,0x3362,0x0000,0xEBA8, + 0x4F4C,0xEBA9,0x7258,0x7254,0x7252,0x7251,0xEBAA,0x0000, + 0xEBAB,0xEBAC,0xEBAD,0x725C,0xEBAE,0x0000,0xEBAF,0x0000, + 0x0000,0x725F,0xEBB0,0xEBB1,0x725E,0x725D,0xEBB2,0xEBB3, + 0xEBB4,0xEBB5,0xEBB6,0x0000,0x0000,0x4949,0x725B,0x3073, + 0x7260,0xEBB7,0x7262,0x0000,0x0000,0xEBB8,0xEBB9,0xEBBA, + 0x0000,0x336F,0x724D,0x3137,0x0000,0xEBBB,0x7264,0x0000, + 0x0000,0xEBBC,0x0000,0xEBBD,0xEBBE,0xEBBF,0x7263,0x7261, + 0x432D,0xEBC0,0xEBC1,0x0000,0x0000,0x0000,0xEBC2,0xEBC3, + 0xEBC4,0x0000,0x4B70,0xEBC5,0xEBC6,0x0000,0xEBC7,0x4E5A, + 0xEBC8,0x0000,0x7265,0xEBC9,0xEBD0,0xEBCA,0xEBCB,0xEBCC, + 0x7266,0x0000,0x0000,0xEBCD,0x0000,0x0000,0x0000,0x7267, + 0xEBD2,0xEBCE,0xEBCF,0xEBD1,0x0000,0x0000,0xEBD3,0x0000, + 0xEBD4,0x0000,0xEBD5,0x0000,0x0000,0xEBD6,0x7268,0xEBD7, + 0x7269,0x0000,0x0000,0xEBD8,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x443B,0xEBD9,0x726A, + 0x0000,0x4837,0x0000,0x726F,0x726B,0x0000,0x0000,0x0000, + 0x726C,0x0000,0xEBDA,0x4B31,0x4C44,0x0000,0x4650,0xEBDB, + 0x0000,0xEBDC,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + /* 9D00h */ + 0x0000,0x0000,0xEBDE,0x7270,0x0000,0x0000,0x7271,0x463E, + 0x726E,0x726D,0x0000,0xEBDD,0x0000,0x0000,0x322A,0x0000, + 0x0000,0xEBDF,0x7279,0x0000,0x0000,0x7278,0x0000,0xEBE0, + 0xEBE1,0x0000,0x0000,0x3175,0xEBE2,0xEBE3,0xEBE4,0x7276, + 0x0000,0x0000,0x0000,0x7275,0x0000,0x0000,0x7273,0x0000, + 0x337B,0x0000,0x7272,0x3C32,0x3229,0x0000,0x0000,0xEBE5, + 0xEBE6,0x0000,0xEBE7,0xEBE8,0xEBE9,0x0000,0x0000,0x0000, + 0x0000,0x0000,0xEBEA,0x3963,0xEBEB,0xEBED,0x727C,0x727B, + 0x0000,0x727A,0xEBEE,0xEBEF,0x7277,0xEBEC,0x727D,0xEBF0, + 0x727E,0x0000,0xEBF1,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x7325,0x7324,0x0000,0xEBF2,0xEBF3,0x0000,0x0000,0x0000, + 0x0000,0x7326,0x0000,0x0000,0x312D,0x7321,0x7322,0xEBF4, + 0x3974,0x4C39,0xEBF6,0xEBF5,0x7323,0xEBF7,0x0000,0x0000, + 0x0000,0xEBF8,0xEBF9,0xEBFA,0x4B32,0x0000,0x0000,0x732B, + 0xEBFB,0x0000,0x7327,0x0000,0x0000,0x0000,0xEBFC,0xEBFD, + 0x0000,0x0000,0x732C,0xEBFE,0xECA1,0x0000,0xECA2,0x0000, + 0x0000,0x0000,0x0000,0xECA3,0xECA4,0x0000,0xECA5,0x7329, + 0x0000,0x7328,0xECA6,0x0000,0x0000,0xECA7,0xECA8,0x375C, + 0x0000,0x0000,0xECA9,0xECAA,0x0000,0xECAB,0xECAC,0xECAD, + 0xECAE,0x0000,0x732D,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0xECAF,0x0000,0x0000,0x732E,0x0000,0x0000,0x0000, + 0x0000,0x732F,0xECB0,0x732A,0xECB1,0x0000,0xECB2,0x7274, + 0x0000,0xECB3,0x7330,0x0000,0x4461,0xECB4,0x0000,0x0000, + 0x7334,0xECB5,0x7335,0x7333,0xECB6,0x0000,0x0000,0xECB7, + 0x0000,0x7332,0x7338,0xECB8,0x7331,0x0000,0x7336,0xECB9, + 0x0000,0xECBA,0xECBB,0x0000,0x0000,0x0000,0x0000,0x7337, + 0x0000,0x0000,0x0000,0x733A,0xECBC,0xECBD,0xECBE,0xECBF, + 0x0000,0x7339,0xECC0,0x0000,0x0000,0x0000,0xECC1,0xECC2, + 0xECC3,0x0000,0x0000,0x0000,0x0000,0xECC4,0x733C,0xECC5, + 0x0000,0xECC6,0x0000,0xECC7,0x0000,0x733D,0xECC8,0x733E, + 0xECC9,0x0000,0x4F49,0xECCA,0xECCB,0x0000,0x0000,0x0000, + 0x733B,0x426B,0x3A6D,0x0000,0x0000,0x733F,0xECCC,0x0000, + + /* 9E00h */ + 0x0000,0x0000,0xECCE,0x0000,0x0000,0x0000,0x0000,0xECCF, + 0x0000,0x0000,0xECCD,0x0000,0x0000,0x0000,0xECD0,0x0000, + 0xECD1,0xECD2,0xECD3,0x0000,0x0000,0xECD4,0xECD5,0x0000, + 0x0000,0xECD6,0x7340,0x7341,0xECD7,0xECD8,0x7342,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x7343,0x0000,0x0000, + 0x3834,0x7344,0xECD9,0xECDA,0xECDB,0x7345,0x0000,0x3C2F, + 0xECDC,0x7346,0xECDD,0xECDE,0xECDF,0xECE0,0x0000,0xECE1, + 0x7347,0x0000,0x0000,0x7348,0x7349,0x0000,0xECE2,0xECE3, + 0x0000,0x734C,0x734A,0x4F3C,0x0000,0x734B,0xECE4,0x4E6F, + 0xECE5,0x0000,0x0000,0xECE6,0x0000,0x734D,0xECE7,0x4E5B, + 0x0000,0x0000,0x0000,0x0000,0xECE8,0x734E,0x477E,0x0000, + 0xECE9,0x734F,0x7351,0x0000,0xECEA,0x7352,0xECEB,0xECEC, + 0xECED,0x0000,0x0000,0xECEE,0xECEF,0xECF0,0x0000,0x0000, + 0x7350,0x396D,0x4C4D,0x4B63,0x5677,0x0000,0x5D60,0x4B7B, + 0x0000,0x0000,0x0000,0x0000,0x322B,0x0000,0xECF1,0x0000, + 0xECF2,0x0000,0x0000,0xECF3,0x7354,0x3550,0x7355,0x7356, + 0x7357,0x0000,0x3975,0x0000,0x7358,0xECF4,0x0000,0x0000, + 0x6054,0x4C5B,0x0000,0x4263,0x7359,0x735B,0x735A,0xECF5, + 0x735C,0x0000,0x0000,0x0000,0xECF6,0x735D,0x0000,0xECF7, + 0x735E,0x0000,0x0000,0x0000,0xECF8,0xECF9,0xECFA,0x735F, + 0xECFB,0xECFC,0xECFD,0x0000,0x7360,0xECFE,0x7361,0x7362, + 0xEDA1,0x7363,0x0000,0x7364,0x7365,0x7366,0x0000,0xEDA2, + + /* 9F00h */ + 0x0000,0x0000,0xEDA3,0xEDA4,0x0000,0x0000,0x0000,0x7367, + 0x7368,0xEDA5,0x0000,0x0000,0x0000,0x0000,0x4524,0xEDA6, + 0xEDA7,0xEDA8,0xEDA9,0x385D,0xEDAA,0x736A,0xEDAB,0xEDAC, + 0x0000,0xEDAD,0xEDAE,0xEDAF,0x0000,0x0000,0x0000,0xEDB0, + 0x414D,0x736B,0xEDB1,0x0000,0x0000,0x0000,0xEDB2,0x0000, + 0x0000,0x0000,0xEDB3,0xEDB4,0x736C,0x0000,0x0000,0xEDB5, + 0x0000,0xEDB6,0xEDB7,0x0000,0xEDB8,0x0000,0x0000,0xEDB9, + 0x0000,0xEDBA,0xEDBB,0x4921,0xEDBC,0xEDBD,0x736D,0xEDBE, + 0x0000,0xEDBF,0x0000,0xEDC0,0xEDC1,0xEDC2,0xEDC3,0xEDC4, + 0x0000,0x0000,0x736E,0x6337,0x0000,0x0000,0x6C5A,0x706D, + 0x0000,0x0000,0x736F,0xEDC5,0x7370,0xEDC6,0xEDC7,0xEDC8, + 0xEDC9,0x0000,0xEDCA,0x0000,0x0000,0xEDCB,0xEDCC,0x7372, + 0x7373,0x7374,0x4E70,0x7371,0x0000,0x0000,0x7375,0x7376, + 0xEDCD,0xEDCE,0x7378,0x0000,0x7377,0xEDCF,0xEDD0,0xEDD1, + 0xEDD2,0xEDD3,0x737A,0xEDD4,0x0000,0xEDD5,0x737B,0x7379, + 0x0000,0x0000,0xEDD6,0x0000,0x0000,0xEDD7,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x4E36,0x0000,0xEDD8, + 0xEDD9,0xEDDA,0xEDDB,0x0000,0xEDDC,0x737C,0xEDDD,0xEDDE, + 0x0000,0x0000,0x0000,0x0000,0x737D,0x6354,0xEDDF,0x0000, + 0x737E,0xEDE0,0xEDE1,0xEDE2,0x0000,0xEDE3,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 +}; +const int ucs_i_jis_table_min = 0x4E00; +const int ucs_i_jis_table_max = 0x4E00 + (sizeof (ucs_i_jis_table) / sizeof (unsigned short)); + + +const unsigned short ucs_r_jis_table[] = { + /* FF00h */ + 0x0000,0x212A,0x0000,0x2174,0x2170,0x2173,0x2175,0x0000, + 0x214A,0x214B,0x2176,0x215C,0x2124,0x0000,0x2125,0x213F, + 0x2330,0x2331,0x2332,0x2333,0x2334,0x2335,0x2336,0x2337, + 0x2338,0x2339,0x2127,0x2128,0x2163,0x2161,0x2164,0x2129, + 0x2177,0x2341,0x2342,0x2343,0x2344,0x2345,0x2346,0x2347, + 0x2348,0x2349,0x234A,0x234B,0x234C,0x234D,0x234E,0x234F, + 0x2350,0x2351,0x2352,0x2353,0x2354,0x2355,0x2356,0x2357, + 0x2358,0x2359,0x235A,0x214E,0x0000,0x214F,0x2130,0x2132, + 0x212E,0x2361,0x2362,0x2363,0x2364,0x2365,0x2366,0x2367, + 0x2368,0x2369,0x236A,0x236B,0x236C,0x236D,0x236E,0x236F, + 0x2370,0x2371,0x2372,0x2373,0x2374,0x2375,0x2376,0x2377, + 0x2378,0x2379,0x237A,0x2150,0x2143,0x2151,0x0000,0x0000, + 0x0000,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7, + 0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF, + 0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7, + 0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF, + 0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7, + 0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF, + 0x00D0,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7, + 0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x00DD,0x00DE,0x00DF, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x2131,0x0000,0x216F +}; +int ucs_r_jis_table_min = 0xFF00; +int ucs_r_jis_table_max = 0xFF00 + (sizeof (ucs_r_jis_table) / sizeof (unsigned short)); + +#else + +extern const unsigned short jisx0208_ucs_table[]; +extern const unsigned short jisx0212_ucs_table[]; +extern const unsigned short ucs_a1_jis_table[]; +extern const unsigned short ucs_a2_jis_table[]; +extern const unsigned short ucs_i_jis_table[]; +extern const unsigned short ucs_r_jis_table[]; + +extern const int jisx0208_ucs_table_size; +extern const int jisx0212_ucs_table_size; +extern const int ucs_a1_jis_table_min; +extern const int ucs_a1_jis_table_max; +extern const int ucs_a2_jis_table_min; +extern const int ucs_a2_jis_table_max; +extern const int ucs_i_jis_table_min; +extern const int ucs_i_jis_table_max; +extern int ucs_r_jis_table_min; +extern int ucs_r_jis_table_max; + +#endif + + +#endif /* UNICODE_TABLE_JIS_H */ diff --git a/ext/mbstring/libmbfl/filters/unicode_table_jis2004.h b/ext/mbstring/libmbfl/filters/unicode_table_jis2004.h new file mode 100644 index 0000000..5ae282e --- /dev/null +++ b/ext/mbstring/libmbfl/filters/unicode_table_jis2004.h @@ -0,0 +1,5067 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: Rui Hirokawa <hirokawa@php.net> + */ + +#ifndef UNICODE_TABLE_JIS2004_H +#define UNICODE_TABLE_JIS2004_H + +/* + * Unicode table + */ + +static const unsigned short jisx0213_ucs_table[] = { // 0x0000 - 0x2C0F + +/* plane 1 ku 1 */ +0x3000,0x3001,0x3002,0xFF0C,0xFF0E,0x30FB,0xFF1A,0xFF1B, +0xFF1F,0xFF01,0x309B,0x309C,0x00B4,0xFF40,0x00A8,0xFF3E, +0xFFE3,0xFF3F,0x30FD,0x30FE,0x309D,0x309E,0x3003,0x4EDD, +0x3005,0x3006,0x3007,0x30FC,0x2014,0x2010,0xFF0F,0xFF3C, +0x301C,0x2016,0xFF5C,0x2026,0x2025,0x2018,0x2019,0x201C, +0x201D,0xFF08,0xFF09,0x3014,0x3015,0xFF3B,0xFF3D,0xFF5B, +0xFF5D,0x3008,0x3009,0x300A,0x300B,0x300C,0x300D,0x300E, +0x300F,0x3010,0x3011,0xFF0B,0x2212,0x00B1,0x00D7,0x00F7, +0xFF1D,0x2260,0xFF1C,0xFF1E,0x2266,0x2267,0x221E,0x2234, +0x2642,0x2640,0x00B0,0x2032,0x2033,0x2103,0xFFE5,0xFF04, +0x00A2,0x00A3,0xFF05,0xFF03,0xFF06,0xFF0A,0xFF20,0x00A7, +0x2606,0x2605,0x25CB,0x25CF,0x25CE,0x25C7, +/* plane 1 ku 2 */ +0x25C6,0x25A1,0x25A0,0x25B3,0x25B2,0x25BD,0x25BC,0x203B, +0x3012,0x2192,0x2190,0x2191,0x2193,0x3013,0xFF07,0xFF02, +0xFF0D,0xFF5E,0x3033,0x3034,0x3035,0x303B,0x303C,0x30FF, +0x309F,0x2208,0x220B,0x2286,0x2287,0x2282,0x2283,0x222A, +0x2229,0x2284,0x2285,0x228A,0x228B,0x2209,0x2205,0x2305, +0x2306,0x2227,0x2228,0x00AC,0x21D2,0x21D4,0x2200,0x2203, +0x2295,0x2296,0x2297,0x2225,0x2226,0xFF5F,0xFF60,0x3018, +0x3019,0x3016,0x3017,0x2220,0x22A5,0x2312,0x2202,0x2207, +0x2261,0x2252,0x226A,0x226B,0x221A,0x223D,0x221D,0x2235, +0x222B,0x222C,0x2262,0x2243,0x2245,0x2248,0x2276,0x2277, +0x2194,0x212B,0x2030,0x266F,0x266D,0x266A,0x2020,0x2021, +0x00B6,0x266E,0x266B,0x266C,0x2669,0x25EF, +/* plane 1 ku 3 */ +0x25B7,0x25B6,0x25C1,0x25C0,0x2197,0x2198,0x2196,0x2199, +0x21C4,0x21E8,0x21E6,0x21E7,0x21E9,0x2934,0x2935,0xFF10, +0xFF11,0xFF12,0xFF13,0xFF14,0xFF15,0xFF16,0xFF17,0xFF18, +0xFF19,0x29BF,0x25C9,0x303D,0xFE46,0xFE45,0x25E6,0x2022, +0xFF21,0xFF22,0xFF23,0xFF24,0xFF25,0xFF26,0xFF27,0xFF28, +0xFF29,0xFF2A,0xFF2B,0xFF2C,0xFF2D,0xFF2E,0xFF2F,0xFF30, +0xFF31,0xFF32,0xFF33,0xFF34,0xFF35,0xFF36,0xFF37,0xFF38, +0xFF39,0xFF3A,0x2213,0x2135,0x210F,0x33CB,0x2113,0x2127, +0xFF41,0xFF42,0xFF43,0xFF44,0xFF45,0xFF46,0xFF47,0xFF48, +0xFF49,0xFF4A,0xFF4B,0xFF4C,0xFF4D,0xFF4E,0xFF4F,0xFF50, +0xFF51,0xFF52,0xFF53,0xFF54,0xFF55,0xFF56,0xFF57,0xFF58, +0xFF59,0xFF5A,0x30A0,0x2013,0x29FA,0x29FB, +/* plane 1 ku 4 */ +0x3041,0x3042,0x3043,0x3044,0x3045,0x3046,0x3047,0x3048, +0x3049,0x304A,0x304B,0x304C,0x304D,0x304E,0x304F,0x3050, +0x3051,0x3052,0x3053,0x3054,0x3055,0x3056,0x3057,0x3058, +0x3059,0x305A,0x305B,0x305C,0x305D,0x305E,0x305F,0x3060, +0x3061,0x3062,0x3063,0x3064,0x3065,0x3066,0x3067,0x3068, +0x3069,0x306A,0x306B,0x306C,0x306D,0x306E,0x306F,0x3070, +0x3071,0x3072,0x3073,0x3074,0x3075,0x3076,0x3077,0x3078, +0x3079,0x307A,0x307B,0x307C,0x307D,0x307E,0x307F,0x3080, +0x3081,0x3082,0x3083,0x3084,0x3085,0x3086,0x3087,0x3088, +0x3089,0x308A,0x308B,0x308C,0x308D,0x308E,0x308F,0x3090, +0x3091,0x3092,0x3093,0x3094,0x3095,0x3096,0x0000,0x304D, +0x304F,0x3051,0x3053,0x0000,0x0000,0x0000, +/* plane 1 ku 5 */ +0x30A1,0x30A2,0x30A3,0x30A4,0x30A5,0x30A6,0x30A7,0x30A8, +0x30A9,0x30AA,0x30AB,0x30AC,0x30AD,0x30AE,0x30AF,0x30B0, +0x30B1,0x30B2,0x30B3,0x30B4,0x30B5,0x30B6,0x30B7,0x30B8, +0x30B9,0x30BA,0x30BB,0x30BC,0x30BD,0x30BE,0x30BF,0x30C0, +0x30C1,0x30C2,0x30C3,0x30C4,0x30C5,0x30C6,0x30C7,0x30C8, +0x30C9,0x30CA,0x30CB,0x30CC,0x30CD,0x30CE,0x30CF,0x30D0, +0x30D1,0x30D2,0x30D3,0x30D4,0x30D5,0x30D6,0x30D7,0x30D8, +0x30D9,0x30DA,0x30DB,0x30DC,0x30DD,0x30DE,0x30DF,0x30E0, +0x30E1,0x30E2,0x30E3,0x30E4,0x30E5,0x30E6,0x30E7,0x30E8, +0x30E9,0x30EA,0x30EB,0x30EC,0x30ED,0x30EE,0x30EF,0x30F0, +0x30F1,0x30F2,0x30F3,0x30F4,0x30F5,0x30F6,0x30AB,0x30AD, +0x30AF,0x30B1,0x30B3,0x30BB,0x30C4,0x30C8, +/* plane 1 ku 6 */ +0x0391,0x0392,0x0393,0x0394,0x0395,0x0396,0x0397,0x0398, +0x0399,0x039A,0x039B,0x039C,0x039D,0x039E,0x039F,0x03A0, +0x03A1,0x03A3,0x03A4,0x03A5,0x03A6,0x03A7,0x03A8,0x03A9, +0x2664,0x2660,0x2662,0x2666,0x2661,0x2665,0x2667,0x2663, +0x03B1,0x03B2,0x03B3,0x03B4,0x03B5,0x03B6,0x03B7,0x03B8, +0x03B9,0x03BA,0x03BB,0x03BC,0x03BD,0x03BE,0x03BF,0x03C0, +0x03C1,0x03C3,0x03C4,0x03C5,0x03C6,0x03C7,0x03C8,0x03C9, +0x03C2,0x24F5,0x24F6,0x24F7,0x24F8,0x24F9,0x24FA,0x24FB, +0x24FC,0x24FD,0x24FE,0x2616,0x2617,0x3020,0x260E,0x2600, +0x2601,0x2602,0x2603,0x2668,0x25B1,0x31F0,0x31F1,0x31F2, +0x31F3,0x31F4,0x31F5,0x31F6,0x31F7,0x31F8,0x31F9,0x31F7, +0x31FA,0x31FB,0x31FC,0x31FD,0x31FE,0x31FF, +/* plane 1 ku 7 */ +0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0401,0x0416, +0x0417,0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E, +0x041F,0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426, +0x0427,0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E, +0x042F,0x23BE,0x23BF,0x23C0,0x23C1,0x23C2,0x23C3,0x23C4, +0x23C5,0x23C6,0x23C7,0x23C8,0x23C9,0x23CA,0x23CB,0x23CC, +0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0451,0x0436, +0x0437,0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E, +0x043F,0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446, +0x0447,0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E, +0x044F,0x30F7,0x30F8,0x30F9,0x30FA,0x22DA,0x22DB,0x2153, +0x2154,0x2155,0x2713,0x2318,0x2423,0x23CE, +/* plane 1 ku 8 */ +0x2500,0x2502,0x250C,0x2510,0x2518,0x2514,0x251C,0x252C, +0x2524,0x2534,0x253C,0x2501,0x2503,0x250F,0x2513,0x251B, +0x2517,0x2523,0x2533,0x252B,0x253B,0x254B,0x2520,0x252F, +0x2528,0x2537,0x253F,0x251D,0x2530,0x2525,0x2538,0x2542, +0x3251,0x3252,0x3253,0x3254,0x3255,0x3256,0x3257,0x3258, +0x3259,0x325A,0x325B,0x325C,0x325D,0x325E,0x325F,0x32B1, +0x32B2,0x32B3,0x32B4,0x32B5,0x32B6,0x32B7,0x32B8,0x32B9, +0x32BA,0x32BB,0x32BC,0x32BD,0x32BE,0x32BF,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x25D0,0x25D1, +0x25D2,0x25D3,0x203C,0x2047,0x2048,0x2049,0x01CD,0x01CE, +0x01D0,0x1E3E,0x1E3F,0x01F8,0x01F9,0x01D1,0x01D2,0x01D4, +0x01D6,0x01D8,0x01DA,0x01DC,0x0000,0x0000, +/* plane 1 ku 9 */ +0x20AC,0x00A0,0x00A1,0x00A4,0x00A6,0x00A9,0x00AA,0x00AB, +0x00AD,0x00AE,0x00AF,0x00B2,0x00B3,0x00B7,0x00B8,0x00B9, +0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF,0x00C0,0x00C1, +0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7,0x00C8,0x00C9, +0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF,0x00D0,0x00D1, +0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D8,0x00D9,0x00DA, +0x00DB,0x00DC,0x00DD,0x00DE,0x00DF,0x00E0,0x00E1,0x00E2, +0x00E3,0x00E4,0x00E5,0x00E6,0x00E7,0x00E8,0x00E9,0x00EA, +0x00EB,0x00EC,0x00ED,0x00EE,0x00EF,0x00F0,0x00F1,0x00F2, +0x00F3,0x00F4,0x00F5,0x00F6,0x00F8,0x00F9,0x00FA,0x00FB, +0x00FC,0x00FD,0x00FE,0x00FF,0x0100,0x012A,0x016A,0x0112, +0x014C,0x0101,0x012B,0x016B,0x0113,0x014D, +/* plane 1 ku 10 */ +0x0104,0x02D8,0x0141,0x013D,0x015A,0x0160,0x015E,0x0164, +0x0179,0x017D,0x017B,0x0105,0x02DB,0x0142,0x013E,0x015B, +0x02C7,0x0161,0x015F,0x0165,0x017A,0x02DD,0x017E,0x017C, +0x0154,0x0102,0x0139,0x0106,0x010C,0x0118,0x011A,0x010E, +0x0143,0x0147,0x0150,0x0158,0x016E,0x0170,0x0162,0x0155, +0x0103,0x013A,0x0107,0x010D,0x0119,0x011B,0x010F,0x0111, +0x0144,0x0148,0x0151,0x0159,0x016F,0x0171,0x0163,0x02D9, +0x0108,0x011C,0x0124,0x0134,0x015C,0x016C,0x0109,0x011D, +0x0125,0x0135,0x015D,0x016D,0x0271,0x028B,0x027E,0x0283, +0x0292,0x026C,0x026E,0x0279,0x0288,0x0256,0x0273,0x027D, +0x0282,0x0290,0x027B,0x026D,0x025F,0x0272,0x029D,0x028E, +0x0261,0x014B,0x0270,0x0281,0x0127,0x0295, +/* plane 1 ku 11 */ +0x0294,0x0266,0x0298,0x01C2,0x0253,0x0257,0x0284,0x0260, +0x0193,0x0153,0x0152,0x0268,0x0289,0x0258,0x0275,0x0259, +0x025C,0x025E,0x0250,0x026F,0x028A,0x0264,0x028C,0x0254, +0x0251,0x0252,0x028D,0x0265,0x02A2,0x02A1,0x0255,0x0291, +0x027A,0x0267,0x025A,0x00E6,0x01FD,0x1F70,0x1F71,0x0254, +0x0254,0x028C,0x028C,0x0259,0x0259,0x025A,0x025A,0x1F72, +0x1F73,0x0361,0x02C8,0x02CC,0x02D0,0x02D1,0x0306,0x203F, +0x030B,0x0301,0x0304,0x0300,0x030F,0x030C,0x0302,0x02E5, +0x02E6,0x02E7,0x02E8,0x02E9,0x02E9,0x02E5,0x0325,0x032C, +0x0339,0x031C,0x031F,0x0320,0x0308,0x033D,0x0329,0x032F, +0x02DE,0x0324,0x0330,0x033C,0x0334,0x031D,0x031E,0x0318, +0x0319,0x032A,0x033A,0x033B,0x0303,0x031A, +/* plane 1 ku 12 */ +0x2776,0x2777,0x2778,0x2779,0x277A,0x277B,0x277C,0x277D, +0x277E,0x277F,0x24EB,0x24EC,0x24ED,0x24EE,0x24EF,0x24F0, +0x24F1,0x24F2,0x24F3,0x24F4,0x2170,0x2171,0x2172,0x2173, +0x2174,0x2175,0x2176,0x2177,0x2178,0x2179,0x217A,0x217B, +0x24D0,0x24D1,0x24D2,0x24D3,0x24D4,0x24D5,0x24D6,0x24D7, +0x24D8,0x24D9,0x24DA,0x24DB,0x24DC,0x24DD,0x24DE,0x24DF, +0x24E0,0x24E1,0x24E2,0x24E3,0x24E4,0x24E5,0x24E6,0x24E7, +0x24E8,0x24E9,0x32D0,0x32D1,0x32D2,0x32D3,0x32D4,0x32D5, +0x32D6,0x32D7,0x32D8,0x32D9,0x32DA,0x32DB,0x32DC,0x32DD, +0x32DE,0x32DF,0x32E0,0x32E1,0x32E2,0x32E3,0x32FA,0x32E9, +0x32E5,0x32ED,0x32EC,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x2051,0x2042, +/* plane 1 ku 13 */ +0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467, +0x2468,0x2469,0x246A,0x246B,0x246C,0x246D,0x246E,0x246F, +0x2470,0x2471,0x2472,0x2473,0x2160,0x2161,0x2162,0x2163, +0x2164,0x2165,0x2166,0x2167,0x2168,0x2169,0x216A,0x3349, +0x3314,0x3322,0x334D,0x3318,0x3327,0x3303,0x3336,0x3351, +0x3357,0x330D,0x3326,0x3323,0x332B,0x334A,0x333B,0x339C, +0x339D,0x339E,0x338E,0x338F,0x33C4,0x33A1,0x216B,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x337B,0x301D, +0x301F,0x2116,0x33CD,0x2121,0x32A4,0x32A5,0x32A6,0x32A7, +0x32A8,0x3231,0x3232,0x3239,0x337E,0x337D,0x337C,0x0000, +0x0000,0x0000,0x222E,0x0000,0x0000,0x0000,0x0000,0x221F, +0x22BF,0x0000,0x0000,0x0000,0x2756,0x261E, +/* plane 1 ku 14 */ +0x4FF1,0x0000,0x3402,0x4E28,0x4E2F,0x4E30,0x4E8D,0x4EE1, +0x4EFD,0x4EFF,0x4F03,0x4F0B,0x4F60,0x4F48,0x4F49,0x4F56, +0x4F5F,0x4F6A,0x4F6C,0x4F7E,0x4F8A,0x4F94,0x4F97,0xFA30, +0x4FC9,0x4FE0,0x5001,0x5002,0x500E,0x5018,0x5027,0x502E, +0x5040,0x503B,0x5041,0x5094,0x50CC,0x50F2,0x50D0,0x50E6, +0xFA31,0x5106,0x5103,0x510B,0x511E,0x5135,0x514A,0xFA32, +0x5155,0x5157,0x34B5,0x519D,0x51C3,0x51CA,0x51DE,0x51E2, +0x51EE,0x5201,0x34DB,0x5213,0x5215,0x5249,0x5257,0x5261, +0x5293,0x52C8,0xFA33,0x52CC,0x52D0,0x52D6,0x52DB,0xFA34, +0x52F0,0x52FB,0x5300,0x5307,0x531C,0xFA35,0x5361,0x5363, +0x537D,0x5393,0x539D,0x53B2,0x5412,0x5427,0x544D,0x549C, +0x546B,0x5474,0x547F,0x5488,0x5496,0x54A1, +/* plane 1 ku 15 */ +0x54A9,0x54C6,0x54FF,0x550E,0x552B,0x5535,0x5550,0x555E, +0x5581,0x5586,0x558E,0xFA36,0x55AD,0x55CE,0xFA37,0x5608, +0x560E,0x563B,0x5649,0x5676,0x5666,0xFA38,0x566F,0x5671, +0x5672,0x5699,0x569E,0x56A9,0x56AC,0x56B3,0x56C9,0x56CA, +0x570A,0x0000,0x5721,0x572F,0x5733,0x5734,0x5770,0x5777, +0x577C,0x579C,0xFA0F,0x0000,0x57B8,0x57C7,0x57C8,0x57CF, +0x57E4,0x57ED,0x57F5,0x57F6,0x57FF,0x5809,0xFA10,0x5861, +0x5864,0xFA39,0x587C,0x5889,0x589E,0xFA3A,0x58A9,0x0000, +0x58D2,0x58CE,0x58D4,0x58DA,0x58E0,0x58E9,0x590C,0x8641, +0x595D,0x596D,0x598B,0x5992,0x59A4,0x59C3,0x59D2,0x59DD, +0x5A13,0x5A23,0x5A67,0x5A6D,0x5A77,0x5A7E,0x5A84,0x5A9E, +0x5AA7,0x5AC4,0x0000,0x5B19,0x5B25,0x525D, +/* plane 1 ku 16 */ +0x4E9C,0x5516,0x5A03,0x963F,0x54C0,0x611B,0x6328,0x59F6, +0x9022,0x8475,0x831C,0x7A50,0x60AA,0x63E1,0x6E25,0x65ED, +0x8466,0x82A6,0x9BF5,0x6893,0x5727,0x65A1,0x6271,0x5B9B, +0x59D0,0x867B,0x98F4,0x7D62,0x7DBE,0x9B8E,0x6216,0x7C9F, +0x88B7,0x5B89,0x5EB5,0x6309,0x6697,0x6848,0x95C7,0x978D, +0x674F,0x4EE5,0x4F0A,0x4F4D,0x4F9D,0x5049,0x56F2,0x5937, +0x59D4,0x5A01,0x5C09,0x60DF,0x610F,0x6170,0x6613,0x6905, +0x70BA,0x754F,0x7570,0x79FB,0x7DAD,0x7DEF,0x80C3,0x840E, +0x8863,0x8B02,0x9055,0x907A,0x533B,0x4E95,0x4EA5,0x57DF, +0x80B2,0x90C1,0x78EF,0x4E00,0x58F1,0x6EA2,0x9038,0x7A32, +0x8328,0x828B,0x9C2F,0x5141,0x5370,0x54BD,0x54E1,0x56E0, +0x59FB,0x5F15,0x98F2,0x6DEB,0x80E4,0x852D, +/* plane 1 ku 17 */ +0x9662,0x9670,0x96A0,0x97FB,0x540B,0x53F3,0x5B87,0x70CF, +0x7FBD,0x8FC2,0x96E8,0x536F,0x9D5C,0x7ABA,0x4E11,0x7893, +0x81FC,0x6E26,0x5618,0x5504,0x6B1D,0x851A,0x9C3B,0x59E5, +0x53A9,0x6D66,0x74DC,0x958F,0x5642,0x4E91,0x904B,0x96F2, +0x834F,0x990C,0x53E1,0x55B6,0x5B30,0x5F71,0x6620,0x66F3, +0x6804,0x6C38,0x6CF3,0x6D29,0x745B,0x76C8,0x7A4E,0x9834, +0x82F1,0x885B,0x8A60,0x92ED,0x6DB2,0x75AB,0x76CA,0x99C5, +0x60A6,0x8B01,0x8D8A,0x95B2,0x698E,0x53AD,0x5186,0x5712, +0x5830,0x5944,0x5BB4,0x5EF6,0x6028,0x63A9,0x63F4,0x6CBF, +0x6F14,0x708E,0x7114,0x7159,0x71D5,0x733F,0x7E01,0x8276, +0x82D1,0x8597,0x9060,0x925B,0x9D1B,0x5869,0x65BC,0x6C5A, +0x7525,0x51F9,0x592E,0x5965,0x5F80,0x5FDC, +/* plane 1 ku 18 */ +0x62BC,0x65FA,0x6A2A,0x6B27,0x6BB4,0x738B,0x7FC1,0x8956, +0x9D2C,0x9D0E,0x9EC4,0x5CA1,0x6C96,0x837B,0x5104,0x5C4B, +0x61B6,0x81C6,0x6876,0x7261,0x4E59,0x4FFA,0x5378,0x6069, +0x6E29,0x7A4F,0x97F3,0x4E0B,0x5316,0x4EEE,0x4F55,0x4F3D, +0x4FA1,0x4F73,0x52A0,0x53EF,0x5609,0x590F,0x5AC1,0x5BB6, +0x5BE1,0x79D1,0x6687,0x679C,0x67B6,0x6B4C,0x6CB3,0x706B, +0x73C2,0x798D,0x79BE,0x7A3C,0x7B87,0x82B1,0x82DB,0x8304, +0x8377,0x83EF,0x83D3,0x8766,0x8AB2,0x5629,0x8CA8,0x8FE6, +0x904E,0x971E,0x868A,0x4FC4,0x5CE8,0x6211,0x7259,0x753B, +0x81E5,0x82BD,0x86FE,0x8CC0,0x96C5,0x9913,0x99D5,0x4ECB, +0x4F1A,0x89E3,0x56DE,0x584A,0x58CA,0x5EFB,0x5FEB,0x602A, +0x6094,0x6062,0x61D0,0x6212,0x62D0,0x6539, +/* plane 1 ku 19 */ +0x9B41,0x6666,0x68B0,0x6D77,0x7070,0x754C,0x7686,0x7D75, +0x82A5,0x87F9,0x958B,0x968E,0x8C9D,0x51F1,0x52BE,0x5916, +0x54B3,0x5BB3,0x5D16,0x6168,0x6982,0x6DAF,0x788D,0x84CB, +0x8857,0x8A72,0x93A7,0x9AB8,0x6D6C,0x99A8,0x86D9,0x57A3, +0x67FF,0x86CE,0x920E,0x5283,0x5687,0x5404,0x5ED3,0x62E1, +0x64B9,0x683C,0x6838,0x6BBB,0x7372,0x78BA,0x7A6B,0x899A, +0x89D2,0x8D6B,0x8F03,0x90ED,0x95A3,0x9694,0x9769,0x5B66, +0x5CB3,0x697D,0x984D,0x984E,0x639B,0x7B20,0x6A2B,0x6A7F, +0x68B6,0x9C0D,0x6F5F,0x5272,0x559D,0x6070,0x62EC,0x6D3B, +0x6E07,0x6ED1,0x845B,0x8910,0x8F44,0x4E14,0x9C39,0x53F6, +0x691B,0x6A3A,0x9784,0x682A,0x515C,0x7AC3,0x84B2,0x91DC, +0x938C,0x565B,0x9D28,0x6822,0x8305,0x8431, +/* plane 1 ku 20 */ +0x7CA5,0x5208,0x82C5,0x74E6,0x4E7E,0x4F83,0x51A0,0x5BD2, +0x520A,0x52D8,0x52E7,0x5DFB,0x559A,0x582A,0x59E6,0x5B8C, +0x5B98,0x5BDB,0x5E72,0x5E79,0x60A3,0x611F,0x6163,0x61BE, +0x63DB,0x6562,0x67D1,0x6853,0x68FA,0x6B3E,0x6B53,0x6C57, +0x6F22,0x6F97,0x6F45,0x74B0,0x7518,0x76E3,0x770B,0x7AFF, +0x7BA1,0x7C21,0x7DE9,0x7F36,0x7FF0,0x809D,0x8266,0x839E, +0x89B3,0x8ACC,0x8CAB,0x9084,0x9451,0x9593,0x9591,0x95A2, +0x9665,0x97D3,0x9928,0x8218,0x4E38,0x542B,0x5CB8,0x5DCC, +0x73A9,0x764C,0x773C,0x5CA9,0x7FEB,0x8D0B,0x96C1,0x9811, +0x9854,0x9858,0x4F01,0x4F0E,0x5371,0x559C,0x5668,0x57FA, +0x5947,0x5B09,0x5BC4,0x5C90,0x5E0C,0x5E7E,0x5FCC,0x63EE, +0x673A,0x65D7,0x65E2,0x671F,0x68CB,0x68C4, +/* plane 1 ku 21 */ +0x6A5F,0x5E30,0x6BC5,0x6C17,0x6C7D,0x757F,0x7948,0x5B63, +0x7A00,0x7D00,0x5FBD,0x898F,0x8A18,0x8CB4,0x8D77,0x8ECC, +0x8F1D,0x98E2,0x9A0E,0x9B3C,0x4E80,0x507D,0x5100,0x5993, +0x5B9C,0x622F,0x6280,0x64EC,0x6B3A,0x72A0,0x7591,0x7947, +0x7FA9,0x87FB,0x8ABC,0x8B70,0x63AC,0x83CA,0x97A0,0x5409, +0x5403,0x55AB,0x6854,0x6A58,0x8A70,0x7827,0x6775,0x9ECD, +0x5374,0x5BA2,0x811A,0x8650,0x9006,0x4E18,0x4E45,0x4EC7, +0x4F11,0x53CA,0x5438,0x5BAE,0x5F13,0x6025,0x6551,0x673D, +0x6C42,0x6C72,0x6CE3,0x7078,0x7403,0x7A76,0x7AAE,0x7B08, +0x7D1A,0x7CFE,0x7D66,0x65E7,0x725B,0x53BB,0x5C45,0x5DE8, +0x62D2,0x62E0,0x6319,0x6E20,0x865A,0x8A31,0x8DDD,0x92F8, +0x6F01,0x79A6,0x9B5A,0x4EA8,0x4EAB,0x4EAC, +/* plane 1 ku 22 */ +0x4F9B,0x4FA0,0x50D1,0x5147,0x7AF6,0x5171,0x51F6,0x5354, +0x5321,0x537F,0x53EB,0x55AC,0x5883,0x5CE1,0x5F37,0x5F4A, +0x602F,0x6050,0x606D,0x631F,0x6559,0x6A4B,0x6CC1,0x72C2, +0x72ED,0x77EF,0x80F8,0x8105,0x8208,0x854E,0x90F7,0x93E1, +0x97FF,0x9957,0x9A5A,0x4EF0,0x51DD,0x5C2D,0x6681,0x696D, +0x5C40,0x66F2,0x6975,0x7389,0x6850,0x7C81,0x50C5,0x52E4, +0x5747,0x5DFE,0x9326,0x65A4,0x6B23,0x6B3D,0x7434,0x7981, +0x79BD,0x7B4B,0x7DCA,0x82B9,0x83CC,0x887F,0x895F,0x8B39, +0x8FD1,0x91D1,0x541F,0x9280,0x4E5D,0x5036,0x53E5,0x533A, +0x72D7,0x7396,0x77E9,0x82E6,0x8EAF,0x99C6,0x99C8,0x99D2, +0x5177,0x611A,0x865E,0x55B0,0x7A7A,0x5076,0x5BD3,0x9047, +0x9685,0x4E32,0x6ADB,0x91E7,0x5C51,0x5C48, +/* plane 1 ku 23 */ +0x6398,0x7A9F,0x6C93,0x9774,0x8F61,0x7AAA,0x718A,0x9688, +0x7C82,0x6817,0x7E70,0x6851,0x936C,0x52F2,0x541B,0x85AB, +0x8A13,0x7FA4,0x8ECD,0x90E1,0x5366,0x8888,0x7941,0x4FC2, +0x50BE,0x5211,0x5144,0x5553,0x572D,0x73EA,0x578B,0x5951, +0x5F62,0x5F84,0x6075,0x6176,0x6167,0x61A9,0x63B2,0x643A, +0x656C,0x666F,0x6842,0x6E13,0x7566,0x7A3D,0x7CFB,0x7D4C, +0x7D99,0x7E4B,0x7F6B,0x830E,0x834A,0x86CD,0x8A08,0x8A63, +0x8B66,0x8EFD,0x981A,0x9D8F,0x82B8,0x8FCE,0x9BE8,0x5287, +0x621F,0x6483,0x6FC0,0x9699,0x6841,0x5091,0x6B20,0x6C7A, +0x6F54,0x7A74,0x7D50,0x8840,0x8A23,0x6708,0x4EF6,0x5039, +0x5026,0x5065,0x517C,0x5238,0x5263,0x55A7,0x570F,0x5805, +0x5ACC,0x5EFA,0x61B2,0x61F8,0x62F3,0x6372, +/* plane 1 ku 24 */ +0x691C,0x6A29,0x727D,0x72AC,0x732E,0x7814,0x786F,0x7D79, +0x770C,0x80A9,0x898B,0x8B19,0x8CE2,0x8ED2,0x9063,0x9375, +0x967A,0x9855,0x9A13,0x9E78,0x5143,0x539F,0x53B3,0x5E7B, +0x5F26,0x6E1B,0x6E90,0x7384,0x73FE,0x7D43,0x8237,0x8A00, +0x8AFA,0x9650,0x4E4E,0x500B,0x53E4,0x547C,0x56FA,0x59D1, +0x5B64,0x5DF1,0x5EAB,0x5F27,0x6238,0x6545,0x67AF,0x6E56, +0x72D0,0x7CCA,0x88B4,0x80A1,0x80E1,0x83F0,0x864E,0x8A87, +0x8DE8,0x9237,0x96C7,0x9867,0x9F13,0x4E94,0x4E92,0x4F0D, +0x5348,0x5449,0x543E,0x5A2F,0x5F8C,0x5FA1,0x609F,0x68A7, +0x6A8E,0x745A,0x7881,0x8A9E,0x8AA4,0x8B77,0x9190,0x4E5E, +0x9BC9,0x4EA4,0x4F7C,0x4FAF,0x5019,0x5016,0x5149,0x516C, +0x529F,0x52B9,0x52FE,0x539A,0x53E3,0x5411, +/* plane 1 ku 25 */ +0x540E,0x5589,0x5751,0x57A2,0x597D,0x5B54,0x5B5D,0x5B8F, +0x5DE5,0x5DE7,0x5DF7,0x5E78,0x5E83,0x5E9A,0x5EB7,0x5F18, +0x6052,0x614C,0x6297,0x62D8,0x63A7,0x653B,0x6602,0x6643, +0x66F4,0x676D,0x6821,0x6897,0x69CB,0x6C5F,0x6D2A,0x6D69, +0x6E2F,0x6E9D,0x7532,0x7687,0x786C,0x7A3F,0x7CE0,0x7D05, +0x7D18,0x7D5E,0x7DB1,0x8015,0x8003,0x80AF,0x80B1,0x8154, +0x818F,0x822A,0x8352,0x884C,0x8861,0x8B1B,0x8CA2,0x8CFC, +0x90CA,0x9175,0x9271,0x783F,0x92FC,0x95A4,0x964D,0x9805, +0x9999,0x9AD8,0x9D3B,0x525B,0x52AB,0x53F7,0x5408,0x58D5, +0x62F7,0x6FE0,0x8C6A,0x8F5F,0x9EB9,0x514B,0x523B,0x544A, +0x56FD,0x7A40,0x9177,0x9D60,0x9ED2,0x7344,0x6F09,0x8170, +0x7511,0x5FFD,0x60DA,0x9AA8,0x72DB,0x8FBC, +/* plane 1 ku 26 */ +0x6B64,0x9803,0x4ECA,0x56F0,0x5764,0x58BE,0x5A5A,0x6068, +0x61C7,0x660F,0x6606,0x6839,0x68B1,0x6DF7,0x75D5,0x7D3A, +0x826E,0x9B42,0x4E9B,0x4F50,0x53C9,0x5506,0x5D6F,0x5DE6, +0x5DEE,0x67FB,0x6C99,0x7473,0x7802,0x8A50,0x9396,0x88DF, +0x5750,0x5EA7,0x632B,0x50B5,0x50AC,0x518D,0x6700,0x54C9, +0x585E,0x59BB,0x5BB0,0x5F69,0x624D,0x63A1,0x683D,0x6B73, +0x6E08,0x707D,0x91C7,0x7280,0x7815,0x7826,0x796D,0x658E, +0x7D30,0x83DC,0x88C1,0x8F09,0x969B,0x5264,0x5728,0x6750, +0x7F6A,0x8CA1,0x51B4,0x5742,0x962A,0x583A,0x698A,0x80B4, +0x54B2,0x5D0E,0x57FC,0x7895,0x9DFA,0x4F5C,0x524A,0x548B, +0x643E,0x6628,0x6714,0x67F5,0x7A84,0x7B56,0x7D22,0x932F, +0x685C,0x9BAD,0x7B39,0x5319,0x518A,0x5237, +/* plane 1 ku 27 */ +0x5BDF,0x62F6,0x64AE,0x64E6,0x672D,0x6BBA,0x85A9,0x96D1, +0x7690,0x9BD6,0x634C,0x9306,0x9BAB,0x76BF,0x6652,0x4E09, +0x5098,0x53C2,0x5C71,0x60E8,0x6492,0x6563,0x685F,0x71E6, +0x73CA,0x7523,0x7B97,0x7E82,0x8695,0x8B83,0x8CDB,0x9178, +0x9910,0x65AC,0x66AB,0x6B8B,0x4ED5,0x4ED4,0x4F3A,0x4F7F, +0x523A,0x53F8,0x53F2,0x55E3,0x56DB,0x58EB,0x59CB,0x59C9, +0x59FF,0x5B50,0x5C4D,0x5E02,0x5E2B,0x5FD7,0x601D,0x6307, +0x652F,0x5B5C,0x65AF,0x65BD,0x65E8,0x679D,0x6B62,0x6B7B, +0x6C0F,0x7345,0x7949,0x79C1,0x7CF8,0x7D19,0x7D2B,0x80A2, +0x8102,0x81F3,0x8996,0x8A5E,0x8A69,0x8A66,0x8A8C,0x8AEE, +0x8CC7,0x8CDC,0x96CC,0x98FC,0x6B6F,0x4E8B,0x4F3C,0x4F8D, +0x5150,0x5B57,0x5BFA,0x6148,0x6301,0x6642, +/* plane 1 ku 28 */ +0x6B21,0x6ECB,0x6CBB,0x723E,0x74BD,0x75D4,0x78C1,0x793A, +0x800C,0x8033,0x81EA,0x8494,0x8F9E,0x6C50,0x9E7F,0x5F0F, +0x8B58,0x9D2B,0x7AFA,0x8EF8,0x5B8D,0x96EB,0x4E03,0x53F1, +0x57F7,0x5931,0x5AC9,0x5BA4,0x6089,0x6E7F,0x6F06,0x75BE, +0x8CEA,0x5B9F,0x8500,0x7BE0,0x5072,0x67F4,0x829D,0x5C61, +0x854A,0x7E1E,0x820E,0x5199,0x5C04,0x6368,0x8D66,0x659C, +0x716E,0x793E,0x7D17,0x8005,0x8B1D,0x8ECA,0x906E,0x86C7, +0x90AA,0x501F,0x52FA,0x5C3A,0x6753,0x707C,0x7235,0x914C, +0x91C8,0x932B,0x82E5,0x5BC2,0x5F31,0x60F9,0x4E3B,0x53D6, +0x5B88,0x624B,0x6731,0x6B8A,0x72E9,0x73E0,0x7A2E,0x816B, +0x8DA3,0x9152,0x9996,0x5112,0x53D7,0x546A,0x5BFF,0x6388, +0x6A39,0x7DAC,0x9700,0x56DA,0x53CE,0x5468, +/* plane 1 ku 29 */ +0x5B97,0x5C31,0x5DDE,0x4FEE,0x6101,0x62FE,0x6D32,0x79C0, +0x79CB,0x7D42,0x7E4D,0x7FD2,0x81ED,0x821F,0x8490,0x8846, +0x8972,0x8B90,0x8E74,0x8F2F,0x9031,0x914B,0x916C,0x96C6, +0x919C,0x4EC0,0x4F4F,0x5145,0x5341,0x5F93,0x620E,0x67D4, +0x6C41,0x6E0B,0x7363,0x7E26,0x91CD,0x9283,0x53D4,0x5919, +0x5BBF,0x6DD1,0x795D,0x7E2E,0x7C9B,0x587E,0x719F,0x51FA, +0x8853,0x8FF0,0x4FCA,0x5CFB,0x6625,0x77AC,0x7AE3,0x821C, +0x99FF,0x51C6,0x5FAA,0x65EC,0x696F,0x6B89,0x6DF3,0x6E96, +0x6F64,0x76FE,0x7D14,0x5DE1,0x9075,0x9187,0x9806,0x51E6, +0x521D,0x6240,0x6691,0x66D9,0x6E1A,0x5EB6,0x7DD2,0x7F72, +0x66F8,0x85AF,0x85F7,0x8AF8,0x52A9,0x53D9,0x5973,0x5E8F, +0x5F90,0x6055,0x92E4,0x9664,0x50B7,0x511F, +/* ku 30 */ +0x52DD,0x5320,0x5347,0x53EC,0x54E8,0x5546,0x5531,0x5617, +0x5968,0x59BE,0x5A3C,0x5BB5,0x5C06,0x5C0F,0x5C11,0x5C1A, +0x5E84,0x5E8A,0x5EE0,0x5F70,0x627F,0x6284,0x62DB,0x638C, +0x6377,0x6607,0x660C,0x662D,0x6676,0x677E,0x68A2,0x6A1F, +0x6A35,0x6CBC,0x6D88,0x6E09,0x6E58,0x713C,0x7126,0x7167, +0x75C7,0x7701,0x785D,0x7901,0x7965,0x79F0,0x7AE0,0x7B11, +0x7CA7,0x7D39,0x8096,0x83D6,0x848B,0x8549,0x885D,0x88F3, +0x8A1F,0x8A3C,0x8A54,0x8A73,0x8C61,0x8CDE,0x91A4,0x9266, +0x937E,0x9418,0x969C,0x9798,0x4E0A,0x4E08,0x4E1E,0x4E57, +0x5197,0x5270,0x57CE,0x5834,0x58CC,0x5B22,0x5E38,0x60C5, +0x64FE,0x6761,0x6756,0x6D44,0x72B6,0x7573,0x7A63,0x84B8, +0x8B72,0x91B8,0x9320,0x5631,0x57F4,0x98FE, +/* ku 31 */ +0x62ED,0x690D,0x6B96,0x71ED,0x7E54,0x8077,0x8272,0x89E6, +0x98DF,0x8755,0x8FB1,0x5C3B,0x4F38,0x4FE1,0x4FB5,0x5507, +0x5A20,0x5BDD,0x5BE9,0x5FC3,0x614E,0x632F,0x65B0,0x664B, +0x68EE,0x699B,0x6D78,0x6DF1,0x7533,0x75B9,0x771F,0x795E, +0x79E6,0x7D33,0x81E3,0x82AF,0x85AA,0x89AA,0x8A3A,0x8EAB, +0x8F9B,0x9032,0x91DD,0x9707,0x4EBA,0x4EC1,0x5203,0x5875, +0x58EC,0x5C0B,0x751A,0x5C3D,0x814E,0x8A0A,0x8FC5,0x9663, +0x976D,0x7B25,0x8ACF,0x9808,0x9162,0x56F3,0x53A8,0x9017, +0x5439,0x5782,0x5E25,0x63A8,0x6C34,0x708A,0x7761,0x7C8B, +0x7FE0,0x8870,0x9042,0x9154,0x9310,0x9318,0x968F,0x745E, +0x9AC4,0x5D07,0x5D69,0x6570,0x67A2,0x8DA8,0x96DB,0x636E, +0x6749,0x6919,0x83C5,0x9817,0x96C0,0x88FE, +/* plane 1 ku 32 */ +0x6F84,0x647A,0x5BF8,0x4E16,0x702C,0x755D,0x662F,0x51C4, +0x5236,0x52E2,0x59D3,0x5F81,0x6027,0x6210,0x653F,0x6574, +0x661F,0x6674,0x68F2,0x6816,0x6B63,0x6E05,0x7272,0x751F, +0x76DB,0x7CBE,0x8056,0x58F0,0x88FD,0x897F,0x8AA0,0x8A93, +0x8ACB,0x901D,0x9192,0x9752,0x9759,0x6589,0x7A0E,0x8106, +0x96BB,0x5E2D,0x60DC,0x621A,0x65A5,0x6614,0x6790,0x77F3, +0x7A4D,0x7C4D,0x7E3E,0x810A,0x8CAC,0x8D64,0x8DE1,0x8E5F, +0x78A9,0x5207,0x62D9,0x63A5,0x6442,0x6298,0x8A2D,0x7A83, +0x7BC0,0x8AAC,0x96EA,0x7D76,0x820C,0x8749,0x4ED9,0x5148, +0x5343,0x5360,0x5BA3,0x5C02,0x5C16,0x5DDD,0x6226,0x6247, +0x64B0,0x6813,0x6834,0x6CC9,0x6D45,0x6D17,0x67D3,0x6F5C, +0x714E,0x717D,0x65CB,0x7A7F,0x7BAD,0x7DDA, +/* plane 1 ku 33 */ +0x7E4A,0x7FA8,0x817A,0x821B,0x8239,0x85A6,0x8A6E,0x8CCE, +0x8DF5,0x9078,0x9077,0x92AD,0x9291,0x9583,0x9BAE,0x524D, +0x5584,0x6F38,0x7136,0x5168,0x7985,0x7E55,0x81B3,0x7CCE, +0x564C,0x5851,0x5CA8,0x63AA,0x66FE,0x66FD,0x695A,0x72D9, +0x758F,0x758E,0x790E,0x7956,0x79DF,0x7C97,0x7D20,0x7D44, +0x8607,0x8A34,0x963B,0x9061,0x9F20,0x50E7,0x5275,0x53CC, +0x53E2,0x5009,0x55AA,0x58EE,0x594F,0x723D,0x5B8B,0x5C64, +0x531D,0x60E3,0x60F3,0x635C,0x6383,0x633F,0x63BB,0x64CD, +0x65E9,0x66F9,0x5DE3,0x69CD,0x69FD,0x6F15,0x71E5,0x4E89, +0x75E9,0x76F8,0x7A93,0x7CDF,0x7DCF,0x7D9C,0x8061,0x8349, +0x8358,0x846C,0x84BC,0x85FB,0x88C5,0x8D70,0x9001,0x906D, +0x9397,0x971C,0x9A12,0x50CF,0x5897,0x618E, +/* plane 1 ku 34 */ +0x81D3,0x8535,0x8D08,0x9020,0x4FC3,0x5074,0x5247,0x5373, +0x606F,0x6349,0x675F,0x6E2C,0x8DB3,0x901F,0x4FD7,0x5C5E, +0x8CCA,0x65CF,0x7D9A,0x5352,0x8896,0x5176,0x63C3,0x5B58, +0x5B6B,0x5C0A,0x640D,0x6751,0x905C,0x4ED6,0x591A,0x592A, +0x6C70,0x8A51,0x553E,0x5815,0x59A5,0x60F0,0x6253,0x67C1, +0x8235,0x6955,0x9640,0x99C4,0x9A28,0x4F53,0x5806,0x5BFE, +0x8010,0x5CB1,0x5E2F,0x5F85,0x6020,0x614B,0x6234,0x66FF, +0x6CF0,0x6EDE,0x80CE,0x817F,0x82D4,0x888B,0x8CB8,0x9000, +0x902E,0x968A,0x9EDB,0x9BDB,0x4EE3,0x53F0,0x5927,0x7B2C, +0x918D,0x984C,0x9DF9,0x6EDD,0x7027,0x5353,0x5544,0x5B85, +0x6258,0x629E,0x62D3,0x6CA2,0x6FEF,0x7422,0x8A17,0x9438, +0x6FC1,0x8AFE,0x8338,0x51E7,0x86F8,0x53EA, +/* plane 1 ku 35 */ +0x53E9,0x4F46,0x9054,0x8FB0,0x596A,0x8131,0x5DFD,0x7AEA, +0x8FBF,0x68DA,0x8C37,0x72F8,0x9C48,0x6A3D,0x8AB0,0x4E39, +0x5358,0x5606,0x5766,0x62C5,0x63A2,0x65E6,0x6B4E,0x6DE1, +0x6E5B,0x70AD,0x77ED,0x7AEF,0x7BAA,0x7DBB,0x803D,0x80C6, +0x86CB,0x8A95,0x935B,0x56E3,0x58C7,0x5F3E,0x65AD,0x6696, +0x6A80,0x6BB5,0x7537,0x8AC7,0x5024,0x77E5,0x5730,0x5F1B, +0x6065,0x667A,0x6C60,0x75F4,0x7A1A,0x7F6E,0x81F4,0x8718, +0x9045,0x99B3,0x7BC9,0x755C,0x7AF9,0x7B51,0x84C4,0x9010, +0x79E9,0x7A92,0x8336,0x5AE1,0x7740,0x4E2D,0x4EF2,0x5B99, +0x5FE0,0x62BD,0x663C,0x67F1,0x6CE8,0x866B,0x8877,0x8A3B, +0x914E,0x92F3,0x99D0,0x6A17,0x7026,0x732A,0x82E7,0x8457, +0x8CAF,0x4E01,0x5146,0x51CB,0x558B,0x5BF5, +/* plane 1 ku 36 */ +0x5E16,0x5E33,0x5E81,0x5F14,0x5F35,0x5F6B,0x5FB4,0x61F2, +0x6311,0x66A2,0x671D,0x6F6E,0x7252,0x753A,0x773A,0x8074, +0x8139,0x8178,0x8776,0x8ABF,0x8ADC,0x8D85,0x8DF3,0x929A, +0x9577,0x9802,0x9CE5,0x52C5,0x6357,0x76F4,0x6715,0x6C88, +0x73CD,0x8CC3,0x93AE,0x9673,0x6D25,0x589C,0x690E,0x69CC, +0x8FFD,0x939A,0x75DB,0x901A,0x585A,0x6802,0x63B4,0x69FB, +0x4F43,0x6F2C,0x67D8,0x8FBB,0x8526,0x7DB4,0x9354,0x693F, +0x6F70,0x576A,0x58F7,0x5B2C,0x7D2C,0x722A,0x540A,0x91E3, +0x9DB4,0x4EAD,0x4F4E,0x505C,0x5075,0x5243,0x8C9E,0x5448, +0x5824,0x5B9A,0x5E1D,0x5E95,0x5EAD,0x5EF7,0x5F1F,0x608C, +0x62B5,0x633A,0x63D0,0x68AF,0x6C40,0x7887,0x798E,0x7A0B, +0x7DE0,0x8247,0x8A02,0x8AE6,0x8E44,0x9013, +/* plane 1 ku 37 */ +0x90B8,0x912D,0x91D8,0x9F0E,0x6CE5,0x6458,0x64E2,0x6575, +0x6EF4,0x7684,0x7B1B,0x9069,0x93D1,0x6EBA,0x54F2,0x5FB9, +0x64A4,0x8F4D,0x8FED,0x9244,0x5178,0x586B,0x5929,0x5C55, +0x5E97,0x6DFB,0x7E8F,0x751C,0x8CBC,0x8EE2,0x985B,0x70B9, +0x4F1D,0x6BBF,0x6FB1,0x7530,0x96FB,0x514E,0x5410,0x5835, +0x5857,0x59AC,0x5C60,0x5F92,0x6597,0x675C,0x6E21,0x767B, +0x83DF,0x8CED,0x9014,0x90FD,0x934D,0x7825,0x783A,0x52AA, +0x5EA6,0x571F,0x5974,0x6012,0x5012,0x515A,0x51AC,0x51CD, +0x5200,0x5510,0x5854,0x5858,0x5957,0x5B95,0x5CF6,0x5D8B, +0x60BC,0x6295,0x642D,0x6771,0x6843,0x68BC,0x68DF,0x76D7, +0x6DD8,0x6E6F,0x6D9B,0x706F,0x71C8,0x5F53,0x75D8,0x7977, +0x7B49,0x7B54,0x7B52,0x7CD6,0x7D71,0x5230, +/* plane 1 ku 38 */ +0x8463,0x8569,0x85E4,0x8A0E,0x8B04,0x8C46,0x8E0F,0x9003, +0x900F,0x9419,0x9676,0x982D,0x9A30,0x95D8,0x50CD,0x52D5, +0x540C,0x5802,0x5C0E,0x61A7,0x649E,0x6D1E,0x77B3,0x7AE5, +0x80F4,0x8404,0x9053,0x9285,0x5CE0,0x9D07,0x533F,0x5F97, +0x5FB3,0x6D9C,0x7279,0x7763,0x79BF,0x7BE4,0x6BD2,0x72EC, +0x8AAD,0x6803,0x6A61,0x51F8,0x7A81,0x6934,0x5C4A,0x9CF6, +0x82EB,0x5BC5,0x9149,0x701E,0x5678,0x5C6F,0x60C7,0x6566, +0x6C8C,0x8C5A,0x9041,0x9813,0x5451,0x66C7,0x920D,0x5948, +0x90A3,0x5185,0x4E4D,0x51EA,0x8599,0x8B0E,0x7058,0x637A, +0x934B,0x6962,0x99B4,0x7E04,0x7577,0x5357,0x6960,0x8EDF, +0x96E3,0x6C5D,0x4E8C,0x5C3C,0x5F10,0x8FE9,0x5302,0x8CD1, +0x8089,0x8679,0x5EFF,0x65E5,0x4E73,0x5165, +/* plane 1 ku 39 */ +0x5982,0x5C3F,0x97EE,0x4EFB,0x598A,0x5FCD,0x8A8D,0x6FE1, +0x79B0,0x7962,0x5BE7,0x8471,0x732B,0x71B1,0x5E74,0x5FF5, +0x637B,0x649A,0x71C3,0x7C98,0x4E43,0x5EFC,0x4E4B,0x57DC, +0x56A2,0x60A9,0x6FC3,0x7D0D,0x80FD,0x8133,0x81BF,0x8FB2, +0x8997,0x86A4,0x5DF4,0x628A,0x64AD,0x8987,0x6777,0x6CE2, +0x6D3E,0x7436,0x7834,0x5A46,0x7F75,0x82AD,0x99AC,0x4FF3, +0x5EC3,0x62DD,0x6392,0x6557,0x676F,0x76C3,0x724C,0x80CC, +0x80BA,0x8F29,0x914D,0x500D,0x57F9,0x5A92,0x6885,0x6973, +0x7164,0x72FD,0x8CB7,0x58F2,0x8CE0,0x966A,0x9019,0x877F, +0x79E4,0x77E7,0x8429,0x4F2F,0x5265,0x535A,0x62CD,0x67CF, +0x6CCA,0x767D,0x7B94,0x7C95,0x8236,0x8584,0x8FEB,0x66DD, +0x6F20,0x7206,0x7E1B,0x83AB,0x99C1,0x9EA6, +/* plane 1 ku 40 */ +0x51FD,0x7BB1,0x7872,0x7BB8,0x8087,0x7B48,0x6AE8,0x5E61, +0x808C,0x7551,0x7560,0x516B,0x9262,0x6E8C,0x767A,0x9197, +0x9AEA,0x4F10,0x7F70,0x629C,0x7B4F,0x95A5,0x9CE9,0x567A, +0x5859,0x86E4,0x96BC,0x4F34,0x5224,0x534A,0x53CD,0x53DB, +0x5E06,0x642C,0x6591,0x677F,0x6C3E,0x6C4E,0x7248,0x72AF, +0x73ED,0x7554,0x7E41,0x822C,0x85E9,0x8CA9,0x7BC4,0x91C6, +0x7169,0x9812,0x98EF,0x633D,0x6669,0x756A,0x76E4,0x78D0, +0x8543,0x86EE,0x532A,0x5351,0x5426,0x5983,0x5E87,0x5F7C, +0x60B2,0x6249,0x6279,0x62AB,0x6590,0x6BD4,0x6CCC,0x75B2, +0x76AE,0x7891,0x79D8,0x7DCB,0x7F77,0x80A5,0x88AB,0x8AB9, +0x8CBB,0x907F,0x975E,0x98DB,0x6A0B,0x7C38,0x5099,0x5C3E, +0x5FAE,0x6787,0x6BD8,0x7435,0x7709,0x7F8E, +/* plane 1 ku 41 */ +0x9F3B,0x67CA,0x7A17,0x5339,0x758B,0x9AED,0x5F66,0x819D, +0x83F1,0x8098,0x5F3C,0x5FC5,0x7562,0x7B46,0x903C,0x6867, +0x59EB,0x5A9B,0x7D10,0x767E,0x8B2C,0x4FF5,0x5F6A,0x6A19, +0x6C37,0x6F02,0x74E2,0x7968,0x8868,0x8A55,0x8C79,0x5EDF, +0x63CF,0x75C5,0x79D2,0x82D7,0x9328,0x92F2,0x849C,0x86ED, +0x9C2D,0x54C1,0x5F6C,0x658C,0x6D5C,0x7015,0x8CA7,0x8CD3, +0x983B,0x654F,0x74F6,0x4E0D,0x4ED8,0x57E0,0x592B,0x5A66, +0x5BCC,0x51A8,0x5E03,0x5E9C,0x6016,0x6276,0x6577,0x65A7, +0x666E,0x6D6E,0x7236,0x7B26,0x8150,0x819A,0x8299,0x8B5C, +0x8CA0,0x8CE6,0x8D74,0x961C,0x9644,0x4FAE,0x64AB,0x6B66, +0x821E,0x8461,0x856A,0x90E8,0x5C01,0x6953,0x98A8,0x847A, +0x8557,0x4F0F,0x526F,0x5FA9,0x5E45,0x670D, +/* plane 1 ku 42 */ +0x798F,0x8179,0x8907,0x8986,0x6DF5,0x5F17,0x6255,0x6CB8, +0x4ECF,0x7269,0x9B92,0x5206,0x543B,0x5674,0x58B3,0x61A4, +0x626E,0x711A,0x596E,0x7C89,0x7CDE,0x7D1B,0x96F0,0x6587, +0x805E,0x4E19,0x4F75,0x5175,0x5840,0x5E63,0x5E73,0x5F0A, +0x67C4,0x4E26,0x853D,0x9589,0x965B,0x7C73,0x9801,0x50FB, +0x58C1,0x7656,0x78A7,0x5225,0x77A5,0x8511,0x7B86,0x504F, +0x5909,0x7247,0x7BC7,0x7DE8,0x8FBA,0x8FD4,0x904D,0x4FBF, +0x52C9,0x5A29,0x5F01,0x97AD,0x4FDD,0x8217,0x92EA,0x5703, +0x6355,0x6B69,0x752B,0x88DC,0x8F14,0x7A42,0x52DF,0x5893, +0x6155,0x620A,0x66AE,0x6BCD,0x7C3F,0x83E9,0x5023,0x4FF8, +0x5305,0x5446,0x5831,0x5949,0x5B9D,0x5CF0,0x5CEF,0x5D29, +0x5E96,0x62B1,0x6367,0x653E,0x65B9,0x670B, +/* plane 1 ku 43 */ +0x6CD5,0x6CE1,0x70F9,0x7832,0x7E2B,0x80DE,0x82B3,0x840C, +0x84EC,0x8702,0x8912,0x8A2A,0x8C4A,0x90A6,0x92D2,0x98FD, +0x9CF3,0x9D6C,0x4E4F,0x4EA1,0x508D,0x5256,0x574A,0x59A8, +0x5E3D,0x5FD8,0x5FD9,0x623F,0x66B4,0x671B,0x67D0,0x68D2, +0x5192,0x7D21,0x80AA,0x81A8,0x8B00,0x8C8C,0x8CBF,0x927E, +0x9632,0x5420,0x982C,0x5317,0x50D5,0x535C,0x58A8,0x64B2, +0x6734,0x7267,0x7766,0x7A46,0x91E6,0x52C3,0x6CA1,0x6B86, +0x5800,0x5E4C,0x5954,0x672C,0x7FFB,0x51E1,0x76C6,0x6469, +0x78E8,0x9B54,0x9EBB,0x57CB,0x59B9,0x6627,0x679A,0x6BCE, +0x54E9,0x69D9,0x5E55,0x819C,0x6795,0x9BAA,0x67FE,0x9C52, +0x685D,0x4EA6,0x4FE3,0x53C8,0x62B9,0x672B,0x6CAB,0x8FC4, +0x4FAD,0x7E6D,0x9EBF,0x4E07,0x6162,0x6E80, +/* plane 1 ku 44 */ +0x6F2B,0x8513,0x5473,0x672A,0x9B45,0x5DF3,0x7B95,0x5CAC, +0x5BC6,0x871C,0x6E4A,0x84D1,0x7A14,0x8108,0x5999,0x7C8D, +0x6C11,0x7720,0x52D9,0x5922,0x7121,0x725F,0x77DB,0x9727, +0x9D61,0x690B,0x5A7F,0x5A18,0x51A5,0x540D,0x547D,0x660E, +0x76DF,0x8FF7,0x9298,0x9CF4,0x59EA,0x725D,0x6EC5,0x514D, +0x68C9,0x7DBF,0x7DEC,0x9762,0x9EBA,0x6478,0x6A21,0x8302, +0x5984,0x5B5F,0x6BDB,0x731B,0x76F2,0x7DB2,0x8017,0x8499, +0x5132,0x6728,0x9ED9,0x76EE,0x6762,0x52FF,0x9905,0x5C24, +0x623B,0x7C7E,0x8CB0,0x554F,0x60B6,0x7D0B,0x9580,0x5301, +0x4E5F,0x51B6,0x591C,0x723A,0x8036,0x91CE,0x5F25,0x77E2, +0x5384,0x5F79,0x7D04,0x85AC,0x8A33,0x8E8D,0x9756,0x67F3, +0x85AE,0x9453,0x6109,0x6108,0x6CB9,0x7652, +/* plane 1 ku 45 */ +0x8AED,0x8F38,0x552F,0x4F51,0x512A,0x52C7,0x53CB,0x5BA5, +0x5E7D,0x60A0,0x6182,0x63D6,0x6709,0x67DA,0x6E67,0x6D8C, +0x7336,0x7337,0x7531,0x7950,0x88D5,0x8A98,0x904A,0x9091, +0x90F5,0x96C4,0x878D,0x5915,0x4E88,0x4F59,0x4E0E,0x8A89, +0x8F3F,0x9810,0x50AD,0x5E7C,0x5996,0x5BB9,0x5EB8,0x63DA, +0x63FA,0x64C1,0x66DC,0x694A,0x69D8,0x6D0B,0x6EB6,0x7194, +0x7528,0x7AAF,0x7F8A,0x8000,0x8449,0x84C9,0x8981,0x8B21, +0x8E0A,0x9065,0x967D,0x990A,0x617E,0x6291,0x6B32,0x6C83, +0x6D74,0x7FCC,0x7FFC,0x6DC0,0x7F85,0x87BA,0x88F8,0x6765, +0x83B1,0x983C,0x96F7,0x6D1B,0x7D61,0x843D,0x916A,0x4E71, +0x5375,0x5D50,0x6B04,0x6FEB,0x85CD,0x862D,0x89A7,0x5229, +0x540F,0x5C65,0x674E,0x68A8,0x7406,0x7483, +/* plane 1 ku 46 */ +0x75E2,0x88CF,0x88E1,0x91CC,0x96E2,0x9678,0x5F8B,0x7387, +0x7ACB,0x844E,0x63A0,0x7565,0x5289,0x6D41,0x6E9C,0x7409, +0x7559,0x786B,0x7C92,0x9686,0x7ADC,0x9F8D,0x4FB6,0x616E, +0x65C5,0x865C,0x4E86,0x4EAE,0x50DA,0x4E21,0x51CC,0x5BEE, +0x6599,0x6881,0x6DBC,0x731F,0x7642,0x77AD,0x7A1C,0x7CE7, +0x826F,0x8AD2,0x907C,0x91CF,0x9675,0x9818,0x529B,0x7DD1, +0x502B,0x5398,0x6797,0x6DCB,0x71D0,0x7433,0x81E8,0x8F2A, +0x96A3,0x9C57,0x9E9F,0x7460,0x5841,0x6D99,0x7D2F,0x985E, +0x4EE4,0x4F36,0x4F8B,0x51B7,0x52B1,0x5DBA,0x601C,0x73B2, +0x793C,0x82D3,0x9234,0x96B7,0x96F6,0x970A,0x9E97,0x9F62, +0x66A6,0x6B74,0x5217,0x52A3,0x70C8,0x88C2,0x5EC9,0x604B, +0x6190,0x6F23,0x7149,0x7C3E,0x7DF4,0x806F, +/* plane 1 ku 47 */ +0x84EE,0x9023,0x932C,0x5442,0x9B6F,0x6AD3,0x7089,0x8CC2, +0x8DEF,0x9732,0x52B4,0x5A41,0x5ECA,0x5F04,0x6717,0x697C, +0x6994,0x6D6A,0x6F0F,0x7262,0x72FC,0x7BED,0x8001,0x807E, +0x874B,0x90CE,0x516D,0x9E93,0x7984,0x808B,0x9332,0x8AD6, +0x502D,0x548C,0x8A71,0x6B6A,0x8CC4,0x8107,0x60D1,0x67A0, +0x9DF2,0x4E99,0x4E98,0x9C10,0x8A6B,0x85C1,0x8568,0x6900, +0x6E7E,0x7897,0x8155,0x0000,0x5B41,0x5B56,0x5B7D,0x5B93, +0x5BD8,0x5BEC,0x5C12,0x5C1E,0x5C23,0x5C2B,0x378D,0x5C62, +0xFA3B,0xFA3C,0x0000,0x5C7A,0x5C8F,0x5C9F,0x5CA3,0x5CAA, +0x5CBA,0x5CCB,0x5CD0,0x5CD2,0x5CF4,0x0000,0x37E2,0x5D0D, +0x5D27,0xFA11,0x5D46,0x5D47,0x5D53,0x5D4A,0x5D6D,0x5D81, +0x5DA0,0x5DA4,0x5DA7,0x5DB8,0x5DCB,0x541E, +/* plane 1 ku 48 */ +0x5F0C,0x4E10,0x4E15,0x4E2A,0x4E31,0x4E36,0x4E3C,0x4E3F, +0x4E42,0x4E56,0x4E58,0x4E82,0x4E85,0x8C6B,0x4E8A,0x8212, +0x5F0D,0x4E8E,0x4E9E,0x4E9F,0x4EA0,0x4EA2,0x4EB0,0x4EB3, +0x4EB6,0x4ECE,0x4ECD,0x4EC4,0x4EC6,0x4EC2,0x4ED7,0x4EDE, +0x4EED,0x4EDF,0x4EF7,0x4F09,0x4F5A,0x4F30,0x4F5B,0x4F5D, +0x4F57,0x4F47,0x4F76,0x4F88,0x4F8F,0x4F98,0x4F7B,0x4F69, +0x4F70,0x4F91,0x4F6F,0x4F86,0x4F96,0x5118,0x4FD4,0x4FDF, +0x4FCE,0x4FD8,0x4FDB,0x4FD1,0x4FDA,0x4FD0,0x4FE4,0x4FE5, +0x501A,0x5028,0x5014,0x502A,0x5025,0x5005,0x4F1C,0x4FF6, +0x5021,0x5029,0x502C,0x4FFE,0x4FEF,0x5011,0x5006,0x5043, +0x5047,0x6703,0x5055,0x5050,0x5048,0x505A,0x5056,0x506C, +0x5078,0x5080,0x509A,0x5085,0x50B4,0x50B2, +/* plane 1 ku 49 */ +0x50C9,0x50CA,0x50B3,0x50C2,0x50D6,0x50DE,0x50E5,0x50ED, +0x50E3,0x50EE,0x50F9,0x50F5,0x5109,0x5101,0x5102,0x5116, +0x5115,0x5114,0x511A,0x5121,0x513A,0x5137,0x513C,0x513B, +0x513F,0x5140,0x5152,0x514C,0x5154,0x5162,0x7AF8,0x5169, +0x516A,0x516E,0x5180,0x5182,0x56D8,0x518C,0x5189,0x518F, +0x5191,0x5193,0x5195,0x5196,0x51A4,0x51A6,0x51A2,0x51A9, +0x51AA,0x51AB,0x51B3,0x51B1,0x51B2,0x51B0,0x51B5,0x51BD, +0x51C5,0x51C9,0x51DB,0x51E0,0x8655,0x51E9,0x51ED,0x51F0, +0x51F5,0x51FE,0x5204,0x520B,0x5214,0x520E,0x5227,0x522A, +0x522E,0x5233,0x5239,0x524F,0x5244,0x524B,0x524C,0x525E, +0x5254,0x526A,0x5274,0x5269,0x5273,0x527F,0x527D,0x528D, +0x5294,0x5292,0x5271,0x5288,0x5291,0x8FA8, +/* plane 1 ku 50 */ +0x8FA7,0x52AC,0x52AD,0x52BC,0x52B5,0x52C1,0x52CD,0x52D7, +0x52DE,0x52E3,0x52E6,0x98ED,0x52E0,0x52F3,0x52F5,0x52F8, +0x52F9,0x5306,0x5308,0x7538,0x530D,0x5310,0x530F,0x5315, +0x531A,0x5323,0x532F,0x5331,0x5333,0x5338,0x5340,0x5346, +0x5345,0x4E17,0x5349,0x534D,0x51D6,0x535E,0x5369,0x536E, +0x5918,0x537B,0x5377,0x5382,0x5396,0x53A0,0x53A6,0x53A5, +0x53AE,0x53B0,0x53B6,0x53C3,0x7C12,0x96D9,0x53DF,0x66FC, +0x71EE,0x53EE,0x53E8,0x53ED,0x53FA,0x5401,0x543D,0x5440, +0x542C,0x542D,0x543C,0x542E,0x5436,0x5429,0x541D,0x544E, +0x548F,0x5475,0x548E,0x545F,0x5471,0x5477,0x5470,0x5492, +0x547B,0x5480,0x5476,0x5484,0x5490,0x5486,0x54C7,0x54A2, +0x54B8,0x54A5,0x54AC,0x54C4,0x54C8,0x54A8, +/* plane 1 ku 51 */ +0x54AB,0x54C2,0x54A4,0x54BE,0x54BC,0x54D8,0x54E5,0x54E6, +0x550F,0x5514,0x54FD,0x54EE,0x54ED,0x54FA,0x54E2,0x5539, +0x5540,0x5563,0x554C,0x552E,0x555C,0x5545,0x5556,0x5557, +0x5538,0x5533,0x555D,0x5599,0x5580,0x54AF,0x558A,0x559F, +0x557B,0x557E,0x5598,0x559E,0x55AE,0x557C,0x5583,0x55A9, +0x5587,0x55A8,0x55DA,0x55C5,0x55DF,0x55C4,0x55DC,0x55E4, +0x55D4,0x5614,0x55F7,0x5616,0x55FE,0x55FD,0x561B,0x55F9, +0x564E,0x5650,0x71DF,0x5634,0x5636,0x5632,0x5638,0x566B, +0x5664,0x562F,0x566C,0x566A,0x5686,0x5680,0x568A,0x56A0, +0x5694,0x568F,0x56A5,0x56AE,0x56B6,0x56B4,0x56C2,0x56BC, +0x56C1,0x56C3,0x56C0,0x56C8,0x56CE,0x56D1,0x56D3,0x56D7, +0x56EE,0x56F9,0x5700,0x56FF,0x5704,0x5709, +/* plane 1 ku 52 */ +0x5708,0x570B,0x570D,0x5713,0x5718,0x5716,0x55C7,0x571C, +0x5726,0x5737,0x5738,0x574E,0x573B,0x5740,0x574F,0x5769, +0x57C0,0x5788,0x5761,0x577F,0x5789,0x5793,0x57A0,0x57B3, +0x57A4,0x57AA,0x57B0,0x57C3,0x57C6,0x57D4,0x57D2,0x57D3, +0x580A,0x57D6,0x57E3,0x580B,0x5819,0x581D,0x5872,0x5821, +0x5862,0x584B,0x5870,0x6BC0,0x5852,0x583D,0x5879,0x5885, +0x58B9,0x589F,0x58AB,0x58BA,0x58DE,0x58BB,0x58B8,0x58AE, +0x58C5,0x58D3,0x58D1,0x58D7,0x58D9,0x58D8,0x58E5,0x58DC, +0x58E4,0x58DF,0x58EF,0x58FA,0x58F9,0x58FB,0x58FC,0x58FD, +0x5902,0x590A,0x5910,0x591B,0x68A6,0x5925,0x592C,0x592D, +0x5932,0x5938,0x593E,0x7AD2,0x5955,0x5950,0x594E,0x595A, +0x5958,0x5962,0x5960,0x5967,0x596C,0x5969, +/* plane 1 ku 53 */ +0x5978,0x5981,0x599D,0x4F5E,0x4FAB,0x59A3,0x59B2,0x59C6, +0x59E8,0x59DC,0x598D,0x59D9,0x59DA,0x5A25,0x5A1F,0x5A11, +0x5A1C,0x5A09,0x5A1A,0x5A40,0x5A6C,0x5A49,0x5A35,0x5A36, +0x5A62,0x5A6A,0x5A9A,0x5ABC,0x5ABE,0x5ACB,0x5AC2,0x5ABD, +0x5AE3,0x5AD7,0x5AE6,0x5AE9,0x5AD6,0x5AFA,0x5AFB,0x5B0C, +0x5B0B,0x5B16,0x5B32,0x5AD0,0x5B2A,0x5B36,0x5B3E,0x5B43, +0x5B45,0x5B40,0x5B51,0x5B55,0x5B5A,0x5B5B,0x5B65,0x5B69, +0x5B70,0x5B73,0x5B75,0x5B78,0x6588,0x5B7A,0x5B80,0x5B83, +0x5BA6,0x5BB8,0x5BC3,0x5BC7,0x5BC9,0x5BD4,0x5BD0,0x5BE4, +0x5BE6,0x5BE2,0x5BDE,0x5BE5,0x5BEB,0x5BF0,0x5BF6,0x5BF3, +0x5C05,0x5C07,0x5C08,0x5C0D,0x5C13,0x5C20,0x5C22,0x5C28, +0x5C38,0x5C39,0x5C41,0x5C46,0x5C4E,0x5C53, +/* plane 1 ku 54 */ +0x5C50,0x5C4F,0x5B71,0x5C6C,0x5C6E,0x4E62,0x5C76,0x5C79, +0x5C8C,0x5C91,0x5C94,0x599B,0x5CAB,0x5CBB,0x5CB6,0x5CBC, +0x5CB7,0x5CC5,0x5CBE,0x5CC7,0x5CD9,0x5CE9,0x5CFD,0x5CFA, +0x5CED,0x5D8C,0x5CEA,0x5D0B,0x5D15,0x5D17,0x5D5C,0x5D1F, +0x5D1B,0x5D11,0x5D14,0x5D22,0x5D1A,0x5D19,0x5D18,0x5D4C, +0x5D52,0x5D4E,0x5D4B,0x5D6C,0x5D73,0x5D76,0x5D87,0x5D84, +0x5D82,0x5DA2,0x5D9D,0x5DAC,0x5DAE,0x5DBD,0x5D90,0x5DB7, +0x5DBC,0x5DC9,0x5DCD,0x5DD3,0x5DD2,0x5DD6,0x5DDB,0x5DEB, +0x5DF2,0x5DF5,0x5E0B,0x5E1A,0x5E19,0x5E11,0x5E1B,0x5E36, +0x5E37,0x5E44,0x5E43,0x5E40,0x5E4E,0x5E57,0x5E54,0x5E5F, +0x5E62,0x5E64,0x5E47,0x5E75,0x5E76,0x5E7A,0x9EBC,0x5E7F, +0x5EA0,0x5EC1,0x5EC2,0x5EC8,0x5ED0,0x5ECF, +/* plane 1 ku 55 */ +0x5ED6,0x5EE3,0x5EDD,0x5EDA,0x5EDB,0x5EE2,0x5EE1,0x5EE8, +0x5EE9,0x5EEC,0x5EF1,0x5EF3,0x5EF0,0x5EF4,0x5EF8,0x5EFE, +0x5F03,0x5F09,0x5F5D,0x5F5C,0x5F0B,0x5F11,0x5F16,0x5F29, +0x5F2D,0x5F38,0x5F41,0x5F48,0x5F4C,0x5F4E,0x5F2F,0x5F51, +0x5F56,0x5F57,0x5F59,0x5F61,0x5F6D,0x5F73,0x5F77,0x5F83, +0x5F82,0x5F7F,0x5F8A,0x5F88,0x5F91,0x5F87,0x5F9E,0x5F99, +0x5F98,0x5FA0,0x5FA8,0x5FAD,0x5FBC,0x5FD6,0x5FFB,0x5FE4, +0x5FF8,0x5FF1,0x5FDD,0x60B3,0x5FFF,0x6021,0x6060,0x6019, +0x6010,0x6029,0x600E,0x6031,0x601B,0x6015,0x602B,0x6026, +0x600F,0x603A,0x605A,0x6041,0x606A,0x6077,0x605F,0x604A, +0x6046,0x604D,0x6063,0x6043,0x6064,0x6042,0x606C,0x606B, +0x6059,0x6081,0x608D,0x60E7,0x6083,0x609A, +/* plane 1 ku 56 */ +0x6084,0x609B,0x6096,0x6097,0x6092,0x60A7,0x608B,0x60E1, +0x60B8,0x60E0,0x60D3,0x60B4,0x5FF0,0x60BD,0x60C6,0x60B5, +0x60D8,0x614D,0x6115,0x6106,0x60F6,0x60F7,0x6100,0x60F4, +0x60FA,0x6103,0x6121,0x60FB,0x60F1,0x610D,0x610E,0x6147, +0x613E,0x6128,0x6127,0x614A,0x613F,0x613C,0x612C,0x6134, +0x613D,0x6142,0x6144,0x6173,0x6177,0x6158,0x6159,0x615A, +0x616B,0x6174,0x616F,0x6165,0x6171,0x615F,0x615D,0x6153, +0x6175,0x6199,0x6196,0x6187,0x61AC,0x6194,0x619A,0x618A, +0x6191,0x61AB,0x61AE,0x61CC,0x61CA,0x61C9,0x61F7,0x61C8, +0x61C3,0x61C6,0x61BA,0x61CB,0x7F79,0x61CD,0x61E6,0x61E3, +0x61F6,0x61FA,0x61F4,0x61FF,0x61FD,0x61FC,0x61FE,0x6200, +0x6208,0x6209,0x620D,0x620C,0x6214,0x621B, +/* plane 1 ku 57 */ +0x621E,0x6221,0x622A,0x622E,0x6230,0x6232,0x6233,0x6241, +0x624E,0x625E,0x6263,0x625B,0x6260,0x6268,0x627C,0x6282, +0x6289,0x627E,0x6292,0x6293,0x6296,0x62D4,0x6283,0x6294, +0x62D7,0x62D1,0x62BB,0x62CF,0x62FF,0x62C6,0x64D4,0x62C8, +0x62DC,0x62CC,0x62CA,0x62C2,0x62C7,0x629B,0x62C9,0x630C, +0x62EE,0x62F1,0x6327,0x6302,0x6308,0x62EF,0x62F5,0x6350, +0x633E,0x634D,0x641C,0x634F,0x6396,0x638E,0x6380,0x63AB, +0x6376,0x63A3,0x638F,0x6389,0x639F,0x63B5,0x636B,0x6369, +0x63BE,0x63E9,0x63C0,0x63C6,0x63E3,0x63C9,0x63D2,0x63F6, +0x63C4,0x6416,0x6434,0x6406,0x6413,0x6426,0x6436,0x651D, +0x6417,0x6428,0x640F,0x6467,0x646F,0x6476,0x644E,0x652A, +0x6495,0x6493,0x64A5,0x64A9,0x6488,0x64BC, +/* plane 1 ku 58 */ +0x64DA,0x64D2,0x64C5,0x64C7,0x64BB,0x64D8,0x64C2,0x64F1, +0x64E7,0x8209,0x64E0,0x64E1,0x62AC,0x64E3,0x64EF,0x652C, +0x64F6,0x64F4,0x64F2,0x64FA,0x6500,0x64FD,0x6518,0x651C, +0x6505,0x6524,0x6523,0x652B,0x6534,0x6535,0x6537,0x6536, +0x6538,0x754B,0x6548,0x6556,0x6555,0x654D,0x6558,0x655E, +0x655D,0x6572,0x6578,0x6582,0x6583,0x8B8A,0x659B,0x659F, +0x65AB,0x65B7,0x65C3,0x65C6,0x65C1,0x65C4,0x65CC,0x65D2, +0x65DB,0x65D9,0x65E0,0x65E1,0x65F1,0x6772,0x660A,0x6603, +0x65FB,0x6773,0x6635,0x6636,0x6634,0x661C,0x664F,0x6644, +0x6649,0x6641,0x665E,0x665D,0x6664,0x6667,0x6668,0x665F, +0x6662,0x6670,0x6683,0x6688,0x668E,0x6689,0x6684,0x6698, +0x669D,0x66C1,0x66B9,0x66C9,0x66BE,0x66BC, +/* plane 1 ku 59 */ +0x66C4,0x66B8,0x66D6,0x66DA,0x66E0,0x663F,0x66E6,0x66E9, +0x66F0,0x66F5,0x66F7,0x670F,0x6716,0x671E,0x6726,0x6727, +0x9738,0x672E,0x673F,0x6736,0x6741,0x6738,0x6737,0x6746, +0x675E,0x6760,0x6759,0x6763,0x6764,0x6789,0x6770,0x67A9, +0x677C,0x676A,0x678C,0x678B,0x67A6,0x67A1,0x6785,0x67B7, +0x67EF,0x67B4,0x67EC,0x67B3,0x67E9,0x67B8,0x67E4,0x67DE, +0x67DD,0x67E2,0x67EE,0x67B9,0x67CE,0x67C6,0x67E7,0x6A9C, +0x681E,0x6846,0x6829,0x6840,0x684D,0x6832,0x684E,0x68B3, +0x682B,0x6859,0x6863,0x6877,0x687F,0x689F,0x688F,0x68AD, +0x6894,0x689D,0x689B,0x6883,0x6AAE,0x68B9,0x6874,0x68B5, +0x68A0,0x68BA,0x690F,0x688D,0x687E,0x6901,0x68CA,0x6908, +0x68D8,0x6922,0x6926,0x68E1,0x690C,0x68CD, +/* plane 1 ku 60 */ +0x68D4,0x68E7,0x68D5,0x6936,0x6912,0x6904,0x68D7,0x68E3, +0x6925,0x68F9,0x68E0,0x68EF,0x6928,0x692A,0x691A,0x6923, +0x6921,0x68C6,0x6979,0x6977,0x695C,0x6978,0x696B,0x6954, +0x697E,0x696E,0x6939,0x6974,0x693D,0x6959,0x6930,0x6961, +0x695E,0x695D,0x6981,0x696A,0x69B2,0x69AE,0x69D0,0x69BF, +0x69C1,0x69D3,0x69BE,0x69CE,0x5BE8,0x69CA,0x69DD,0x69BB, +0x69C3,0x69A7,0x6A2E,0x6991,0x69A0,0x699C,0x6995,0x69B4, +0x69DE,0x69E8,0x6A02,0x6A1B,0x69FF,0x6B0A,0x69F9,0x69F2, +0x69E7,0x6A05,0x69B1,0x6A1E,0x69ED,0x6A14,0x69EB,0x6A0A, +0x6A12,0x6AC1,0x6A23,0x6A13,0x6A44,0x6A0C,0x6A72,0x6A36, +0x6A78,0x6A47,0x6A62,0x6A59,0x6A66,0x6A48,0x6A38,0x6A22, +0x6A90,0x6A8D,0x6AA0,0x6A84,0x6AA2,0x6AA3, +/* plane 1 ku 61 */ +0x6A97,0x8617,0x6ABB,0x6AC3,0x6AC2,0x6AB8,0x6AB3,0x6AAC, +0x6ADE,0x6AD1,0x6ADF,0x6AAA,0x6ADA,0x6AEA,0x6AFB,0x6B05, +0x8616,0x6AFA,0x6B12,0x6B16,0x9B31,0x6B1F,0x6B38,0x6B37, +0x76DC,0x6B39,0x98EE,0x6B47,0x6B43,0x6B49,0x6B50,0x6B59, +0x6B54,0x6B5B,0x6B5F,0x6B61,0x6B78,0x6B79,0x6B7F,0x6B80, +0x6B84,0x6B83,0x6B8D,0x6B98,0x6B95,0x6B9E,0x6BA4,0x6BAA, +0x6BAB,0x6BAF,0x6BB2,0x6BB1,0x6BB3,0x6BB7,0x6BBC,0x6BC6, +0x6BCB,0x6BD3,0x6BDF,0x6BEC,0x6BEB,0x6BF3,0x6BEF,0x9EBE, +0x6C08,0x6C13,0x6C14,0x6C1B,0x6C24,0x6C23,0x6C5E,0x6C55, +0x6C62,0x6C6A,0x6C82,0x6C8D,0x6C9A,0x6C81,0x6C9B,0x6C7E, +0x6C68,0x6C73,0x6C92,0x6C90,0x6CC4,0x6CF1,0x6CD3,0x6CBD, +0x6CD7,0x6CC5,0x6CDD,0x6CAE,0x6CB1,0x6CBE, +/* plane 1 ku 62 */ +0x6CBA,0x6CDB,0x6CEF,0x6CD9,0x6CEA,0x6D1F,0x884D,0x6D36, +0x6D2B,0x6D3D,0x6D38,0x6D19,0x6D35,0x6D33,0x6D12,0x6D0C, +0x6D63,0x6D93,0x6D64,0x6D5A,0x6D79,0x6D59,0x6D8E,0x6D95, +0x6FE4,0x6D85,0x6DF9,0x6E15,0x6E0A,0x6DB5,0x6DC7,0x6DE6, +0x6DB8,0x6DC6,0x6DEC,0x6DDE,0x6DCC,0x6DE8,0x6DD2,0x6DC5, +0x6DFA,0x6DD9,0x6DE4,0x6DD5,0x6DEA,0x6DEE,0x6E2D,0x6E6E, +0x6E2E,0x6E19,0x6E72,0x6E5F,0x6E3E,0x6E23,0x6E6B,0x6E2B, +0x6E76,0x6E4D,0x6E1F,0x6E43,0x6E3A,0x6E4E,0x6E24,0x6EFF, +0x6E1D,0x6E38,0x6E82,0x6EAA,0x6E98,0x6EC9,0x6EB7,0x6ED3, +0x6EBD,0x6EAF,0x6EC4,0x6EB2,0x6ED4,0x6ED5,0x6E8F,0x6EA5, +0x6EC2,0x6E9F,0x6F41,0x6F11,0x704C,0x6EEC,0x6EF8,0x6EFE, +0x6F3F,0x6EF2,0x6F31,0x6EEF,0x6F32,0x6ECC, +/* plane 1 ku 63 */ +0x6F3E,0x6F13,0x6EF7,0x6F86,0x6F7A,0x6F78,0x6F81,0x6F80, +0x6F6F,0x6F5B,0x6FF3,0x6F6D,0x6F82,0x6F7C,0x6F58,0x6F8E, +0x6F91,0x6FC2,0x6F66,0x6FB3,0x6FA3,0x6FA1,0x6FA4,0x6FB9, +0x6FC6,0x6FAA,0x6FDF,0x6FD5,0x6FEC,0x6FD4,0x6FD8,0x6FF1, +0x6FEE,0x6FDB,0x7009,0x700B,0x6FFA,0x7011,0x7001,0x700F, +0x6FFE,0x701B,0x701A,0x6F74,0x701D,0x7018,0x701F,0x7030, +0x703E,0x7032,0x7051,0x7063,0x7099,0x7092,0x70AF,0x70F1, +0x70AC,0x70B8,0x70B3,0x70AE,0x70DF,0x70CB,0x70DD,0x70D9, +0x7109,0x70FD,0x711C,0x7119,0x7165,0x7155,0x7188,0x7166, +0x7162,0x714C,0x7156,0x716C,0x718F,0x71FB,0x7184,0x7195, +0x71A8,0x71AC,0x71D7,0x71B9,0x71BE,0x71D2,0x71C9,0x71D4, +0x71CE,0x71E0,0x71EC,0x71E7,0x71F5,0x71FC, +/* plane 1 ku 64 */ +0x71F9,0x71FF,0x720D,0x7210,0x721B,0x7228,0x722D,0x722C, +0x7230,0x7232,0x723B,0x723C,0x723F,0x7240,0x7246,0x724B, +0x7258,0x7274,0x727E,0x7282,0x7281,0x7287,0x7292,0x7296, +0x72A2,0x72A7,0x72B9,0x72B2,0x72C3,0x72C6,0x72C4,0x72CE, +0x72D2,0x72E2,0x72E0,0x72E1,0x72F9,0x72F7,0x500F,0x7317, +0x730A,0x731C,0x7316,0x731D,0x7334,0x732F,0x7329,0x7325, +0x733E,0x734E,0x734F,0x9ED8,0x7357,0x736A,0x7368,0x7370, +0x7378,0x7375,0x737B,0x737A,0x73C8,0x73B3,0x73CE,0x73BB, +0x73C0,0x73E5,0x73EE,0x73DE,0x74A2,0x7405,0x746F,0x7425, +0x73F8,0x7432,0x743A,0x7455,0x743F,0x745F,0x7459,0x7441, +0x745C,0x7469,0x7470,0x7463,0x746A,0x7476,0x747E,0x748B, +0x749E,0x74A7,0x74CA,0x74CF,0x74D4,0x73F1, +/* plane 1 ku 65 */ +0x74E0,0x74E3,0x74E7,0x74E9,0x74EE,0x74F2,0x74F0,0x74F1, +0x74F8,0x74F7,0x7504,0x7503,0x7505,0x750C,0x750E,0x750D, +0x7515,0x7513,0x751E,0x7526,0x752C,0x753C,0x7544,0x754D, +0x754A,0x7549,0x755B,0x7546,0x755A,0x7569,0x7564,0x7567, +0x756B,0x756D,0x7578,0x7576,0x7586,0x7587,0x7574,0x758A, +0x7589,0x7582,0x7594,0x759A,0x759D,0x75A5,0x75A3,0x75C2, +0x75B3,0x75C3,0x75B5,0x75BD,0x75B8,0x75BC,0x75B1,0x75CD, +0x75CA,0x75D2,0x75D9,0x75E3,0x75DE,0x75FE,0x75FF,0x75FC, +0x7601,0x75F0,0x75FA,0x75F2,0x75F3,0x760B,0x760D,0x7609, +0x761F,0x7627,0x7620,0x7621,0x7622,0x7624,0x7634,0x7630, +0x763B,0x7647,0x7648,0x7646,0x765C,0x7658,0x7661,0x7662, +0x7668,0x7669,0x766A,0x7667,0x766C,0x7670, +/* plane 1 ku 66 */ +0x7672,0x7676,0x7678,0x767C,0x7680,0x7683,0x7688,0x768B, +0x768E,0x7696,0x7693,0x7699,0x769A,0x76B0,0x76B4,0x76B8, +0x76B9,0x76BA,0x76C2,0x76CD,0x76D6,0x76D2,0x76DE,0x76E1, +0x76E5,0x76E7,0x76EA,0x862F,0x76FB,0x7708,0x7707,0x7704, +0x7729,0x7724,0x771E,0x7725,0x7726,0x771B,0x7737,0x7738, +0x7747,0x775A,0x7768,0x776B,0x775B,0x7765,0x777F,0x777E, +0x7779,0x778E,0x778B,0x7791,0x77A0,0x779E,0x77B0,0x77B6, +0x77B9,0x77BF,0x77BC,0x77BD,0x77BB,0x77C7,0x77CD,0x77D7, +0x77DA,0x77DC,0x77E3,0x77EE,0x77FC,0x780C,0x7812,0x7926, +0x7820,0x792A,0x7845,0x788E,0x7874,0x7886,0x787C,0x789A, +0x788C,0x78A3,0x78B5,0x78AA,0x78AF,0x78D1,0x78C6,0x78CB, +0x78D4,0x78BE,0x78BC,0x78C5,0x78CA,0x78EC, +/* plane 1 ku 67 */ +0x78E7,0x78DA,0x78FD,0x78F4,0x7907,0x7912,0x7911,0x7919, +0x792C,0x792B,0x7940,0x7960,0x7957,0x795F,0x795A,0x7955, +0x7953,0x797A,0x797F,0x798A,0x799D,0x79A7,0x9F4B,0x79AA, +0x79AE,0x79B3,0x79B9,0x79BA,0x79C9,0x79D5,0x79E7,0x79EC, +0x79E1,0x79E3,0x7A08,0x7A0D,0x7A18,0x7A19,0x7A20,0x7A1F, +0x7980,0x7A31,0x7A3B,0x7A3E,0x7A37,0x7A43,0x7A57,0x7A49, +0x7A61,0x7A62,0x7A69,0x9F9D,0x7A70,0x7A79,0x7A7D,0x7A88, +0x7A97,0x7A95,0x7A98,0x7A96,0x7AA9,0x7AC8,0x7AB0,0x7AB6, +0x7AC5,0x7AC4,0x7ABF,0x9083,0x7AC7,0x7ACA,0x7ACD,0x7ACF, +0x7AD5,0x7AD3,0x7AD9,0x7ADA,0x7ADD,0x7AE1,0x7AE2,0x7AE6, +0x7AED,0x7AF0,0x7B02,0x7B0F,0x7B0A,0x7B06,0x7B33,0x7B18, +0x7B19,0x7B1E,0x7B35,0x7B28,0x7B36,0x7B50, +/* plane 1 ku 68 */ +0x7B7A,0x7B04,0x7B4D,0x7B0B,0x7B4C,0x7B45,0x7B75,0x7B65, +0x7B74,0x7B67,0x7B70,0x7B71,0x7B6C,0x7B6E,0x7B9D,0x7B98, +0x7B9F,0x7B8D,0x7B9C,0x7B9A,0x7B8B,0x7B92,0x7B8F,0x7B5D, +0x7B99,0x7BCB,0x7BC1,0x7BCC,0x7BCF,0x7BB4,0x7BC6,0x7BDD, +0x7BE9,0x7C11,0x7C14,0x7BE6,0x7BE5,0x7C60,0x7C00,0x7C07, +0x7C13,0x7BF3,0x7BF7,0x7C17,0x7C0D,0x7BF6,0x7C23,0x7C27, +0x7C2A,0x7C1F,0x7C37,0x7C2B,0x7C3D,0x7C4C,0x7C43,0x7C54, +0x7C4F,0x7C40,0x7C50,0x7C58,0x7C5F,0x7C64,0x7C56,0x7C65, +0x7C6C,0x7C75,0x7C83,0x7C90,0x7CA4,0x7CAD,0x7CA2,0x7CAB, +0x7CA1,0x7CA8,0x7CB3,0x7CB2,0x7CB1,0x7CAE,0x7CB9,0x7CBD, +0x7CC0,0x7CC5,0x7CC2,0x7CD8,0x7CD2,0x7CDC,0x7CE2,0x9B3B, +0x7CEF,0x7CF2,0x7CF4,0x7CF6,0x7CFA,0x7D06, +/* plane 1 ku 69 */ +0x7D02,0x7D1C,0x7D15,0x7D0A,0x7D45,0x7D4B,0x7D2E,0x7D32, +0x7D3F,0x7D35,0x7D46,0x7D73,0x7D56,0x7D4E,0x7D72,0x7D68, +0x7D6E,0x7D4F,0x7D63,0x7D93,0x7D89,0x7D5B,0x7D8F,0x7D7D, +0x7D9B,0x7DBA,0x7DAE,0x7DA3,0x7DB5,0x7DC7,0x7DBD,0x7DAB, +0x7E3D,0x7DA2,0x7DAF,0x7DDC,0x7DB8,0x7D9F,0x7DB0,0x7DD8, +0x7DDD,0x7DE4,0x7DDE,0x7DFB,0x7DF2,0x7DE1,0x7E05,0x7E0A, +0x7E23,0x7E21,0x7E12,0x7E31,0x7E1F,0x7E09,0x7E0B,0x7E22, +0x7E46,0x7E66,0x7E3B,0x7E35,0x7E39,0x7E43,0x7E37,0x7E32, +0x7E3A,0x7E67,0x7E5D,0x7E56,0x7E5E,0x7E59,0x7E5A,0x7E79, +0x7E6A,0x7E69,0x7E7C,0x7E7B,0x7E83,0x7DD5,0x7E7D,0x8FAE, +0x7E7F,0x7E88,0x7E89,0x7E8C,0x7E92,0x7E90,0x7E93,0x7E94, +0x7E96,0x7E8E,0x7E9B,0x7E9C,0x7F38,0x7F3A, +/* plane 1 ku 70 */ +0x7F45,0x7F4C,0x7F4D,0x7F4E,0x7F50,0x7F51,0x7F55,0x7F54, +0x7F58,0x7F5F,0x7F60,0x7F68,0x7F69,0x7F67,0x7F78,0x7F82, +0x7F86,0x7F83,0x7F88,0x7F87,0x7F8C,0x7F94,0x7F9E,0x7F9D, +0x7F9A,0x7FA3,0x7FAF,0x7FB2,0x7FB9,0x7FAE,0x7FB6,0x7FB8, +0x8B71,0x7FC5,0x7FC6,0x7FCA,0x7FD5,0x7FD4,0x7FE1,0x7FE6, +0x7FE9,0x7FF3,0x7FF9,0x98DC,0x8006,0x8004,0x800B,0x8012, +0x8018,0x8019,0x801C,0x8021,0x8028,0x803F,0x803B,0x804A, +0x8046,0x8052,0x8058,0x805A,0x805F,0x8062,0x8068,0x8073, +0x8072,0x8070,0x8076,0x8079,0x807D,0x807F,0x8084,0x8086, +0x8085,0x809B,0x8093,0x809A,0x80AD,0x5190,0x80AC,0x80DB, +0x80E5,0x80D9,0x80DD,0x80C4,0x80DA,0x80D6,0x8109,0x80EF, +0x80F1,0x811B,0x8129,0x8123,0x812F,0x814B, +/* plane 1 ku 71 */ +0x968B,0x8146,0x813E,0x8153,0x8151,0x80FC,0x8171,0x816E, +0x8165,0x8166,0x8174,0x8183,0x8188,0x818A,0x8180,0x8182, +0x81A0,0x8195,0x81A4,0x81A3,0x815F,0x8193,0x81A9,0x81B0, +0x81B5,0x81BE,0x81B8,0x81BD,0x81C0,0x81C2,0x81BA,0x81C9, +0x81CD,0x81D1,0x81D9,0x81D8,0x81C8,0x81DA,0x81DF,0x81E0, +0x81E7,0x81FA,0x81FB,0x81FE,0x8201,0x8202,0x8205,0x8207, +0x820A,0x820D,0x8210,0x8216,0x8229,0x822B,0x8238,0x8233, +0x8240,0x8259,0x8258,0x825D,0x825A,0x825F,0x8264,0x8262, +0x8268,0x826A,0x826B,0x822E,0x8271,0x8277,0x8278,0x827E, +0x828D,0x8292,0x82AB,0x829F,0x82BB,0x82AC,0x82E1,0x82E3, +0x82DF,0x82D2,0x82F4,0x82F3,0x82FA,0x8393,0x8303,0x82FB, +0x82F9,0x82DE,0x8306,0x82DC,0x8309,0x82D9, +/* plane 1 ku 72 */ +0x8335,0x8334,0x8316,0x8332,0x8331,0x8340,0x8339,0x8350, +0x8345,0x832F,0x832B,0x8317,0x8318,0x8385,0x839A,0x83AA, +0x839F,0x83A2,0x8396,0x8323,0x838E,0x8387,0x838A,0x837C, +0x83B5,0x8373,0x8375,0x83A0,0x8389,0x83A8,0x83F4,0x8413, +0x83EB,0x83CE,0x83FD,0x8403,0x83D8,0x840B,0x83C1,0x83F7, +0x8407,0x83E0,0x83F2,0x840D,0x8422,0x8420,0x83BD,0x8438, +0x8506,0x83FB,0x846D,0x842A,0x843C,0x855A,0x8484,0x8477, +0x846B,0x84AD,0x846E,0x8482,0x8469,0x8446,0x842C,0x846F, +0x8479,0x8435,0x84CA,0x8462,0x84B9,0x84BF,0x849F,0x84D9, +0x84CD,0x84BB,0x84DA,0x84D0,0x84C1,0x84C6,0x84D6,0x84A1, +0x8521,0x84FF,0x84F4,0x8517,0x8518,0x852C,0x851F,0x8515, +0x8514,0x84FC,0x8540,0x8563,0x8558,0x8548, +/* plane 1 ku 73 */ +0x8541,0x8602,0x854B,0x8555,0x8580,0x85A4,0x8588,0x8591, +0x858A,0x85A8,0x856D,0x8594,0x859B,0x85EA,0x8587,0x859C, +0x8577,0x857E,0x8590,0x85C9,0x85BA,0x85CF,0x85B9,0x85D0, +0x85D5,0x85DD,0x85E5,0x85DC,0x85F9,0x860A,0x8613,0x860B, +0x85FE,0x85FA,0x8606,0x8622,0x861A,0x8630,0x863F,0x864D, +0x4E55,0x8654,0x865F,0x8667,0x8671,0x8693,0x86A3,0x86A9, +0x86AA,0x868B,0x868C,0x86B6,0x86AF,0x86C4,0x86C6,0x86B0, +0x86C9,0x8823,0x86AB,0x86D4,0x86DE,0x86E9,0x86EC,0x86DF, +0x86DB,0x86EF,0x8712,0x8706,0x8708,0x8700,0x8703,0x86FB, +0x8711,0x8709,0x870D,0x86F9,0x870A,0x8734,0x873F,0x8737, +0x873B,0x8725,0x8729,0x871A,0x8760,0x875F,0x8778,0x874C, +0x874E,0x8774,0x8757,0x8768,0x876E,0x8759, +/* plane 1 ku 74 */ +0x8753,0x8763,0x876A,0x8805,0x87A2,0x879F,0x8782,0x87AF, +0x87CB,0x87BD,0x87C0,0x87D0,0x96D6,0x87AB,0x87C4,0x87B3, +0x87C7,0x87C6,0x87BB,0x87EF,0x87F2,0x87E0,0x880F,0x880D, +0x87FE,0x87F6,0x87F7,0x880E,0x87D2,0x8811,0x8816,0x8815, +0x8822,0x8821,0x8831,0x8836,0x8839,0x8827,0x883B,0x8844, +0x8842,0x8852,0x8859,0x885E,0x8862,0x886B,0x8881,0x887E, +0x889E,0x8875,0x887D,0x88B5,0x8872,0x8882,0x8897,0x8892, +0x88AE,0x8899,0x88A2,0x888D,0x88A4,0x88B0,0x88BF,0x88B1, +0x88C3,0x88C4,0x88D4,0x88D8,0x88D9,0x88DD,0x88F9,0x8902, +0x88FC,0x88F4,0x88E8,0x88F2,0x8904,0x890C,0x890A,0x8913, +0x8943,0x891E,0x8925,0x892A,0x892B,0x8941,0x8944,0x893B, +0x8936,0x8938,0x894C,0x891D,0x8960,0x895E, +/* plane 1 ku 75 */ +0x8966,0x8964,0x896D,0x896A,0x896F,0x8974,0x8977,0x897E, +0x8983,0x8988,0x898A,0x8993,0x8998,0x89A1,0x89A9,0x89A6, +0x89AC,0x89AF,0x89B2,0x89BA,0x89BD,0x89BF,0x89C0,0x89DA, +0x89DC,0x89DD,0x89E7,0x89F4,0x89F8,0x8A03,0x8A16,0x8A10, +0x8A0C,0x8A1B,0x8A1D,0x8A25,0x8A36,0x8A41,0x8A5B,0x8A52, +0x8A46,0x8A48,0x8A7C,0x8A6D,0x8A6C,0x8A62,0x8A85,0x8A82, +0x8A84,0x8AA8,0x8AA1,0x8A91,0x8AA5,0x8AA6,0x8A9A,0x8AA3, +0x8AC4,0x8ACD,0x8AC2,0x8ADA,0x8AEB,0x8AF3,0x8AE7,0x8AE4, +0x8AF1,0x8B14,0x8AE0,0x8AE2,0x8AF7,0x8ADE,0x8ADB,0x8B0C, +0x8B07,0x8B1A,0x8AE1,0x8B16,0x8B10,0x8B17,0x8B20,0x8B33, +0x97AB,0x8B26,0x8B2B,0x8B3E,0x8B28,0x8B41,0x8B4C,0x8B4F, +0x8B4E,0x8B49,0x8B56,0x8B5B,0x8B5A,0x8B6B, +/* plane 1 ku 76 */ +0x8B5F,0x8B6C,0x8B6F,0x8B74,0x8B7D,0x8B80,0x8B8C,0x8B8E, +0x8B92,0x8B93,0x8B96,0x8B99,0x8B9A,0x8C3A,0x8C41,0x8C3F, +0x8C48,0x8C4C,0x8C4E,0x8C50,0x8C55,0x8C62,0x8C6C,0x8C78, +0x8C7A,0x8C82,0x8C89,0x8C85,0x8C8A,0x8C8D,0x8C8E,0x8C94, +0x8C7C,0x8C98,0x621D,0x8CAD,0x8CAA,0x8CBD,0x8CB2,0x8CB3, +0x8CAE,0x8CB6,0x8CC8,0x8CC1,0x8CE4,0x8CE3,0x8CDA,0x8CFD, +0x8CFA,0x8CFB,0x8D04,0x8D05,0x8D0A,0x8D07,0x8D0F,0x8D0D, +0x8D10,0x9F4E,0x8D13,0x8CCD,0x8D14,0x8D16,0x8D67,0x8D6D, +0x8D71,0x8D73,0x8D81,0x8D99,0x8DC2,0x8DBE,0x8DBA,0x8DCF, +0x8DDA,0x8DD6,0x8DCC,0x8DDB,0x8DCB,0x8DEA,0x8DEB,0x8DDF, +0x8DE3,0x8DFC,0x8E08,0x8E09,0x8DFF,0x8E1D,0x8E1E,0x8E10, +0x8E1F,0x8E42,0x8E35,0x8E30,0x8E34,0x8E4A, +/* plane 1 ku 77 */ +0x8E47,0x8E49,0x8E4C,0x8E50,0x8E48,0x8E59,0x8E64,0x8E60, +0x8E2A,0x8E63,0x8E55,0x8E76,0x8E72,0x8E7C,0x8E81,0x8E87, +0x8E85,0x8E84,0x8E8B,0x8E8A,0x8E93,0x8E91,0x8E94,0x8E99, +0x8EAA,0x8EA1,0x8EAC,0x8EB0,0x8EC6,0x8EB1,0x8EBE,0x8EC5, +0x8EC8,0x8ECB,0x8EDB,0x8EE3,0x8EFC,0x8EFB,0x8EEB,0x8EFE, +0x8F0A,0x8F05,0x8F15,0x8F12,0x8F19,0x8F13,0x8F1C,0x8F1F, +0x8F1B,0x8F0C,0x8F26,0x8F33,0x8F3B,0x8F39,0x8F45,0x8F42, +0x8F3E,0x8F4C,0x8F49,0x8F46,0x8F4E,0x8F57,0x8F5C,0x8F62, +0x8F63,0x8F64,0x8F9C,0x8F9F,0x8FA3,0x8FAD,0x8FAF,0x8FB7, +0x8FDA,0x8FE5,0x8FE2,0x8FEA,0x8FEF,0x9087,0x8FF4,0x9005, +0x8FF9,0x8FFA,0x9011,0x9015,0x9021,0x900D,0x901E,0x9016, +0x900B,0x9027,0x9036,0x9035,0x9039,0x8FF8, +/* plane 1 ku 78 */ +0x904F,0x9050,0x9051,0x9052,0x900E,0x9049,0x903E,0x9056, +0x9058,0x905E,0x9068,0x906F,0x9076,0x96A8,0x9072,0x9082, +0x907D,0x9081,0x9080,0x908A,0x9089,0x908F,0x90A8,0x90AF, +0x90B1,0x90B5,0x90E2,0x90E4,0x6248,0x90DB,0x9102,0x9112, +0x9119,0x9132,0x9130,0x914A,0x9156,0x9158,0x9163,0x9165, +0x9169,0x9173,0x9172,0x918B,0x9189,0x9182,0x91A2,0x91AB, +0x91AF,0x91AA,0x91B5,0x91B4,0x91BA,0x91C0,0x91C1,0x91C9, +0x91CB,0x91D0,0x91D6,0x91DF,0x91E1,0x91DB,0x91FC,0x91F5, +0x91F6,0x921E,0x91FF,0x9214,0x922C,0x9215,0x9211,0x925E, +0x9257,0x9245,0x9249,0x9264,0x9248,0x9295,0x923F,0x924B, +0x9250,0x929C,0x9296,0x9293,0x929B,0x925A,0x92CF,0x92B9, +0x92B7,0x92E9,0x930F,0x92FA,0x9344,0x932E, +/* plane 1 ku 79 */ +0x9319,0x9322,0x931A,0x9323,0x933A,0x9335,0x933B,0x935C, +0x9360,0x937C,0x936E,0x9356,0x93B0,0x93AC,0x93AD,0x9394, +0x93B9,0x93D6,0x93D7,0x93E8,0x93E5,0x93D8,0x93C3,0x93DD, +0x93D0,0x93C8,0x93E4,0x941A,0x9414,0x9413,0x9403,0x9407, +0x9410,0x9436,0x942B,0x9435,0x9421,0x943A,0x9441,0x9452, +0x9444,0x945B,0x9460,0x9462,0x945E,0x946A,0x9229,0x9470, +0x9475,0x9477,0x947D,0x945A,0x947C,0x947E,0x9481,0x947F, +0x9582,0x9587,0x958A,0x9594,0x9596,0x9598,0x9599,0x95A0, +0x95A8,0x95A7,0x95AD,0x95BC,0x95BB,0x95B9,0x95BE,0x95CA, +0x6FF6,0x95C3,0x95CD,0x95CC,0x95D5,0x95D4,0x95D6,0x95DC, +0x95E1,0x95E5,0x95E2,0x9621,0x9628,0x962E,0x962F,0x9642, +0x964C,0x964F,0x964B,0x9677,0x965C,0x965E, +/* plane 1 ku 80 */ +0x965D,0x965F,0x9666,0x9672,0x966C,0x968D,0x9698,0x9695, +0x9697,0x96AA,0x96A7,0x96B1,0x96B2,0x96B0,0x96B4,0x96B6, +0x96B8,0x96B9,0x96CE,0x96CB,0x96C9,0x96CD,0x894D,0x96DC, +0x970D,0x96D5,0x96F9,0x9704,0x9706,0x9708,0x9713,0x970E, +0x9711,0x970F,0x9716,0x9719,0x9724,0x972A,0x9730,0x9739, +0x973D,0x973E,0x9744,0x9746,0x9748,0x9742,0x9749,0x975C, +0x9760,0x9764,0x9766,0x9768,0x52D2,0x976B,0x9771,0x9779, +0x9785,0x977C,0x9781,0x977A,0x9786,0x978B,0x978F,0x9790, +0x979C,0x97A8,0x97A6,0x97A3,0x97B3,0x97B4,0x97C3,0x97C6, +0x97C8,0x97CB,0x97DC,0x97ED,0x9F4F,0x97F2,0x7ADF,0x97F6, +0x97F5,0x980F,0x980C,0x9838,0x9824,0x9821,0x9837,0x983D, +0x9846,0x984F,0x984B,0x986B,0x986F,0x9870, +/* plane 1 ku 81 */ +0x9871,0x9874,0x9873,0x98AA,0x98AF,0x98B1,0x98B6,0x98C4, +0x98C3,0x98C6,0x98E9,0x98EB,0x9903,0x9909,0x9912,0x9914, +0x9918,0x9921,0x991D,0x991E,0x9924,0x9920,0x992C,0x992E, +0x993D,0x993E,0x9942,0x9949,0x9945,0x9950,0x994B,0x9951, +0x9952,0x994C,0x9955,0x9997,0x9998,0x99A5,0x99AD,0x99AE, +0x99BC,0x99DF,0x99DB,0x99DD,0x99D8,0x99D1,0x99ED,0x99EE, +0x99F1,0x99F2,0x99FB,0x99F8,0x9A01,0x9A0F,0x9A05,0x99E2, +0x9A19,0x9A2B,0x9A37,0x9A45,0x9A42,0x9A40,0x9A43,0x9A3E, +0x9A55,0x9A4D,0x9A5B,0x9A57,0x9A5F,0x9A62,0x9A65,0x9A64, +0x9A69,0x9A6B,0x9A6A,0x9AAD,0x9AB0,0x9ABC,0x9AC0,0x9ACF, +0x9AD1,0x9AD3,0x9AD4,0x9ADE,0x9ADF,0x9AE2,0x9AE3,0x9AE6, +0x9AEF,0x9AEB,0x9AEE,0x9AF4,0x9AF1,0x9AF7, +/* plane 1 ku 82 */ +0x9AFB,0x9B06,0x9B18,0x9B1A,0x9B1F,0x9B22,0x9B23,0x9B25, +0x9B27,0x9B28,0x9B29,0x9B2A,0x9B2E,0x9B2F,0x9B32,0x9B44, +0x9B43,0x9B4F,0x9B4D,0x9B4E,0x9B51,0x9B58,0x9B74,0x9B93, +0x9B83,0x9B91,0x9B96,0x9B97,0x9B9F,0x9BA0,0x9BA8,0x9BB4, +0x9BC0,0x9BCA,0x9BB9,0x9BC6,0x9BCF,0x9BD1,0x9BD2,0x9BE3, +0x9BE2,0x9BE4,0x9BD4,0x9BE1,0x9C3A,0x9BF2,0x9BF1,0x9BF0, +0x9C15,0x9C14,0x9C09,0x9C13,0x9C0C,0x9C06,0x9C08,0x9C12, +0x9C0A,0x9C04,0x9C2E,0x9C1B,0x9C25,0x9C24,0x9C21,0x9C30, +0x9C47,0x9C32,0x9C46,0x9C3E,0x9C5A,0x9C60,0x9C67,0x9C76, +0x9C78,0x9CE7,0x9CEC,0x9CF0,0x9D09,0x9D08,0x9CEB,0x9D03, +0x9D06,0x9D2A,0x9D26,0x9DAF,0x9D23,0x9D1F,0x9D44,0x9D15, +0x9D12,0x9D41,0x9D3F,0x9D3E,0x9D46,0x9D48, +/* plane 1 ku 83 */ +0x9D5D,0x9D5E,0x9D64,0x9D51,0x9D50,0x9D59,0x9D72,0x9D89, +0x9D87,0x9DAB,0x9D6F,0x9D7A,0x9D9A,0x9DA4,0x9DA9,0x9DB2, +0x9DC4,0x9DC1,0x9DBB,0x9DB8,0x9DBA,0x9DC6,0x9DCF,0x9DC2, +0x9DD9,0x9DD3,0x9DF8,0x9DE6,0x9DED,0x9DEF,0x9DFD,0x9E1A, +0x9E1B,0x9E1E,0x9E75,0x9E79,0x9E7D,0x9E81,0x9E88,0x9E8B, +0x9E8C,0x9E92,0x9E95,0x9E91,0x9E9D,0x9EA5,0x9EA9,0x9EB8, +0x9EAA,0x9EAD,0x9761,0x9ECC,0x9ECE,0x9ECF,0x9ED0,0x9ED4, +0x9EDC,0x9EDE,0x9EDD,0x9EE0,0x9EE5,0x9EE8,0x9EEF,0x9EF4, +0x9EF6,0x9EF7,0x9EF9,0x9EFB,0x9EFC,0x9EFD,0x9F07,0x9F08, +0x76B7,0x9F15,0x9F21,0x9F2C,0x9F3E,0x9F4A,0x9F52,0x9F54, +0x9F63,0x9F5F,0x9F60,0x9F61,0x9F66,0x9F67,0x9F6C,0x9F6A, +0x9F77,0x9F72,0x9F76,0x9F95,0x9F9C,0x9FA0, +/* plane 1 ku 84 */ +0x582F,0x69C7,0x9059,0x7464,0x51DC,0x7199,0x5653,0x5DE2, +0x5E14,0x5E18,0x5E58,0x5E5E,0x5EBE,0xF928,0x5ECB,0x5EF9, +0x5F00,0x5F02,0x5F07,0x5F1D,0x5F23,0x5F34,0x5F36,0x5F3D, +0x5F40,0x5F45,0x5F54,0x5F58,0x5F64,0x5F67,0x5F7D,0x5F89, +0x5F9C,0x5FA7,0x5FAF,0x5FB5,0x5FB7,0x5FC9,0x5FDE,0x5FE1, +0x5FE9,0x600D,0x6014,0x6018,0x6033,0x6035,0x6047,0xFA3D, +0x609D,0x609E,0x60CB,0x60D4,0x60D5,0x60DD,0x60F8,0x611C, +0x612B,0x6130,0x6137,0xFA3E,0x618D,0xFA3F,0x61BC,0x61B9, +0xFA40,0x6222,0x623E,0x6243,0x6256,0x625A,0x626F,0x6285, +0x62C4,0x62D6,0x62FC,0x630A,0x6318,0x6339,0x6343,0x6365, +0x637C,0x63E5,0x63ED,0x63F5,0x6410,0x6414,0x6422,0x6479, +0x6451,0x6460,0x646D,0x64CE,0x64BE,0x64BF, +/* plane 1 ku 85 */ +0x64C4,0x64CA,0x64D0,0x64F7,0x64FB,0x6522,0x6529,0xFA41, +0x6567,0x659D,0xFA42,0x6600,0x6609,0x6615,0x661E,0x663A, +0x6622,0x6624,0x662B,0x6630,0x6631,0x6633,0x66FB,0x6648, +0x664C,0x0000,0x6659,0x665A,0x6661,0x6665,0x6673,0x6677, +0x6678,0x668D,0xFA43,0x66A0,0x66B2,0x66BB,0x66C6,0x66C8, +0x3B22,0x66DB,0x66E8,0x66FA,0x6713,0xF929,0x6733,0x6766, +0x6747,0x6748,0x677B,0x6781,0x6793,0x6798,0x679B,0x67BB, +0x67F9,0x67C0,0x67D7,0x67FC,0x6801,0x6852,0x681D,0x682C, +0x6831,0x685B,0x6872,0x6875,0xFA44,0x68A3,0x68A5,0x68B2, +0x68C8,0x68D0,0x68E8,0x68ED,0x68F0,0x68F1,0x68FC,0x690A, +0x6949,0x0000,0x6935,0x6942,0x6957,0x6963,0x6964,0x6968, +0x6980,0xFA14,0x69A5,0x69AD,0x69CF,0x3BB6, +/* plane 1 ku 86 */ +0x3BC3,0x69E2,0x69E9,0x69EA,0x69F5,0x69F6,0x6A0F,0x6A15, +0x0000,0x6A3B,0x6A3E,0x6A45,0x6A50,0x6A56,0x6A5B,0x6A6B, +0x6A73,0x0000,0x6A89,0x6A94,0x6A9D,0x6A9E,0x6AA5,0x6AE4, +0x6AE7,0x3C0F,0xF91D,0x6B1B,0x6B1E,0x6B2C,0x6B35,0x6B46, +0x6B56,0x6B60,0x6B65,0x6B67,0x6B77,0x6B82,0x6BA9,0x6BAD, +0xF970,0x6BCF,0x6BD6,0x6BD7,0x6BFF,0x6C05,0x6C10,0x6C33, +0x6C59,0x6C5C,0x6CAA,0x6C74,0x6C76,0x6C85,0x6C86,0x6C98, +0x6C9C,0x6CFB,0x6CC6,0x6CD4,0x6CE0,0x6CEB,0x6CEE,0x0000, +0x6D04,0x6D0E,0x6D2E,0x6D31,0x6D39,0x6D3F,0x6D58,0x6D65, +0xFA45,0x6D82,0x6D87,0x6D89,0x6D94,0x6DAA,0x6DAC,0x6DBF, +0x6DC4,0x6DD6,0x6DDA,0x6DDB,0x6DDD,0x6DFC,0xFA46,0x6E34, +0x6E44,0x6E5C,0x6E5E,0x6EAB,0x6EB1,0x6EC1, +/* plane 1 ku 87 */ +0x6EC7,0x6ECE,0x6F10,0x6F1A,0xFA47,0x6F2A,0x6F2F,0x6F33, +0x6F51,0x6F59,0x6F5E,0x6F61,0x6F62,0x6F7E,0x6F88,0x6F8C, +0x6F8D,0x6F94,0x6FA0,0x6FA7,0x6FB6,0x6FBC,0x6FC7,0x6FCA, +0x6FF9,0x6FF0,0x6FF5,0x7005,0x7006,0x7028,0x704A,0x705D, +0x705E,0x704E,0x7064,0x7075,0x7085,0x70A4,0x70AB,0x70B7, +0x70D4,0x70D8,0x70E4,0x710F,0x712B,0x711E,0x7120,0x712E, +0x7130,0x7146,0x7147,0x7151,0xFA48,0x7152,0x715C,0x7160, +0x7168,0xFA15,0x7185,0x7187,0x7192,0x71C1,0x71BA,0x71C4, +0x71FE,0x7200,0x7215,0x7255,0x7256,0x3E3F,0x728D,0x729B, +0x72BE,0x72C0,0x72FB,0x0000,0x7327,0x7328,0xFA16,0x7350, +0x7366,0x737C,0x7395,0x739F,0x73A0,0x73A2,0x73A6,0x73AB, +0x73C9,0x73CF,0x73D6,0x73D9,0x73E3,0x73E9, +/* plane 1 ku 88 */ +0x7407,0x740A,0x741A,0x741B,0xFA4A,0x7426,0x7428,0x742A, +0x742B,0x742C,0x742E,0x742F,0x7430,0x7444,0x7446,0x7447, +0x744B,0x7457,0x7462,0x746B,0x746D,0x7486,0x7487,0x7489, +0x7498,0x749C,0x749F,0x74A3,0x7490,0x74A6,0x74A8,0x74A9, +0x74B5,0x74BF,0x74C8,0x74C9,0x74DA,0x74FF,0x7501,0x7517, +0x752F,0x756F,0x7579,0x7592,0x3F72,0x75CE,0x75E4,0x7600, +0x7602,0x7608,0x7615,0x7616,0x7619,0x761E,0x762D,0x7635, +0x7643,0x764B,0x7664,0x7665,0x766D,0x766F,0x7671,0x7681, +0x769B,0x769D,0x769E,0x76A6,0x76AA,0x76B6,0x76C5,0x76CC, +0x76CE,0x76D4,0x76E6,0x76F1,0x76FC,0x770A,0x7719,0x7734, +0x7736,0x7746,0x774D,0x774E,0x775C,0x775F,0x7762,0x777A, +0x7780,0x7794,0x77AA,0x77E0,0x782D,0x0000, +/* plane 1 ku 89 */ +0x7843,0x784E,0x784F,0x7851,0x7868,0x786E,0xFA4B,0x78B0, +0x0000,0x78AD,0x78E4,0x78F2,0x7900,0x78F7,0x791C,0x792E, +0x7931,0x7934,0xFA4C,0xFA4D,0x7945,0x7946,0xFA4E,0xFA4F, +0xFA50,0x795C,0xFA51,0xFA19,0xFA1A,0x7979,0xFA52,0xFA53, +0xFA1B,0x7998,0x79B1,0x79B8,0x79C8,0x79CA,0x0000,0x79D4, +0x79DE,0x79EB,0x79ED,0x7A03,0xFA54,0x7A39,0x7A5D,0x7A6D, +0xFA55,0x7A85,0x7AA0,0x0000,0x7AB3,0x7ABB,0x7ACE,0x7AEB, +0x7AFD,0x7B12,0x7B2D,0x7B3B,0x7B47,0x7B4E,0x7B60,0x7B6D, +0x7B6F,0x7B72,0x7B9E,0xFA56,0x7BD7,0x7BD9,0x7C01,0x7C31, +0x7C1E,0x7C20,0x7C33,0x7C36,0x4264,0x0000,0x7C59,0x7C6D, +0x7C79,0x7C8F,0x7C94,0x7CA0,0x7CBC,0x7CD5,0x7CD9,0x7CDD, +0x7D07,0x7D08,0x7D13,0x7D1D,0x7D23,0x7D31, +/* plane 1 ku 90 */ +0x7D41,0x7D48,0x7D53,0x7D5C,0x7D7A,0x7D83,0x7D8B,0x7DA0, +0x7DA6,0x7DC2,0x7DCC,0x7DD6,0x7DE3,0xFA57,0x7E28,0x7E08, +0x7E11,0x7E15,0xFA59,0x7E47,0x7E52,0x7E61,0x7E8A,0x7E8D, +0x7F47,0xFA5A,0x7F91,0x7F97,0x7FBF,0x7FCE,0x7FDB,0x7FDF, +0x7FEC,0x7FEE,0x7FFA,0xFA5B,0x8014,0x8026,0x8035,0x8037, +0x803C,0x80CA,0x80D7,0x80E0,0x80F3,0x8118,0x814A,0x8160, +0x8167,0x8168,0x816D,0x81BB,0x81CA,0x81CF,0x81D7,0xFA5C, +0x4453,0x445B,0x8260,0x8274,0x0000,0x828E,0x82A1,0x82A3, +0x82A4,0x82A9,0x82AE,0x82B7,0x82BE,0x82BF,0x82C6,0x82D5, +0x82FD,0x82FE,0x8300,0x8301,0x8362,0x8322,0x832D,0x833A, +0x8343,0x8347,0x8351,0x8355,0x837D,0x8386,0x8392,0x8398, +0x83A7,0x83A9,0x83BF,0x83C0,0x83C7,0x83CF, +/* plane 1 ku 91 */ +0x83D1,0x83E1,0x83EA,0x8401,0x8406,0x840A,0xFA5F,0x8448, +0x845F,0x8470,0x8473,0x8485,0x849E,0x84AF,0x84B4,0x84BA, +0x84C0,0x84C2,0x0000,0x8532,0x851E,0x8523,0x852F,0x8559, +0x8564,0xFA1F,0x85AD,0x857A,0x858C,0x858F,0x85A2,0x85B0, +0x85CB,0x85CE,0x85ED,0x8612,0x85FF,0x8604,0x8605,0x8610, +0x0000,0x8618,0x8629,0x8638,0x8657,0x865B,0xF936,0x8662, +0x459D,0x866C,0x8675,0x8698,0x86B8,0x86FA,0x86FC,0x86FD, +0x870B,0x8771,0x8787,0x8788,0x87AC,0x87AD,0x87B5,0x45EA, +0x87D6,0x87EC,0x8806,0x880A,0x8810,0x8814,0x881F,0x8898, +0x88AA,0x88CA,0x88CE,0x0000,0x88F5,0x891C,0xFA60,0x8918, +0x8919,0x891A,0x8927,0x8930,0x8932,0x8939,0x8940,0x8994, +0xFA61,0x89D4,0x89E5,0x89F6,0x8A12,0x8A15, +/* plane 1 ku 92 */ +0x8A22,0x8A37,0x8A47,0x8A4E,0x8A5D,0x8A61,0x8A75,0x8A79, +0x8AA7,0x8AD0,0x8ADF,0x8AF4,0x8AF6,0xFA22,0xFA62,0xFA63, +0x8B46,0x8B54,0x8B59,0x8B69,0x8B9D,0x8C49,0x8C68,0xFA64, +0x8CE1,0x8CF4,0x8CF8,0x8CFE,0xFA65,0x8D12,0x8D1B,0x8DAF, +0x8DCE,0x8DD1,0x8DD7,0x8E20,0x8E23,0x8E3D,0x8E70,0x8E7B, +0x0000,0x8EC0,0x4844,0x8EFA,0x8F1E,0x8F2D,0x8F36,0x8F54, +0x0000,0x8FA6,0x8FB5,0x8FE4,0x8FE8,0x8FEE,0x9008,0x902D, +0xFA67,0x9088,0x9095,0x9097,0x9099,0x909B,0x90A2,0x90B3, +0x90BE,0x90C4,0x90C5,0x90C7,0x90D7,0x90DD,0x90DE,0x90EF, +0x90F4,0xFA26,0x9114,0x9115,0x9116,0x9122,0x9123,0x9127, +0x912F,0x9131,0x9134,0x913D,0x9148,0x915B,0x9183,0x919E, +0x91AC,0x91B1,0x91BC,0x91D7,0x91FB,0x91E4, +/* plane 1 ku 93 */ +0x91E5,0x91ED,0x91F1,0x9207,0x9210,0x9238,0x9239,0x923A, +0x923C,0x9240,0x9243,0x924F,0x9278,0x9288,0x92C2,0x92CB, +0x92CC,0x92D3,0x92E0,0x92FF,0x9304,0x931F,0x9321,0x9325, +0x9348,0x9349,0x934A,0x9364,0x9365,0x936A,0x9370,0x939B, +0x93A3,0x93BA,0x93C6,0x93DE,0x93DF,0x9404,0x93FD,0x9433, +0x944A,0x9463,0x946B,0x9471,0x9472,0x958E,0x959F,0x95A6, +0x95A9,0x95AC,0x95B6,0x95BD,0x95CB,0x95D0,0x95D3,0x49B0, +0x95DA,0x95DE,0x9658,0x9684,0xF9DC,0x969D,0x96A4,0x96A5, +0x96D2,0x96DE,0xFA68,0x96E9,0x96EF,0x9733,0x973B,0x974D, +0x974E,0x974F,0x975A,0x976E,0x9773,0x9795,0x97AE,0x97BA, +0x97C1,0x97C9,0x97DE,0x97DB,0x97F4,0xFA69,0x980A,0x981E, +0x982B,0x9830,0xFA6A,0x9852,0x9853,0x9856, +/* plane 1 ku 94 */ +0x9857,0x9859,0x985A,0xF9D0,0x9865,0x986C,0x98BA,0x98C8, +0x98E7,0x9958,0x999E,0x9A02,0x9A03,0x9A24,0x9A2D,0x9A2E, +0x9A38,0x9A4A,0x9A4E,0x9A52,0x9AB6,0x9AC1,0x9AC3,0x9ACE, +0x9AD6,0x9AF9,0x9B02,0x9B08,0x9B20,0x4C17,0x9B2D,0x9B5E, +0x9B79,0x9B66,0x9B72,0x9B75,0x9B84,0x9B8A,0x9B8F,0x9B9E, +0x9BA7,0x9BC1,0x9BCE,0x9BE5,0x9BF8,0x9BFD,0x9C00,0x9C23, +0x9C41,0x9C4F,0x9C50,0x9C53,0x9C63,0x9C65,0x9C77,0x9D1D, +0x9D1E,0x9D43,0x9D47,0x9D52,0x9D63,0x9D70,0x9D7C,0x9D8A, +0x9D96,0x9DC0,0x9DAC,0x9DBC,0x9DD7,0x0000,0x9DE7,0x9E07, +0x9E15,0x9E7C,0x9E9E,0x9EA4,0x9EAC,0x9EAF,0x9EB4,0x9EB5, +0x9EC3,0x9ED1,0x9F10,0x9F39,0x9F57,0x9F90,0x9F94,0x9F97, +0x9FA2,0x59F8,0x5C5B,0x5E77,0x7626,0x7E6B, +/* plane 2 ku 1 */ +0x0000,0x4E02,0x4E0F,0x4E12,0x4E29,0x4E2B,0x4E2E,0x4E40, +0x4E47,0x4E48,0x0000,0x4E51,0x3406,0x0000,0x4E5A,0x4E69, +0x4E9D,0x342C,0x342E,0x4EB9,0x4EBB,0x0000,0x4EBC,0x4EC3, +0x4EC8,0x4ED0,0x4EEB,0x4EDA,0x4EF1,0x4EF5,0x4F00,0x4F16, +0x4F64,0x4F37,0x4F3E,0x4F54,0x4F58,0x0000,0x4F77,0x4F78, +0x4F7A,0x4F7D,0x4F82,0x4F85,0x4F92,0x4F9A,0x4FE6,0x4FB2, +0x4FBE,0x4FC5,0x4FCB,0x4FCF,0x4FD2,0x346A,0x4FF2,0x5000, +0x5010,0x5013,0x501C,0x501E,0x5022,0x3468,0x5042,0x5046, +0x504E,0x5053,0x5057,0x5063,0x5066,0x506A,0x5070,0x50A3, +0x5088,0x5092,0x5093,0x5095,0x5096,0x509C,0x50AA,0x0000, +0x50B1,0x50BA,0x50BB,0x50C4,0x50C7,0x50F3,0x0000,0x50CE, +0x0000,0x50D4,0x50D9,0x50E1,0x50E9,0x3492, +/* plane 2 ku 8 */ +0x5B96,0x5BAC,0x3761,0x5BC0,0x3762,0x5BCE,0x5BD6,0x376C, +0x376B,0x5BF1,0x5BFD,0x3775,0x5C03,0x5C29,0x5C30,0x0000, +0x5C5F,0x5C63,0x5C67,0x5C68,0x5C69,0x5C70,0x0000,0x0000, +0x5C7C,0x0000,0x0000,0x5C88,0x5C8A,0x37C1,0x0000,0x0000, +0x5CA0,0x5CA2,0x5CA6,0x5CA7,0x0000,0x5CAD,0x5CB5,0x0000, +0x5CC9,0x0000,0x0000,0x5D06,0x5D10,0x5D2B,0x5D1D,0x5D20, +0x5D24,0x5D26,0x5D31,0x5D39,0x5D42,0x37E8,0x5D61,0x5D6A, +0x37F4,0x5D70,0x0000,0x37FD,0x5D88,0x3800,0x5D92,0x5D94, +0x5D97,0x5D99,0x5DB0,0x5DB2,0x5DB4,0x0000,0x5DB9,0x5DD1, +0x5DD7,0x5DD8,0x5DE0,0x0000,0x5DE4,0x5DE9,0x382F,0x5E00, +0x3836,0x5E12,0x5E15,0x3840,0x5E1F,0x5E2E,0x5E3E,0x5E49, +0x385C,0x5E56,0x3861,0x5E6B,0x5E6C,0x5E6D, +/* plane 2 ku 3 */ +0x5108,0x0000,0x5117,0x511B,0x0000,0x5160,0x0000,0x5173, +0x5183,0x518B,0x34BC,0x5198,0x51A3,0x51AD,0x34C7,0x51BC, +0x0000,0x0000,0x51F3,0x51F4,0x5202,0x5212,0x5216,0x0000, +0x5255,0x525C,0x526C,0x5277,0x5284,0x5282,0x0000,0x5298, +0x0000,0x52A4,0x52A6,0x52AF,0x52BA,0x52BB,0x52CA,0x351F, +0x52D1,0x0000,0x52F7,0x530A,0x530B,0x5324,0x5335,0x533E, +0x5342,0x0000,0x0000,0x5367,0x536C,0x537A,0x53A4,0x53B4, +0x0000,0x53B7,0x53C0,0x0000,0x355D,0x355E,0x53D5,0x53DA, +0x3563,0x53F4,0x53F5,0x5455,0x5424,0x5428,0x356E,0x5443, +0x5462,0x5466,0x546C,0x548A,0x548D,0x5495,0x54A0,0x54A6, +0x54AD,0x54AE,0x54B7,0x54BA,0x54BF,0x54C3,0x0000,0x54EC, +0x54EF,0x54F1,0x54F3,0x5500,0x5501,0x5509, +/* plane 2 ku 4 */ +0x553C,0x5541,0x35A6,0x5547,0x554A,0x35A8,0x5560,0x5561, +0x5564,0x0000,0x557D,0x5582,0x5588,0x5591,0x35C5,0x55D2, +0x0000,0x0000,0x55BF,0x55C9,0x55CC,0x55D1,0x55DD,0x35DA, +0x55E2,0x0000,0x55E9,0x5628,0x0000,0x5607,0x5610,0x5630, +0x5637,0x35F4,0x563D,0x563F,0x5640,0x5647,0x565E,0x5660, +0x566D,0x3605,0x5688,0x568C,0x5695,0x569A,0x569D,0x56A8, +0x56AD,0x56B2,0x56C5,0x56CD,0x56DF,0x56E8,0x56F6,0x56F7, +0x0000,0x5715,0x5723,0x0000,0x5729,0x0000,0x5745,0x5746, +0x574C,0x574D,0x0000,0x5768,0x576F,0x5773,0x5774,0x5775, +0x577B,0x0000,0x0000,0x57AC,0x579A,0x579D,0x579E,0x57A8, +0x57D7,0x0000,0x57CC,0x0000,0x0000,0x57DE,0x57E6,0x57F0, +0x364A,0x57F8,0x57FB,0x57FD,0x5804,0x581E, +/* plane 2 ku 5 */ +0x5820,0x5827,0x5832,0x5839,0x0000,0x5849,0x584C,0x5867, +0x588A,0x588B,0x588D,0x588F,0x5890,0x5894,0x589D,0x58AA, +0x58B1,0x0000,0x58C3,0x58CD,0x58E2,0x58F3,0x58F4,0x5905, +0x5906,0x590B,0x590D,0x5914,0x5924,0x0000,0x3691,0x593D, +0x3699,0x5946,0x3696,0x0000,0x595B,0x595F,0x0000,0x5975, +0x5976,0x597C,0x599F,0x59AE,0x59BC,0x59C8,0x59CD,0x59DE, +0x59E3,0x59E4,0x59E7,0x59EE,0x0000,0x0000,0x36CF,0x5A0C, +0x5A0D,0x5A17,0x5A27,0x5A2D,0x5A55,0x5A65,0x5A7A,0x5A8B, +0x5A9C,0x5A9F,0x5AA0,0x5AA2,0x5AB1,0x5AB3,0x5AB5,0x5ABA, +0x5ABF,0x5ADA,0x5ADC,0x5AE0,0x5AE5,0x5AF0,0x5AEE,0x5AF5, +0x5B00,0x5B08,0x5B17,0x5B34,0x5B2D,0x5B4C,0x5B52,0x5B68, +0x5B6F,0x5B7C,0x5B7F,0x5B81,0x5B84,0x0000, +/* plane 2 ku 12 */ +0x5E6E,0x0000,0x5EA5,0x5EAA,0x5EAC,0x5EB9,0x5EBF,0x5EC6, +0x5ED2,0x5ED9,0x0000,0x5EFD,0x5F08,0x5F0E,0x5F1C,0x0000, +0x5F1E,0x5F47,0x5F63,0x5F72,0x5F7E,0x5F8F,0x5FA2,0x5FA4, +0x5FB8,0x5FC4,0x38FA,0x5FC7,0x5FCB,0x5FD2,0x5FD3,0x5FD4, +0x5FE2,0x5FEE,0x5FEF,0x5FF3,0x5FFC,0x3917,0x6017,0x6022, +0x6024,0x391A,0x604C,0x607F,0x608A,0x6095,0x60A8,0x0000, +0x60B0,0x60B1,0x60BE,0x60C8,0x60D9,0x60DB,0x60EE,0x60F2, +0x60F5,0x6110,0x6112,0x6113,0x6119,0x611E,0x613A,0x396F, +0x6141,0x6146,0x6160,0x617C,0x0000,0x6192,0x6193,0x6197, +0x6198,0x61A5,0x61A8,0x61AD,0x0000,0x61D5,0x61DD,0x61DF, +0x61F5,0x0000,0x6215,0x6223,0x6229,0x6246,0x624C,0x6251, +0x6252,0x6261,0x6264,0x627B,0x626D,0x6273, +/* plane 2 ku 13 */ +0x6299,0x62A6,0x62D5,0x0000,0x62FD,0x6303,0x630D,0x6310, +0x0000,0x0000,0x6332,0x6335,0x633B,0x633C,0x6341,0x6344, +0x634E,0x0000,0x6359,0x0000,0x0000,0x636C,0x6384,0x6399, +0x0000,0x6394,0x63BD,0x63F7,0x63D4,0x63D5,0x63DC,0x63E0, +0x63EB,0x63EC,0x63F2,0x6409,0x641E,0x6425,0x6429,0x642F, +0x645A,0x645B,0x645D,0x6473,0x647D,0x6487,0x6491,0x649D, +0x649F,0x64CB,0x64CC,0x64D5,0x64D7,0x0000,0x64E4,0x64E5, +0x64FF,0x6504,0x3A6E,0x650F,0x6514,0x6516,0x3A73,0x651E, +0x6532,0x6544,0x6554,0x656B,0x657A,0x6581,0x6584,0x6585, +0x658A,0x65B2,0x65B5,0x65B8,0x65BF,0x65C2,0x65C9,0x65D4, +0x3AD6,0x65F2,0x65F9,0x65FC,0x6604,0x6608,0x6621,0x662A, +0x6645,0x6651,0x664E,0x3AEA,0x0000,0x6657, +/* plane 2 ku 14 */ +0x665B,0x6663,0x0000,0x0000,0x666A,0x666B,0x666C,0x666D, +0x667B,0x6680,0x6690,0x6692,0x6699,0x3B0E,0x66AD,0x66B1, +0x66B5,0x3B1A,0x66BF,0x3B1C,0x66EC,0x3AD7,0x6701,0x6705, +0x6712,0x0000,0x6719,0x0000,0x0000,0x674C,0x674D,0x6754, +0x675D,0x0000,0x0000,0x0000,0x6774,0x6776,0x0000,0x6792, +0x0000,0x8363,0x6810,0x67B0,0x67B2,0x67C3,0x67C8,0x67D2, +0x67D9,0x67DB,0x67F0,0x67F7,0x0000,0x0000,0x0000,0x6818, +0x681F,0x682D,0x0000,0x6833,0x683B,0x683E,0x6844,0x6845, +0x6849,0x684C,0x6855,0x6857,0x3B77,0x686B,0x686E,0x687A, +0x687C,0x6882,0x6890,0x6896,0x3B6D,0x6898,0x6899,0x689A, +0x689C,0x68AA,0x68AB,0x68B4,0x68BB,0x68FB,0x0000,0x0000, +0xFA13,0x68C3,0x68C5,0x68CC,0x68CF,0x68D6, +/* plane 2 ku 15 */ +0x68D9,0x68E4,0x68E5,0x68EC,0x68F7,0x6903,0x6907,0x3B87, +0x3B88,0x0000,0x693B,0x3B8D,0x6946,0x6969,0x696C,0x6972, +0x697A,0x697F,0x6992,0x3BA4,0x6996,0x6998,0x69A6,0x69B0, +0x69B7,0x69BA,0x69BC,0x69C0,0x69D1,0x69D6,0x0000,0x0000, +0x6A30,0x0000,0x0000,0x69E3,0x69EE,0x69EF,0x69F3,0x3BCD, +0x69F4,0x69FE,0x6A11,0x6A1A,0x6A1D,0x0000,0x6A32,0x6A33, +0x6A34,0x6A3F,0x6A46,0x6A49,0x6A7A,0x6A4E,0x6A52,0x6A64, +0x0000,0x6A7E,0x6A83,0x6A8B,0x3BF0,0x6A91,0x6A9F,0x6AA1, +0x0000,0x6AAB,0x6ABD,0x6AC6,0x6AD4,0x6AD0,0x6ADC,0x6ADD, +0x0000,0x0000,0x6AEC,0x6AF1,0x6AF2,0x6AF3,0x6AFD,0x0000, +0x6B0B,0x6B0F,0x6B10,0x6B11,0x0000,0x6B17,0x3C26,0x6B2F, +0x6B4A,0x6B58,0x6B6C,0x6B75,0x6B7A,0x6B81, +/* plane 2 ku 78 */ +0x6B9B,0x6BAE,0x0000,0x6BBD,0x6BBE,0x6BC7,0x6BC8,0x6BC9, +0x6BDA,0x6BE6,0x6BE7,0x6BEE,0x6BF1,0x6C02,0x6C0A,0x6C0E, +0x6C35,0x6C36,0x6C3A,0x0000,0x6C3F,0x6C4D,0x6C5B,0x6C6D, +0x6C84,0x6C89,0x3CC3,0x6C94,0x6C95,0x6C97,0x6CAD,0x6CC2, +0x6CD0,0x3CD2,0x6CD6,0x6CDA,0x6CDC,0x6CE9,0x6CEC,0x6CED, +0x0000,0x6D00,0x6D0A,0x6D24,0x6D26,0x6D27,0x6C67,0x6D2F, +0x6D3C,0x6D5B,0x6D5E,0x6D60,0x6D70,0x6D80,0x6D81,0x6D8A, +0x6D8D,0x6D91,0x6D98,0x0000,0x6E17,0x0000,0x0000,0x0000, +0x6DAB,0x6DAE,0x6DB4,0x6DC2,0x6D34,0x6DC8,0x6DCE,0x6DCF, +0x6DD0,0x6DDF,0x6DE9,0x6DF6,0x6E36,0x6E1E,0x6E22,0x6E27, +0x3D11,0x6E32,0x6E3C,0x6E48,0x6E49,0x6E4B,0x6E4C,0x6E4F, +0x6E51,0x6E53,0x6E54,0x6E57,0x6E63,0x3D1E, +/* plane 2 ku 79 */ +0x6E93,0x6EA7,0x6EB4,0x6EBF,0x6EC3,0x6ECA,0x6ED9,0x6F35, +0x6EEB,0x6EF9,0x6EFB,0x6F0A,0x6F0C,0x6F18,0x6F25,0x6F36, +0x6F3C,0x0000,0x6F52,0x6F57,0x6F5A,0x6F60,0x6F68,0x6F98, +0x6F7D,0x6F90,0x6F96,0x6FBE,0x6F9F,0x6FA5,0x6FAF,0x3D64, +0x6FB5,0x6FC8,0x6FC9,0x6FDA,0x6FDE,0x6FE9,0x0000,0x6FFC, +0x7000,0x7007,0x700A,0x7023,0x0000,0x7039,0x703A,0x703C, +0x7043,0x7047,0x704B,0x3D9A,0x7054,0x7065,0x7069,0x706C, +0x706E,0x7076,0x707E,0x7081,0x7086,0x7095,0x7097,0x70BB, +0x0000,0x709F,0x70B1,0x0000,0x70EC,0x70CA,0x70D1,0x70D3, +0x70DC,0x7103,0x7104,0x7106,0x7107,0x7108,0x710C,0x3DC0, +0x712F,0x7131,0x7150,0x714A,0x7153,0x715E,0x3DD4,0x7196, +0x7180,0x719B,0x71A0,0x71A2,0x71AE,0x71AF, +/* plane 2 ku 80 */ +0x71B3,0x0000,0x71CB,0x71D3,0x71D9,0x71DC,0x7207,0x3E05, +0xFA49,0x722B,0x7234,0x7238,0x7239,0x4E2C,0x7242,0x7253, +0x7257,0x7263,0x0000,0x726E,0x726F,0x7278,0x727F,0x728E, +0x0000,0x72AD,0x72AE,0x72B0,0x72B1,0x72C1,0x3E60,0x72CC, +0x3E66,0x3E68,0x72F3,0x72FA,0x7307,0x7312,0x7318,0x7319, +0x3E83,0x7339,0x732C,0x7331,0x7333,0x733D,0x7352,0x3E94, +0x736B,0x736C,0x0000,0x736E,0x736F,0x7371,0x7377,0x7381, +0x7385,0x738A,0x7394,0x7398,0x739C,0x739E,0x73A5,0x73A8, +0x73B5,0x73B7,0x73B9,0x73BC,0x73BF,0x73C5,0x73CB,0x73E1, +0x73E7,0x73F9,0x7413,0x73FA,0x7401,0x7424,0x7431,0x7439, +0x7453,0x7440,0x7443,0x744D,0x7452,0x745D,0x7471,0x7481, +0x7485,0x7488,0x0000,0x7492,0x7497,0x7499, +/* plane 2 ku 81 */ +0x74A0,0x74A1,0x74A5,0x74AA,0x74AB,0x74B9,0x74BB,0x74BA, +0x74D6,0x74D8,0x74DE,0x74EF,0x74EB,0x0000,0x74FA,0x0000, +0x7520,0x7524,0x752A,0x3F57,0x0000,0x753D,0x753E,0x7540, +0x7548,0x754E,0x7550,0x7552,0x756C,0x7572,0x7571,0x757A, +0x757D,0x757E,0x7581,0x0000,0x758C,0x3F75,0x75A2,0x3F77, +0x75B0,0x75B7,0x75BF,0x75C0,0x75C6,0x75CF,0x75D3,0x75DD, +0x75DF,0x75E0,0x75E7,0x75EC,0x75EE,0x75F1,0x75F9,0x7603, +0x7618,0x7607,0x760F,0x3FAE,0x0000,0x7613,0x761B,0x761C, +0x0000,0x7625,0x7628,0x763C,0x7633,0x0000,0x3FC9,0x7641, +0x0000,0x7649,0x7655,0x3FD7,0x766E,0x7695,0x769C,0x76A1, +0x76A0,0x76A7,0x76A8,0x76AF,0x0000,0x76C9,0x0000,0x76E8, +0x76EC,0x0000,0x7717,0x771A,0x772D,0x7735, +/* plane 2 ku 82 */ +0x0000,0x4039,0x0000,0x0000,0x7758,0x7760,0x776A,0x0000, +0x7772,0x777C,0x777D,0x0000,0x4058,0x779A,0x779F,0x77A2, +0x77A4,0x77A9,0x77DE,0x77DF,0x77E4,0x77E6,0x77EA,0x77EC, +0x4093,0x77F0,0x77F4,0x77FB,0x0000,0x7805,0x7806,0x7809, +0x780D,0x7819,0x7821,0x782C,0x7847,0x7864,0x786A,0x0000, +0x788A,0x7894,0x78A4,0x789D,0x789E,0x789F,0x78BB,0x78C8, +0x78CC,0x78CE,0x78D5,0x78E0,0x78E1,0x78E6,0x78F9,0x78FA, +0x78FB,0x78FE,0x0000,0x7910,0x791B,0x7930,0x7925,0x793B, +0x794A,0x7958,0x795B,0x4105,0x7967,0x7972,0x7994,0x7995, +0x7996,0x799B,0x79A1,0x79A9,0x79B4,0x79BB,0x79C2,0x79C7, +0x79CC,0x79CD,0x79D6,0x4148,0x0000,0x0000,0x414F,0x7A0A, +0x7A11,0x7A15,0x7A1B,0x7A1E,0x4163,0x7A2D, +/* plane 2 ku 83 */ +0x7A38,0x7A47,0x7A4C,0x7A56,0x7A59,0x7A5C,0x7A5F,0x7A60, +0x7A67,0x7A6A,0x7A75,0x7A78,0x7A82,0x7A8A,0x7A90,0x7AA3, +0x7AAC,0x0000,0x41B4,0x7AB9,0x7ABC,0x7ABE,0x41BF,0x7ACC, +0x7AD1,0x7AE7,0x7AE8,0x7AF4,0x0000,0x0000,0x7B07,0x0000, +0x7B3D,0x7B27,0x7B2A,0x7B2E,0x7B2F,0x7B31,0x41E6,0x41F3, +0x7B7F,0x7B41,0x41EE,0x7B55,0x7B79,0x7B64,0x7B66,0x7B69, +0x7B73,0x0000,0x4207,0x7B90,0x7B91,0x7B9B,0x420E,0x7BAF, +0x7BB5,0x7BBC,0x7BC5,0x7BCA,0x0000,0x0000,0x7BD4,0x7BD6, +0x7BDA,0x7BEA,0x7BF0,0x7C03,0x7C0B,0x7C0E,0x7C0F,0x7C26, +0x7C45,0x7C4A,0x7C51,0x7C57,0x7C5E,0x7C61,0x7C69,0x7C6E, +0x7C6F,0x7C70,0x0000,0x0000,0x0000,0x7CA6,0x0000,0x7CB6, +0x7CB7,0x7CBF,0x0000,0x7CC4,0x0000,0x7CC8, +/* plane 2 ku 84 */ +0x7CCD,0x0000,0x7CD7,0x0000,0x7CE6,0x7CEB,0x0000,0x7CF5, +0x7D03,0x7D09,0x42C6,0x7D12,0x7D1E,0x0000,0x0000,0x7D3D, +0x7D3E,0x7D40,0x7D47,0x0000,0x0000,0x42D6,0x7D59,0x7D5A, +0x7D6A,0x7D70,0x42DD,0x7D7F,0x0000,0x7D86,0x7D88,0x7D8C, +0x7D97,0x0000,0x7D9D,0x7DA7,0x7DAA,0x7DB6,0x7DB7,0x7DC0, +0x7DD7,0x7DD9,0x7DE6,0x7DF1,0x7DF9,0x4302,0x0000,0xFA58, +0x7E10,0x7E17,0x7E1D,0x7E20,0x7E27,0x7E2C,0x7E45,0x7E73, +0x7E75,0x7E7E,0x7E86,0x7E87,0x432B,0x7E91,0x7E98,0x7E9A, +0x4343,0x7F3C,0x7F3B,0x7F3E,0x7F43,0x7F44,0x7F4F,0x34C1, +0x0000,0x7F52,0x0000,0x7F61,0x7F63,0x7F64,0x7F6D,0x7F7D, +0x7F7E,0x0000,0x7F90,0x517B,0x0000,0x7F96,0x7F9C,0x7FAD, +0x0000,0x7FC3,0x7FCF,0x7FE3,0x7FE5,0x7FEF, +/* plane 2 ku 85 */ +0x7FF2,0x8002,0x800A,0x8008,0x800E,0x8011,0x8016,0x8024, +0x802C,0x8030,0x8043,0x8066,0x8071,0x8075,0x807B,0x8099, +0x809C,0x80A4,0x80A7,0x80B8,0x0000,0x80C5,0x80D5,0x80D8, +0x80E6,0x0000,0x810D,0x80F5,0x80FB,0x43EE,0x8135,0x8116, +0x811E,0x43F0,0x8124,0x8127,0x812C,0x0000,0x813D,0x4408, +0x8169,0x4417,0x8181,0x441C,0x8184,0x8185,0x4422,0x8198, +0x81B2,0x81C1,0x81C3,0x81D6,0x81DB,0x0000,0x81E4,0x0000, +0x81EC,0x0000,0x81FD,0x81FF,0x0000,0x8204,0x0000,0x8219, +0x8221,0x8222,0x0000,0x8232,0x8234,0x823C,0x8246,0x8249, +0x8245,0x0000,0x824B,0x4476,0x824F,0x447A,0x8257,0x0000, +0x825C,0x8263,0x0000,0xFA5D,0xFA5E,0x8279,0x4491,0x827D, +0x827F,0x8283,0x828A,0x8293,0x82A7,0x82A8, +/* plane 2 ku 86 */ +0x82B2,0x82B4,0x82BA,0x82BC,0x82E2,0x82E8,0x82F7,0x8307, +0x8308,0x830C,0x8354,0x831B,0x831D,0x8330,0x833C,0x8344, +0x8357,0x44BE,0x837F,0x44D4,0x44B3,0x838D,0x8394,0x8395, +0x839B,0x839D,0x83C9,0x83D0,0x83D4,0x83DD,0x83E5,0x83F9, +0x840F,0x8411,0x8415,0x0000,0x8417,0x8439,0x844A,0x844F, +0x8451,0x8452,0x8459,0x845A,0x845C,0x0000,0x8465,0x8476, +0x8478,0x847C,0x8481,0x450D,0x84DC,0x8497,0x84A6,0x84BE, +0x4508,0x84CE,0x84CF,0x84D3,0x0000,0x84E7,0x84EA,0x84EF, +0x84F0,0x84F1,0x84FA,0x84FD,0x850C,0x851B,0x8524,0x8525, +0x852B,0x8534,0x854F,0x856F,0x4525,0x4543,0x853E,0x8551, +0x8553,0x855E,0x8561,0x8562,0x0000,0x857B,0x857D,0x857F, +0x8581,0x8586,0x8593,0x859D,0x859F,0x0000, +/* plane 2 ku 87 */ +0x0000,0x0000,0x85B7,0x85BC,0x85C7,0x85CA,0x85D8,0x85D9, +0x85DF,0x85E1,0x85E6,0x85F6,0x8600,0x8611,0x861E,0x8621, +0x8624,0x8627,0x0000,0x8639,0x863C,0x0000,0x8640,0xFA20, +0x8653,0x8656,0x866F,0x8677,0x867A,0x8687,0x8689,0x868D, +0x8691,0x869C,0x869D,0x86A8,0xFA21,0x86B1,0x86B3,0x86C1, +0x86C3,0x86D1,0x86D5,0x86D7,0x86E3,0x86E6,0x45B8,0x8705, +0x8707,0x870E,0x8710,0x8713,0x8719,0x871F,0x8721,0x8723, +0x8731,0x873A,0x873E,0x8740,0x8743,0x8751,0x8758,0x8764, +0x8765,0x8772,0x877C,0x0000,0x0000,0x87A7,0x8789,0x878B, +0x8793,0x87A0,0x0000,0x45E5,0x87BE,0x0000,0x87C1,0x87CE, +0x87F5,0x87DF,0x0000,0x87E3,0x87E5,0x87E6,0x87EA,0x87EB, +0x87ED,0x8801,0x8803,0x880B,0x8813,0x8828, +/* plane 2 ku 88 */ +0x882E,0x8832,0x883C,0x460F,0x884A,0x8858,0x885F,0x8864, +0x0000,0x0000,0x8869,0x0000,0x886F,0x88A0,0x88BC,0x88BD, +0x88BE,0x88C0,0x88D2,0x0000,0x88D1,0x88D3,0x88DB,0x88F0, +0x88F1,0x4641,0x8901,0x0000,0x8937,0x0000,0x8942,0x8945, +0x8949,0x0000,0x4665,0x8962,0x8980,0x8989,0x8990,0x899F, +0x89B0,0x89B7,0x89D6,0x89D8,0x89EB,0x46A1,0x89F1,0x89F3, +0x89FD,0x89FF,0x46AF,0x8A11,0x8A14,0x0000,0x8A21,0x8A35, +0x8A3E,0x8A45,0x8A4D,0x8A58,0x8AAE,0x8A90,0x8AB7,0x8ABE, +0x8AD7,0x8AFC,0x0000,0x8B0A,0x8B05,0x8B0D,0x8B1C,0x8B1F, +0x8B2D,0x8B43,0x470C,0x8B51,0x8B5E,0x8B76,0x8B7F,0x8B81, +0x8B8B,0x8B94,0x8B95,0x8B9C,0x8B9E,0x8C39,0x0000,0x8C3D, +0x0000,0x0000,0x8C45,0x8C47,0x8C4F,0x8C54, +/* plane 2 ku 89 */ +0x8C57,0x8C69,0x8C6D,0x8C73,0x0000,0x8C93,0x8C92,0x8C99, +0x4764,0x8C9B,0x8CA4,0x8CD6,0x8CD5,0x8CD9,0x0000,0x8CF0, +0x8CF1,0x0000,0x8D09,0x8D0E,0x8D6C,0x8D84,0x8D95,0x8DA6, +0x0000,0x8DC6,0x8DC8,0x8DD9,0x8DEC,0x8E0C,0x47FD,0x8DFD, +0x8E06,0x0000,0x8E14,0x8E16,0x8E21,0x8E22,0x8E27,0x0000, +0x4816,0x8E36,0x8E39,0x8E4B,0x8E54,0x8E62,0x8E6C,0x8E6D, +0x8E6F,0x8E98,0x8E9E,0x8EAE,0x8EB3,0x8EB5,0x8EB6,0x8EBB, +0x0000,0x8ED1,0x8ED4,0x484E,0x8EF9,0x0000,0x8F00,0x8F08, +0x8F17,0x8F2B,0x8F40,0x8F4A,0x8F58,0x0000,0x8FA4,0x8FB4, +0xFA66,0x8FB6,0x0000,0x8FC1,0x8FC6,0xFA24,0x8FCA,0x8FCD, +0x8FD3,0x8FD5,0x8FE0,0x8FF1,0x8FF5,0x8FFB,0x9002,0x900C, +0x9037,0x0000,0x9043,0x9044,0x905D,0x0000, +/* plane 2 ku 90 */ +0x0000,0x9085,0x908C,0x9090,0x961D,0x90A1,0x48B5,0x90B0, +0x90B6,0x90C3,0x90C8,0x0000,0x90DC,0x90DF,0x0000,0x90F6, +0x90F2,0x9100,0x90EB,0x90FE,0x90FF,0x9104,0x9106,0x9118, +0x911C,0x911E,0x9137,0x9139,0x913A,0x9146,0x9147,0x9157, +0x9159,0x9161,0x9164,0x9174,0x9179,0x9185,0x918E,0x91A8, +0x91AE,0x91B3,0x91B6,0x91C3,0x91C4,0x91DA,0x0000,0x0000, +0x91EC,0x91EE,0x9201,0x920A,0x9216,0x9217,0x0000,0x9233, +0x9242,0x9247,0x924A,0x924E,0x9251,0x9256,0x9259,0x9260, +0x9261,0x9265,0x9267,0x9268,0x0000,0x0000,0x927C,0x927D, +0x927F,0x9289,0x928D,0x9297,0x9299,0x929F,0x92A7,0x92AB, +0x0000,0x0000,0x92B2,0x92BF,0x92C0,0x92C6,0x92CE,0x92D0, +0x92D7,0x92D9,0x92E5,0x92E7,0x9311,0x0000, +/* plane 2 ku 91 */ +0x0000,0x92F7,0x92F9,0x92FB,0x9302,0x930D,0x9315,0x931D, +0x931E,0x9327,0x9329,0x0000,0x0000,0x9347,0x9351,0x9357, +0x935A,0x936B,0x9371,0x9373,0x93A1,0x0000,0x0000,0x9388, +0x938B,0x938F,0x939E,0x93F5,0x0000,0x0000,0x93F1,0x93C1, +0x93C7,0x93DC,0x93E2,0x93E7,0x9409,0x940F,0x9416,0x9417, +0x93FB,0x9432,0x9434,0x943B,0x9445,0x0000,0x0000,0x946D, +0x946F,0x9578,0x9579,0x9586,0x958C,0x958D,0x0000,0x95AB, +0x95B4,0x0000,0x95C8,0x0000,0x0000,0x962C,0x9633,0x9634, +0x0000,0x963C,0x9641,0x9661,0x0000,0x9682,0x0000,0x969A, +0x0000,0x49E7,0x96A9,0x96AF,0x96B3,0x96BA,0x96BD,0x49FA, +0x0000,0x96D8,0x96DA,0x96DD,0x4A04,0x9714,0x9723,0x4A29, +0x9736,0x9741,0x9747,0x9755,0x9757,0x975B, +/* plane 2 ku 92 */ +0x976A,0x0000,0x0000,0x9796,0x979A,0x979E,0x97A2,0x97B1, +0x97B2,0x97BE,0x97CC,0x97D1,0x97D4,0x97D8,0x97D9,0x97E1, +0x97F1,0x9804,0x980D,0x980E,0x9814,0x9816,0x4ABC,0x0000, +0x9823,0x9832,0x9833,0x9825,0x9847,0x9866,0x98AB,0x98AD, +0x98B0,0x0000,0x98B7,0x98B8,0x98BB,0x98BC,0x98BF,0x98C2, +0x98C7,0x98CB,0x98E0,0x0000,0x98E1,0x98E3,0x98E5,0x98EA, +0x98F0,0x98F1,0x98F3,0x9908,0x4B3B,0x0000,0x9916,0x9917, +0x0000,0x991A,0x991B,0x991C,0x0000,0x9931,0x9932,0x9933, +0x993A,0x993B,0x993C,0x9940,0x9941,0x9946,0x994D,0x994E, +0x995C,0x995F,0x9960,0x99A3,0x99A6,0x99B9,0x99BD,0x99BF, +0x99C3,0x99C9,0x99D4,0x99D9,0x99DE,0x0000,0x99F0,0x99F9, +0x99FC,0x9A0A,0x9A11,0x9A16,0x9A1A,0x9A20, +/* plane 2 ku 93 */ +0x9A31,0x9A36,0x9A44,0x9A4C,0x9A58,0x4BC2,0x9AAF,0x4BCA, +0x9AB7,0x4BD2,0x9AB9,0x0000,0x9AC6,0x9AD0,0x9AD2,0x9AD5, +0x4BE8,0x9ADC,0x9AE0,0x9AE5,0x9AE9,0x9B03,0x9B0C,0x9B10, +0x9B12,0x9B16,0x9B1C,0x9B2B,0x9B33,0x9B3D,0x4C20,0x9B4B, +0x9B63,0x9B65,0x9B6B,0x9B6C,0x9B73,0x9B76,0x9B77,0x9BA6, +0x9BAC,0x9BB1,0x0000,0x0000,0x9BB2,0x9BB8,0x9BBE,0x9BC7, +0x9BF3,0x9BD8,0x9BDD,0x9BE7,0x9BEA,0x9BEB,0x9BEF,0x9BEE, +0x0000,0x9BFA,0x0000,0x9BF7,0x0000,0x9C16,0x9C18,0x9C19, +0x9C1A,0x9C1D,0x9C22,0x9C27,0x9C29,0x9C2A,0x0000,0x9C31, +0x9C36,0x9C37,0x9C45,0x9C5C,0x0000,0x9C49,0x9C4A,0x0000, +0x9C54,0x9C58,0x9C5B,0x9C5D,0x9C5F,0x9C69,0x9C6A,0x9C6B, +0x9C6D,0x9C6E,0x9C70,0x9C72,0x9C75,0x9C7A, +/* plane 2 ku 94 */ +0x9CE6,0x9CF2,0x9D0B,0x9D02,0x0000,0x9D11,0x9D17,0x9D18, +0x0000,0x4CC4,0x0000,0x9D32,0x4CD1,0x9D42,0x9D4A,0x9D5F, +0x9D62,0x0000,0x9D69,0x9D6B,0x0000,0x9D73,0x9D76,0x9D77, +0x9D7E,0x9D84,0x9D8D,0x9D99,0x9DA1,0x9DBF,0x9DB5,0x9DB9, +0x9DBD,0x9DC3,0x9DC7,0x9DC9,0x9DD6,0x9DDA,0x9DDF,0x9DE0, +0x9DE3,0x9DF4,0x4D07,0x9E0A,0x9E02,0x9E0D,0x9E19,0x9E1C, +0x9E1D,0x9E7B,0x0000,0x9E80,0x9E85,0x9E9B,0x9EA8,0x0000, +0x9EBD,0x0000,0x9EDF,0x9EE7,0x9EEE,0x9EFF,0x9F02,0x4D77, +0x9F03,0x9F17,0x9F19,0x9F2F,0x9F37,0x9F3A,0x9F3D,0x9F41, +0x9F45,0x9F46,0x9F53,0x9F55,0x9F58,0x0000,0x9F5D,0x0000, +0x9F69,0x0000,0x9F6D,0x9F70,0x9F75,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,}; + +static const int jisx0213_ucs_table_size = (sizeof(jisx0213_ucs_table)/sizeof(unsigned short)); + + +static const unsigned short ucs_a1_jisx0213_table[] = { // 0x0000 - 0x045f + +/* 0000h */ +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x2922,0x2923,0x2171,0x2172,0x2924,0x005C,0x2925,0x2178, +0x212F,0x2926,0x2927,0x2928,0x224C,0x2929,0x292A,0x292B, +0x216B,0x215E,0x292C,0x292D,0x212D,0x0000,0x2279,0x292E, +0x292F,0x2930,0x2931,0x2932,0x2933,0x2934,0x2935,0x2936, +0x2937,0x2938,0x2939,0x293A,0x293B,0x293C,0x293D,0x293E, +0x293F,0x2940,0x2941,0x2942,0x2943,0x2944,0x2945,0x2946, +0x2947,0x2948,0x2949,0x294A,0x294B,0x294C,0x294D,0x215F, +0x294E,0x294F,0x2950,0x2951,0x2952,0x2953,0x2954,0x2955, +0x2956,0x2957,0x2958,0x2959,0x295A,0x295B,0x295C,0x295D, +0x295E,0x295F,0x2960,0x2961,0x2962,0x2963,0x2964,0x2965, +0x2966,0x2967,0x2968,0x2969,0x296A,0x296B,0x296C,0x2160, +0x296D,0x296E,0x296F,0x2970,0x2971,0x2972,0x2973,0x2974, + +/* 0100h */ +0x2975,0x297A,0x2A3A,0x2A49,0x2A21,0x2A2C,0x2A3C,0x2A4B, +0x2A59,0x2A5F,0x0000,0x0000,0x2A3D,0x2A4C,0x2A40,0x2A4F, +0x0000,0x2A50,0x2978,0x297D,0x0000,0x0000,0x0000,0x0000, +0x2A3E,0x2A4D,0x2A3F,0x2A4E,0x2A5A,0x2A60,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x2A5B,0x2A61,0x0000,0x2A7D, +0x0000,0x0000,0x2976,0x297B,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x2A5C,0x2A62,0x0000,0x0000, +0x0000,0x2A3B,0x2A4A,0x0000,0x0000,0x2A24,0x2A2F,0x0000, +0x0000,0x2A23,0x2A2E,0x2A41,0x2A51,0x0000,0x0000,0x2A42, +0x2A52,0x0000,0x0000,0x2A7A,0x2979,0x297E,0x0000,0x0000, +0x2A43,0x2A53,0x2B2B,0x2B2A,0x2A39,0x2A48,0x0000,0x0000, +0x2A44,0x2A54,0x2A25,0x2A30,0x2A5D,0x2A63,0x2A27,0x2A33, +0x2A26,0x2A32,0x2A47,0x2A57,0x2A28,0x2A34,0x0000,0x0000, +0x0000,0x0000,0x2977,0x297C,0x2A5E,0x2A64,0x2A45,0x2A55, +0x2A46,0x2A56,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x2A29,0x2A35,0x2A2B,0x2A38,0x2A2A,0x2A37,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x2B29,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x2B24,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x286F,0x2870,0x0000, +0x2871,0x2876,0x2877,0x0000,0x2878,0x0000,0x2879,0x0000, +0x287A,0x0000,0x287B,0x0000,0x287C,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x2874,0x2875,0x0000,0x0000,0x0000,0x2B45,0x0000,0x0000, + +/* 0200h */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x2B33,0x2B39,0x2B3A,0x2B25,0x2B38,0x2B3F,0x2A6E,0x2B26, +0x2B2E,0x2B30,0x2B43,0x0000,0x2B31,0x0000,0x2B32,0x2A75, +0x2B28,0x2A79,0x0000,0x0000,0x2B36,0x2B3C,0x2B22,0x2B42, +0x2B2C,0x0000,0x0000,0x0000,0x2A6A,0x2A74,0x2A6B,0x2B34, +0x2A7B,0x2A65,0x2A76,0x2A6F,0x0000,0x2B2F,0x0000,0x0000, +0x0000,0x2A6C,0x2B41,0x2A73,0x0000,0x2A70,0x2A67,0x0000, +0x0000,0x2A7C,0x2A71,0x2A68,0x2B27,0x0000,0x0000,0x0000, +0x2A6D,0x2B2D,0x2B35,0x2A66,0x2B37,0x2B3B,0x2A78,0x0000, +0x2A72,0x2B40,0x2A69,0x0000,0x2B21,0x2A7E,0x0000,0x0000, +0x2B23,0x0000,0x0000,0x0000,0x0000,0x2A77,0x0000,0x0000, +0x0000,0x2B3E,0x2B3D,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x2A31, +0x2B53,0x0000,0x0000,0x0000,0x2B54,0x0000,0x0000,0x0000, +0x2B55,0x2B56,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x2A22,0x2A58,0x0000,0x2A2D,0x0000,0x2A36,0x2B71,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x2B60,0x2B61,0x2B62, +0x2B63,0x2B64,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + +/* 0300h */ +0x2B5C,0x2B5A,0x2B5F,0x2B7D,0x2B5B,0x0000,0x2B57,0x0000, +0x2B6D,0x0000,0x0000,0x2B59,0x2B5E,0x0000,0x0000,0x2B5D, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x2B78,0x2B79,0x2B7E,0x0000,0x2B6A,0x2B76,0x2B77,0x2B6B, +0x2B6C,0x0000,0x0000,0x0000,0x2B72,0x2B67,0x0000,0x0000, +0x0000,0x2B6F,0x2B7A,0x0000,0x2B68,0x0000,0x0000,0x2B70, +0x2B73,0x0000,0x0000,0x0000,0x2B75,0x0000,0x0000,0x0000, +0x0000,0x2B69,0x2B7B,0x2B7C,0x2B74,0x2B6E,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x2B52,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x2621,0x2622,0x2623,0x2624,0x2625,0x2626,0x2627, +0x2628,0x2629,0x262A,0x262B,0x262C,0x262D,0x262E,0x262F, +0x2630,0x2631,0x0000,0x2632,0x2633,0x2634,0x2635,0x2636, +0x2637,0x2638,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x2641,0x2642,0x2643,0x2644,0x2645,0x2646,0x2647, +0x2648,0x2649,0x264A,0x264B,0x264C,0x264D,0x264E,0x264F, +0x2650,0x2651,0x2659,0x2652,0x2653,0x2654,0x2655,0x2656, +0x2657,0x2658,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + +/* 0400h */ +0x0000,0x2727,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x2721,0x2722,0x2723,0x2724,0x2725,0x2726,0x2728,0x2729, +0x272A,0x272B,0x272C,0x272D,0x272E,0x272F,0x2730,0x2731, +0x2732,0x2733,0x2734,0x2735,0x2736,0x2737,0x2738,0x2739, +0x273A,0x273B,0x273C,0x273D,0x273E,0x273F,0x2740,0x2741, +0x2751,0x2752,0x2753,0x2754,0x2755,0x2756,0x2758,0x2759, +0x275A,0x275B,0x275C,0x275D,0x275E,0x275F,0x2760,0x2761, +0x2762,0x2763,0x2764,0x2765,0x2766,0x2767,0x2768,0x2769, +0x276A,0x276B,0x276C,0x276D,0x276E,0x276F,0x2770,0x2771, +0x0000,0x2757,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +}; + +static const int ucs_a1_jisx0213_table_min = 0x0000; +static const int ucs_a1_jisx0213_table_max = 0x0000 + + (sizeof(ucs_a1_jisx0213_table)/sizeof(unsigned short)); + +static const unsigned short ucs_hk_jisx0213_table[] = { // 0x3000 - 0x30ff +/* 3000h */ +0x2121,0x2122,0x2123,0x2137,0x0000,0x2139,0x213A,0x213B, +0x2152,0x2153,0x2154,0x2155,0x2156,0x2157,0x2158,0x2159, +0x215A,0x215B,0x2229,0x222E,0x214C,0x214D,0x225A,0x225B, +0x2258,0x2259,0x0000,0x0000,0x2141,0x2D60,0x0000,0x2D61, +0x2666,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x2233,0x2234,0x2235,0x0000,0x0000, +0x0000,0x0000,0x0000,0x2236,0x2237,0x233C,0x0000,0x0000, +0x0000,0x2421,0x2422,0x2423,0x2424,0x2425,0x2426,0x2427, +0x2428,0x2429,0x242A,0x242B,0x242C,0x242D,0x242E,0x242F, +0x2430,0x2431,0x2432,0x2433,0x2434,0x2435,0x2436,0x2437, +0x2438,0x2439,0x243A,0x243B,0x243C,0x243D,0x243E,0x243F, +0x2440,0x2441,0x2442,0x2443,0x2444,0x2445,0x2446,0x2447, +0x2448,0x2449,0x244A,0x244B,0x244C,0x244D,0x244E,0x244F, +0x2450,0x2451,0x2452,0x2453,0x2454,0x2455,0x2456,0x2457, +0x2458,0x2459,0x245A,0x245B,0x245C,0x245D,0x245E,0x245F, +0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467, +0x2468,0x2469,0x246A,0x246B,0x246C,0x246D,0x246E,0x246F, +0x2470,0x2471,0x2472,0x2473,0x2474,0x2475,0x2476,0x0000, +0x0000,0x0000,0x0000,0x212B,0x212C,0x2135,0x2136,0x2239, +0x237B,0x2521,0x2522,0x2523,0x2524,0x2525,0x2526,0x2527, +0x2528,0x2529,0x252A,0x252B,0x252C,0x252D,0x252E,0x252F, +0x2530,0x2531,0x2532,0x2533,0x2534,0x2535,0x2536,0x2537, +0x2538,0x2539,0x253A,0x253B,0x253C,0x253D,0x253E,0x253F, +0x2540,0x2541,0x2542,0x2543,0x2544,0x2545,0x2546,0x2547, +0x2548,0x2549,0x254A,0x254B,0x254C,0x254D,0x254E,0x254F, +0x2550,0x2551,0x2552,0x2553,0x2554,0x2555,0x2556,0x2557, +0x2558,0x2559,0x255A,0x255B,0x255C,0x255D,0x255E,0x255F, +0x2560,0x2561,0x2562,0x2563,0x2564,0x2565,0x2566,0x2567, +0x2568,0x2569,0x256A,0x256B,0x256C,0x256D,0x256E,0x256F, +0x2570,0x2571,0x2572,0x2573,0x2574,0x2575,0x2576,0x2772, +0x2773,0x2774,0x2775,0x2126,0x213C,0x2133,0x2134,0x2238, +}; + +static const int ucs_hk_jisx0213_min = 0x3000; +static const int ucs_hk_jisx0213_max = 0x30FF; + +static const unsigned short ucs_i_jisx0213_table[] = { // 0x4e00 - 0x9fff + +/* 4E00h */ +0x306C,0x437A,0x7F22,0x3C37,0x0000,0x0000,0x0000,0x4B7C, +0x3E66,0x3B30,0x3E65,0x323C,0x0000,0x4954,0x4D3F,0x7F23, +0x5022,0x312F,0x7F24,0x0000,0x336E,0x5023,0x4024,0x5242, +0x3556,0x4A3A,0x0000,0x0000,0x0000,0x0000,0x3E67,0x0000, +0x0000,0x4E3E,0x0000,0x0000,0x0000,0x0000,0x4A42,0x0000, +0x2E24,0x7F25,0x5024,0x7F26,0x8A2E,0x4366,0x7F27,0x2E25, +0x2E26,0x5025,0x367A,0x0000,0x0000,0x0000,0x5026,0x0000, +0x345D,0x4330,0x0000,0x3C67,0x5027,0x0000,0x0000,0x5028, +0x7F28,0x0000,0x5029,0x4735,0x0000,0x3557,0x0000,0x7F29, +0x7F2A,0x0000,0x0000,0x4737,0x0000,0x4663,0x3843,0x4B33, +0x0000,0x7F2C,0x0000,0x0000,0x0000,0x6949,0x502A,0x3E68, +0x502B,0x3235,0x7F2F,0x0000,0x0000,0x3665,0x3870,0x4C69, +0x0000,0x0000,0x5626,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x7F30,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x4D70,0x0000,0x467D,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x3425,0x0000, +0x3535,0x0000,0x502C,0x0000,0x0000,0x502D,0x4E3B,0x0000, +0x4D3D,0x4168,0x502F,0x3B76,0x4673,0x2E27,0x5032,0x0000, +0x0000,0x313E,0x385F,0x0000,0x385E,0x3066,0x0000,0x0000, +0x4F4B,0x4F4A,0x0000,0x3A33,0x3021,0x7F31,0x5033,0x5034, +0x5035,0x4B34,0x5036,0x0000,0x3872,0x3067,0x4B72,0x0000, +0x357C,0x0000,0x0000,0x357D,0x357E,0x4462,0x4E3C,0x0000, +0x5037,0x0000,0x0000,0x5038,0x0000,0x0000,0x5039,0x0000, +0x0000,0x7F34,0x3F4D,0x7F35,0x7F37,0x0000,0x0000,0x0000, +0x3D3A,0x3F4E,0x503E,0x7F38,0x503C,0x0000,0x503D,0x3558, +0x7F39,0x0000,0x3A23,0x3270,0x0000,0x503B,0x503A,0x4A29, +0x7F3A,0x0000,0x0000,0x0000,0x3B46,0x3B45,0x423E,0x503F, +0x4955,0x4067,0x7F3C,0x0000,0x0000,0x2138,0x5040,0x5042, +0x0000,0x2E28,0x0000,0x4265,0x4E61,0x304A,0x0000,0x0000, +0x0000,0x0000,0x0000,0x7F3B,0x0000,0x5041,0x323E,0x0000, +0x3644,0x7F3D,0x4367,0x0000,0x0000,0x7F3E,0x376F,0x5043, +0x0000,0x0000,0x0000,0x4724,0x0000,0x2E29,0x0000,0x2E2A, + +/* 4F00h */ +0x7F3F,0x346B,0x0000,0x2E2B,0x0000,0x0000,0x0000,0x0000, +0x0000,0x5044,0x304B,0x2E2C,0x0000,0x3860,0x346C,0x497A, +0x4832,0x3559,0x0000,0x0000,0x0000,0x0000,0x7F40,0x0000, +0x0000,0x0000,0x3271,0x0000,0x5067,0x4541,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x476C, +0x5046,0x0000,0x0000,0x0000,0x483C,0x0000,0x4E62,0x7F42, +0x3F2D,0x0000,0x3B47,0x0000,0x3B77,0x3240,0x7F43,0x0000, +0x0000,0x0000,0x0000,0x4451,0x0000,0x0000,0x4322,0x504A, +0x2E2E,0x2E2F,0x0000,0x0000,0x0000,0x304C,0x4463,0x3D3B, +0x3A34,0x4D24,0x0000,0x424E,0x7F44,0x323F,0x2E30,0x5049, +0x7F45,0x4D3E,0x5045,0x5047,0x3A6E,0x5048,0x5524,0x2E31, +0x2E2D,0x0000,0x0000,0x0000,0x7F41,0x0000,0x0000,0x0000, +0x0000,0x5050,0x2E32,0x0000,0x2E33,0x0000,0x0000,0x5053, +0x5051,0x0000,0x0000,0x3242,0x0000,0x4A3B,0x504B,0x7F47, +0x7F48,0x0000,0x7F49,0x504F,0x3873,0x7F4A,0x2E34,0x3B48, +0x0000,0x0000,0x7F4B,0x3426,0x0000,0x7F4C,0x5054,0x0000, +0x504C,0x0000,0x2E35,0x4E63,0x0000,0x3B78,0x0000,0x504D, +0x0000,0x5052,0x7F4D,0x0000,0x2E36,0x0000,0x5055,0x2E37, +0x504E,0x0000,0x7F4E,0x3621,0x0000,0x304D,0x0000,0x0000, +0x3622,0x3241,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x5525,0x0000,0x4B79,0x496E,0x3874, +0x0000,0x0000,0x7F50,0x0000,0x0000,0x3F2F,0x4E37,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x7F51,0x4A58, +0x0000,0x0000,0x3738,0x4225,0x3264,0x7F52,0x0000,0x0000, +0x0000,0x2E39,0x3D53,0x7F53,0x0000,0x0000,0x5059,0x7F54, +0x505E,0x505C,0x7F55,0x0000,0x5057,0x0000,0x0000,0x422F, +0x505A,0x0000,0x505D,0x505B,0x0000,0x4A5D,0x0000,0x5058, +0x2E3A,0x3F2E,0x0000,0x4B73,0x505F,0x5060,0x7F4F,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x3D24,0x506D, +0x0000,0x2E21,0x7F57,0x4750,0x0000,0x4936,0x5068,0x0000, +0x4A70,0x0000,0x3236,0x0000,0x0000,0x0000,0x506C,0x0000, + +/* 5000h */ +0x7F58,0x2E3B,0x2E3C,0x0000,0x0000,0x5066,0x506F,0x0000, +0x0000,0x4152,0x0000,0x3844,0x0000,0x475C,0x2E3D,0x6047, +0x7F59,0x506E,0x455D,0x7F5A,0x5063,0x0000,0x3876,0x0000, +0x2E3E,0x3875,0x5061,0x0000,0x7F5B,0x0000,0x7F5C,0x3C5A, +0x0000,0x5069,0x7F5D,0x4A6F,0x434D,0x5065,0x3771,0x2E3F, +0x5062,0x506A,0x5064,0x4E51,0x506B,0x4F41,0x2E40,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x3666,0x0000, +0x0000,0x3770,0x0000,0x2E42,0x0000,0x0000,0x0000,0x0000, +0x2E41,0x2E43,0x7F5F,0x5070,0x0000,0x0000,0x7F60,0x5071, +0x5075,0x304E,0x0000,0x0000,0x0000,0x0000,0x7F61,0x4A50, +0x5074,0x0000,0x0000,0x7F62,0x0000,0x5073,0x5077,0x7F63, +0x0000,0x0000,0x5076,0x0000,0x4464,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x7F64,0x0000,0x3772,0x7F65,0x0000, +0x0000,0x0000,0x7F66,0x0000,0x5078,0x0000,0x0000,0x0000, +0x7F67,0x0000,0x3C45,0x0000,0x4226,0x4465,0x3676,0x0000, +0x5079,0x0000,0x0000,0x0000,0x0000,0x3536,0x0000,0x0000, +0x507A,0x0000,0x0000,0x0000,0x0000,0x507C,0x0000,0x0000, +0x7F69,0x0000,0x0000,0x0000,0x0000,0x4B35,0x0000,0x0000, +0x0000,0x3766,0x7F6A,0x7F6B,0x2E44,0x7F6C,0x7F6D,0x0000, +0x3B31,0x4877,0x507B,0x0000,0x7F6E,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x7F68,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x7F6F,0x0000,0x3A45,0x4D43,0x0000,0x0000, +0x0000,0x7F71,0x507E,0x5123,0x507D,0x3A44,0x0000,0x3D7D, +0x0000,0x0000,0x7F72,0x7F73,0x0000,0x0000,0x3739,0x0000, +0x0000,0x0000,0x5124,0x0000,0x7F74,0x364F,0x0000,0x7F75, +0x0000,0x5121,0x5122,0x0000,0x2E45,0x462F,0x7F78,0x417C, +0x2E47,0x3623,0x0000,0x0000,0x7F7A,0x4B4D,0x5125,0x0000, +0x0000,0x7F7B,0x4E3D,0x0000,0x0000,0x0000,0x5126,0x0000, +0x0000,0x7F7C,0x0000,0x5129,0x0000,0x5127,0x2E48,0x414E, +0x0000,0x7F7D,0x0000,0x0000,0x0000,0x5128,0x512A,0x0000, +0x0000,0x0000,0x2E46,0x7F76,0x0000,0x512C,0x0000,0x0000, +0x0000,0x512B,0x0000,0x4A48,0x0000,0x0000,0x0000,0x0000, + +/* 5100h */ +0x3537,0x512E,0x512F,0x2E4B,0x322F,0x0000,0x2E4A,0x0000, +0x8121,0x512D,0x0000,0x2E4C,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x3C74,0x0000,0x5132,0x5131,0x5130,0x8123, +0x5056,0x0000,0x5133,0x8124,0x0000,0x0000,0x2E4D,0x3D7E, +0x0000,0x5134,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x4D25,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x4C59,0x0000,0x0000,0x2E4E,0x0000,0x5136, +0x0000,0x0000,0x5135,0x5138,0x5137,0x0000,0x0000,0x5139, +0x513A,0x3074,0x0000,0x3835,0x373B,0x3D3C,0x437B,0x3624, +0x4068,0x3877,0x2E4F,0x396E,0x513C,0x4C48,0x4546,0x0000, +0x3B79,0x0000,0x513B,0x0000,0x513D,0x2E51,0x0000,0x2E52, +0x0000,0x0000,0x455E,0x0000,0x3375,0x0000,0x0000,0x0000, +0x8126,0x0000,0x513E,0x0000,0x0000,0x467E,0x0000,0x0000, +0x4134,0x5140,0x5141,0x482C,0x3878,0x4F3B,0x5142,0x0000, +0x0000,0x3626,0x0000,0x8128,0x0000,0x4A3C,0x4236,0x3671, +0x4535,0x0000,0x0000,0x8E74,0x3773,0x0000,0x0000,0x0000, +0x5143,0x0000,0x5144,0x8129,0x0000,0x4662,0x315F,0x0000, +0x0000,0x5147,0x3A7D,0x812A,0x5146,0x3A46,0x0000,0x5148, +0x666E,0x5149,0x4B41,0x514A,0x0000,0x514B,0x514C,0x3E69, +0x812C,0x3C4C,0x0000,0x0000,0x0000,0x2E54,0x0000,0x0000, +0x3427,0x0000,0x514F,0x812D,0x514D,0x4C3D,0x514E,0x0000, +0x495A,0x5150,0x5151,0x5152,0x455F,0x812E,0x0000,0x0000, +0x5156,0x5154,0x5155,0x5153,0x3A63,0x5157,0x4C6A,0x4E64, +0x0000,0x0000,0x0000,0x0000,0x8130,0x5158,0x0000,0x0000, +0x0000,0x0000,0x0000,0x2E55,0x4028,0x5159,0x3D5A,0x0000, +0x0000,0x515A,0x2E56,0x437C,0x4E3F,0x4560,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x5245,0x0000, +0x0000,0x0000,0x0000,0x515B,0x7425,0x3645,0x2E57,0x0000, +0x515C,0x4B5E,0x2E58,0x0000,0x0000,0x0000,0x3D68,0x427C, +0x0000,0x515E,0x4664,0x0000,0x0000,0x515F,0x2E59,0x0000, +0x5160,0x332E,0x0000,0x8133,0x8134,0x5161,0x3627,0x0000, +0x464C,0x317A,0x3D50,0x0000,0x0000,0x4821,0x5162,0x0000, + +/* 5200h */ +0x4561,0x2E5A,0x8135,0x3F4F,0x5163,0x0000,0x4A2C,0x405A, +0x3422,0x0000,0x3429,0x5164,0x0000,0x0000,0x5166,0x0000, +0x0000,0x373A,0x8136,0x2E5C,0x5165,0x2E5D,0x8137,0x4E73, +0x0000,0x0000,0x0000,0x0000,0x0000,0x3D69,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x483D,0x4A4C,0x0000,0x5167, +0x0000,0x4D78,0x5168,0x0000,0x0000,0x0000,0x5169,0x0000, +0x457E,0x0000,0x0000,0x516A,0x0000,0x0000,0x4029,0x3A7E, +0x3774,0x516B,0x3B49,0x396F,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x4466,0x516D,0x0000,0x0000,0x4227, +0x0000,0x2E5E,0x3A6F,0x516E,0x516F,0x4130,0x0000,0x516C, +0x0000,0x0000,0x0000,0x0000,0x5171,0x8139,0x4B36,0x2E5F, +0x0000,0x0000,0x0000,0x3964,0x813A,0x2F7E,0x5170,0x0000, +0x0000,0x2E60,0x0000,0x3775,0x3A5E,0x476D,0x0000,0x0000, +0x0000,0x5174,0x5172,0x0000,0x813B,0x0000,0x0000,0x497B, +0x3E6A,0x517B,0x3364,0x5175,0x5173,0x414F,0x0000,0x813C, +0x0000,0x0000,0x0000,0x0000,0x0000,0x5177,0x0000,0x5176, +0x0000,0x0000,0x813E,0x3344,0x813D,0x0000,0x0000,0x3760, +0x517C,0x4E2D,0x0000,0x0000,0x0000,0x5178,0x0000,0x0000, +0x0000,0x517D,0x517A,0x2E61,0x5179,0x0000,0x0000,0x0000, +0x8140,0x0000,0x0000,0x4E4F,0x0000,0x0000,0x0000,0x3879, +0x3243,0x0000,0x0000,0x4E74,0x8142,0x0000,0x8143,0x0000, +0x0000,0x3D75,0x4558,0x3965,0x5222,0x5223,0x0000,0x8144, +0x0000,0x4E65,0x0000,0x0000,0x4F2B,0x5225,0x0000,0x0000, +0x0000,0x387A,0x8145,0x8146,0x5224,0x0000,0x332F,0x0000, +0x0000,0x5226,0x0000,0x4B56,0x0000,0x443C,0x0000,0x4D26, +0x2E62,0x4A59,0x8147,0x0000,0x2E64,0x5227,0x0000,0x0000, +0x2E65,0x8149,0x7055,0x0000,0x0000,0x4630,0x2E66,0x5228, +0x342A,0x4C33,0x0000,0x2E67,0x0000,0x3E21,0x5229,0x4A67, +0x522D,0x0000,0x402A,0x522A,0x3650,0x0000,0x522B,0x342B, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x2E69,0x0000,0x372E,0x522E,0x0000,0x522F,0x0000,0x814B, +0x5230,0x5231,0x3C5B,0x2E6A,0x0000,0x0000,0x387B,0x4C5E, + +/* 5300h */ +0x2E6B,0x4C68,0x4677,0x0000,0x0000,0x4A71,0x5232,0x2E6C, +0x5233,0x0000,0x814C,0x814D,0x0000,0x5235,0x0000,0x5237, +0x5236,0x0000,0x0000,0x0000,0x0000,0x5238,0x323D,0x4B4C, +0x0000,0x3A7C,0x5239,0x0000,0x2E6D,0x4159,0x0000,0x0000, +0x3E22,0x3629,0x0000,0x523A,0x814E,0x0000,0x0000,0x0000, +0x0000,0x0000,0x485B,0x0000,0x0000,0x0000,0x0000,0x523B, +0x0000,0x523C,0x0000,0x523D,0x0000,0x814F,0x0000,0x0000, +0x523E,0x4924,0x3668,0x3065,0x0000,0x0000,0x8150,0x463F, +0x523F,0x3D3D,0x8151,0x4069,0x0000,0x5241,0x5240,0x3E23, +0x3861,0x5243,0x483E,0x0000,0x0000,0x5244,0x0000,0x0000, +0x0000,0x485C,0x4234,0x426E,0x3628,0x0000,0x0000,0x466E, +0x4331,0x0000,0x476E,0x0000,0x4B4E,0x0000,0x5246,0x0000, +0x406A,0x2E6F,0x0000,0x2E70,0x0000,0x0000,0x3735,0x8154, +0x0000,0x5247,0x0000,0x0000,0x8155,0x0000,0x5248,0x312C, +0x3075,0x346D,0x0000,0x4228,0x3551,0x4D71,0x0000,0x524B, +0x3237,0x0000,0x8156,0x524A,0x0000,0x2E71,0x0000,0x362A, +0x0000,0x0000,0x524C,0x0000,0x4C71,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x2E72,0x0000,0x0000,0x524D,0x0000, +0x4E52,0x0000,0x387C,0x0000,0x0000,0x2E73,0x0000,0x3836, +0x524E,0x0000,0x0000,0x0000,0x8157,0x5250,0x524F,0x0000, +0x3F5F,0x3139,0x0000,0x0000,0x0000,0x315E,0x5251,0x0000, +0x5252,0x0000,0x2E74,0x3837,0x8158,0x0000,0x5253,0x815A, +0x0000,0x0000,0x0000,0x356E,0x0000,0x0000,0x0000,0x0000, +0x815B,0x0000,0x3B32,0x5254,0x0000,0x0000,0x0000,0x0000, +0x4B74,0x3A35,0x355A,0x4D27,0x4150,0x483F,0x3C7D,0x0000, +0x0000,0x0000,0x0000,0x0000,0x3D47,0x815F,0x3C68,0x3C75, +0x0000,0x3D76,0x8160,0x4840,0x0000,0x0000,0x0000,0x5257, +0x0000,0x3143,0x4151,0x387D,0x3845,0x3667,0x0000,0x0000, +0x525B,0x4321,0x427E,0x362B,0x3E24,0x525C,0x525A,0x3244, +0x4266,0x3C38,0x3B4B,0x3126,0x8162,0x8163,0x3370,0x3966, +0x3B4A,0x0000,0x525D,0x0000,0x0000,0x0000,0x0000,0x0000, + +/* 5400h */ +0x0000,0x525E,0x0000,0x3549,0x3346,0x0000,0x0000,0x0000, +0x3967,0x3548,0x445F,0x3125,0x4631,0x4C3E,0x3921,0x4D79, +0x4547,0x387E,0x2E75,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x372F,0x0000,0x5267,0x4F7E,0x3663, +0x4B4A,0x0000,0x0000,0x0000,0x8165,0x0000,0x485D,0x2E76, +0x8166,0x5266,0x0000,0x345E,0x5261,0x5262,0x5264,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x5265,0x0000, +0x355B,0x3F61,0x0000,0x4A2D,0x5263,0x525F,0x3863,0x0000, +0x5260,0x0000,0x4F24,0x8168,0x0000,0x0000,0x4A72,0x0000, +0x4468,0x3862,0x3970,0x0000,0x0000,0x2E77,0x5268,0x0000, +0x0000,0x465D,0x0000,0x0000,0x0000,0x8164,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x526C, +0x0000,0x0000,0x8169,0x0000,0x0000,0x0000,0x816A,0x0000, +0x3C7E,0x0000,0x3C76,0x2E79,0x816B,0x0000,0x0000,0x0000, +0x526F,0x526D,0x0000,0x4C23,0x2E7A,0x526A,0x5273,0x526E, +0x0000,0x0000,0x0000,0x5271,0x3846,0x4C3F,0x0000,0x2E7B, +0x5272,0x0000,0x0000,0x0000,0x5274,0x0000,0x5276,0x0000, +0x2E7C,0x0000,0x816C,0x3A70,0x4F42,0x816D,0x526B,0x5269, +0x5275,0x0000,0x5270,0x0000,0x0000,0x816E,0x2E7D,0x0000, +0x0000,0x0000,0x0000,0x0000,0x2E78,0x0000,0x0000,0x0000, +0x816F,0x2E7E,0x5278,0x0000,0x5323,0x527A,0x8170,0x0000, +0x527E,0x2F21,0x0000,0x5321,0x527B,0x8171,0x8172,0x533E, +0x0000,0x0000,0x3A69,0x3331,0x0000,0x0000,0x0000,0x8173, +0x5279,0x0000,0x8174,0x0000,0x5325,0x3076,0x5324,0x8175, +0x3025,0x494A,0x5322,0x8176,0x527C,0x0000,0x2F22,0x5277, +0x527D,0x3A48,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x5326,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x3077,0x532F,0x0000,0x0000,0x5327,0x5328,0x0000, +0x3E25,0x4B69,0x0000,0x0000,0x8178,0x532D,0x532C,0x8179, +0x0000,0x817A,0x452F,0x817B,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x532E,0x0000,0x0000,0x532B,0x0000,0x2F23, + +/* 5500h */ +0x817C,0x817D,0x0000,0x0000,0x3134,0x0000,0x3A36,0x3F30, +0x0000,0x817E,0x0000,0x0000,0x0000,0x0000,0x2F24,0x5329, +0x4562,0x0000,0x0000,0x0000,0x532A,0x0000,0x3022,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x2F25,0x0000,0x0000,0x5334,0x4D23, +0x0000,0x3E27,0x0000,0x533A,0x0000,0x2F26,0x0000,0x0000, +0x5339,0x5330,0x0000,0x0000,0x8221,0x0000,0x4243,0x0000, +0x5331,0x8222,0x0000,0x0000,0x426F,0x5336,0x3E26,0x8224, +0x0000,0x0000,0x8225,0x0000,0x5333,0x0000,0x0000,0x4C64, +0x2F27,0x0000,0x0000,0x373C,0x0000,0x0000,0x5337,0x5338, +0x0000,0x0000,0x0000,0x0000,0x5335,0x533B,0x2F28,0x0000, +0x8227,0x8228,0x0000,0x5332,0x8229,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x5341,0x5346,0x822B,0x5342,0x0000, +0x533D,0x2F29,0x822C,0x5347,0x4131,0x0000,0x2F2A,0x5349, +0x822D,0x3922,0x533F,0x437D,0x0000,0x0000,0x2F2B,0x0000, +0x0000,0x822E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x5343,0x533C,0x342D,0x0000,0x346E,0x3365,0x5344,0x5340, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x3776, +0x534A,0x5348,0x4153,0x354A,0x362C,0x2F2D,0x5345,0x0000, +0x3674,0x0000,0x0000,0x0000,0x0000,0x0000,0x3144,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x8233, +0x0000,0x0000,0x0000,0x0000,0x534E,0x534C,0x0000,0x5427, +0x0000,0x8234,0x0000,0x0000,0x8235,0x0000,0x2F2E,0x0000, +0x0000,0x8236,0x8230,0x0000,0x5351,0x0000,0x0000,0x0000, +0x0000,0x0000,0x534B,0x0000,0x534F,0x8237,0x0000,0x534D, +0x0000,0x0000,0x8239,0x3B4C,0x5350,0x0000,0x0000,0x0000, +0x0000,0x823B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x5353, +0x0000,0x5358,0x0000,0x0000,0x0000,0x5356,0x5355,0x0000, + +/* 5600h */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x4332,0x823E, +0x2F30,0x3245,0x0000,0x0000,0x0000,0x0000,0x2F31,0x0000, +0x823F,0x0000,0x0000,0x0000,0x5352,0x0000,0x5354,0x3E28, +0x3133,0x0000,0x0000,0x5357,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x823C,0x325E,0x0000,0x0000,0x0000,0x0000,0x0000,0x5362, +0x8240,0x3E7C,0x535E,0x0000,0x535C,0x0000,0x535D,0x8241, +0x535F,0x0000,0x0000,0x2F32,0x0000,0x8243,0x0000,0x8244, +0x8245,0x0000,0x313D,0x0000,0x0000,0x0000,0x0000,0x8246, +0x0000,0x2F33,0x0000,0x0000,0x4139,0x0000,0x5359,0x0000, +0x535A,0x0000,0x0000,0x7427,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x337A,0x0000,0x0000,0x8247,0x0000, +0x8248,0x0000,0x0000,0x0000,0x5361,0x0000,0x2F35,0x0000, +0x346F,0x0000,0x5364,0x5360,0x5363,0x8249,0x0000,0x2F37, +0x0000,0x2F38,0x2F39,0x0000,0x4A2E,0x0000,0x2F34,0x0000, +0x4655,0x0000,0x4838,0x0000,0x0000,0x0000,0x0000,0x0000, +0x5366,0x0000,0x0000,0x0000,0x0000,0x0000,0x5365,0x3345, +0x824B,0x0000,0x5367,0x0000,0x824C,0x0000,0x0000,0x536A, +0x0000,0x0000,0x0000,0x0000,0x5369,0x824D,0x0000,0x0000, +0x0000,0x2F3A,0x824E,0x0000,0x0000,0x824F,0x2F3B,0x0000, +0x5368,0x0000,0x4739,0x0000,0x0000,0x536B,0x0000,0x0000, +0x8250,0x2F3C,0x0000,0x0000,0x2F3D,0x8251,0x536C,0x0000, +0x0000,0x0000,0x8252,0x2F3E,0x536E,0x0000,0x536D,0x0000, +0x0000,0x0000,0x0000,0x0000,0x5370,0x0000,0x0000,0x0000, +0x5373,0x5371,0x536F,0x5372,0x0000,0x8253,0x0000,0x0000, +0x5374,0x2F3F,0x2F40,0x0000,0x0000,0x8254,0x5375,0x0000, +0x0000,0x5376,0x0000,0x5377,0x0000,0x0000,0x0000,0x5378, +0x5145,0x0000,0x3C7C,0x3B4D,0x0000,0x0000,0x3273,0x8255, +0x3078,0x0000,0x0000,0x4344,0x0000,0x0000,0x0000,0x0000, +0x8256,0x0000,0x0000,0x0000,0x0000,0x0000,0x5379,0x0000, +0x3A24,0x0000,0x304F,0x3F5E,0x0000,0x0000,0x8257,0x8258, +0x0000,0x537A,0x3847,0x0000,0x0000,0x3971,0x0000,0x537C, + +/* 5700h */ +0x537B,0x0000,0x0000,0x4A60,0x537D,0x0000,0x0000,0x0000, +0x5421,0x537E,0x2F41,0x5422,0x0000,0x5423,0x0000,0x3777, +0x0000,0x0000,0x3160,0x5424,0x0000,0x825A,0x5426,0x0000, +0x5425,0x0000,0x0000,0x0000,0x5428,0x0000,0x0000,0x455A, +0x0000,0x2F43,0x0000,0x825B,0x0000,0x0000,0x5429,0x3035, +0x3A5F,0x825D,0x0000,0x0000,0x0000,0x373D,0x0000,0x2F44, +0x434F,0x0000,0x0000,0x2F45,0x2F46,0x0000,0x0000,0x542A, +0x542B,0x0000,0x0000,0x542D,0x0000,0x0000,0x0000,0x0000, +0x542E,0x0000,0x3A64,0x0000,0x0000,0x825F,0x8260,0x3651, +0x0000,0x0000,0x4B37,0x0000,0x8261,0x8262,0x542C,0x542F, +0x3A41,0x3923,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x5433,0x0000,0x0000,0x3A25,0x0000,0x4333,0x0000, +0x8264,0x5430,0x445A,0x0000,0x0000,0x0000,0x0000,0x8265, +0x2F47,0x0000,0x0000,0x8266,0x8267,0x8268,0x0000,0x2F48, +0x0000,0x0000,0x0000,0x8269,0x2F49,0x0000,0x0000,0x5434, +0x0000,0x0000,0x3F62,0x0000,0x0000,0x0000,0x0000,0x0000, +0x5432,0x5435,0x0000,0x373F,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x5436,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x826D,0x0000,0x2F4A,0x826E,0x826F,0x0000, +0x5437,0x0000,0x3924,0x3340,0x5439,0x0000,0x0000,0x0000, +0x8270,0x0000,0x543A,0x0000,0x826C,0x0000,0x0000,0x0000, +0x543B,0x0000,0x0000,0x5438,0x0000,0x0000,0x0000,0x0000, +0x2F4D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x5431,0x0000,0x0000,0x543C,0x0000,0x0000,0x543D,0x2F4E, +0x2F4F,0x0000,0x0000,0x4B64,0x8273,0x0000,0x3E6B,0x2F50, +0x0000,0x0000,0x543F,0x5440,0x543E,0x0000,0x5442,0x8271, +0x0000,0x0000,0x0000,0x0000,0x4738,0x0000,0x8276,0x3068, +0x4956,0x0000,0x0000,0x5443,0x2F51,0x0000,0x8277,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x2F52,0x0000,0x0000, +0x8278,0x0000,0x0000,0x0000,0x3E7D,0x2F53,0x2F54,0x3C39, +0x827A,0x475D,0x3470,0x827B,0x3A6B,0x827C,0x0000,0x2F55, + +/* 5800h */ +0x4B59,0x0000,0x4632,0x0000,0x827D,0x3778,0x424F,0x0000, +0x0000,0x2F56,0x5441,0x5444,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x4244,0x0000,0x0000, +0x0000,0x5445,0x0000,0x0000,0x0000,0x5446,0x827E,0x0000, +0x8321,0x5448,0x0000,0x0000,0x4469,0x0000,0x0000,0x8322, +0x0000,0x0000,0x342E,0x0000,0x0000,0x0000,0x0000,0x7421, +0x3161,0x4A73,0x8323,0x0000,0x3E6C,0x4548,0x0000,0x0000, +0x0000,0x8324,0x3A66,0x0000,0x0000,0x544E,0x0000,0x0000, +0x4A3D,0x4E5D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x8326,0x3274,0x544A,0x8327,0x0000,0x0000,0x0000, +0x0000,0x413A,0x544D,0x0000,0x4563,0x0000,0x0000,0x4549, +0x4564,0x4839,0x444D,0x0000,0x0000,0x0000,0x3A49,0x0000, +0x0000,0x2F58,0x5449,0x0000,0x2F59,0x0000,0x0000,0x8328, +0x0000,0x3176,0x0000,0x4536,0x0000,0x0000,0x0000,0x0000, +0x544B,0x0000,0x5447,0x0000,0x0000,0x3F50,0x0000,0x0000, +0x0000,0x544F,0x0000,0x0000,0x2F5B,0x0000,0x3D4E,0x0000, +0x0000,0x0000,0x0000,0x362D,0x0000,0x5450,0x0000,0x0000, +0x0000,0x2F5C,0x8329,0x832A,0x0000,0x832B,0x0000,0x832C, +0x832D,0x0000,0x0000,0x4A68,0x832E,0x0000,0x0000,0x417D, +0x0000,0x0000,0x0000,0x0000,0x4446,0x832F,0x2F5D,0x5452, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x4B4F,0x2F5F,0x8330,0x5453,0x0000,0x0000,0x5458,0x0000, +0x0000,0x8331,0x0000,0x4A2F,0x0000,0x0000,0x0000,0x0000, +0x5457,0x5451,0x5454,0x5456,0x0000,0x0000,0x3A26,0x0000, +0x0000,0x4A49,0x0000,0x8333,0x0000,0x5459,0x0000,0x4345, +0x0000,0x0000,0x3275,0x0000,0x3E6D,0x8334,0x2F62,0x0000, +0x0000,0x545B,0x2F61,0x545A,0x2F63,0x3968,0x0000,0x545C, +0x545E,0x545D,0x2F64,0x0000,0x5460,0x0000,0x5455,0x5462, +0x2F65,0x0000,0x8335,0x0000,0x5461,0x545F,0x0000,0x0000, +0x0000,0x2F66,0x0000,0x3B4E,0x3F51,0x0000,0x4154,0x5463, +0x403C,0x306D,0x4764,0x8336,0x8337,0x0000,0x0000,0x445B, +0x0000,0x5465,0x5464,0x5466,0x5467,0x5468,0x0000,0x0000, + +/* 5900h */ +0x0000,0x0000,0x5469,0x0000,0x0000,0x8338,0x8339,0x0000, +0x0000,0x4A51,0x546A,0x833A,0x2F67,0x833B,0x0000,0x3246, +0x546B,0x0000,0x0000,0x0000,0x833C,0x4D3C,0x3330,0x0000, +0x5249,0x3D48,0x423F,0x546C,0x4C6B,0x0000,0x0000,0x0000, +0x0000,0x0000,0x4C34,0x0000,0x833D,0x546E,0x0000,0x4267, +0x0000,0x4537,0x4240,0x4957,0x546F,0x5470,0x317B,0x0000, +0x0000,0x3C3A,0x5471,0x0000,0x0000,0x0000,0x0000,0x3050, +0x5472,0x0000,0x0000,0x0000,0x0000,0x8340,0x5473,0x0000, +0x0000,0x0000,0x0000,0x0000,0x3162,0x0000,0x8342,0x3471, +0x4660,0x4A74,0x0000,0x0000,0x0000,0x0000,0x5477,0x4155, +0x5476,0x3740,0x0000,0x0000,0x4B5B,0x5475,0x0000,0x4565, +0x5479,0x0000,0x5478,0x8345,0x0000,0x2F69,0x0000,0x8346, +0x547B,0x0000,0x547A,0x0000,0x0000,0x317C,0x0000,0x547C, +0x3E29,0x547E,0x4325,0x0000,0x547D,0x2F6A,0x4A33,0x0000, +0x0000,0x0000,0x0000,0x3D77,0x455B,0x8348,0x8349,0x0000, +0x5521,0x0000,0x0000,0x0000,0x834A,0x3925,0x0000,0x0000, +0x0000,0x5522,0x4721,0x485E,0x4C51,0x0000,0x0000,0x0000, +0x0000,0x0000,0x4725,0x2F6B,0x0000,0x552B,0x0000,0x0000, +0x0000,0x0000,0x2F6C,0x3538,0x0000,0x0000,0x4D45,0x0000, +0x0000,0x4C2F,0x0000,0x562C,0x0000,0x5523,0x0000,0x834B, +0x0000,0x0000,0x0000,0x5526,0x2F6D,0x4245,0x0000,0x0000, +0x4B38,0x0000,0x0000,0x0000,0x454A,0x0000,0x834C,0x0000, +0x0000,0x0000,0x5527,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x4B65,0x0000,0x3A4A,0x834D,0x0000,0x3E2A,0x0000, +0x0000,0x0000,0x0000,0x2F6E,0x0000,0x0000,0x5528,0x0000, +0x834E,0x3B50,0x0000,0x3B4F,0x0000,0x834F,0x0000,0x0000, +0x3039,0x3848,0x2F6F,0x402B,0x3051,0x0000,0x0000,0x0000, +0x0000,0x552C,0x552D,0x0000,0x552A,0x2F70,0x8350,0x0000, +0x0000,0x0000,0x0000,0x8351,0x8352,0x3138,0x342F,0x8353, +0x5529,0x0000,0x4C45,0x4931,0x0000,0x0000,0x8354,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x3028,0x0000, +0x7E7A,0x0000,0x0000,0x3079,0x0000,0x0000,0x0000,0x3B51, + +/* 5A00h */ +0x0000,0x3052,0x0000,0x3023,0x0000,0x0000,0x0000,0x0000, +0x0000,0x5532,0x0000,0x0000,0x8358,0x8359,0x0000,0x0000, +0x0000,0x5530,0x0000,0x2F71,0x0000,0x0000,0x0000,0x835A, +0x4C3C,0x0000,0x5533,0x0000,0x5531,0x0000,0x0000,0x552F, +0x3F31,0x0000,0x0000,0x2F72,0x0000,0x552E,0x0000,0x835B, +0x0000,0x4A5A,0x0000,0x0000,0x0000,0x835C,0x0000,0x3864, +0x0000,0x0000,0x0000,0x0000,0x0000,0x5537,0x5538,0x0000, +0x0000,0x0000,0x0000,0x0000,0x3E2B,0x0000,0x0000,0x0000, +0x5534,0x4F2C,0x0000,0x0000,0x0000,0x0000,0x474C,0x0000, +0x0000,0x5536,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x835D,0x0000,0x0000, +0x0000,0x0000,0x3A27,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x5539,0x0000,0x0000,0x835E,0x4958,0x2F73, +0x0000,0x0000,0x553A,0x0000,0x5535,0x2F74,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x2F75, +0x0000,0x0000,0x835F,0x0000,0x0000,0x0000,0x2F76,0x4C3B, +0x0000,0x0000,0x0000,0x0000,0x2F77,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x8360,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x475E,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x553B,0x4932,0x8361,0x0000,0x2F78,0x8362, +0x8363,0x0000,0x8364,0x0000,0x0000,0x0000,0x0000,0x2F79, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x8365,0x0000,0x8366,0x0000,0x8367,0x0000,0x0000, +0x0000,0x0000,0x8368,0x0000,0x553C,0x5540,0x553D,0x8369, +0x0000,0x3247,0x553F,0x0000,0x2F7A,0x0000,0x0000,0x0000, +0x0000,0x3C3B,0x0000,0x553E,0x3779,0x0000,0x0000,0x0000, +0x554C,0x0000,0x0000,0x0000,0x0000,0x0000,0x5545,0x5542, +0x0000,0x0000,0x836A,0x0000,0x836B,0x0000,0x0000,0x0000, +0x836C,0x4364,0x0000,0x5541,0x0000,0x836D,0x5543,0x0000, +0x0000,0x5544,0x0000,0x0000,0x0000,0x0000,0x836F,0x0000, +0x836E,0x0000,0x0000,0x0000,0x0000,0x8370,0x0000,0x0000, +0x0000,0x0000,0x5546,0x5547,0x0000,0x0000,0x0000,0x0000, + +/* 5B00h */ +0x8371,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x8372,0x3472,0x0000,0x5549,0x5548,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x554A,0x8373, +0x0000,0x2F7C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x3E6E,0x0000,0x0000,0x2F7D,0x0000,0x0000, +0x0000,0x0000,0x554D,0x0000,0x445C,0x8375,0x0000,0x0000, +0x3145,0x0000,0x554B,0x0000,0x8374,0x0000,0x554E,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x554F,0x0000, +0x5552,0x4F55,0x0000,0x5550,0x0000,0x5551,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x8376,0x0000,0x0000,0x0000, +0x3B52,0x5553,0x8377,0x0000,0x3926,0x5554,0x4F56,0x3B7A, +0x4238,0x0000,0x5555,0x5556,0x3B5A,0x3927,0x0000,0x4C52, +0x0000,0x0000,0x0000,0x3528,0x3849,0x5557,0x3358,0x0000, +0x8378,0x5558,0x0000,0x4239,0x0000,0x0000,0x0000,0x8379, +0x5559,0x5623,0x0000,0x555A,0x0000,0x555B,0x0000,0x0000, +0x555C,0x0000,0x555E,0x0000,0x837A,0x4F57,0x0000,0x837B, +0x555F,0x837C,0x0000,0x5560,0x837D,0x4270,0x0000,0x3127, +0x3C69,0x3042,0x0000,0x4157,0x3430,0x3C35,0x0000,0x3928, +0x0000,0x0000,0x0000,0x4F58,0x0000,0x4566,0x8021,0x3D21, +0x3431,0x4368,0x446A,0x3038,0x3539,0x4A75,0x0000,0x3C42, +0x0000,0x0000,0x3552,0x406B,0x3C3C,0x4D28,0x5561,0x0000, +0x0000,0x0000,0x0000,0x0000,0x8022,0x0000,0x355C,0x0000, +0x3A4B,0x0000,0x0000,0x3332,0x3163,0x3E2C,0x3248,0x0000, +0x5562,0x4D46,0x0000,0x0000,0x0000,0x0000,0x0000,0x3D49, +0x8024,0x0000,0x3C64,0x5563,0x3473,0x4652,0x4C29,0x5564, +0x0000,0x5565,0x0000,0x0000,0x4959,0x0000,0x8026,0x0000, +0x5567,0x0000,0x3428,0x3677,0x5566,0x0000,0x8027,0x0000, +0x4F59,0x0000,0x0000,0x3432,0x0000,0x3F32,0x556B,0x3B21, +0x0000,0x3249,0x556A,0x0000,0x5568,0x556C,0x5569,0x472B, +0x5C4D,0x3F33,0x0000,0x556D,0x4F5A,0x0000,0x4E40,0x0000, +0x556E,0x802A,0x0000,0x5570,0x0000,0x437E,0x556F,0x0000, +0x4023,0x0000,0x3B7B,0x0000,0x0000,0x802B,0x4250,0x3C77, + +/* 5C00h */ +0x0000,0x4975,0x406C,0x802D,0x3C4D,0x5571,0x3E2D,0x5572, +0x5573,0x3053,0x423A,0x3F52,0x0000,0x5574,0x4633,0x3E2E, +0x0000,0x3E2F,0x4F5B,0x5575,0x0000,0x0000,0x406D,0x0000, +0x0000,0x0000,0x3E30,0x0000,0x0000,0x0000,0x4F5C,0x0000, +0x5576,0x0000,0x5577,0x4F5D,0x4C60,0x0000,0x0000,0x0000, +0x5578,0x802E,0x0000,0x4F5E,0x0000,0x3646,0x0000,0x0000, +0x802F,0x3D22,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x5579,0x557A,0x3C5C,0x3F2C,0x4674,0x3F54,0x4878,0x4722, +0x3649,0x557B,0x0000,0x0000,0x0000,0x356F,0x557C,0x0000, +0x367E,0x0000,0x464F,0x3230,0x0000,0x3B53,0x557D,0x5622, +0x5621,0x367D,0x0000,0x557E,0x0000,0x4538,0x0000,0x0000, +0x0000,0x0000,0x0000,0x7E7B,0x0000,0x0000,0x4230,0x8031, +0x454B,0x3C48,0x4F60,0x8032,0x4158,0x4D7A,0x0000,0x8033, +0x8034,0x8035,0x0000,0x0000,0x5624,0x0000,0x5625,0x4656, +0x8036,0x3B33,0x0000,0x0000,0x0000,0x0000,0x5627,0x0000, +0x0000,0x5628,0x4F64,0x0000,0x8039,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x803C,0x0000,0x803D,0x0000,0x5629,0x0000,0x0000,0x4F65, +0x3474,0x562A,0x0000,0x0000,0x562B,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x4F66, +0x8041,0x322C,0x8042,0x4F67,0x0000,0x0000,0x8043,0x8044, +0x413B,0x3464,0x4F68,0x562D,0x4C28,0x8046,0x0000,0x0000, +0x0000,0x4252,0x0000,0x3359,0x0000,0x8047,0x562F,0x5631, +0x345F,0x0000,0x4F69,0x562E,0x5630,0x0000,0x5633,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x5632,0x0000,0x5634, +0x0000,0x8049,0x0000,0x4F6A,0x0000,0x0000,0x0000,0x0000, +0x4F6B,0x0000,0x4F6C,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x5635,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x463D,0x362E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x3265,0x5636,0x563B,0x0000,0x0000,0x5639,0x0000,0x4A77, +0x4A76,0x0000,0x0000,0x0000,0x4F6D,0x0000,0x4567,0x0000, +0x0000,0x0000,0x5638,0x3D54,0x0000,0x5637,0x0000,0x0000, + +/* 5D00h */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x804C,0x3F72, +0x0000,0x0000,0x0000,0x563C,0x0000,0x4F70,0x3A6A,0x0000, +0x804D,0x5642,0x0000,0x0000,0x5643,0x563D,0x3333,0x563E, +0x5647,0x5646,0x5645,0x5641,0x0000,0x804F,0x0000,0x5640, +0x8050,0x0000,0x5644,0x0000,0x8051,0x0000,0x8052,0x4F71, +0x0000,0x4A78,0x0000,0x804E,0x0000,0x0000,0x0000,0x0000, +0x0000,0x8053,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x8054,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x8055,0x0000,0x0000,0x0000,0x4F73,0x4F74, +0x0000,0x0000,0x4F76,0x564B,0x5648,0x0000,0x564A,0x0000, +0x4D72,0x0000,0x5649,0x4F75,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x563F,0x0000,0x0000,0x0000, +0x0000,0x8057,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x3F73,0x8058,0x0000,0x564C,0x4F77,0x0000,0x3A37, +0x805A,0x0000,0x0000,0x564D,0x0000,0x0000,0x564E,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x4F78,0x5651,0x0000,0x5650,0x0000,0x0000,0x564F, +0x805D,0x0000,0x0000,0x4568,0x563A,0x0000,0x0000,0x0000, +0x5657,0x0000,0x805F,0x0000,0x8060,0x0000,0x0000,0x8061, +0x0000,0x8062,0x0000,0x0000,0x0000,0x5653,0x0000,0x0000, +0x4F79,0x0000,0x5652,0x0000,0x4F7A,0x0000,0x0000,0x4F7B, +0x0000,0x0000,0x0000,0x0000,0x5654,0x0000,0x5655,0x0000, +0x8063,0x0000,0x8064,0x0000,0x8065,0x0000,0x0000,0x5658, +0x4F7C,0x8067,0x4E66,0x0000,0x5659,0x5656,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x565A,0x0000,0x4F7D,0x3460,0x565B,0x0000,0x0000, +0x0000,0x8068,0x565D,0x565C,0x0000,0x0000,0x565E,0x8069, +0x806A,0x0000,0x0000,0x565F,0x0000,0x406E,0x3D23,0x0000, +0x806B,0x3D64,0x7428,0x4163,0x806D,0x3929,0x3A38,0x392A, +0x3570,0x806E,0x0000,0x5660,0x0000,0x0000,0x3A39,0x0000, +0x0000,0x384A,0x5661,0x4C26,0x4743,0x5662,0x0000,0x392B, +0x0000,0x0000,0x0000,0x342C,0x0000,0x4327,0x3652,0x0000, + +/* 5E00h */ +0x8070,0x0000,0x3B54,0x495B,0x0000,0x0000,0x4841,0x0000, +0x0000,0x0000,0x0000,0x5663,0x3475,0x0000,0x0000,0x0000, +0x0000,0x5666,0x8072,0x0000,0x7429,0x8073,0x4421,0x0000, +0x742A,0x5665,0x5664,0x5667,0x0000,0x446B,0x0000,0x8075, +0x0000,0x0000,0x0000,0x0000,0x0000,0x3F63,0x0000,0x0000, +0x0000,0x0000,0x0000,0x3B55,0x0000,0x404A,0x8076,0x4253, +0x3522,0x0000,0x0000,0x4422,0x0000,0x0000,0x5668,0x5669, +0x3E6F,0x0000,0x0000,0x0000,0x0000,0x4B39,0x8077,0x0000, +0x566C,0x0000,0x0000,0x566B,0x566A,0x497D,0x0000,0x5673, +0x0000,0x8078,0x0000,0x0000,0x4B5A,0x0000,0x566D,0x0000, +0x0000,0x0000,0x0000,0x0000,0x566F,0x4B6B,0x807A,0x566E, +0x742B,0x0000,0x0000,0x0000,0x0000,0x0000,0x742C,0x5670, +0x0000,0x4828,0x5671,0x4A3E,0x5672,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x807C,0x807D,0x807E,0x8421,0x0000, +0x0000,0x0000,0x3433,0x4A3F,0x472F,0x5674,0x5675,0x7E7C, +0x392C,0x3434,0x5676,0x3838,0x4D44,0x4D29,0x3476,0x5678, +0x0000,0x4423,0x0000,0x392D,0x3E31,0x0000,0x0000,0x485F, +0x0000,0x0000,0x3E32,0x0000,0x0000,0x0000,0x0000,0x3D78, +0x0000,0x0000,0x0000,0x0000,0x0000,0x446C,0x4A79,0x4539, +0x0000,0x0000,0x392E,0x0000,0x495C,0x0000,0x0000,0x0000, +0x5679,0x0000,0x0000,0x0000,0x0000,0x8423,0x4559,0x3A42, +0x0000,0x0000,0x8424,0x384B,0x8425,0x446D,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x3043,0x3D6E,0x392F, +0x4D47,0x8426,0x0000,0x0000,0x0000,0x0000,0x742D,0x8427, +0x0000,0x567A,0x567B,0x4751,0x0000,0x0000,0x8428,0x0000, +0x567C,0x4E77,0x4F2D,0x742F,0x0000,0x0000,0x0000,0x567E, +0x567D,0x0000,0x8429,0x3347,0x0000,0x0000,0x5721,0x0000, +0x0000,0x842A,0x5724,0x5725,0x0000,0x5723,0x0000,0x4940, +0x3E33,0x5727,0x5726,0x5722,0x0000,0x0000,0x0000,0x0000, +0x5728,0x5729,0x0000,0x0000,0x572A,0x0000,0x0000,0x0000, +0x572D,0x572B,0x0000,0x572C,0x572E,0x0000,0x3164,0x446E, +0x572F,0x7430,0x377A,0x3276,0x4736,0x842C,0x5730,0x467B, + +/* 5F00h */ +0x7431,0x4A5B,0x7432,0x5731,0x4F2E,0x0000,0x0000,0x7433, +0x842D,0x5732,0x4A40,0x5735,0x5021,0x5031,0x842E,0x3C30, +0x4675,0x5736,0x0000,0x355D,0x4424,0x307A,0x5737,0x4A26, +0x3930,0x0000,0x0000,0x4350,0x842F,0x7434,0x8431,0x446F, +0x0000,0x0000,0x0000,0x7435,0x0000,0x4C6F,0x3839,0x384C, +0x0000,0x5738,0x0000,0x0000,0x0000,0x5739,0x0000,0x573F, +0x0000,0x3C65,0x0000,0x0000,0x7436,0x4425,0x7437,0x362F, +0x573A,0x0000,0x0000,0x0000,0x492B,0x7438,0x4346,0x0000, +0x7439,0x573B,0x0000,0x0000,0x0000,0x743A,0x0000,0x8432, +0x573C,0x0000,0x3630,0x0000,0x573D,0x0000,0x573E,0x0000, +0x0000,0x5740,0x0000,0x4576,0x743B,0x0000,0x5741,0x5742, +0x743C,0x5743,0x0000,0x0000,0x5734,0x5733,0x0000,0x0000, +0x0000,0x5744,0x3741,0x8433,0x743D,0x0000,0x4927,0x743E, +0x0000,0x3A4C,0x4937,0x4426,0x494B,0x5745,0x0000,0x0000, +0x3E34,0x3146,0x8434,0x5746,0x0000,0x0000,0x0000,0x5747, +0x0000,0x4C72,0x0000,0x0000,0x4860,0x743F,0x8435,0x574A, +0x317D,0x402C,0x5749,0x5748,0x3742,0x4254,0x0000,0x574E, +0x574C,0x7440,0x574B,0x4E27,0x3865,0x0000,0x0000,0x8436, +0x3D79,0x574D,0x454C,0x3D3E,0x0000,0x0000,0x0000,0x4640, +0x5751,0x5750,0x0000,0x0000,0x7441,0x0000,0x574F,0x0000, +0x5752,0x3866,0x8437,0x0000,0x8438,0x0000,0x0000,0x7442, +0x5753,0x497C,0x3D5B,0x0000,0x0000,0x5754,0x4879,0x7443, +0x0000,0x0000,0x0000,0x4641,0x4427,0x7444,0x0000,0x7445, +0x8439,0x4530,0x0000,0x0000,0x5755,0x352B,0x0000,0x0000, +0x0000,0x0000,0x0000,0x3F34,0x843A,0x492C,0x0000,0x843C, +0x0000,0x7446,0x0000,0x843D,0x3477,0x4726,0x0000,0x0000, +0x0000,0x0000,0x843E,0x843F,0x8440,0x0000,0x5756,0x3B56, +0x4B3A,0x4B3B,0x0000,0x0000,0x317E,0x575B,0x7447,0x0000, +0x4369,0x7448,0x8441,0x0000,0x5758,0x0000,0x0000,0x0000, +0x0000,0x7449,0x0000,0x3277,0x0000,0x0000,0x8442,0x8443, +0x582D,0x575A,0x0000,0x8444,0x0000,0x4730,0x0000,0x0000, +0x5759,0x0000,0x0000,0x5757,0x8445,0x397A,0x0000,0x575D, + +/* 6000h */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x744A,0x5763,0x5769, +0x5761,0x0000,0x455C,0x0000,0x744B,0x5766,0x495D,0x8447, +0x744C,0x5760,0x0000,0x5765,0x4E67,0x3B57,0x0000,0x0000, +0x4255,0x575E,0x8448,0x0000,0x8449,0x355E,0x5768,0x402D, +0x3165,0x5762,0x3278,0x5767,0x0000,0x0000,0x0000,0x3631, +0x0000,0x5764,0x0000,0x744D,0x0000,0x744E,0x0000,0x0000, +0x0000,0x0000,0x576A,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x576C,0x5776,0x5774,0x0000,0x0000,0x5771,0x744F, +0x0000,0x0000,0x5770,0x4E78,0x844B,0x5772,0x0000,0x0000, +0x3632,0x0000,0x3931,0x0000,0x0000,0x3D7A,0x0000,0x0000, +0x0000,0x5779,0x576B,0x0000,0x0000,0x0000,0x0000,0x576F, +0x575F,0x0000,0x327A,0x5773,0x5775,0x4351,0x0000,0x0000, +0x3A28,0x3238,0x576D,0x5778,0x5777,0x3633,0x0000,0x4229, +0x3366,0x0000,0x0000,0x0000,0x0000,0x3743,0x0000,0x576E, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x844C, +0x0000,0x577A,0x0000,0x577D,0x5821,0x0000,0x0000,0x0000, +0x0000,0x3C3D,0x844D,0x5827,0x4470,0x577B,0x0000,0x0000, +0x0000,0x0000,0x5825,0x0000,0x3279,0x844E,0x5823,0x5824, +0x0000,0x0000,0x577E,0x5822,0x0000,0x7451,0x7452,0x3867, +0x4D2A,0x0000,0x0000,0x3435,0x0000,0x0000,0x3159,0x5826, +0x844F,0x473A,0x302D,0x0000,0x0000,0x0000,0x0000,0x0000, +0x8451,0x8452,0x4861,0x575C,0x582C,0x5830,0x4C65,0x0000, +0x5829,0x0000,0x0000,0x0000,0x4569,0x582E,0x8453,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x3E70,0x582F,0x4657, +0x8454,0x0000,0x0000,0x7453,0x0000,0x0000,0x0000,0x0000, +0x0000,0x4F47,0x0000,0x582B,0x7454,0x7455,0x0000,0x0000, +0x5831,0x8455,0x397B,0x8456,0x404B,0x7456,0x0000,0x3054, +0x582A,0x5828,0x0000,0x415A,0x0000,0x0000,0x0000,0x577C, +0x3B34,0x0000,0x0000,0x0000,0x0000,0x0000,0x8457,0x0000, +0x4246,0x583D,0x8458,0x415B,0x5838,0x8459,0x5835,0x5836, +0x7457,0x3C66,0x5839,0x583C,0x0000,0x0000,0x0000,0x0000, + +/* 6100h */ +0x5837,0x3D25,0x0000,0x583A,0x0000,0x0000,0x5834,0x0000, +0x4C7C,0x4C7B,0x0000,0x0000,0x0000,0x583E,0x583F,0x3055, +0x845A,0x0000,0x845B,0x845C,0x0000,0x5833,0x0000,0x0000, +0x0000,0x845D,0x3672,0x3026,0x7458,0x0000,0x845E,0x3436, +0x0000,0x583B,0x0000,0x0000,0x0000,0x0000,0x0000,0x5843, +0x5842,0x0000,0x0000,0x7459,0x5847,0x0000,0x0000,0x0000, +0x745A,0x0000,0x0000,0x0000,0x5848,0x0000,0x0000,0x745B, +0x0000,0x0000,0x845F,0x0000,0x5846,0x5849,0x5841,0x5845, +0x0000,0x8461,0x584A,0x0000,0x584B,0x0000,0x8462,0x5840, +0x3B7C,0x0000,0x5844,0x4256,0x3932,0x5832,0x3F35,0x0000, +0x0000,0x0000,0x0000,0x5858,0x0000,0x4A69,0x0000,0x0000, +0x584E,0x584F,0x5850,0x0000,0x0000,0x5857,0x0000,0x5856, +0x8463,0x0000,0x4B7D,0x3437,0x0000,0x5854,0x0000,0x3745, +0x3334,0x0000,0x0000,0x5851,0x0000,0x0000,0x4E38,0x5853, +0x3056,0x5855,0x0000,0x584C,0x5852,0x5859,0x3744,0x584D, +0x0000,0x0000,0x0000,0x0000,0x8464,0x0000,0x4D5D,0x0000, +0x0000,0x0000,0x4D2B,0x0000,0x0000,0x0000,0x0000,0x585C, +0x0000,0x0000,0x5860,0x0000,0x0000,0x745D,0x417E,0x0000, +0x4E79,0x5861,0x8466,0x8467,0x585E,0x0000,0x585B,0x8468, +0x8469,0x585A,0x585F,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x4A30,0x846A,0x0000,0x4634, +0x846B,0x3746,0x0000,0x5862,0x585D,0x846C,0x5863,0x0000, +0x0000,0x0000,0x377B,0x0000,0x0000,0x0000,0x3231,0x0000, +0x0000,0x7460,0x586B,0x0000,0x745F,0x0000,0x3438,0x0000, +0x0000,0x0000,0x0000,0x5869,0x0000,0x0000,0x586A,0x3A29, +0x5868,0x5866,0x5865,0x586C,0x5864,0x586E,0x0000,0x0000, +0x327B,0x0000,0x0000,0x0000,0x0000,0x846E,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x846F,0x0000,0x8470, +0x0000,0x0000,0x0000,0x5870,0x0000,0x0000,0x586F,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x4428,0x0000,0x5873,0x8471,0x5871,0x5867, +0x377C,0x0000,0x5872,0x0000,0x5876,0x5875,0x5877,0x5874, + +/* 6200h */ +0x5878,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x5879,0x587A,0x4A6A,0x0000,0x587C,0x587B,0x3D3F,0x0000, +0x402E,0x3266,0x327C,0x0000,0x587D,0x8473,0x303F,0x0000, +0x0000,0x0000,0x404C,0x587E,0x0000,0x6C43,0x5921,0x3761, +0x0000,0x5922,0x7462,0x8474,0x0000,0x0000,0x406F,0x0000, +0x0000,0x8475,0x5923,0x0000,0x0000,0x0000,0x5924,0x353A, +0x5925,0x0000,0x5926,0x5927,0x4257,0x0000,0x0000,0x0000, +0x384D,0x0000,0x0000,0x4C61,0x0000,0x0000,0x7463,0x4B3C, +0x3D6A,0x5928,0x0000,0x7464,0x0000,0x0000,0x8476,0x4070, +0x6E3D,0x4862,0x0000,0x3C6A,0x8477,0x3A4D,0x5929,0x0000, +0x0000,0x8478,0x8479,0x4247,0x0000,0x4A27,0x7465,0x0000, +0x4271,0x0000,0x7466,0x592C,0x0000,0x0000,0x592A,0x0000, +0x592D,0x847A,0x0000,0x592B,0x847B,0x0000,0x0000,0x0000, +0x592E,0x0000,0x0000,0x0000,0x0000,0x847D,0x4A31,0x7467, +0x0000,0x3037,0x0000,0x847E,0x0000,0x0000,0x495E,0x0000, +0x0000,0x4863,0x0000,0x847C,0x592F,0x0000,0x5932,0x3E35, +0x353B,0x0000,0x5930,0x5937,0x3E36,0x7468,0x0000,0x0000, +0x0000,0x5931,0x4744,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x4D5E,0x5933,0x5934,0x5938,0x456A,0x5935,0x3933, +0x405E,0x8521,0x0000,0x5946,0x4834,0x0000,0x4272,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x8522,0x0000, +0x0000,0x0000,0x0000,0x4864,0x5A2D,0x0000,0x0000,0x0000, +0x0000,0x4A7A,0x0000,0x0000,0x0000,0x4471,0x0000,0x0000, +0x0000,0x4B75,0x0000,0x593B,0x3221,0x436A,0x0000,0x0000, +0x0000,0x0000,0x5944,0x0000,0x7469,0x4334,0x593E,0x5945, +0x5940,0x5947,0x5943,0x0000,0x5942,0x476F,0x0000,0x593C, +0x327D,0x593A,0x3571,0x4273,0x5936,0x8523,0x746A,0x5939, +0x3934,0x405B,0x0000,0x3E37,0x5941,0x4752,0x0000,0x0000, +0x3572,0x3348,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x3367,0x3F21,0x5949,0x594E, +0x0000,0x594A,0x0000,0x377D,0x0000,0x594F,0x3B22,0x3969, +0x0000,0x0000,0x0000,0x0000,0x746B,0x8525,0x3D26,0x593D, + +/* 6300h */ +0x0000,0x3B7D,0x594C,0x8526,0x0000,0x0000,0x0000,0x3B58, +0x594D,0x3044,0x746C,0x0000,0x5948,0x8527,0x0000,0x0000, +0x8528,0x4429,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x746D,0x3573,0x0000,0x0000,0x0000,0x0000,0x0000,0x3634, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x594B, +0x3027,0x0000,0x0000,0x3A43,0x0000,0x0000,0x0000,0x3F36, +0x0000,0x0000,0x852B,0x0000,0x0000,0x852C,0x0000,0x0000, +0x0000,0x746E,0x4472,0x852D,0x852E,0x4854,0x5951,0x415E, +0x0000,0x852F,0x0000,0x746F,0x8530,0x0000,0x0000,0x0000, +0x0000,0x422A,0x0000,0x0000,0x3B2B,0x5952,0x8531,0x5954, +0x5950,0x0000,0x0000,0x0000,0x0000,0x4A61,0x0000,0x443D, +0x0000,0x8533,0x0000,0x0000,0x415C,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x7470,0x0000,0x4A7B, +0x3C4E,0x5960,0x0000,0x595F,0x8536,0x0000,0x3F78,0x0000, +0x0000,0x0000,0x377E,0x0000,0x0000,0x0000,0x5959,0x3E39, +0x0000,0x0000,0x4668,0x4731,0x7471,0x0000,0x0000,0x0000, +0x5957,0x0000,0x0000,0x415D,0x8537,0x0000,0x0000,0x0000, +0x3C78,0x595C,0x0000,0x0000,0x3E38,0x0000,0x5956,0x595B, +0x0000,0x0000,0x4753,0x0000,0x853A,0x0000,0x5955,0x0000, +0x3721,0x8538,0x0000,0x335D,0x0000,0x0000,0x0000,0x595D, +0x4E2B,0x3A4E,0x4335,0x595A,0x0000,0x405C,0x0000,0x3935, +0x3F64,0x3166,0x413C,0x5958,0x3545,0x0000,0x0000,0x0000, +0x0000,0x0000,0x3747,0x0000,0x444F,0x595E,0x0000,0x0000, +0x0000,0x0000,0x0000,0x415F,0x0000,0x853B,0x5961,0x0000, +0x5963,0x0000,0x0000,0x4237,0x5969,0x0000,0x5964,0x0000, +0x0000,0x5966,0x0000,0x0000,0x0000,0x0000,0x0000,0x4941, +0x4473,0x0000,0x5967,0x0000,0x853D,0x853E,0x4D2C,0x0000, +0x0000,0x0000,0x4D48,0x3439,0x853F,0x0000,0x0000,0x0000, +0x8540,0x302E,0x0000,0x5965,0x0000,0x7472,0x0000,0x0000, +0x0000,0x5962,0x0000,0x8541,0x8542,0x7473,0x3478,0x0000, +0x0000,0x0000,0x8543,0x0000,0x3167,0x7474,0x5968,0x853C, +0x0000,0x0000,0x4D49,0x0000,0x0000,0x0000,0x0000,0x0000, + +/* 6400h */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x596C,0x0000, +0x0000,0x8544,0x0000,0x0000,0x0000,0x423B,0x0000,0x5973, +0x7475,0x0000,0x0000,0x596D,0x7476,0x0000,0x596A,0x5971, +0x0000,0x0000,0x0000,0x0000,0x5953,0x0000,0x8545,0x0000, +0x0000,0x0000,0x7477,0x0000,0x0000,0x8546,0x596E,0x0000, +0x5972,0x8547,0x0000,0x0000,0x4842,0x456B,0x0000,0x8548, +0x0000,0x0000,0x0000,0x0000,0x596B,0x0000,0x596F,0x0000, +0x0000,0x0000,0x3748,0x0000,0x0000,0x0000,0x3A71,0x0000, +0x0000,0x0000,0x405D,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x5977,0x0000, +0x0000,0x7479,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x4526,0x0000,0x8549,0x854A,0x0000,0x854B,0x0000,0x0000, +0x747A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x5974, +0x0000,0x4B60,0x0000,0x0000,0x0000,0x747B,0x0000,0x5975, +0x0000,0x0000,0x0000,0x854C,0x0000,0x0000,0x5976,0x0000, +0x4C4E,0x7478,0x4022,0x0000,0x0000,0x854D,0x0000,0x0000, +0x0000,0x0000,0x0000,0x3762,0x0000,0x0000,0x0000,0x854E, +0x597D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x854F,0x3B35,0x597A,0x0000,0x5979,0x0000,0x0000, +0x0000,0x0000,0x4732,0x0000,0x0000,0x8550,0x4635,0x8551, +0x0000,0x0000,0x0000,0x0000,0x4531,0x597B,0x0000,0x0000, +0x0000,0x597C,0x0000,0x496F,0x0000,0x4745,0x3B23,0x0000, +0x4071,0x0000,0x4B50,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x3349,0x0000,0x5A25,0x597E,0x0000,0x747D,0x747E, +0x0000,0x4D4A,0x5A27,0x0000,0x7521,0x5A23,0x0000,0x5A24, +0x0000,0x0000,0x7522,0x8552,0x8553,0x4160,0x747C,0x0000, +0x7523,0x0000,0x5A22,0x0000,0x593F,0x8554,0x0000,0x8555, +0x5A26,0x0000,0x5A21,0x0000,0x0000,0x0000,0x0000,0x0000, +0x5A2B,0x5A2C,0x4527,0x5A2E,0x8557,0x8558,0x3B24,0x5A29, +0x0000,0x0000,0x0000,0x0000,0x353C,0x0000,0x0000,0x5A2F, +0x0000,0x5A28,0x5A33,0x0000,0x5A32,0x0000,0x5A31,0x7524, +0x0000,0x0000,0x5A34,0x7525,0x0000,0x5A36,0x3E71,0x8559, + +/* 6500h */ +0x5A35,0x0000,0x0000,0x0000,0x855A,0x5A39,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x855C, +0x0000,0x0000,0x0000,0x0000,0x855D,0x0000,0x855E,0x0000, +0x5A37,0x0000,0x0000,0x0000,0x5A38,0x5970,0x8560,0x0000, +0x0000,0x0000,0x7526,0x5A3B,0x5A3A,0x0000,0x0000,0x0000, +0x0000,0x7527,0x5978,0x5A3C,0x5A30,0x0000,0x0000,0x3B59, +0x0000,0x0000,0x8561,0x0000,0x5A3D,0x5A3E,0x5A40,0x5A3F, +0x5A41,0x327E,0x0000,0x3936,0x0000,0x0000,0x4A7C,0x402F, +0x0000,0x0000,0x0000,0x0000,0x8562,0x384E,0x0000,0x0000, +0x5A43,0x0000,0x0000,0x0000,0x0000,0x5A46,0x0000,0x4952, +0x0000,0x355F,0x0000,0x0000,0x8563,0x5A45,0x5A44,0x4754, +0x5A47,0x3635,0x0000,0x0000,0x0000,0x5A49,0x5A48,0x0000, +0x0000,0x0000,0x343A,0x3B36,0x0000,0x0000,0x4658,0x7529, +0x0000,0x0000,0x0000,0x8564,0x3749,0x0000,0x0000,0x0000, +0x3F74,0x0000,0x5A4A,0x0000,0x4030,0x4528,0x0000,0x495F, +0x5A4B,0x0000,0x8565,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x8566,0x5A4C,0x5A4D,0x8567,0x8568,0x0000,0x4A38, +0x555D,0x4046,0x8569,0x0000,0x494C,0x0000,0x3A58,0x0000, +0x4865,0x4843,0x0000,0x0000,0x0000,0x0000,0x0000,0x454D, +0x0000,0x4E41,0x0000,0x5A4F,0x3C50,0x752A,0x0000,0x5A50, +0x0000,0x3036,0x0000,0x0000,0x3654,0x404D,0x0000,0x4960, +0x0000,0x0000,0x0000,0x5A51,0x3B42,0x4347,0x0000,0x3B5B, +0x3F37,0x0000,0x856A,0x0000,0x0000,0x856B,0x0000,0x5A52, +0x856C,0x4A7D,0x0000,0x0000,0x3177,0x3B5C,0x0000,0x856D, +0x0000,0x5A55,0x856E,0x5A53,0x5A56,0x4E39,0x5A54,0x0000, +0x0000,0x856F,0x0000,0x407B,0x5A57,0x0000,0x0000,0x4232, +0x0000,0x0000,0x5A58,0x0000,0x8570,0x0000,0x0000,0x347A, +0x0000,0x5A5A,0x0000,0x5A59,0x0000,0x0000,0x0000,0x0000, +0x5A5B,0x5A5C,0x347B,0x0000,0x0000,0x467C,0x4336,0x356C, +0x3B5D,0x4161,0x0000,0x0000,0x3D5C,0x3030,0x0000,0x0000, +0x0000,0x5A5D,0x8572,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x8573,0x3222,0x5A61,0x8574,0x0000,0x0000,0x0000, + +/* 6600h */ +0x752C,0x0000,0x3937,0x5A60,0x8575,0x0000,0x3A2B,0x3E3A, +0x8576,0x752D,0x5A5F,0x0000,0x3E3B,0x0000,0x4C40,0x3A2A, +0x0000,0x0000,0x0000,0x3057,0x404E,0x752E,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x5A66,0x0000,0x752F,0x4031, +0x3147,0x8577,0x7531,0x0000,0x7532,0x3D55,0x0000,0x4B66, +0x3A72,0x0000,0x8578,0x7533,0x0000,0x3E3C,0x0000,0x4027, +0x7534,0x7535,0x0000,0x7536,0x5A65,0x5A63,0x5A64,0x0000, +0x0000,0x0000,0x7530,0x0000,0x436B,0x0000,0x0000,0x5B26, +0x0000,0x5A6A,0x3B7E,0x3938,0x5A68,0x8579,0x0000,0x0000, +0x7538,0x5A69,0x0000,0x3F38,0x7539,0x0000,0x857B,0x5A67, +0x0000,0x857A,0x3B2F,0x0000,0x0000,0x0000,0x0000,0x857E, +0x0000,0x753B,0x753C,0x8621,0x0000,0x5A6C,0x5A6B,0x5A70, +0x0000,0x753D,0x5A71,0x8622,0x5A6D,0x753E,0x3322,0x5A6E, +0x5A6F,0x4855,0x8625,0x8626,0x8627,0x8628,0x4961,0x374A, +0x5A72,0x0000,0x0000,0x753F,0x4032,0x0000,0x3E3D,0x7540, +0x7541,0x0000,0x4352,0x8629,0x0000,0x0000,0x0000,0x0000, +0x862A,0x3647,0x0000,0x5A73,0x5A77,0x0000,0x0000,0x324B, +0x5A74,0x5A76,0x0000,0x0000,0x0000,0x7542,0x5A75,0x0000, +0x862B,0x3D6B,0x862C,0x0000,0x0000,0x0000,0x4348,0x3045, +0x5A78,0x862D,0x0000,0x0000,0x0000,0x5A79,0x0000,0x0000, +0x7544,0x0000,0x442A,0x0000,0x0000,0x0000,0x4E71,0x0000, +0x0000,0x0000,0x0000,0x3B43,0x0000,0x862F,0x4A6B,0x0000, +0x0000,0x8630,0x7545,0x0000,0x4B3D,0x8631,0x0000,0x0000, +0x5B22,0x5A7B,0x0000,0x7546,0x5A7E,0x0000,0x5A7D,0x8633, +0x0000,0x5A7A,0x0000,0x0000,0x5B21,0x0000,0x7547,0x465E, +0x7548,0x5A7C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x5B23,0x0000, +0x0000,0x3D6C,0x5B24,0x754A,0x4D4B,0x4778,0x0000,0x0000, +0x5B25,0x0000,0x0000,0x0000,0x0000,0x0000,0x5B27,0x0000, +0x754B,0x5B28,0x0000,0x0000,0x8635,0x0000,0x0000,0x0000, +0x5B29,0x0000,0x364A,0x3148,0x3939,0x5B2A,0x0000,0x5B2B, +0x3D71,0x4162,0x754C,0x7537,0x5258,0x413E,0x413D,0x4258, + +/* 6700h */ +0x3A47,0x8637,0x0000,0x5072,0x0000,0x8638,0x0000,0x0000, +0x376E,0x4D2D,0x0000,0x4A7E,0x0000,0x497E,0x0000,0x5B2C, +0x0000,0x0000,0x8639,0x754D,0x3A73,0x443F,0x5B2D,0x4F2F, +0x0000,0x863B,0x0000,0x4B3E,0x0000,0x442B,0x5B2E,0x347C, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x5B2F,0x5B30, +0x4C5A,0x0000,0x4C24,0x4B76,0x4B5C,0x3B25,0x5B32,0x0000, +0x0000,0x3C6B,0x0000,0x754F,0x4B51,0x0000,0x5B34,0x5B37, +0x5B36,0x0000,0x3479,0x0000,0x0000,0x3560,0x0000,0x5B33, +0x0000,0x5B35,0x0000,0x0000,0x0000,0x0000,0x5B38,0x7551, +0x7552,0x3F79,0x0000,0x0000,0x863E,0x863F,0x4D7B,0x3049, +0x3A60,0x423C,0x0000,0x3C5D,0x8640,0x0000,0x3E73,0x0000, +0x0000,0x5B3B,0x0000,0x0000,0x454E,0x8641,0x5B39,0x422B, +0x5B3A,0x3E72,0x4C5D,0x5B3C,0x5B3D,0x4D68,0x7550,0x0000, +0x0000,0x0000,0x5B42,0x0000,0x0000,0x393A,0x0000,0x4755, +0x5B3F,0x456C,0x5A5E,0x5A62,0x8645,0x354F,0x8646,0x4747, +0x0000,0x0000,0x0000,0x7553,0x5B41,0x0000,0x3E3E,0x4844, +0x0000,0x7554,0x0000,0x0000,0x0000,0x5B47,0x0000,0x487A, +0x0000,0x5B3E,0x0000,0x5B44,0x5B43,0x0000,0x0000,0x0000, +0x404F,0x0000,0x8648,0x7555,0x0000,0x4B6D,0x0000,0x4E53, +0x7556,0x0000,0x4B67,0x7557,0x324C,0x3B5E,0x0000,0x0000, +0x4F48,0x5B46,0x3F75,0x0000,0x0000,0x0000,0x5B45,0x0000, +0x0000,0x5B40,0x0000,0x0000,0x0000,0x0000,0x0000,0x384F, +0x864C,0x0000,0x864D,0x5B4C,0x5B4A,0x0000,0x324D,0x5B48, +0x5B4E,0x5B54,0x0000,0x7558,0x0000,0x0000,0x0000,0x0000, +0x755A,0x4248,0x0000,0x864E,0x4A41,0x0000,0x5B56,0x0000, +0x864F,0x0000,0x4922,0x0000,0x0000,0x0000,0x5B55,0x4770, +0x4B3F,0x343B,0x8650,0x4077,0x3D40,0x0000,0x0000,0x755B, +0x4453,0x8651,0x4D2E,0x8652,0x0000,0x5B51,0x5B50,0x0000, +0x0000,0x0000,0x5B52,0x0000,0x5B4F,0x0000,0x0000,0x5B57, +0x0000,0x5B4D,0x0000,0x0000,0x5B4B,0x0000,0x5B53,0x5B49, +0x8653,0x436C,0x0000,0x4C78,0x3C46,0x3A74,0x0000,0x8654, +0x0000,0x7559,0x0000,0x3A3A,0x755C,0x0000,0x4B6F,0x3341, + +/* 6800h */ +0x0000,0x755D,0x444E,0x464A,0x3149,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x864B,0x0000,0x0000,0x4072,0x0000,0x0000,0x4034,0x372A, +0x8658,0x0000,0x0000,0x0000,0x0000,0x755F,0x5B59,0x8659, +0x0000,0x393B,0x337C,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x5B5B,0x3374,0x5B61,0x7560,0x865A,0x0000,0x0000, +0x0000,0x7561,0x5B5E,0x865C,0x4073,0x0000,0x0000,0x0000, +0x334B,0x3A2C,0x0000,0x865D,0x334A,0x3A4F,0x865E,0x0000, +0x5B5C,0x3765,0x374B,0x456D,0x865F,0x8660,0x5B5A,0x0000, +0x3046,0x8661,0x0000,0x0000,0x8662,0x5B5D,0x5B5F,0x0000, +0x364D,0x372C,0x755E,0x343C,0x354B,0x8663,0x0000,0x8664, +0x0000,0x5B62,0x0000,0x7562,0x3A79,0x4B71,0x0000,0x3B37, +0x0000,0x0000,0x0000,0x5B63,0x0000,0x0000,0x0000,0x4930, +0x0000,0x0000,0x0000,0x8666,0x0000,0x0000,0x8667,0x0000, +0x0000,0x0000,0x7563,0x0000,0x5B6F,0x7564,0x3233,0x5B64, +0x0000,0x0000,0x8668,0x0000,0x8669,0x0000,0x5B75,0x5B65, +0x0000,0x4E42,0x866A,0x5B6C,0x0000,0x475F,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x5B74,0x0000,0x5B67, +0x866B,0x0000,0x0000,0x3034,0x5B69,0x0000,0x866C,0x393C, +0x866E,0x866F,0x8670,0x5B6B,0x8671,0x5B6A,0x0000,0x5B66, +0x5B71,0x0000,0x3E3F,0x7566,0x0000,0x7567,0x546D,0x3868, +0x4D7C,0x0000,0x8672,0x8673,0x0000,0x5B68,0x0000,0x4474, +0x3323,0x3A2D,0x7568,0x5B60,0x8674,0x5B70,0x3361,0x0000, +0x0000,0x5B6E,0x5B72,0x8675,0x456E,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x867A,0x347E,0x867B,0x5C32,0x0000, +0x7569,0x4C49,0x5B77,0x347D,0x867C,0x5B7E,0x0000,0x867D, +0x756A,0x0000,0x4B40,0x0000,0x5C21,0x5C23,0x867E,0x5C27, +0x5B79,0x8721,0x432A,0x0000,0x0000,0x0000,0x0000,0x456F, +0x5C2B,0x5B7C,0x0000,0x5C28,0x8722,0x8723,0x0000,0x5C22, +0x756B,0x0000,0x0000,0x0000,0x8724,0x756C,0x3F39,0x5C2C, +0x756D,0x756E,0x4033,0x0000,0x0000,0x0000,0x0000,0x8725, +0x0000,0x5C2A,0x343D,0x8676,0x756F,0x0000,0x0000,0x0000, + +/* 6900h */ +0x4F50,0x5B76,0x0000,0x8726,0x5C26,0x3058,0x0000,0x8727, +0x5B78,0x0000,0x7570,0x4C3A,0x5B7D,0x3F22,0x4447,0x5B73, +0x0000,0x0000,0x5C25,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x3F7A,0x5C2F,0x3371,0x3821,0x0000,0x0000,0x0000, +0x0000,0x5C31,0x5B7A,0x5C30,0x0000,0x5C29,0x5B7B,0x0000, +0x5C2D,0x0000,0x5C2E,0x0000,0x0000,0x0000,0x0000,0x0000, +0x5C3F,0x0000,0x0000,0x0000,0x464E,0x7573,0x5C24,0x0000, +0x0000,0x5C3B,0x0000,0x872B,0x0000,0x5C3D,0x0000,0x4458, +0x0000,0x0000,0x7574,0x0000,0x0000,0x0000,0x872D,0x0000, +0x0000,0x7571,0x4D4C,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x4976,0x5C38,0x424A,0x0000,0x7575, +0x0000,0x5C3E,0x413F,0x0000,0x5C35,0x5C42,0x5C41,0x0000, +0x466F,0x5C40,0x466A,0x7576,0x7577,0x0000,0x0000,0x0000, +0x7578,0x872E,0x5C44,0x5C37,0x872F,0x3648,0x5C3A,0x3D5D, +0x0000,0x0000,0x8730,0x4760,0x5C3C,0x364B,0x0000,0x5C34, +0x5C36,0x5C33,0x8731,0x0000,0x4F30,0x335A,0x5C39,0x8732, +0x7579,0x5C43,0x3335,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x3A67,0x0000,0x0000,0x0000,0x315D,0x0000, +0x0000,0x5C54,0x8733,0x0000,0x4F31,0x5C57,0x8735,0x0000, +0x8736,0x0000,0x0000,0x3F3A,0x5C56,0x0000,0x0000,0x0000, +0x5C55,0x0000,0x0000,0x0000,0x0000,0x757B,0x8737,0x5C52, +0x0000,0x0000,0x0000,0x0000,0x0000,0x757C,0x5C46,0x0000, +0x8738,0x5C63,0x5C45,0x0000,0x5C58,0x0000,0x0000,0x8739, +0x0000,0x0000,0x873A,0x5C50,0x873B,0x0000,0x5C4B,0x5C48, +0x873C,0x5C49,0x0000,0x5C51,0x0000,0x0000,0x0000,0x7422, +0x0000,0x0000,0x5C4E,0x393D,0x4448,0x4164,0x5C4C,0x757D, +0x5C47,0x873D,0x0000,0x5C4A,0x0000,0x0000,0x873E,0x0000, +0x4D4D,0x4B6A,0x0000,0x0000,0x0000,0x5C4F,0x5C59,0x0000, +0x0000,0x0000,0x7622,0x8744,0x0000,0x0000,0x0000,0x5C61, +0x5C5A,0x7623,0x7624,0x5C67,0x0000,0x5C65,0x8745,0x8746, +0x0000,0x0000,0x5C60,0x8747,0x8749,0x7625,0x7626,0x0000, +0x0000,0x5C5F,0x0000,0x4450,0x0000,0x4165,0x874A,0x5C5D, + +/* 6A00h */ +0x0000,0x0000,0x5C5B,0x0000,0x0000,0x5C62,0x0000,0x0000, +0x0000,0x0000,0x5C68,0x4875,0x5C6E,0x0000,0x0000,0x7627, +0x0000,0x874B,0x5C69,0x5C6C,0x5C66,0x7628,0x0000,0x4374, +0x0000,0x4938,0x874C,0x5C5C,0x0000,0x874D,0x5C64,0x3E40, +0x0000,0x4C4F,0x5C78,0x5C6B,0x0000,0x0000,0x0000,0x0000, +0x0000,0x3822,0x3223,0x335F,0x0000,0x0000,0x5C53,0x0000, +0x8741,0x0000,0x874F,0x8750,0x8751,0x3E41,0x5C70,0x0000, +0x5C77,0x3C79,0x3372,0x762A,0x0000,0x432E,0x762B,0x8752, +0x0000,0x0000,0x0000,0x0000,0x5C6D,0x762C,0x8753,0x5C72, +0x5C76,0x8754,0x0000,0x3636,0x0000,0x0000,0x8756,0x0000, +0x762D,0x0000,0x8757,0x0000,0x0000,0x0000,0x762E,0x0000, +0x354C,0x5C74,0x0000,0x762F,0x0000,0x0000,0x0000,0x3521, +0x0000,0x464B,0x5C73,0x0000,0x8758,0x0000,0x5C75,0x0000, +0x0000,0x0000,0x0000,0x7630,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x5C6F,0x7631,0x0000,0x0000,0x0000,0x0000, +0x5C71,0x0000,0x8755,0x0000,0x0000,0x0000,0x875A,0x3360, +0x4349,0x0000,0x0000,0x875B,0x5C7C,0x0000,0x0000,0x0000, +0x0000,0x7633,0x0000,0x875C,0x0000,0x5C7A,0x3869,0x0000, +0x5C79,0x875E,0x0000,0x0000,0x7634,0x0000,0x0000,0x5D21, +0x0000,0x0000,0x0000,0x0000,0x5B58,0x7635,0x7636,0x875F, +0x5C7B,0x8760,0x5C7D,0x5C7E,0x0000,0x7637,0x0000,0x0000, +0x0000,0x0000,0x5D2C,0x8762,0x5D28,0x0000,0x5B6D,0x0000, +0x0000,0x0000,0x0000,0x5D27,0x0000,0x0000,0x0000,0x0000, +0x5D26,0x0000,0x0000,0x5D23,0x0000,0x8763,0x0000,0x0000, +0x0000,0x5C6A,0x5D25,0x5D24,0x0000,0x0000,0x8764,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x8766,0x5D2A,0x0000,0x4F26,0x8765,0x0000,0x0000,0x0000, +0x0000,0x0000,0x5D2D,0x367B,0x8767,0x8768,0x5D29,0x5D2B, +0x0000,0x0000,0x0000,0x0000,0x7638,0x0000,0x0000,0x7639, +0x4827,0x0000,0x5D2E,0x0000,0x876B,0x0000,0x0000,0x0000, +0x0000,0x876C,0x876D,0x876E,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x5D32,0x5D2F,0x0000,0x876F,0x0000,0x0000, + +/* 6B00h */ +0x0000,0x0000,0x0000,0x0000,0x4D73,0x5D30,0x0000,0x0000, +0x0000,0x0000,0x5C5E,0x8771,0x0000,0x0000,0x0000,0x8772, +0x8773,0x8774,0x5D33,0x0000,0x0000,0x0000,0x5D34,0x8776, +0x0000,0x0000,0x0000,0x763C,0x0000,0x3135,0x763D,0x5D36, +0x3767,0x3C21,0x0000,0x3655,0x0000,0x0000,0x0000,0x3224, +0x0000,0x0000,0x0000,0x0000,0x763E,0x0000,0x0000,0x8778, +0x0000,0x0000,0x4D5F,0x0000,0x0000,0x763F,0x0000,0x5D38, +0x5D37,0x5D3A,0x353D,0x0000,0x0000,0x3656,0x343E,0x0000, +0x0000,0x0000,0x0000,0x5D3D,0x0000,0x0000,0x7640,0x5D3C, +0x0000,0x5D3E,0x8779,0x0000,0x324E,0x0000,0x4337,0x0000, +0x5D3F,0x0000,0x0000,0x343F,0x5D41,0x0000,0x7641,0x0000, +0x877A,0x5D40,0x0000,0x5D42,0x0000,0x0000,0x0000,0x5D43, +0x7642,0x5D44,0x3B5F,0x4035,0x3A21,0x7643,0x4970,0x7644, +0x0000,0x4A62,0x4F44,0x0000,0x877B,0x0000,0x0000,0x3B75, +0x0000,0x0000,0x0000,0x3A50,0x4E72,0x877C,0x0000,0x7645, +0x5D45,0x5D46,0x877D,0x3B60,0x0000,0x0000,0x0000,0x5D47, +0x5D48,0x877E,0x7646,0x5D4A,0x5D49,0x0000,0x4B58,0x0000, +0x0000,0x3D5E,0x3C6C,0x3B44,0x0000,0x5D4B,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x5D4D,0x3F23,0x0000, +0x5D4C,0x0000,0x0000,0x8821,0x0000,0x0000,0x5D4E,0x0000, +0x0000,0x0000,0x0000,0x0000,0x5D4F,0x0000,0x0000,0x0000, +0x0000,0x7647,0x5D50,0x5D51,0x0000,0x7648,0x8822,0x5D52, +0x0000,0x5D54,0x5D53,0x5D55,0x3225,0x434A,0x0000,0x5D56, +0x0000,0x0000,0x3B26,0x334C,0x5D57,0x8824,0x8825,0x4542, +0x544C,0x0000,0x0000,0x0000,0x0000,0x3523,0x5D58,0x8826, +0x8827,0x8828,0x0000,0x5D59,0x0000,0x4A6C,0x4B68,0x764A, +0x0000,0x0000,0x4647,0x5D5A,0x4866,0x0000,0x764B,0x764C, +0x487B,0x0000,0x8829,0x4C53,0x0000,0x0000,0x0000,0x5D5B, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x882A,0x882B, +0x0000,0x0000,0x0000,0x5D5D,0x5D5C,0x0000,0x882C,0x5D5F, +0x0000,0x882D,0x0000,0x5D5E,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x764D, + +/* 6C00h */ +0x0000,0x0000,0x882E,0x0000,0x0000,0x764E,0x0000,0x0000, +0x5D61,0x0000,0x882F,0x0000,0x0000,0x0000,0x8830,0x3B61, +0x764F,0x4C31,0x0000,0x5D62,0x5D63,0x0000,0x0000,0x3524, +0x0000,0x0000,0x0000,0x5D64,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x5D66,0x5D65,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x7650,0x3F65,0x8831,0x8832,0x4939, +0x314A,0x0000,0x8833,0x0000,0x0000,0x0000,0x4845,0x8835, +0x4475,0x3D41,0x3561,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x8836,0x4846,0x0000, +0x3C2E,0x0000,0x0000,0x0000,0x0000,0x5D68,0x0000,0x3440, +0x0000,0x7651,0x3178,0x8837,0x7652,0x4672,0x5D67,0x393E, +0x4353,0x0000,0x5D69,0x0000,0x0000,0x0000,0x0000,0x884F, +0x5D71,0x0000,0x5D6A,0x0000,0x0000,0x8838,0x0000,0x0000, +0x4241,0x0000,0x3562,0x5D72,0x7654,0x0000,0x7655,0x0000, +0x0000,0x0000,0x3768,0x0000,0x0000,0x3525,0x5D70,0x0000, +0x0000,0x5D6E,0x5D6B,0x4D60,0x8839,0x7656,0x7657,0x0000, +0x4440,0x883A,0x0000,0x0000,0x4659,0x5D6C,0x0000,0x0000, +0x5D74,0x0000,0x5D73,0x3723,0x883C,0x883D,0x322D,0x883E, +0x7658,0x3A3B,0x5D6D,0x5D6F,0x7659,0x0000,0x0000,0x0000, +0x0000,0x4B57,0x4274,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x7653,0x4B77,0x0000,0x883F,0x5D7C,0x0000, +0x0000,0x5D7D,0x0000,0x324F,0x0000,0x0000,0x0000,0x0000, +0x4A28,0x4C7D,0x5E21,0x3C23,0x3E42,0x5D78,0x5D7E,0x3168, +0x0000,0x3637,0x8840,0x0000,0x5D75,0x5D7A,0x765B,0x0000, +0x0000,0x4074,0x4771,0x0000,0x4867,0x0000,0x0000,0x0000, +0x8841,0x0000,0x0000,0x5D77,0x765C,0x4B21,0x8843,0x5D79, +0x0000,0x5E24,0x8844,0x5E22,0x8845,0x5D7B,0x0000,0x0000, +0x765D,0x4B22,0x4748,0x3563,0x0000,0x4525,0x0000,0x0000, +0x436D,0x8846,0x5E25,0x765E,0x8847,0x8848,0x765F,0x5E23, +0x4259,0x5D76,0x0000,0x314B,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x765A,0x0000,0x0000,0x0000,0x0000, + +/* 6D00h */ +0x884A,0x0000,0x0000,0x0000,0x7661,0x0000,0x0000,0x0000, +0x0000,0x0000,0x884B,0x4D4E,0x5E30,0x0000,0x7662,0x0000, +0x0000,0x0000,0x5E2F,0x0000,0x0000,0x0000,0x0000,0x4076, +0x0000,0x5E2C,0x0000,0x4D6C,0x0000,0x0000,0x4636,0x5E26, +0x0000,0x0000,0x0000,0x0000,0x884C,0x4445,0x884D,0x884E, +0x0000,0x314C,0x393F,0x5E29,0x0000,0x0000,0x7663,0x8850, +0x0000,0x7664,0x3D27,0x5E2E,0x8865,0x5E2D,0x5E28,0x0000, +0x5E2B,0x7665,0x0000,0x3368,0x8851,0x5E2A,0x4749,0x7666, +0x0000,0x4E2E,0x0000,0x0000,0x3E74,0x4075,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x7667,0x5E36,0x5E34,0x8852,0x494D,0x0000,0x8853,0x0000, +0x8854,0x0000,0x0000,0x5E31,0x5E33,0x7668,0x313A,0x0000, +0x0000,0x3940,0x4F32,0x0000,0x333D,0x0000,0x4962,0x0000, +0x8855,0x0000,0x0000,0x0000,0x4D61,0x0000,0x0000,0x3324, +0x3F3B,0x5E35,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x8856,0x8857,0x766A,0x0000,0x0000,0x5E3A,0x0000,0x766B, +0x3E43,0x766C,0x8858,0x0000,0x4D30,0x8859,0x5E37,0x0000, +0x0000,0x885A,0x0000,0x5E32,0x766D,0x5E38,0x0000,0x0000, +0x885B,0x4E5E,0x0000,0x4573,0x4642,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x766E,0x8861,0x766F,0x0000,0x8862,0x3336, +0x0000,0x0000,0x3155,0x0000,0x8863,0x5E3E,0x0000,0x0000, +0x5E41,0x0000,0x0000,0x0000,0x4E43,0x0000,0x0000,0x7670, +0x4D64,0x0000,0x8864,0x0000,0x7671,0x5E48,0x5E42,0x5E3F, +0x8866,0x0000,0x0000,0x4E54,0x5E45,0x0000,0x8867,0x8868, +0x8869,0x3D4A,0x5E47,0x0000,0x0000,0x5E4C,0x7672,0x0000, +0x4571,0x5E4A,0x7673,0x7674,0x0000,0x7675,0x5E44,0x886A, +0x0000,0x4338,0x0000,0x0000,0x5E4B,0x0000,0x5E40,0x0000, +0x5E46,0x886B,0x5E4D,0x307C,0x5E43,0x0000,0x5E4E,0x0000, +0x0000,0x3F3C,0x0000,0x3D5F,0x0000,0x4A25,0x886C,0x3A2E, +0x0000,0x5E3B,0x5E49,0x453A,0x7676,0x0000,0x0000,0x0000, + +/* 6E00h */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x4036,0x0000,0x3369, +0x3A51,0x3E44,0x5E3D,0x3D42,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x374C,0x0000,0x5E3C,0x0000,0x885D, +0x0000,0x5E52,0x3D6D,0x383A,0x0000,0x5E61,0x886E,0x5E5B, +0x3574,0x454F,0x886F,0x5E56,0x5E5F,0x302F,0x3132,0x8870, +0x0000,0x3239,0x0000,0x5E58,0x422C,0x5E4F,0x5E51,0x3941, +0x0000,0x0000,0x8872,0x0000,0x7678,0x0000,0x886D,0x0000, +0x5E62,0x0000,0x5E5D,0x0000,0x8873,0x0000,0x5E55,0x0000, +0x0000,0x0000,0x0000,0x5E5C,0x7679,0x0000,0x0000,0x0000, +0x8874,0x8875,0x4C2B,0x8876,0x8877,0x5E5A,0x5E5E,0x8878, +0x0000,0x8879,0x0000,0x887A,0x887B,0x0000,0x3850,0x887C, +0x3E45,0x0000,0x0000,0x4339,0x767A,0x0000,0x767B,0x5E54, +0x0000,0x0000,0x0000,0x887D,0x0000,0x0000,0x0000,0x4D2F, +0x0000,0x0000,0x0000,0x5E57,0x0000,0x0000,0x5E50,0x4572, +0x0000,0x0000,0x5E53,0x0000,0x0000,0x0000,0x5E59,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x4F51,0x3C3E, +0x4B7E,0x0000,0x5E63,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x482E,0x0000,0x0000,0x5E6F, +0x383B,0x0000,0x0000,0x8921,0x0000,0x0000,0x3D60,0x0000, +0x5E65,0x0000,0x0000,0x0000,0x4E2F,0x3942,0x0000,0x5E72, +0x0000,0x0000,0x306E,0x0000,0x0000,0x5E70,0x0000,0x8922, +0x0000,0x0000,0x5E64,0x767C,0x0000,0x0000,0x0000,0x5E6A, +0x0000,0x767D,0x5E6C,0x0000,0x8923,0x0000,0x4D4F,0x5E67, +0x0000,0x0000,0x452E,0x0000,0x0000,0x5E69,0x0000,0x8924, +0x0000,0x767E,0x5E71,0x8925,0x5E6B,0x4C47,0x0000,0x7721, +0x0000,0x5E66,0x8926,0x3C22,0x5E7E,0x0000,0x7722,0x0000, +0x0000,0x336A,0x0000,0x5E68,0x5E6D,0x5E6E,0x0000,0x0000, +0x0000,0x8927,0x0000,0x0000,0x0000,0x426C,0x425A,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x8929,0x5E76,0x0000,0x0000,0x5E7C, +0x0000,0x0000,0x5E7A,0x0000,0x4529,0x0000,0x0000,0x5F23, +0x5E77,0x892A,0x0000,0x892B,0x0000,0x0000,0x5E78,0x5E60, + +/* 6F00h */ +0x0000,0x3579,0x493A,0x0000,0x0000,0x0000,0x3C3F,0x0000, +0x0000,0x3977,0x892C,0x0000,0x892D,0x0000,0x0000,0x4F33, +0x7723,0x5E74,0x0000,0x5F22,0x3169,0x4166,0x0000,0x0000, +0x892E,0x0000,0x7724,0x0000,0x0000,0x0000,0x0000,0x0000, +0x4779,0x0000,0x3441,0x4E7A,0x0000,0x892F,0x0000,0x0000, +0x0000,0x0000,0x7726,0x4C21,0x4452,0x0000,0x0000,0x7727, +0x0000,0x5E7B,0x5E7D,0x7728,0x0000,0x8928,0x8930,0x0000, +0x4132,0x0000,0x0000,0x0000,0x8931,0x0000,0x5F21,0x5E79, +0x0000,0x5E73,0x0000,0x0000,0x0000,0x3443,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x7729,0x8933,0x0000,0x3769,0x0000,0x0000,0x8934, +0x5F2F,0x772A,0x8935,0x5F2A,0x4078,0x0000,0x772B,0x3363, +0x8936,0x772C,0x772D,0x0000,0x3D61,0x0000,0x5F33,0x0000, +0x8937,0x0000,0x0000,0x0000,0x0000,0x5F2C,0x442C,0x5F29, +0x4459,0x0000,0x0000,0x0000,0x5F4C,0x0000,0x0000,0x0000, +0x5F26,0x0000,0x5F25,0x0000,0x5F2E,0x8939,0x772E,0x0000, +0x5F28,0x5F27,0x5F2D,0x0000,0x4021,0x0000,0x5F24,0x0000, +0x772F,0x0000,0x0000,0x0000,0x7730,0x7731,0x5F30,0x0000, +0x893A,0x5F31,0x0000,0x0000,0x7732,0x0000,0x893B,0x3442, +0x8938,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x893D, +0x7733,0x5F36,0x0000,0x5F35,0x5F37,0x893E,0x0000,0x7734, +0x0000,0x0000,0x5F3A,0x0000,0x0000,0x0000,0x0000,0x893F, +0x0000,0x4543,0x0000,0x5F34,0x0000,0x8941,0x7735,0x0000, +0x0000,0x5F38,0x0000,0x0000,0x7736,0x0000,0x893C,0x0000, +0x3763,0x4279,0x5F32,0x473B,0x0000,0x0000,0x5F39,0x7737, +0x8942,0x8943,0x7738,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x5F3E,0x5F3C,0x0000,0x0000, +0x5F3F,0x0000,0x8944,0x5F42,0x0000,0x0000,0x8945,0x5F3B, +0x396A,0x4728,0x0000,0x0000,0x5E39,0x0000,0x0000,0x0000, +0x0000,0x8946,0x0000,0x4D74,0x5F3D,0x0000,0x5F41,0x4275, +0x773A,0x5F40,0x0000,0x5F2B,0x0000,0x773B,0x6F69,0x0000, +0x0000,0x7739,0x5F45,0x0000,0x8948,0x0000,0x5F49,0x0000, + +/* 7000h */ +0x8949,0x5F47,0x0000,0x0000,0x0000,0x773C,0x773D,0x894A, +0x0000,0x5F43,0x894B,0x5F44,0x0000,0x0000,0x0000,0x5F48, +0x0000,0x5F46,0x0000,0x0000,0x0000,0x494E,0x0000,0x0000, +0x5F4E,0x0000,0x5F4B,0x5F4A,0x0000,0x5F4D,0x4654,0x5F4F, +0x0000,0x0000,0x0000,0x894C,0x0000,0x0000,0x4375,0x426D, +0x773E,0x0000,0x0000,0x0000,0x4025,0x0000,0x0000,0x0000, +0x5F50,0x0000,0x5F52,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x894E,0x894F,0x0000,0x8950,0x0000,0x5F51,0x0000, +0x0000,0x0000,0x0000,0x8951,0x0000,0x0000,0x0000,0x8952, +0x0000,0x0000,0x773F,0x8953,0x5E75,0x0000,0x7742,0x0000, +0x0000,0x5F53,0x0000,0x0000,0x8955,0x0000,0x0000,0x0000, +0x4667,0x0000,0x0000,0x0000,0x0000,0x7740,0x7741,0x0000, +0x0000,0x0000,0x0000,0x5F54,0x7743,0x8956,0x0000,0x0000, +0x0000,0x8957,0x0000,0x3250,0x8958,0x0000,0x8959,0x4574, +0x3325,0x0000,0x0000,0x0000,0x0000,0x7744,0x895A,0x0000, +0x3564,0x0000,0x0000,0x0000,0x3C5E,0x3A52,0x895B,0x0000, +0x0000,0x895C,0x0000,0x0000,0x0000,0x7745,0x895D,0x0000, +0x0000,0x4F27,0x3F66,0x0000,0x0000,0x0000,0x316A,0x0000, +0x0000,0x0000,0x5F56,0x0000,0x0000,0x895E,0x0000,0x895F, +0x0000,0x5F55,0x0000,0x0000,0x0000,0x0000,0x0000,0x8962, +0x0000,0x0000,0x0000,0x0000,0x7746,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x7747,0x5F59,0x433A,0x5F5C,0x5F57, +0x0000,0x8963,0x0000,0x5F5B,0x0000,0x0000,0x0000,0x7748, +0x5F5A,0x4540,0x3059,0x8960,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x4E75,0x0000,0x8966,0x5F5E,0x0000,0x0000,0x0000,0x3128, +0x0000,0x8967,0x0000,0x8968,0x7749,0x0000,0x0000,0x0000, +0x774A,0x5F60,0x0000,0x0000,0x8969,0x5F5F,0x0000,0x5F5D, +0x0000,0x0000,0x0000,0x0000,0x774B,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x8965,0x0000,0x0000,0x0000, +0x0000,0x5F58,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x4B23,0x0000,0x0000,0x0000,0x5F62,0x0000,0x0000, + +/* 7100h */ +0x0000,0x0000,0x0000,0x896A,0x896B,0x0000,0x896C,0x896D, +0x896E,0x5F61,0x0000,0x0000,0x896F,0x0000,0x0000,0x774C, +0x0000,0x0000,0x0000,0x0000,0x316B,0x0000,0x0000,0x0000, +0x0000,0x5F64,0x4A32,0x0000,0x5F63,0x0000,0x774E,0x0000, +0x774F,0x4C35,0x0000,0x0000,0x0000,0x0000,0x3E47,0x0000, +0x0000,0x0000,0x0000,0x774D,0x0000,0x0000,0x7750,0x8971, +0x7751,0x8972,0x0000,0x0000,0x0000,0x0000,0x4133,0x0000, +0x0000,0x0000,0x0000,0x0000,0x3E46,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x7752,0x7753, +0x0000,0x4E7B,0x8974,0x0000,0x5F6A,0x0000,0x4079,0x0000, +0x8973,0x7754,0x7756,0x8975,0x0000,0x5F66,0x5F6B,0x0000, +0x0000,0x316C,0x0000,0x0000,0x7757,0x0000,0x8976,0x0000, +0x7758,0x0000,0x5F69,0x0000,0x4761,0x5F65,0x5F68,0x3E48, +0x7759,0x4851,0x0000,0x0000,0x5F6C,0x0000,0x3C51,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x407A,0x0000,0x0000, +0x8979,0x0000,0x0000,0x0000,0x5F6F,0x775B,0x0000,0x775C, +0x5F67,0x0000,0x3727,0x0000,0x0000,0x0000,0x0000,0x5F6D, +0x0000,0x0000,0x775D,0x0000,0x4D50,0x5F70,0x8978,0x0000, +0x0000,0x7426,0x0000,0x897A,0x0000,0x0000,0x0000,0x3D4F, +0x897B,0x0000,0x897C,0x0000,0x0000,0x0000,0x0000,0x0000, +0x5F71,0x0000,0x0000,0x0000,0x5F72,0x0000,0x897D,0x897E, +0x0000,0x472E,0x0000,0x8A21,0x0000,0x0000,0x0000,0x0000, +0x0000,0x5F74,0x775F,0x0000,0x0000,0x0000,0x5F75,0x0000, +0x0000,0x775E,0x0000,0x4733,0x7760,0x0000,0x0000,0x0000, +0x4575,0x5F77,0x0000,0x8A23,0x0000,0x0000,0x5F79,0x0000, +0x4E55,0x0000,0x5F76,0x8A24,0x5F78,0x316D,0x0000,0x5F73, +0x0000,0x8A25,0x0000,0x0000,0x8A26,0x0000,0x0000,0x535B, +0x5F7A,0x0000,0x0000,0x0000,0x0000,0x4167,0x3B38,0x5F7C, +0x0000,0x0000,0x0000,0x0000,0x5F7B,0x3F24,0x5259,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x5F7D,0x0000,0x0000, +0x0000,0x6021,0x0000,0x5F6E,0x5F7E,0x0000,0x7761,0x6022, + +/* 7200h */ +0x7762,0x0000,0x0000,0x0000,0x0000,0x0000,0x477A,0x8A27, +0x0000,0x0000,0x0000,0x0000,0x0000,0x6023,0x0000,0x0000, +0x6024,0x0000,0x0000,0x0000,0x0000,0x7763,0x0000,0x0000, +0x0000,0x0000,0x0000,0x6025,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x6026,0x0000,0x445E,0x8A2A,0x6028,0x6027,0x0000,0x0000, +0x6029,0x0000,0x602A,0x0000,0x8A2B,0x3C5F,0x4963,0x0000, +0x8A2C,0x8A2D,0x4C6C,0x602B,0x602C,0x4156,0x3C24,0x602D, +0x602E,0x0000,0x8A2F,0x0000,0x0000,0x0000,0x602F,0x4A52, +0x4847,0x0000,0x0000,0x6030,0x4757,0x0000,0x0000,0x0000, +0x0000,0x0000,0x442D,0x8A30,0x0000,0x7764,0x7765,0x8A31, +0x6031,0x3267,0x0000,0x356D,0x0000,0x4C46,0x0000,0x4C36, +0x0000,0x3234,0x4F34,0x8A32,0x0000,0x0000,0x0000,0x4B52, +0x0000,0x4A2A,0x0000,0x0000,0x0000,0x0000,0x8A34,0x8A35, +0x0000,0x0000,0x4037,0x0000,0x6032,0x0000,0x0000,0x0000, +0x8A36,0x4643,0x0000,0x0000,0x0000,0x3823,0x6033,0x8A37, +0x3A54,0x6035,0x6034,0x0000,0x0000,0x0000,0x0000,0x6036, +0x0000,0x0000,0x0000,0x0000,0x0000,0x7767,0x8A38,0x0000, +0x0000,0x0000,0x6037,0x0000,0x0000,0x0000,0x6038,0x0000, +0x0000,0x0000,0x0000,0x7768,0x0000,0x0000,0x0000,0x0000, +0x353E,0x0000,0x6039,0x0000,0x0000,0x0000,0x0000,0x603A, +0x0000,0x0000,0x0000,0x0000,0x3824,0x8A3A,0x8A3B,0x4848, +0x8A3C,0x8A3D,0x603C,0x0000,0x0000,0x0000,0x3E75,0x0000, +0x0000,0x603B,0x0000,0x0000,0x0000,0x0000,0x7769,0x0000, +0x776A,0x8A3E,0x3638,0x603D,0x603F,0x0000,0x603E,0x0000, +0x0000,0x0000,0x0000,0x0000,0x8A40,0x0000,0x6040,0x0000, +0x3851,0x0000,0x6041,0x0000,0x0000,0x0000,0x0000,0x3669, +0x0000,0x4140,0x0000,0x397D,0x0000,0x0000,0x0000,0x0000, +0x6043,0x6044,0x6042,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x3C6D,0x0000,0x0000,0x4648,0x3639,0x0000,0x0000, +0x0000,0x0000,0x0000,0x8A43,0x0000,0x0000,0x0000,0x6046, +0x432C,0x6045,0x8A44,0x776B,0x4F35,0x4762,0x0000,0x0000, + +/* 7300h */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x8A45, +0x0000,0x0000,0x6049,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x8A46,0x0000,0x0000,0x0000,0x604B,0x6048, +0x8A47,0x8A48,0x0000,0x4C54,0x604A,0x604C,0x0000,0x4E44, +0x0000,0x0000,0x0000,0x0000,0x0000,0x6050,0x0000,0x776D, +0x776E,0x604F,0x4376,0x472D,0x8A4B,0x0000,0x3825,0x604E, +0x0000,0x8A4C,0x0000,0x8A4D,0x604D,0x0000,0x4D31,0x4D32, +0x0000,0x8A4A,0x0000,0x0000,0x0000,0x8A4E,0x6051,0x316E, +0x0000,0x0000,0x0000,0x0000,0x3976,0x3B62,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x6052,0x6053, +0x7770,0x0000,0x8A4F,0x0000,0x0000,0x0000,0x0000,0x6055, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x3D43,0x0000,0x0000,0x7771,0x0000, +0x6057,0x0000,0x6056,0x8A51,0x8A52,0x0000,0x8A54,0x8A55, +0x6058,0x8A56,0x334D,0x0000,0x0000,0x605A,0x0000,0x8A57, +0x6059,0x0000,0x605C,0x605B,0x7772,0x0000,0x0000,0x0000, +0x0000,0x8A58,0x0000,0x0000,0x383C,0x8A59,0x0000,0x4E28, +0x0000,0x364C,0x8A5A,0x3226,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x8A5B,0x7773,0x366A,0x0000, +0x8A5C,0x0000,0x0000,0x0000,0x8A5D,0x0000,0x8A5E,0x7774, +0x7775,0x0000,0x7776,0x0000,0x0000,0x8A5F,0x7777,0x0000, +0x8A60,0x3461,0x0000,0x7778,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x4E68,0x605E,0x0000,0x8A61,0x0000,0x8A62, +0x0000,0x8A63,0x0000,0x6060,0x8A64,0x0000,0x0000,0x8A65, +0x6061,0x0000,0x3251,0x0000,0x0000,0x8A66,0x0000,0x0000, +0x605D,0x7779,0x3B39,0x8A67,0x0000,0x4441,0x605F,0x777A, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x777B,0x0000, +0x0000,0x777C,0x0000,0x0000,0x0000,0x0000,0x6064,0x0000, +0x3C6E,0x8A68,0x0000,0x777D,0x0000,0x6062,0x0000,0x8A69, +0x0000,0x777E,0x373E,0x0000,0x0000,0x4849,0x6063,0x0000, +0x0000,0x607E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x6069,0x8A6A,0x8A6C,0x0000,0x0000,0x0000,0x383D,0x0000, + +/* 7400h */ +0x0000,0x8A6D,0x0000,0x3565,0x0000,0x6066,0x4D7D,0x7821, +0x0000,0x4E30,0x7822,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x8A6B,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x7823,0x7824,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x4276,0x0000,0x8A6E,0x6068,0x7826,0x0000, +0x7827,0x0000,0x7828,0x7829,0x782A,0x0000,0x782B,0x782C, +0x782D,0x8A6F,0x606A,0x4E56,0x3657,0x487C,0x474A,0x0000, +0x0000,0x8A70,0x606B,0x0000,0x0000,0x0000,0x0000,0x606D, +0x8A72,0x6070,0x0000,0x8A73,0x782E,0x0000,0x782F,0x7830, +0x0000,0x0000,0x0000,0x7831,0x0000,0x8A74,0x0000,0x0000, +0x0000,0x0000,0x8A75,0x8A71,0x0000,0x606C,0x0000,0x7832, +0x0000,0x606F,0x386A,0x314D,0x6071,0x8A76,0x3F70,0x606E, +0x4E5C,0x0000,0x7833,0x6074,0x7424,0x0000,0x0000,0x0000, +0x0000,0x6072,0x6075,0x7834,0x0000,0x7835,0x0000,0x6067, +0x6073,0x8A77,0x0000,0x3A3C,0x0000,0x0000,0x6076,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x6077,0x0000, +0x0000,0x8A78,0x0000,0x4D7E,0x0000,0x8A79,0x7836,0x7837, +0x8A7A,0x7838,0x0000,0x6078,0x0000,0x0000,0x0000,0x0000, +0x783D,0x0000,0x8A7C,0x0000,0x0000,0x0000,0x0000,0x8A7D, +0x7839,0x8A7E,0x0000,0x0000,0x783A,0x0000,0x6079,0x783B, +0x8B21,0x8B22,0x6065,0x783C,0x0000,0x8B23,0x783E,0x607A, +0x783F,0x7840,0x8B24,0x8B25,0x0000,0x0000,0x0000,0x0000, +0x3444,0x0000,0x0000,0x0000,0x0000,0x7841,0x0000,0x0000, +0x0000,0x8B26,0x8B28,0x8B27,0x0000,0x3C25,0x0000,0x7842, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x7843,0x7844,0x607B,0x0000,0x0000,0x0000,0x0000,0x607C, +0x0000,0x0000,0x0000,0x0000,0x607D,0x0000,0x8B29,0x0000, +0x8B2A,0x0000,0x7845,0x0000,0x313B,0x0000,0x8B2B,0x0000, +0x6121,0x0000,0x493B,0x6122,0x0000,0x0000,0x3424,0x6123, +0x0000,0x6124,0x0000,0x8B2D,0x0000,0x0000,0x6125,0x8B2C, +0x6127,0x6128,0x6126,0x0000,0x0000,0x0000,0x4953,0x612A, +0x6129,0x0000,0x8B2F,0x0000,0x0000,0x0000,0x0000,0x7846, + +/* 7500h */ +0x0000,0x7847,0x0000,0x612C,0x612B,0x612D,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x612E,0x6130,0x612F,0x0000, +0x0000,0x3979,0x0000,0x6132,0x0000,0x6131,0x0000,0x7848, +0x3445,0x0000,0x3F53,0x0000,0x453C,0x0000,0x6133,0x4038, +0x8B31,0x0000,0x0000,0x3B3A,0x8B32,0x3179,0x6134,0x0000, +0x4D51,0x0000,0x8B33,0x4A63,0x6135,0x0000,0x0000,0x7849, +0x4544,0x4D33,0x3943,0x3F3D,0x0000,0x0000,0x0000,0x434B, +0x5234,0x0000,0x442E,0x3268,0x6136,0x8B36,0x8B37,0x0000, +0x8B38,0x0000,0x0000,0x0000,0x6137,0x0000,0x613C,0x0000, +0x8B39,0x613A,0x6139,0x5A42,0x3326,0x6138,0x8B3A,0x305A, +0x8B3B,0x482A,0x8B3C,0x0000,0x484A,0x0000,0x0000,0x0000, +0x0000,0x4E31,0x613D,0x613B,0x435C,0x4026,0x0000,0x0000, +0x482B,0x0000,0x492D,0x0000,0x613F,0x4E2C,0x374D,0x6140, +0x0000,0x613E,0x4856,0x6141,0x8B3D,0x6142,0x0000,0x784A, +0x305B,0x8B3F,0x8B3E,0x3E76,0x6147,0x0000,0x6144,0x466D, +0x6143,0x784B,0x8B40,0x0000,0x0000,0x8B41,0x8B42,0x3526, +0x0000,0x8B43,0x614A,0x0000,0x0000,0x0000,0x6145,0x6146, +0x0000,0x6149,0x6148,0x4925,0x8B45,0x0000,0x4142,0x4141, +0x0000,0x353F,0x784C,0x0000,0x614B,0x0000,0x0000,0x0000, +0x0000,0x0000,0x614C,0x0000,0x0000,0x614D,0x0000,0x0000, +0x0000,0x0000,0x8B47,0x614F,0x0000,0x614E,0x0000,0x0000, +0x0000,0x0000,0x0000,0x3156,0x0000,0x0000,0x0000,0x0000, +0x8B49,0x6157,0x4868,0x6151,0x0000,0x6153,0x0000,0x8B4A, +0x6155,0x3F3E,0x0000,0x0000,0x6156,0x6154,0x3C40,0x8B4B, +0x8B4C,0x0000,0x6150,0x6152,0x0000,0x4942,0x8B4D,0x3E49, +0x0000,0x0000,0x6159,0x0000,0x0000,0x6158,0x784E,0x8B4E, +0x0000,0x0000,0x615A,0x8B4F,0x3C26,0x3A2F,0x0000,0x0000, +0x4577,0x615B,0x0000,0x444B,0x0000,0x8B50,0x615D,0x8B51, +0x8B52,0x0000,0x4E21,0x615C,0x784F,0x0000,0x0000,0x8B53, +0x0000,0x4169,0x0000,0x0000,0x8B54,0x0000,0x8B55,0x0000, +0x6162,0x8B56,0x6164,0x6165,0x4354,0x0000,0x0000,0x0000, +0x0000,0x8B57,0x6163,0x0000,0x6160,0x0000,0x615E,0x615F, + +/* 7600h */ +0x7850,0x6161,0x7851,0x8B58,0x0000,0x0000,0x0000,0x8B5A, +0x7852,0x6168,0x0000,0x6166,0x0000,0x6167,0x0000,0x8B5B, +0x0000,0x0000,0x0000,0x8B5E,0x0000,0x7853,0x7854,0x0000, +0x8B59,0x7855,0x0000,0x8B5F,0x8B60,0x0000,0x7856,0x6169, +0x616B,0x616C,0x616D,0x0000,0x616E,0x8B62,0x7E7D,0x616A, +0x8B63,0x0000,0x0000,0x0000,0x0000,0x7857,0x0000,0x0000, +0x6170,0x0000,0x0000,0x8B65,0x616F,0x7858,0x0000,0x0000, +0x0000,0x0000,0x0000,0x6171,0x8B64,0x0000,0x0000,0x0000, +0x0000,0x8B68,0x4E45,0x7859,0x0000,0x0000,0x6174,0x6172, +0x6173,0x8B6A,0x0000,0x785A,0x3462,0x0000,0x0000,0x0000, +0x0000,0x0000,0x4C7E,0x0000,0x0000,0x8B6B,0x4A4A,0x0000, +0x6176,0x0000,0x0000,0x0000,0x6175,0x0000,0x0000,0x0000, +0x0000,0x6177,0x6178,0x0000,0x785B,0x785C,0x0000,0x617C, +0x6179,0x617A,0x617B,0x0000,0x617D,0x785D,0x8B6D,0x785E, +0x617E,0x785F,0x6221,0x0000,0x0000,0x0000,0x6222,0x0000, +0x6223,0x0000,0x482F,0x4550,0x6224,0x4772,0x4934,0x0000, +0x6225,0x7860,0x0000,0x6226,0x452A,0x0000,0x3327,0x3944, +0x6227,0x0000,0x0000,0x6228,0x0000,0x0000,0x6229,0x0000, +0x3B29,0x0000,0x0000,0x622B,0x0000,0x8B6E,0x622A,0x0000, +0x0000,0x622C,0x622D,0x7861,0x8B6F,0x7862,0x7863,0x0000, +0x8B71,0x8B70,0x0000,0x0000,0x0000,0x0000,0x7864,0x8B72, +0x8B73,0x0000,0x7865,0x0000,0x0000,0x0000,0x4869,0x8B74, +0x622E,0x0000,0x0000,0x0000,0x622F,0x0000,0x7866,0x7369, +0x6230,0x6231,0x6232,0x0000,0x0000,0x0000,0x0000,0x3B2E, +0x0000,0x0000,0x6233,0x4756,0x0000,0x7867,0x4B5F,0x0000, +0x314E,0x8B76,0x3157,0x0000,0x7868,0x6234,0x7869,0x0000, +0x0000,0x0000,0x6236,0x0000,0x786A,0x0000,0x6235,0x4570, +0x0000,0x0000,0x0000,0x4039,0x5D39,0x0000,0x6237,0x4C41, +0x0000,0x6238,0x0000,0x3446,0x4857,0x6239,0x786B,0x623A, +0x8B78,0x0000,0x623B,0x0000,0x8B79,0x0000,0x4C5C,0x0000, +0x0000,0x786C,0x4C55,0x0000,0x443E,0x0000,0x0000,0x0000, +0x416A,0x0000,0x0000,0x623D,0x786D,0x0000,0x3D62,0x0000, + +/* 7700h */ +0x0000,0x3E4A,0x0000,0x0000,0x6240,0x0000,0x0000,0x623F, +0x623E,0x487D,0x786E,0x3447,0x3829,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x8B7B, +0x0000,0x786F,0x8B7C,0x6246,0x0000,0x0000,0x6243,0x3F3F, +0x4C32,0x0000,0x0000,0x0000,0x6242,0x6244,0x6245,0x0000, +0x0000,0x6241,0x0000,0x0000,0x0000,0x8B7D,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x7870,0x8B7E,0x7871,0x6247, +0x6248,0x0000,0x442F,0x0000,0x3463,0x0000,0x0000,0x0000, +0x4365,0x0000,0x0000,0x0000,0x0000,0x0000,0x7872,0x6249, +0x0000,0x0000,0x0000,0x0000,0x0000,0x7873,0x7874,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x8C25,0x0000,0x624A,0x624D,0x7875,0x0000,0x0000,0x7876, +0x8C26,0x3F67,0x7877,0x4644,0x0000,0x624E,0x4B53,0x0000, +0x624B,0x0000,0x8C27,0x624C,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x8C29,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x6251,0x7878,0x0000,0x8C2A,0x8C2B,0x6250,0x624F, +0x7879,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x6253,0x0000,0x0000,0x6252,0x0000, +0x0000,0x6254,0x0000,0x0000,0x787A,0x0000,0x0000,0x0000, +0x0000,0x0000,0x8C2E,0x0000,0x0000,0x0000,0x6256,0x8C2F, +0x6255,0x0000,0x8C30,0x0000,0x8C31,0x4A4D,0x0000,0x0000, +0x0000,0x8C32,0x787B,0x0000,0x3D56,0x4E46,0x0000,0x0000, +0x6257,0x0000,0x0000,0x4637,0x0000,0x0000,0x6258,0x0000, +0x0000,0x6259,0x0000,0x625D,0x625B,0x625C,0x0000,0x625A, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x625E, +0x0000,0x0000,0x0000,0x0000,0x0000,0x625F,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x6260, +0x0000,0x0000,0x6261,0x4C37,0x6262,0x0000,0x8C33,0x8C34, +0x787C,0x0000,0x4C70,0x6263,0x8C35,0x434E,0x8C36,0x476A, +0x0000,0x366B,0x8C37,0x0000,0x8C38,0x433B,0x6264,0x363A, +0x8C3A,0x0000,0x0000,0x4050,0x8C3B,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x8C3C,0x6265,0x0000,0x0000,0x0000, + +/* 7800h */ +0x0000,0x0000,0x3A3D,0x0000,0x0000,0x8C3E,0x8C3F,0x0000, +0x0000,0x8C40,0x0000,0x0000,0x6266,0x8C41,0x0000,0x0000, +0x0000,0x0000,0x6267,0x0000,0x3826,0x3A55,0x0000,0x0000, +0x0000,0x8C42,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x6269,0x8C43,0x0000,0x0000,0x0000,0x4556,0x3A56,0x354E, +0x0000,0x0000,0x0000,0x0000,0x8C44,0x787D,0x0000,0x0000, +0x0000,0x0000,0x4B24,0x0000,0x474B,0x0000,0x0000,0x0000, +0x0000,0x0000,0x4557,0x0000,0x0000,0x0000,0x0000,0x395C, +0x0000,0x0000,0x0000,0x7921,0x0000,0x626B,0x0000,0x8C45, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x7922,0x7923, +0x0000,0x7924,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x3E4B,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x8C46,0x0000,0x0000,0x0000, +0x7925,0x0000,0x8C47,0x4E32,0x3945,0x0000,0x7926,0x3827, +0x0000,0x0000,0x4823,0x0000,0x626D,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x626F,0x0000,0x0000,0x0000, +0x0000,0x386B,0x0000,0x0000,0x0000,0x0000,0x626E,0x4476, +0x0000,0x0000,0x8C49,0x0000,0x6271,0x3337,0x626C,0x0000, +0x0000,0x486A,0x0000,0x3130,0x8C4A,0x3A6C,0x0000,0x4F52, +0x0000,0x0000,0x6270,0x0000,0x0000,0x8C4C,0x8C4D,0x8C4E, +0x0000,0x0000,0x0000,0x6272,0x8C4B,0x0000,0x0000,0x4A4B, +0x0000,0x4059,0x6274,0x0000,0x0000,0x792A,0x0000,0x6275, +0x7928,0x0000,0x0000,0x0000,0x0000,0x6273,0x0000,0x0000, +0x0000,0x0000,0x334E,0x8C4F,0x627B,0x0000,0x627A,0x0000, +0x0000,0x3C27,0x0000,0x0000,0x0000,0x627C,0x6277,0x0000, +0x8C50,0x0000,0x627D,0x6278,0x8C51,0x0000,0x8C52,0x0000, +0x4858,0x6276,0x0000,0x0000,0x6279,0x8C53,0x0000,0x0000, +0x0000,0x0000,0x6322,0x0000,0x0000,0x0000,0x0000,0x0000, +0x8C54,0x8C55,0x0000,0x0000,0x792B,0x0000,0x8C56,0x6321, +0x4B61,0x0000,0x0000,0x0000,0x627E,0x0000,0x0000,0x306B, +0x0000,0x0000,0x792C,0x0000,0x6324,0x0000,0x0000,0x792E, +0x0000,0x8C57,0x8C58,0x8C59,0x0000,0x6323,0x8C5A,0x0000, + +/* 7900h */ +0x792D,0x3E4C,0x0000,0x0000,0x0000,0x0000,0x0000,0x6325, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x4143,0x0000, +0x8C5C,0x6327,0x6326,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x6328,0x0000,0x8C5D,0x792F,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x8C5F,0x6268,0x0000, +0x0000,0x0000,0x626A,0x632A,0x6329,0x0000,0x7930,0x0000, +0x8C5E,0x7931,0x0000,0x0000,0x7932,0x0000,0x0000,0x0000, +0x0000,0x0000,0x3C28,0x8C60,0x4E69,0x0000,0x3C52,0x0000, +0x632B,0x3737,0x0000,0x0000,0x0000,0x7935,0x7936,0x3540, +0x3527,0x3B63,0x8C61,0x0000,0x0000,0x0000,0x0000,0x0000, +0x4D34,0x0000,0x0000,0x6331,0x0000,0x6330,0x4144,0x632D, +0x8C62,0x0000,0x632F,0x8C63,0x793A,0x3D4B,0x3F40,0x632E, +0x632C,0x0000,0x472A,0x0000,0x0000,0x3E4D,0x0000,0x8C65, +0x493C,0x0000,0x0000,0x0000,0x0000,0x3A57,0x0000,0x0000, +0x0000,0x0000,0x8C66,0x0000,0x0000,0x0000,0x0000,0x4578, +0x0000,0x793E,0x6332,0x0000,0x0000,0x0000,0x0000,0x6333, +0x6349,0x3658,0x0000,0x0000,0x4F3D,0x4135,0x0000,0x0000, +0x0000,0x0000,0x6334,0x0000,0x0000,0x3252,0x4477,0x4A21, +0x0000,0x0000,0x0000,0x0000,0x8C67,0x8C68,0x8C69,0x0000, +0x7942,0x0000,0x0000,0x8C6A,0x0000,0x6335,0x0000,0x0000, +0x0000,0x8C6B,0x0000,0x0000,0x0000,0x0000,0x357A,0x6336, +0x0000,0x8C6C,0x6338,0x0000,0x0000,0x0000,0x6339,0x0000, +0x4729,0x7943,0x0000,0x633A,0x8C6D,0x0000,0x0000,0x0000, +0x7944,0x633B,0x633C,0x8C6E,0x0000,0x3659,0x3253,0x4645, +0x3D28,0x3B64,0x8C6F,0x0000,0x0000,0x0000,0x0000,0x8C70, +0x7945,0x633D,0x7946,0x3D29,0x8C71,0x8C72,0x0000,0x0000, +0x0000,0x324A,0x4943,0x0000,0x7948,0x633E,0x8C73,0x0000, +0x486B,0x0000,0x0000,0x0000,0x0000,0x0000,0x7949,0x4145, +0x0000,0x6341,0x0000,0x6342,0x4769,0x0000,0x3F41,0x633F, +0x0000,0x4361,0x0000,0x794A,0x6340,0x794B,0x0000,0x0000, +0x3E4E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x305C,0x0000,0x0000,0x0000,0x0000, + +/* 7A00h */ +0x3529,0x0000,0x0000,0x794C,0x0000,0x0000,0x0000,0x0000, +0x6343,0x0000,0x8C78,0x4478,0x0000,0x6344,0x4047,0x0000, +0x0000,0x8C79,0x0000,0x0000,0x4C2D,0x8C7A,0x0000,0x4923, +0x6345,0x6346,0x4355,0x8C7B,0x4E47,0x0000,0x8C7C,0x6348, +0x6347,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x8C7E,0x3C6F,0x0000, +0x0000,0x634A,0x3070,0x0000,0x0000,0x0000,0x0000,0x634D, +0x8D21,0x794E,0x0000,0x634B,0x3254,0x374E,0x634C,0x3946, +0x3972,0x0000,0x4A66,0x634E,0x0000,0x0000,0x4B54,0x8D22, +0x0000,0x6350,0x0000,0x0000,0x8D23,0x4051,0x314F,0x323A, +0x302C,0x0000,0x0000,0x0000,0x0000,0x0000,0x8D24,0x634F, +0x0000,0x8D25,0x0000,0x0000,0x8D26,0x794F,0x0000,0x8D27, +0x8D28,0x6351,0x6352,0x3E77,0x0000,0x0000,0x0000,0x8D29, +0x0000,0x6353,0x8D2A,0x334F,0x0000,0x7950,0x0000,0x0000, +0x6355,0x0000,0x0000,0x0000,0x376A,0x8D2B,0x3566,0x0000, +0x8D2C,0x6356,0x3675,0x0000,0x0000,0x6357,0x0000,0x407C, +0x0000,0x464D,0x8D2D,0x4060,0x3A75,0x7952,0x0000,0x0000, +0x6358,0x0000,0x8D2E,0x0000,0x0000,0x0000,0x0000,0x0000, +0x8D2F,0x0000,0x4362,0x416B,0x0000,0x635A,0x635C,0x6359, +0x635B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x3722, +0x7953,0x0000,0x0000,0x8D30,0x0000,0x0000,0x0000,0x0000, +0x0000,0x635D,0x3726,0x0000,0x8D31,0x0000,0x3567,0x4D52, +0x635F,0x0000,0x0000,0x7955,0x0000,0x0000,0x6360,0x0000, +0x0000,0x8D34,0x312E,0x7956,0x8D35,0x0000,0x8D36,0x6363, +0x0000,0x0000,0x0000,0x3376,0x6362,0x6361,0x0000,0x6365, +0x635E,0x0000,0x6366,0x4E29,0x8D38,0x6367,0x7957,0x6368, +0x0000,0x8D39,0x5474,0x636A,0x0000,0x6369,0x0000,0x0000, +0x0000,0x636B,0x636C,0x0000,0x4E35,0x636D,0x0000,0x706F, +0x3E4F,0x636E,0x636F,0x3D57,0x0000,0x4638,0x6370,0x8D3A, +0x8D3B,0x0000,0x4328,0x7958,0x0000,0x6371,0x0000,0x433C, +0x6372,0x0000,0x0000,0x0000,0x8D3C,0x0000,0x3625,0x0000, +0x513F,0x435D,0x3C33,0x0000,0x0000,0x7959,0x0000,0x3448, + +/* 7B00h */ +0x0000,0x0000,0x6373,0x0000,0x6422,0x0000,0x6376,0x8D3F, +0x3568,0x0000,0x6375,0x6424,0x0000,0x0000,0x0000,0x6374, +0x0000,0x3E50,0x795A,0x0000,0x0000,0x0000,0x0000,0x0000, +0x6378,0x6379,0x0000,0x452B,0x0000,0x0000,0x637A,0x0000, +0x335E,0x0000,0x0000,0x0000,0x0000,0x3F5A,0x4964,0x8D42, +0x637C,0x0000,0x8D43,0x0000,0x4268,0x795B,0x8D44,0x8D45, +0x0000,0x8D46,0x0000,0x6377,0x0000,0x637B,0x637D,0x0000, +0x0000,0x3A7B,0x0000,0x795C,0x0000,0x8D41,0x0000,0x0000, +0x0000,0x8D4A,0x0000,0x0000,0x0000,0x6426,0x492E,0x795D, +0x4826,0x4579,0x0000,0x365A,0x6425,0x6423,0x795E,0x4835, +0x637E,0x435E,0x457B,0x0000,0x457A,0x8D4C,0x3A76,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x6438,0x0000,0x0000, +0x795F,0x0000,0x0000,0x0000,0x8D4E,0x6428,0x8D4F,0x642A, +0x0000,0x8D50,0x0000,0x0000,0x642D,0x7960,0x642E,0x7961, +0x642B,0x642C,0x7962,0x8D51,0x6429,0x6427,0x0000,0x0000, +0x0000,0x8D4D,0x6421,0x0000,0x0000,0x0000,0x0000,0x8D49, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x4A4F,0x3255, +0x0000,0x0000,0x0000,0x6435,0x0000,0x6432,0x0000,0x6437, +0x8D54,0x8D55,0x6436,0x0000,0x4773,0x4C27,0x0000,0x3B3B, +0x6430,0x6439,0x6434,0x8D56,0x6433,0x642F,0x7963,0x6431, +0x0000,0x3449,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x433D,0x0000,0x0000,0x407D,0x0000,0x8D58, +0x0000,0x4822,0x0000,0x0000,0x643E,0x8D59,0x0000,0x0000, +0x4824,0x0000,0x0000,0x0000,0x8D5A,0x0000,0x0000,0x0000, +0x4061,0x643B,0x0000,0x0000,0x484F,0x8D5B,0x643F,0x4A53, +0x0000,0x435B,0x8D5C,0x643A,0x643C,0x0000,0x0000,0x643D, +0x0000,0x0000,0x0000,0x0000,0x8D5F,0x0000,0x8D60,0x7965, +0x0000,0x7966,0x8D61,0x0000,0x0000,0x6440,0x0000,0x0000, +0x3C44,0x0000,0x0000,0x0000,0x4646,0x6445,0x6444,0x0000, +0x0000,0x6441,0x8D62,0x0000,0x0000,0x4F36,0x0000,0x0000, +0x8D63,0x0000,0x0000,0x644A,0x0000,0x0000,0x644E,0x644B, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + +/* 7C00h */ +0x6447,0x7967,0x0000,0x8D64,0x0000,0x0000,0x0000,0x6448, +0x0000,0x0000,0x0000,0x8D65,0x0000,0x644D,0x8D66,0x8D67, +0x0000,0x6442,0x5255,0x6449,0x6443,0x0000,0x0000,0x644C, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x7969,0x6452, +0x796A,0x344A,0x0000,0x644F,0x0000,0x0000,0x8D68,0x6450, +0x0000,0x0000,0x6451,0x6454,0x0000,0x0000,0x0000,0x0000, +0x0000,0x7968,0x0000,0x796B,0x0000,0x0000,0x796C,0x6453, +0x4876,0x0000,0x0000,0x0000,0x0000,0x6455,0x4E7C,0x4A6D, +0x645A,0x0000,0x0000,0x6457,0x0000,0x8D69,0x0000,0x0000, +0x0000,0x0000,0x8D6A,0x0000,0x6456,0x4052,0x0000,0x6459, +0x645B,0x8D6B,0x0000,0x0000,0x6458,0x0000,0x645F,0x8D6C, +0x645C,0x796F,0x0000,0x0000,0x0000,0x0000,0x8D6D,0x645D, +0x6446,0x8D6E,0x0000,0x0000,0x645E,0x6460,0x0000,0x0000, +0x0000,0x8D6F,0x0000,0x0000,0x6461,0x7970,0x8D70,0x8D71, +0x8D72,0x0000,0x0000,0x4A46,0x0000,0x6462,0x0000,0x0000, +0x0000,0x7971,0x0000,0x0000,0x0000,0x0000,0x4C62,0x0000, +0x0000,0x364E,0x3729,0x6463,0x0000,0x0000,0x0000,0x0000, +0x0000,0x4A34,0x0000,0x3F68,0x0000,0x4C30,0x0000,0x7972, +0x6464,0x0000,0x4E33,0x0000,0x7973,0x4774,0x0000,0x4146, +0x4734,0x0000,0x0000,0x3D4D,0x0000,0x0000,0x0000,0x3040, +0x7974,0x6469,0x6467,0x0000,0x6465,0x3421,0x8D76,0x3E51, +0x646A,0x0000,0x0000,0x6468,0x0000,0x6466,0x646E,0x0000, +0x0000,0x646D,0x646C,0x646B,0x0000,0x0000,0x8D78,0x8D79, +0x0000,0x646F,0x0000,0x0000,0x7975,0x6470,0x403A,0x8D7A, +0x6471,0x0000,0x6473,0x0000,0x8D7C,0x6472,0x0000,0x0000, +0x8D7E,0x0000,0x3852,0x0000,0x0000,0x8E21,0x4138,0x0000, +0x0000,0x0000,0x6475,0x0000,0x0000,0x7976,0x457C,0x8E23, +0x6474,0x7977,0x0000,0x0000,0x6476,0x7978,0x4A35,0x416C, +0x3947,0x0000,0x6477,0x0000,0x0000,0x0000,0x8E25,0x4E48, +0x0000,0x0000,0x0000,0x8E26,0x0000,0x0000,0x0000,0x6479, +0x0000,0x0000,0x647A,0x0000,0x647B,0x8E28,0x647C,0x0000, +0x3B65,0x0000,0x647D,0x374F,0x0000,0x0000,0x356A,0x0000, + +/* 7D00h */ +0x352A,0x0000,0x6521,0x8E29,0x4C73,0x3948,0x647E,0x7979, +0x797A,0x8E2A,0x6524,0x4C66,0x0000,0x473C,0x0000,0x0000, +0x4933,0x0000,0x8E2C,0x797B,0x3D63,0x6523,0x0000,0x3C53, +0x3949,0x3B66,0x3569,0x4A36,0x6522,0x797C,0x8E2D,0x0000, +0x4147,0x4B42,0x3A77,0x797D,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x3B67,0x445D,0x0000,0x6527,0x4E5F, +0x3A59,0x797E,0x6528,0x3F42,0x0000,0x652A,0x0000,0x0000, +0x0000,0x3E52,0x3A30,0x0000,0x0000,0x8E30,0x8E31,0x6529, +0x8E32,0x7A21,0x3D2A,0x383E,0x4148,0x6525,0x652B,0x8E33, +0x7A22,0x0000,0x0000,0x6526,0x3750,0x0000,0x652E,0x6532, +0x376B,0x0000,0x0000,0x7A23,0x0000,0x0000,0x652D,0x0000, +0x0000,0x8E37,0x8E38,0x6536,0x7A24,0x0000,0x394A,0x0000, +0x0000,0x4D6D,0x303C,0x6533,0x0000,0x0000,0x356B,0x0000, +0x6530,0x0000,0x8E39,0x0000,0x0000,0x0000,0x6531,0x0000, +0x8E3A,0x457D,0x652F,0x652C,0x0000,0x3328,0x4064,0x0000, +0x0000,0x3828,0x7A25,0x0000,0x0000,0x6538,0x0000,0x8E3C, +0x0000,0x0000,0x0000,0x7A26,0x0000,0x0000,0x8E3E,0x0000, +0x8E3F,0x6535,0x0000,0x7A27,0x8E40,0x0000,0x0000,0x6537, +0x0000,0x0000,0x0000,0x6534,0x0000,0x0000,0x0000,0x8E41, +0x0000,0x3751,0x4233,0x6539,0x416E,0x8E43,0x0000,0x6546, +0x7A28,0x0000,0x6542,0x653C,0x0000,0x0000,0x7A29,0x8E44, +0x0000,0x0000,0x8E45,0x6540,0x3C7A,0x305D,0x653B,0x6543, +0x6547,0x394B,0x4C56,0x0000,0x4456,0x653D,0x8E46,0x8E47, +0x6545,0x0000,0x653A,0x433E,0x0000,0x653F,0x303D,0x4C4A, +0x8E48,0x0000,0x7A2A,0x0000,0x0000,0x0000,0x0000,0x653E, +0x0000,0x0000,0x365B,0x486C,0x7A2B,0x0000,0x0000,0x416D, +0x0000,0x4E50,0x3D6F,0x0000,0x0000,0x656E,0x7A2C,0x8E49, +0x6548,0x8E4A,0x407E,0x0000,0x6544,0x6549,0x654B,0x0000, +0x4479,0x654E,0x0000,0x7A2D,0x654A,0x0000,0x8E4B,0x0000, +0x4A54,0x344B,0x0000,0x0000,0x4C4B,0x0000,0x0000,0x305E, +0x0000,0x8E4C,0x654D,0x0000,0x4E7D,0x0000,0x0000,0x0000, +0x0000,0x8E4D,0x0000,0x654C,0x0000,0x0000,0x0000,0x0000, + +/* 7E00h */ +0x0000,0x316F,0x0000,0x0000,0x466C,0x654F,0x0000,0x0000, +0x7A30,0x6556,0x6550,0x6557,0x0000,0x0000,0x0000,0x0000, +0x8E51,0x7A31,0x6553,0x0000,0x0000,0x7A32,0x0000,0x8E52, +0x0000,0x0000,0x0000,0x477B,0x0000,0x8E53,0x3C4A,0x6555, +0x8E54,0x6552,0x6558,0x6551,0x0000,0x0000,0x3D44,0x8E55, +0x7A2F,0x0000,0x0000,0x4B25,0x8E56,0x0000,0x3D4C,0x0000, +0x0000,0x6554,0x6560,0x0000,0x0000,0x655C,0x0000,0x655F, +0x0000,0x655D,0x6561,0x655B,0x0000,0x6541,0x4053,0x0000, +0x0000,0x484B,0x0000,0x655E,0x0000,0x8E57,0x6559,0x7A34, +0x0000,0x0000,0x4121,0x3752,0x0000,0x3D2B,0x0000,0x0000, +0x0000,0x0000,0x7A35,0x0000,0x3F25,0x4136,0x6564,0x0000, +0x0000,0x6566,0x6567,0x0000,0x0000,0x6563,0x6565,0x0000, +0x0000,0x7A36,0x0000,0x0000,0x0000,0x0000,0x655A,0x6562, +0x0000,0x656A,0x6569,0x7E7E,0x0000,0x4B7A,0x0000,0x0000, +0x372B,0x0000,0x0000,0x8E58,0x0000,0x8E59,0x0000,0x0000, +0x0000,0x6568,0x0000,0x656C,0x656B,0x656F,0x8E5A,0x6571, +0x0000,0x0000,0x3B3C,0x656D,0x0000,0x0000,0x8E5B,0x8E5C, +0x6572,0x6573,0x7A37,0x0000,0x6574,0x7A38,0x657A,0x453B, +0x6576,0x8E5E,0x6575,0x6577,0x6578,0x0000,0x6579,0x0000, +0x8E5F,0x0000,0x8E60,0x657B,0x657C,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + +/* 7F00h */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x344C,0x0000, +0x657D,0x0000,0x657E,0x8E63,0x8E62,0x0000,0x8E64,0x0000, +0x0000,0x0000,0x0000,0x8E65,0x8E66,0x6621,0x0000,0x7A39, +0x0000,0x0000,0x0000,0x0000,0x6622,0x6623,0x6624,0x8E67, +0x6625,0x6626,0x8E6A,0x0000,0x6628,0x6627,0x0000,0x0000, +0x6629,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x662A, +0x662B,0x8E6C,0x0000,0x8E6D,0x8E6E,0x0000,0x0000,0x662E, +0x662C,0x662D,0x3A61,0x3753,0x0000,0x8E6F,0x4356,0x0000, +0x4833,0x0000,0x3D70,0x0000,0x0000,0x474D,0x0000,0x486D, +0x662F,0x586D,0x0000,0x0000,0x0000,0x8E70,0x8E71,0x0000, +0x0000,0x0000,0x6630,0x6632,0x0000,0x4D65,0x6631,0x6634, +0x6633,0x0000,0x4D53,0x0000,0x6635,0x0000,0x487E,0x0000, +0x8E73,0x7A3B,0x0000,0x0000,0x6636,0x0000,0x8E76,0x7A3C, +0x0000,0x0000,0x6639,0x0000,0x8E77,0x6638,0x6637,0x0000, +0x0000,0x0000,0x0000,0x663A,0x3732,0x0000,0x0000,0x0000, +0x4122,0x3541,0x0000,0x0000,0x0000,0x8E78,0x663E,0x663B, +0x0000,0x0000,0x663C,0x0000,0x0000,0x0000,0x663F,0x0000, +0x6640,0x663D,0x0000,0x0000,0x0000,0x3129,0x0000,0x7A3D, +0x0000,0x3227,0x0000,0x8E7A,0x0000,0x6642,0x6643,0x0000, +0x0000,0x0000,0x6644,0x0000,0x4D62,0x0000,0x7A3E,0x8E7B, +0x0000,0x0000,0x3D2C,0x0000,0x6646,0x6645,0x0000,0x0000, +0x0000,0x0000,0x0000,0x7A3F,0x0000,0x0000,0x0000,0x7A40, +0x3F69,0x6647,0x0000,0x8E7C,0x0000,0x8E7D,0x6648,0x0000, +0x0000,0x6649,0x0000,0x3465,0x7A41,0x0000,0x7A42,0x8E7E, +0x344D,0x0000,0x8F21,0x664A,0x0000,0x0000,0x0000,0x0000, +0x0000,0x664B,0x7A43,0x4B5D,0x4D63,0x0000,0x0000,0x0000, + +/* 8000h */ +0x4D54,0x4F37,0x8F22,0x394D,0x664E,0x3C54,0x664D,0x0000, +0x8F24,0x0000,0x8F23,0x664F,0x3C29,0x0000,0x8F25,0x0000, +0x4251,0x8F26,0x6650,0x0000,0x7A45,0x394C,0x8F27,0x4C57, +0x6651,0x6652,0x0000,0x0000,0x6653,0x0000,0x0000,0x0000, +0x0000,0x6654,0x0000,0x0000,0x8F28,0x0000,0x7A46,0x0000, +0x6655,0x0000,0x0000,0x0000,0x8F29,0x0000,0x0000,0x0000, +0x8F2A,0x0000,0x0000,0x3C2A,0x0000,0x7A47,0x4C6D,0x7A48, +0x0000,0x0000,0x0000,0x6657,0x7A49,0x433F,0x0000,0x6656, +0x0000,0x0000,0x0000,0x8F2B,0x0000,0x0000,0x6659,0x0000, +0x0000,0x0000,0x6658,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x665A,0x0000,0x0000,0x0000,0x403B,0x0000, +0x665B,0x0000,0x665C,0x0000,0x0000,0x0000,0x4A39,0x665D, +0x0000,0x416F,0x665E,0x0000,0x0000,0x0000,0x8F2C,0x0000, +0x665F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x4E7E, +0x6662,0x8F2D,0x6661,0x6660,0x4430,0x8F2E,0x6663,0x3F26, +0x0000,0x6664,0x0000,0x8F2F,0x0000,0x6665,0x4F38,0x6666, +0x0000,0x0000,0x0000,0x0000,0x6667,0x6669,0x6668,0x4825, +0x0000,0x4679,0x0000,0x4F3E,0x4829,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x666B,0x0000,0x0000,0x3E53,0x0000, +0x492A,0x8F30,0x666C,0x666A,0x8F31,0x344E,0x0000,0x0000, +0x0000,0x3854,0x3B68,0x0000,0x8F32,0x486E,0x0000,0x8F33, +0x0000,0x382A,0x4B43,0x0000,0x666F,0x666D,0x0000,0x394E, +0x0000,0x394F,0x3069,0x0000,0x3A68,0x0000,0x0000,0x0000, +0x8F34,0x0000,0x4759,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x305F,0x6674,0x8F36,0x4340,0x0000, +0x0000,0x0000,0x7A4A,0x0000,0x4758,0x0000,0x425B,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x8F37,0x6676,0x7A4B, +0x8F38,0x6672,0x6675,0x6670,0x0000,0x6673,0x4B26,0x0000, +0x7A4C,0x3855,0x0000,0x0000,0x307D,0x6671,0x8F39,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x6678, +0x0000,0x6679,0x0000,0x7A4D,0x4639,0x8F3C,0x0000,0x0000, +0x363B,0x0000,0x0000,0x8F3D,0x6726,0x473D,0x0000,0x0000, + +/* 8100h */ +0x0000,0x0000,0x3B69,0x0000,0x0000,0x363C,0x4048,0x4F46, +0x4C2E,0x6677,0x4054,0x0000,0x0000,0x8F3B,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x8F40,0x0000, +0x7A4E,0x0000,0x3553,0x667A,0x0000,0x0000,0x8F41,0x0000, +0x0000,0x0000,0x0000,0x667C,0x8F43,0x0000,0x0000,0x8F44, +0x0000,0x667B,0x0000,0x0000,0x8F45,0x0000,0x0000,0x667D, +0x0000,0x4326,0x0000,0x473E,0x0000,0x8F3F,0x0000,0x0000, +0x0000,0x4431,0x0000,0x0000,0x0000,0x8F47,0x6723,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x6722,0x0000, +0x0000,0x0000,0x7A4F,0x667E,0x0000,0x0000,0x3F55,0x0000, +0x4965,0x6725,0x0000,0x6724,0x3950,0x4F53,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x6735, +0x7A50,0x0000,0x0000,0x0000,0x0000,0x6729,0x672A,0x7A51, +0x7A52,0x8F49,0x0000,0x3C70,0x0000,0x7A53,0x6728,0x0000, +0x3978,0x6727,0x0000,0x0000,0x672B,0x0000,0x0000,0x0000, +0x4432,0x4A22,0x4123,0x0000,0x0000,0x0000,0x0000,0x425C, +0x672F,0x8F4B,0x6730,0x672C,0x8F4D,0x8F4E,0x0000,0x0000, +0x672D,0x0000,0x672E,0x0000,0x0000,0x0000,0x0000,0x3951, +0x0000,0x0000,0x0000,0x6736,0x0000,0x6732,0x0000,0x0000, +0x8F50,0x0000,0x4966,0x0000,0x4B6C,0x4928,0x0000,0x0000, +0x6731,0x0000,0x0000,0x6734,0x6733,0x0000,0x0000,0x0000, +0x4B44,0x6737,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x6738,0x0000,0x8F51,0x4137,0x0000,0x6739,0x0000,0x0000, +0x673B,0x0000,0x673F,0x7A54,0x0000,0x673C,0x673A,0x473F, +0x673D,0x8F52,0x673E,0x8F53,0x0000,0x0000,0x3232,0x0000, +0x6745,0x6740,0x7A55,0x0000,0x0000,0x6741,0x0000,0x7A56, +0x0000,0x6742,0x0000,0x4221,0x0000,0x0000,0x8F54,0x7A57, +0x6744,0x6743,0x6746,0x8F55,0x0000,0x0000,0x0000,0x6747, +0x6748,0x0000,0x0000,0x3F43,0x8F57,0x3269,0x0000,0x6749, +0x4E57,0x0000,0x3C2B,0x0000,0x8F59,0x3D2D,0x0000,0x0000, +0x0000,0x0000,0x0000,0x3B6A,0x4357,0x0000,0x0000,0x0000, +0x0000,0x0000,0x674A,0x674B,0x3131,0x8F5B,0x674C,0x8F5C, + +/* 8200h */ +0x0000,0x674D,0x674E,0x0000,0x8F5E,0x674F,0x0000,0x6750, +0x363D,0x5A2A,0x6751,0x0000,0x4065,0x6752,0x3C4B,0x0000, +0x6753,0x0000,0x5030,0x0000,0x0000,0x0000,0x6754,0x4A5E, +0x345C,0x8F60,0x0000,0x4124,0x3D58,0x0000,0x4971,0x3D2E, +0x0000,0x8F61,0x8F62,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x6755,0x3952,0x6756,0x484C,0x0000,0x6764,0x0000, +0x0000,0x0000,0x8F64,0x6758,0x8F65,0x4249,0x4775,0x383F, +0x6757,0x4125,0x0000,0x0000,0x8F66,0x0000,0x0000,0x0000, +0x6759,0x0000,0x0000,0x0000,0x0000,0x8F69,0x8F67,0x447A, +0x0000,0x8F68,0x0000,0x8F6B,0x0000,0x0000,0x0000,0x8F6D, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x8F6F, +0x675B,0x675A,0x675D,0x0000,0x8F71,0x675C,0x0000,0x675E, +0x7A5B,0x0000,0x6760,0x8F72,0x675F,0x0000,0x344F,0x0000, +0x6761,0x0000,0x6762,0x6763,0x0000,0x0000,0x3A31,0x4E49, +0x0000,0x6765,0x3F27,0x0000,0x7A5C,0x0000,0x3170,0x6766, +0x6767,0x8F76,0x0000,0x0000,0x0000,0x8F78,0x6768,0x8F79, +0x0000,0x0000,0x0000,0x8F7A,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x8F7B,0x3072,0x0000,0x6769,0x7A5E,0x0000, +0x0000,0x0000,0x676A,0x8F7C,0x0000,0x0000,0x0000,0x0000, +0x0000,0x4967,0x0000,0x0000,0x0000,0x3C47,0x0000,0x676C, +0x0000,0x7A5F,0x0000,0x7A60,0x7A61,0x3329,0x3032,0x8F7D, +0x8F7E,0x7A62,0x0000,0x676B,0x676E,0x474E,0x7A63,0x3F44, +0x0000,0x3256,0x9021,0x4B27,0x9022,0x0000,0x0000,0x7A64, +0x375D,0x365C,0x9023,0x676D,0x9024,0x326A,0x7A65,0x7A66, +0x0000,0x0000,0x0000,0x0000,0x0000,0x3423,0x7A67,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x3171,0x6772,0x4E6A,0x425D,0x7A68,0x0000,0x4944, +0x0000,0x677E,0x0000,0x3257,0x677C,0x0000,0x677A,0x6771, +0x0000,0x676F,0x9025,0x6770,0x0000,0x3C63,0x366C,0x4377, +0x9026,0x0000,0x0000,0x4651,0x0000,0x0000,0x0000,0x0000, +0x0000,0x3151,0x0000,0x6774,0x6773,0x0000,0x0000,0x9027, +0x0000,0x6779,0x6775,0x6778,0x0000,0x7A69,0x7A6A,0x0000, + +/* 8300h */ +0x7A6B,0x7A6C,0x4C50,0x6777,0x3258,0x337D,0x677B,0x9028, +0x9029,0x677D,0x0000,0x0000,0x902A,0x0000,0x3754,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x6823,0x682C, +0x682D,0x0000,0x0000,0x902C,0x302B,0x902D,0x0000,0x0000, +0x0000,0x0000,0x7A6E,0x6834,0x0000,0x0000,0x0000,0x0000, +0x3071,0x0000,0x0000,0x682B,0x0000,0x7A6F,0x0000,0x682A, +0x902E,0x6825,0x6824,0x0000,0x6822,0x6821,0x4363,0x0000, +0x427B,0x6827,0x7A70,0x0000,0x902F,0x0000,0x0000,0x0000, +0x6826,0x0000,0x0000,0x7A71,0x9030,0x6829,0x0000,0x7A72, +0x0000,0x4170,0x3755,0x0000,0x0000,0x0000,0x0000,0x3141, +0x6828,0x7A73,0x3953,0x0000,0x902B,0x7A74,0x0000,0x9031, +0x4171,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x7A6D,0x864A,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x683A,0x0000,0x683B,0x0000,0x3259, +0x0000,0x0000,0x0000,0x322E,0x6838,0x7A75,0x0000,0x9033, +0x0000,0x0000,0x0000,0x0000,0x0000,0x682E,0x7A76,0x6836, +0x0000,0x683D,0x6837,0x0000,0x0000,0x9036,0x6835,0x0000, +0x0000,0x0000,0x7A77,0x6776,0x9037,0x9038,0x6833,0x0000, +0x7A78,0x0000,0x682F,0x9039,0x0000,0x903A,0x3450,0x6831, +0x683C,0x0000,0x6832,0x0000,0x0000,0x0000,0x0000,0x7A79, +0x683E,0x7A7A,0x6830,0x477C,0x0000,0x0000,0x0000,0x0000, +0x0000,0x4D69,0x0000,0x0000,0x0000,0x6839,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x684F,0x0000,0x7A7B, +0x7A7C,0x6847,0x0000,0x0000,0x0000,0x3F7B,0x0000,0x7A7D, +0x0000,0x903B,0x3546,0x0000,0x365D,0x0000,0x6842,0x7A7E, +0x903C,0x7B21,0x0000,0x325B,0x903D,0x0000,0x3E54,0x0000, +0x6845,0x0000,0x0000,0x0000,0x3A5A,0x903E,0x0000,0x4551, +0x684A,0x7B22,0x0000,0x0000,0x0000,0x903F,0x0000,0x0000, +0x0000,0x4A6E,0x7B23,0x6841,0x0000,0x0000,0x0000,0x325A, +0x3856,0x4929,0x684B,0x0000,0x683F,0x0000,0x0000,0x6848, +0x0000,0x9040,0x0000,0x6852,0x0000,0x6843,0x0000,0x0000, + +/* 8400h */ +0x0000,0x7B24,0x0000,0x6844,0x463A,0x0000,0x7B25,0x6849, +0x0000,0x0000,0x7B26,0x6846,0x4B28,0x684C,0x3060,0x9041, +0x0000,0x9042,0x0000,0x6840,0x0000,0x9043,0x0000,0x9045, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x684E,0x0000,0x684D,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x476B,0x6854,0x0000,0x685F,0x0000,0x0000,0x0000, +0x0000,0x337E,0x0000,0x0000,0x0000,0x6862,0x0000,0x0000, +0x6850,0x9046,0x0000,0x0000,0x6855,0x4D6E,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x685E,0x0000, +0x7B28,0x4D55,0x9047,0x0000,0x0000,0x0000,0x4E2A,0x9048, +0x0000,0x9049,0x904A,0x0000,0x0000,0x0000,0x0000,0x4378, +0x0000,0x904B,0x904C,0x336B,0x904D,0x0000,0x0000,0x7B29, +0x0000,0x4972,0x6864,0x4621,0x0000,0x904F,0x3031,0x0000, +0x0000,0x685D,0x0000,0x6859,0x4172,0x6853,0x685B,0x6860, +0x7B2A,0x472C,0x0000,0x7B2B,0x0000,0x302A,0x9050,0x6858, +0x9051,0x6861,0x4978,0x0000,0x9052,0x0000,0x0000,0x0000, +0x0000,0x9053,0x685C,0x0000,0x6857,0x7B2C,0x0000,0x0000, +0x0000,0x0000,0x0000,0x3E55,0x0000,0x0000,0x0000,0x0000, +0x3D2F,0x0000,0x0000,0x0000,0x3C2C,0x0000,0x0000,0x9056, +0x0000,0x4C58,0x0000,0x0000,0x4947,0x0000,0x7B2D,0x6867, +0x0000,0x6870,0x0000,0x0000,0x0000,0x0000,0x9057,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x685A,0x0000,0x7B2E, +0x0000,0x0000,0x3377,0x0000,0x7B2F,0x0000,0x0000,0x0000, +0x3E78,0x6865,0x7B30,0x686A,0x4173,0x0000,0x9058,0x6866, +0x7B31,0x686D,0x7B32,0x0000,0x435F,0x0000,0x686E,0x0000, +0x0000,0x4D56,0x6863,0x3338,0x0000,0x6869,0x905A,0x905B, +0x686C,0x4C2C,0x0000,0x905C,0x0000,0x0000,0x686F,0x0000, +0x0000,0x6868,0x686B,0x0000,0x9055,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x905E, +0x0000,0x0000,0x905F,0x0000,0x4B29,0x0000,0x4F21,0x9060, +0x9061,0x9062,0x0000,0x0000,0x6873,0x0000,0x0000,0x0000, +0x0000,0x0000,0x9063,0x0000,0x687A,0x9064,0x0000,0x6872, + +/* 8500h */ +0x3C43,0x0000,0x0000,0x0000,0x0000,0x0000,0x6851,0x0000, +0x0000,0x0000,0x0000,0x0000,0x9065,0x0000,0x0000,0x0000, +0x0000,0x4A4E,0x0000,0x4C22,0x6879,0x6878,0x0000,0x6874, +0x6875,0x0000,0x3136,0x9066,0x0000,0x0000,0x7B35,0x6877, +0x0000,0x6871,0x0000,0x7B36,0x9067,0x9068,0x4455,0x0000, +0x0000,0x0000,0x0000,0x9069,0x6876,0x307E,0x0000,0x7B37, +0x0000,0x0000,0x7B34,0x0000,0x906A,0x4222,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x4A43,0x906F,0x0000, +0x687B,0x6921,0x0000,0x4859,0x0000,0x0000,0x0000,0x0000, +0x687E,0x3E56,0x3C49,0x6923,0x0000,0x0000,0x363E,0x906B, +0x0000,0x9070,0x0000,0x9071,0x0000,0x6924,0x0000,0x4979, +0x687D,0x7B38,0x6856,0x0000,0x0000,0x0000,0x9072,0x0000, +0x0000,0x9073,0x9074,0x687C,0x7B39,0x0000,0x0000,0x0000, +0x4F4F,0x4622,0x4973,0x0000,0x0000,0x692B,0x0000,0x906C, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x6931, +0x0000,0x0000,0x7B3C,0x9076,0x0000,0x9077,0x6932,0x9078, +0x6925,0x9079,0x0000,0x0000,0x4776,0x0000,0x907A,0x692F, +0x6927,0x0000,0x6929,0x0000,0x7B3D,0x0000,0x0000,0x7B3E, +0x6933,0x6928,0x0000,0x907B,0x692C,0x0000,0x0000,0x3172, +0x0000,0x4665,0x0000,0x692D,0x6930,0x907C,0x0000,0x907D, +0x0000,0x0000,0x7B3F,0x0000,0x6926,0x0000,0x4126,0x0000, +0x692A,0x3B27,0x3F45,0x3730,0x4C74,0x7B3B,0x4C79,0x3D72, +0x7B40,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x9123, +0x0000,0x6937,0x6935,0x0000,0x9124,0x0000,0x0000,0x0000, +0x0000,0x4F4E,0x0000,0x0000,0x0000,0x0000,0x0000,0x9125, +0x0000,0x6934,0x9126,0x7B41,0x0000,0x4D75,0x7B42,0x6936, +0x6938,0x0000,0x0000,0x0000,0x0000,0x6939,0x0000,0x0000, +0x9127,0x9128,0x0000,0x0000,0x693C,0x693A,0x0000,0x9129, +0x0000,0x912A,0x0000,0x0000,0x4623,0x693B,0x912B,0x0000, +0x0000,0x484D,0x692E,0x0000,0x0000,0x7B43,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x912C,0x3D73, +0x0000,0x693D,0x6942,0x4174,0x0000,0x0000,0x6941,0x7B45, + +/* 8600h */ +0x912D,0x0000,0x6922,0x0000,0x7B46,0x7B47,0x6943,0x4149, +0x0000,0x0000,0x693E,0x6940,0x0000,0x0000,0x0000,0x0000, +0x7B48,0x912E,0x7B44,0x693F,0x0000,0x0000,0x5D31,0x5D22, +0x7B4A,0x0000,0x6945,0x0000,0x0000,0x0000,0x912F,0x0000, +0x0000,0x9130,0x6944,0x0000,0x9131,0x0000,0x0000,0x9132, +0x0000,0x7B4B,0x0000,0x0000,0x0000,0x4D76,0x0000,0x623C, +0x6946,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x7B4C,0x9134,0x0000,0x0000,0x9135,0x0000,0x0000,0x6947, +0x9137,0x2F68,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x6948,0x3857,0x0000, +0x3554,0x0000,0x0000,0x9139,0x694A,0x515D,0x913A,0x7B4D, +0x0000,0x0000,0x3575,0x7B4E,0x4E3A,0x0000,0x3673,0x694B, +0x0000,0x0000,0x7B50,0x0000,0x0000,0x0000,0x0000,0x694C, +0x0000,0x0000,0x0000,0x436E,0x7B52,0x0000,0x0000,0x913B, +0x0000,0x694D,0x0000,0x0000,0x0000,0x7B53,0x0000,0x913C, +0x0000,0x467A,0x913D,0x303A,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x913E, +0x0000,0x913F,0x3263,0x6952,0x6953,0x9140,0x0000,0x0000, +0x0000,0x9141,0x0000,0x694E,0x0000,0x3B3D,0x0000,0x0000, +0x7B54,0x0000,0x0000,0x0000,0x9142,0x9143,0x0000,0x0000, +0x0000,0x0000,0x0000,0x694F,0x4742,0x0000,0x0000,0x0000, +0x9144,0x6950,0x6951,0x695B,0x0000,0x0000,0x0000,0x6955, +0x6958,0x9146,0x0000,0x9147,0x0000,0x0000,0x6954,0x0000, +0x7B55,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x9148,0x0000,0x9149,0x6956,0x0000,0x6957,0x3C58, +0x0000,0x6959,0x0000,0x4341,0x0000,0x3756,0x3342,0x0000, +0x0000,0x914A,0x0000,0x0000,0x695C,0x914B,0x0000,0x914C, +0x0000,0x333F,0x0000,0x6961,0x0000,0x0000,0x695D,0x6960, +0x0000,0x0000,0x0000,0x914D,0x483A,0x0000,0x914E,0x0000, +0x0000,0x695E,0x0000,0x0000,0x695F,0x4948,0x485A,0x6962, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x427D,0x696C,0x7B56,0x6968,0x7B57,0x7B58,0x326B,0x0000, + +/* 8700h */ +0x6966,0x0000,0x4B2A,0x6967,0x0000,0x9150,0x6964,0x9151, +0x6965,0x696A,0x696D,0x7B59,0x0000,0x696B,0x9152,0x0000, +0x9153,0x6969,0x6963,0x9154,0x0000,0x0000,0x0000,0x0000, +0x4358,0x9155,0x6974,0x0000,0x4C2A,0x0000,0x0000,0x9156, +0x0000,0x9157,0x0000,0x9158,0x0000,0x6972,0x0000,0x0000, +0x0000,0x6973,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x9159,0x0000,0x0000,0x696E,0x0000,0x0000,0x6970, +0x0000,0x0000,0x915A,0x6971,0x0000,0x0000,0x915B,0x696F, +0x915C,0x0000,0x0000,0x915D,0x0000,0x0000,0x0000,0x0000, +0x0000,0x4066,0x0000,0x4F39,0x6978,0x0000,0x6979,0x0000, +0x0000,0x915E,0x0000,0x6A21,0x0000,0x3F2A,0x0000,0x697B, +0x915F,0x697E,0x0000,0x0000,0x0000,0x0000,0x0000,0x6976, +0x6975,0x0000,0x0000,0x6A22,0x9160,0x9161,0x325C,0x0000, +0x697C,0x0000,0x6A23,0x0000,0x0000,0x0000,0x697D,0x0000, +0x0000,0x7B5A,0x9162,0x0000,0x697A,0x0000,0x4433,0x0000, +0x6977,0x0000,0x0000,0x0000,0x9163,0x0000,0x0000,0x4768, +0x0000,0x0000,0x6A27,0x0000,0x0000,0x0000,0x0000,0x7B5B, +0x7B5C,0x9167,0x0000,0x9168,0x0000,0x4D3B,0x0000,0x0000, +0x0000,0x0000,0x0000,0x9169,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x6A26, +0x916A,0x0000,0x6A25,0x0000,0x0000,0x0000,0x0000,0x9166, +0x0000,0x0000,0x0000,0x6A2E,0x7B5D,0x7B5E,0x0000,0x6A28, +0x0000,0x0000,0x0000,0x6A30,0x0000,0x7B5F,0x0000,0x0000, +0x0000,0x0000,0x4D66,0x6A33,0x0000,0x6A2A,0x916D,0x0000, +0x6A2B,0x916F,0x0000,0x0000,0x6A2F,0x0000,0x6A32,0x6A31, +0x0000,0x0000,0x0000,0x6A29,0x0000,0x0000,0x9170,0x0000, +0x6A2C,0x0000,0x6A3D,0x0000,0x0000,0x0000,0x7B61,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x9172, +0x6A36,0x0000,0x0000,0x9174,0x0000,0x9175,0x9176,0x0000, +0x0000,0x0000,0x9177,0x9178,0x7B62,0x9179,0x0000,0x6A34, +0x0000,0x0000,0x6A35,0x0000,0x0000,0x9171,0x6A3A,0x6A3B, +0x0000,0x332A,0x0000,0x3542,0x0000,0x0000,0x6A39,0x0000, + +/* 8800h */ +0x0000,0x917A,0x0000,0x917B,0x0000,0x6A24,0x7B63,0x0000, +0x0000,0x0000,0x7B64,0x917C,0x0000,0x6A38,0x6A3C,0x6A37, +0x7B65,0x6A3E,0x0000,0x917D,0x7B66,0x6A40,0x6A3F,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x7B67, +0x0000,0x6A42,0x6A41,0x695A,0x0000,0x0000,0x0000,0x6A46, +0x917E,0x0000,0x0000,0x0000,0x0000,0x0000,0x9221,0x0000, +0x0000,0x6A43,0x9222,0x0000,0x0000,0x0000,0x6A44,0x0000, +0x0000,0x6A45,0x0000,0x6A47,0x9223,0x0000,0x0000,0x0000, +0x376C,0x0000,0x6A49,0x0000,0x6A48,0x0000,0x3D30,0x0000, +0x0000,0x0000,0x9225,0x0000,0x3954,0x5E27,0x0000,0x0000, +0x0000,0x0000,0x6A4A,0x3D51,0x0000,0x0000,0x0000,0x3339, +0x9226,0x6A4B,0x0000,0x3152,0x0000,0x3E57,0x6A4C,0x9227, +0x0000,0x3955,0x6A4D,0x3061,0x9228,0x0000,0x0000,0x0000, +0x493D,0x922B,0x0000,0x6A4E,0x0000,0x0000,0x0000,0x922D, +0x3F6A,0x0000,0x6A55,0x0000,0x0000,0x6A52,0x0000,0x436F, +0x0000,0x0000,0x0000,0x0000,0x0000,0x6A53,0x6A50,0x365E, +0x0000,0x6A4F,0x6A56,0x0000,0x0000,0x0000,0x0000,0x0000, +0x3736,0x0000,0x0000,0x425E,0x0000,0x6A5C,0x0000,0x0000, +0x0000,0x0000,0x6A58,0x0000,0x0000,0x0000,0x4235,0x6A57, +0x7B68,0x6A5A,0x0000,0x0000,0x0000,0x0000,0x6A51,0x0000, +0x922E,0x0000,0x6A5B,0x0000,0x6A5D,0x0000,0x0000,0x0000, +0x0000,0x0000,0x7B69,0x486F,0x0000,0x0000,0x6A59,0x0000, +0x6A5E,0x6A60,0x0000,0x0000,0x3853,0x6A54,0x0000,0x3041, +0x0000,0x0000,0x0000,0x0000,0x922F,0x9230,0x9231,0x6A5F, +0x9232,0x3A5B,0x4E76,0x6A61,0x6A62,0x4175,0x0000,0x0000, +0x0000,0x0000,0x7B6A,0x0000,0x0000,0x0000,0x7B6B,0x4E22, +0x0000,0x9235,0x9233,0x9236,0x6A63,0x4D35,0x0000,0x0000, +0x6A64,0x6A65,0x0000,0x9237,0x4A64,0x6A66,0x0000,0x3A40, +0x0000,0x4E23,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x6A6B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x9238,0x9239,0x6A6C,0x3E58,0x6A6A,0x7B6D,0x0000,0x0000, +0x4D67,0x6A67,0x0000,0x0000,0x6A69,0x403D,0x3F7E,0x0000, + +/* 8900h */ +0x0000,0x923B,0x6A68,0x0000,0x6A6D,0x0000,0x0000,0x4A23, +0x0000,0x0000,0x6A6F,0x0000,0x6A6E,0x0000,0x0000,0x0000, +0x336C,0x0000,0x4B2B,0x6A70,0x0000,0x0000,0x0000,0x0000, +0x7B70,0x7B71,0x7B72,0x0000,0x7B6E,0x6A7C,0x6A72,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x6A73,0x0000,0x7B73, +0x0000,0x0000,0x6A74,0x6A75,0x0000,0x0000,0x0000,0x0000, +0x7B74,0x0000,0x7B75,0x0000,0x0000,0x0000,0x6A79,0x923D, +0x6A7A,0x7B76,0x0000,0x6A78,0x0000,0x0000,0x0000,0x0000, +0x7B77,0x6A76,0x923F,0x6A71,0x6A77,0x9240,0x0000,0x0000, +0x0000,0x9241,0x0000,0x0000,0x6A7B,0x7037,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x3228,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x6A7E,0x365F, +0x6A7D,0x0000,0x9244,0x0000,0x6B22,0x0000,0x6B21,0x0000, +0x0000,0x0000,0x6B24,0x0000,0x0000,0x6B23,0x0000,0x6B25, +0x0000,0x0000,0x3D31,0x0000,0x6B26,0x0000,0x0000,0x6B27, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x6B28,0x403E, +0x9245,0x4D57,0x0000,0x6B29,0x0000,0x0000,0x4A24,0x4746, +0x6B2A,0x9246,0x6B2B,0x382B,0x0000,0x0000,0x0000,0x352C, +0x9247,0x0000,0x0000,0x6B2C,0x7B78,0x0000,0x3B6B,0x4741, +0x6B2D,0x0000,0x3350,0x0000,0x0000,0x0000,0x0000,0x9248, +0x0000,0x6B2E,0x0000,0x0000,0x0000,0x0000,0x6B30,0x4D77, +0x0000,0x6B2F,0x3F46,0x0000,0x6B31,0x0000,0x0000,0x6B32, +0x9249,0x0000,0x6B33,0x3451,0x0000,0x0000,0x0000,0x924A, +0x0000,0x0000,0x6B34,0x0000,0x0000,0x6B35,0x0000,0x6B36, +0x6B37,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x3351,0x0000,0x7B7A,0x0000,0x924B,0x0000, +0x924C,0x0000,0x6B38,0x0000,0x6B39,0x6B3A,0x0000,0x0000, +0x0000,0x0000,0x0000,0x3272,0x0000,0x7B7B,0x3F28,0x6B3B, +0x0000,0x0000,0x0000,0x924D,0x0000,0x0000,0x0000,0x0000, +0x0000,0x924F,0x0000,0x9250,0x6B3C,0x0000,0x7B7C,0x0000, +0x6B3D,0x0000,0x0000,0x0000,0x0000,0x9251,0x0000,0x9252, + +/* 8A00h */ +0x3840,0x0000,0x447B,0x6B3E,0x0000,0x0000,0x0000,0x0000, +0x3757,0x0000,0x3F56,0x0000,0x6B41,0x0000,0x4624,0x0000, +0x6B40,0x9254,0x7B7D,0x3731,0x9255,0x7B7E,0x6B3F,0x4277, +0x352D,0x0000,0x0000,0x6B42,0x0000,0x6B43,0x0000,0x3E59, +0x0000,0x9257,0x7C21,0x376D,0x0000,0x6B44,0x0000,0x0000, +0x0000,0x0000,0x4B2C,0x0000,0x0000,0x405F,0x0000,0x0000, +0x0000,0x3576,0x0000,0x4C75,0x414A,0x9258,0x6B45,0x7C22, +0x0000,0x0000,0x3F47,0x4370,0x3E5A,0x0000,0x9259,0x0000, +0x0000,0x6B46,0x0000,0x0000,0x0000,0x925A,0x6B49,0x7C23, +0x6B4A,0x0000,0x0000,0x0000,0x0000,0x925B,0x7C24,0x0000, +0x3A3E,0x4242,0x6B48,0x0000,0x3E5B,0x493E,0x0000,0x0000, +0x925C,0x0000,0x0000,0x6B47,0x0000,0x7C25,0x3B6C,0x0000, +0x3153,0x7C26,0x6B4E,0x3758,0x0000,0x0000,0x3B6E,0x0000, +0x0000,0x3B6D,0x0000,0x4F4D,0x6B4D,0x6B4C,0x4127,0x0000, +0x354D,0x4F43,0x333A,0x3E5C,0x0000,0x7C27,0x0000,0x0000, +0x0000,0x7C28,0x0000,0x0000,0x6B4B,0x0000,0x0000,0x0000, +0x0000,0x0000,0x6B50,0x0000,0x6B51,0x6B4F,0x0000,0x3858, +0x0000,0x4D40,0x0000,0x0000,0x3B6F,0x4727,0x0000,0x0000, +0x925E,0x6B54,0x0000,0x4040,0x0000,0x4342,0x0000,0x0000, +0x4D36,0x0000,0x6B57,0x0000,0x0000,0x0000,0x386C,0x0000, +0x403F,0x6B53,0x0000,0x6B58,0x386D,0x6B55,0x6B56,0x7C29, +0x6B52,0x0000,0x0000,0x0000,0x4062,0x4649,0x925D,0x0000, +0x432F,0x0000,0x325D,0x0000,0x0000,0x0000,0x0000,0x925F, +0x0000,0x4870,0x0000,0x0000,0x3543,0x0000,0x9260,0x4434, +0x0000,0x0000,0x6B5B,0x0000,0x6B59,0x0000,0x0000,0x434C, +0x0000,0x0000,0x0000,0x4041,0x3452,0x6B5A,0x0000,0x3F5B, +0x7C2A,0x0000,0x4E4A,0x0000,0x0000,0x0000,0x4F40,0x9261, +0x0000,0x0000,0x6B5C,0x6B67,0x4435,0x0000,0x6B66,0x7C2B, +0x6B63,0x6B6B,0x6B64,0x0000,0x6B60,0x0000,0x447C,0x6B5F, +0x0000,0x0000,0x0000,0x6B5D,0x0000,0x4D21,0x3B70,0x0000, +0x0000,0x6B61,0x0000,0x6B5E,0x7C2C,0x0000,0x7C2D,0x6B65, +0x3D74,0x0000,0x3841,0x0000,0x9262,0x0000,0x427A,0x0000, + +/* 8B00h */ +0x4B45,0x315A,0x3062,0x0000,0x4625,0x9265,0x0000,0x6B69, +0x0000,0x0000,0x9264,0x0000,0x6B68,0x9266,0x4666,0x0000, +0x6B6D,0x0000,0x0000,0x0000,0x6B62,0x0000,0x6B6C,0x6B6E, +0x0000,0x382C,0x6B6A,0x3956,0x9267,0x3C55,0x0000,0x9268, +0x6B6F,0x4D58,0x0000,0x0000,0x0000,0x0000,0x6B72,0x0000, +0x6B75,0x0000,0x0000,0x6B73,0x4935,0x9269,0x0000,0x0000, +0x0000,0x0000,0x0000,0x6B70,0x0000,0x0000,0x0000,0x0000, +0x0000,0x3660,0x0000,0x0000,0x0000,0x0000,0x6B74,0x0000, +0x0000,0x6B76,0x0000,0x926A,0x0000,0x0000,0x7C31,0x0000, +0x0000,0x6B7A,0x0000,0x0000,0x6B77,0x0000,0x6B79,0x6B78, +0x0000,0x926C,0x0000,0x0000,0x7C32,0x0000,0x6B7B,0x0000, +0x3C31,0x7C33,0x6B7D,0x6B7C,0x4968,0x0000,0x926D,0x6C21, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x3759,0x0000, +0x0000,0x7C34,0x0000,0x6B7E,0x6C22,0x0000,0x0000,0x6C23, +0x3544,0x6641,0x3E79,0x0000,0x6C24,0x0000,0x926E,0x386E, +0x0000,0x0000,0x0000,0x0000,0x0000,0x6C25,0x0000,0x926F, +0x6C26,0x9270,0x0000,0x3B3E,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x5A4E,0x9271,0x6C27,0x0000,0x6C28,0x0000, +0x3D32,0x0000,0x6C29,0x6C2A,0x9272,0x9273,0x6C2B,0x0000, +0x0000,0x6C2C,0x6C2D,0x0000,0x9274,0x7C35,0x9275,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + +/* 8C00h */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x432B, +0x0000,0x9276,0x6C2E,0x0000,0x0000,0x9278,0x0000,0x6C30, +0x0000,0x6C2F,0x0000,0x0000,0x0000,0x927B,0x4626,0x927C, +0x6C31,0x7C36,0x4B2D,0x0000,0x6C32,0x0000,0x6C33,0x927D, +0x6C34,0x0000,0x0000,0x0000,0x927E,0x6C35,0x0000,0x9321, +0x0000,0x0000,0x465A,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x3E5D,0x6C36,0x0000,0x0000,0x0000,0x0000,0x0000, +0x7C37,0x9322,0x396B,0x502E,0x6C37,0x9323,0x0000,0x0000, +0x0000,0x0000,0x0000,0x9324,0x0000,0x0000,0x0000,0x0000, +0x6C38,0x493F,0x6C39,0x0000,0x6C41,0x0000,0x0000,0x0000, +0x0000,0x0000,0x6C3A,0x0000,0x0000,0x6C3C,0x0000,0x0000, +0x0000,0x6C3B,0x6C3D,0x0000,0x4B46,0x6C3E,0x6C3F,0x0000, +0x0000,0x0000,0x9327,0x9326,0x6C40,0x0000,0x0000,0x0000, +0x6C42,0x9328,0x0000,0x932A,0x0000,0x332D,0x4467,0x0000, +0x4969,0x3A62,0x3957,0x0000,0x932B,0x0000,0x0000,0x494F, +0x325F,0x484E,0x6C45,0x3453,0x4055,0x6C44,0x6C49,0x4379, +0x4C63,0x0000,0x6C47,0x6C48,0x352E,0x0000,0x6C4A,0x4763, +0x425F,0x0000,0x0000,0x4871,0x453D,0x6C46,0x0000,0x4B47, +0x326C,0x6C4C,0x4F28,0x4442,0x4F45,0x0000,0x0000,0x3B71, +0x6C4B,0x0000,0x4231,0x0000,0x0000,0x6C5C,0x4128,0x0000, +0x0000,0x4678,0x0000,0x4950,0x0000,0x932D,0x932C,0x0000, +0x0000,0x932E,0x6C4F,0x3B3F,0x3B72,0x0000,0x3E5E,0x0000, +0x4765,0x7C39,0x382D,0x6C4E,0x6C4D,0x0000,0x496A,0x0000, +0x0000,0x0000,0x3C41,0x0000,0x0000,0x4552,0x0000,0x0000, +0x9330,0x9331,0x0000,0x0000,0x7C3A,0x0000,0x0000,0x0000, +0x7C3B,0x0000,0x6C51,0x6C52,0x3958,0x6C50,0x7C3C,0x0000, + +/* 8D00h */ +0x0000,0x0000,0x0000,0x0000,0x6C53,0x6C54,0x0000,0x6C56, +0x4223,0x9333,0x6C55,0x3466,0x0000,0x6C58,0x9334,0x6C57, +0x6C59,0x0000,0x7C3E,0x6C5B,0x6C5D,0x0000,0x6C5E,0x0000, +0x0000,0x0000,0x0000,0x7C3F,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x4056,0x0000,0x3C4F,0x6C5F, +0x0000,0x0000,0x0000,0x3352,0x9335,0x6C60,0x0000,0x0000, +0x4176,0x6C61,0x0000,0x6C62,0x496B,0x0000,0x0000,0x352F, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x6C63,0x0000,0x0000,0x9336,0x4436,0x0000,0x0000, +0x0000,0x0000,0x315B,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x9337,0x0000,0x0000, +0x0000,0x6C64,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x3C71,0x0000,0x0000,0x9338,0x0000, +0x3F76,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x7C40, +0x0000,0x0000,0x0000,0x422D,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x6C67,0x0000,0x0000,0x0000,0x6C66,0x0000, +0x0000,0x0000,0x6C65,0x0000,0x0000,0x0000,0x933A,0x0000, +0x933B,0x0000,0x0000,0x6C6D,0x6C6B,0x0000,0x7C41,0x6C68, +0x0000,0x7C42,0x0000,0x0000,0x0000,0x0000,0x6C6A,0x7C43, +0x0000,0x933C,0x6C69,0x6C6C,0x0000,0x3577,0x0000,0x6C70, +0x0000,0x4057,0x0000,0x6C71,0x0000,0x0000,0x0000,0x0000, +0x3859,0x0000,0x6C6E,0x6C6F,0x933D,0x0000,0x0000,0x4F29, +0x0000,0x0000,0x0000,0x4437,0x0000,0x4129,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x6C72,0x9340,0x0000,0x6C75, + +/* 8E00h */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x9341,0x0000, +0x6C73,0x6C74,0x4D59,0x0000,0x933E,0x0000,0x0000,0x4627, +0x6C78,0x0000,0x0000,0x0000,0x9343,0x0000,0x9344,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x6C76,0x6C77,0x6C79, +0x7C44,0x9345,0x9346,0x7C45,0x0000,0x0000,0x0000,0x9347, +0x0000,0x0000,0x6D29,0x0000,0x0000,0x0000,0x0000,0x0000, +0x6C7C,0x0000,0x0000,0x0000,0x6C7D,0x6C7B,0x934A,0x0000, +0x0000,0x934B,0x0000,0x0000,0x0000,0x7C46,0x0000,0x0000, +0x0000,0x0000,0x6C7A,0x0000,0x447D,0x0000,0x0000,0x6D21, +0x6D25,0x6D22,0x6C7E,0x934C,0x6D23,0x0000,0x0000,0x0000, +0x6D24,0x0000,0x0000,0x0000,0x934D,0x6D2B,0x0000,0x0000, +0x0000,0x6D26,0x0000,0x0000,0x0000,0x0000,0x0000,0x4058, +0x6D28,0x0000,0x934E,0x6D2A,0x6D27,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x934F,0x9350,0x0000,0x9351, +0x7C47,0x0000,0x6D2D,0x0000,0x3D33,0x0000,0x6D2C,0x0000, +0x0000,0x0000,0x0000,0x7C48,0x6D2E,0x0000,0x0000,0x0000, +0x0000,0x6D2F,0x0000,0x0000,0x6D32,0x6D31,0x0000,0x6D30, +0x0000,0x0000,0x6D34,0x6D33,0x0000,0x4C76,0x0000,0x0000, +0x0000,0x6D36,0x0000,0x6D35,0x6D37,0x0000,0x0000,0x0000, +0x9352,0x6D38,0x0000,0x0000,0x0000,0x0000,0x9353,0x0000, +0x0000,0x6D3A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x6D39,0x3F48,0x6D3B,0x0000,0x9354,0x366D, +0x6D3C,0x6D3E,0x0000,0x9355,0x0000,0x9356,0x9357,0x0000, +0x0000,0x0000,0x0000,0x9358,0x0000,0x0000,0x6D3F,0x0000, +0x7C4A,0x0000,0x0000,0x0000,0x0000,0x6D40,0x6D3D,0x0000, +0x6D41,0x0000,0x3C56,0x6D42,0x3530,0x3733,0x0000,0x0000, +0x0000,0x935A,0x382E,0x0000,0x935B,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x6D43,0x0000,0x0000,0x0000,0x4670, +0x0000,0x0000,0x453E,0x6D44,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x6D47,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x3C34,0x935D,0x7C4C,0x6D46,0x6D45,0x375A,0x6D48,0x0000, + +/* 8F00h */ +0x935F,0x0000,0x0000,0x3353,0x0000,0x6D4A,0x0000,0x0000, +0x9360,0x3A5C,0x6D49,0x0000,0x6D52,0x0000,0x0000,0x0000, +0x0000,0x0000,0x6D4C,0x6D4E,0x4A65,0x6D4B,0x0000,0x9361, +0x0000,0x6D4D,0x0000,0x6D51,0x6D4F,0x3531,0x7C4D,0x6D50, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x6D53,0x0000, +0x0000,0x475A,0x4E58,0x9362,0x0000,0x7C4E,0x0000,0x3D34, +0x0000,0x0000,0x0000,0x6D54,0x0000,0x0000,0x7C4F,0x0000, +0x4D22,0x6D56,0x0000,0x6D55,0x0000,0x0000,0x6D59,0x4D41, +0x9363,0x0000,0x6D58,0x0000,0x336D,0x6D57,0x6D5C,0x0000, +0x0000,0x6D5B,0x9364,0x0000,0x6D5A,0x4532,0x6D5D,0x0000, +0x0000,0x0000,0x0000,0x0000,0x7C50,0x0000,0x0000,0x6D5E, +0x9365,0x0000,0x0000,0x0000,0x6D5F,0x0000,0x0000,0x396C, +0x0000,0x3725,0x6D60,0x6D61,0x6D62,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x3F49,0x6D63,0x0000,0x3C2D,0x6D64, +0x0000,0x0000,0x0000,0x6D65,0x9367,0x0000,0x7C52,0x5221, +0x517E,0x0000,0x0000,0x0000,0x0000,0x6D66,0x6570,0x6D67, +0x4324,0x3F2B,0x4740,0x0000,0x9368,0x7C53,0x936A,0x6D68, +0x0000,0x0000,0x4A55,0x4454,0x397E,0x0000,0x0000,0x4329, +0x0000,0x936C,0x312A,0x0000,0x4B78,0x3F57,0x936D,0x0000, +0x0000,0x0000,0x936F,0x0000,0x0000,0x9370,0x375E,0x0000, +0x0000,0x3661,0x0000,0x9371,0x4A56,0x9372,0x0000,0x0000, +0x0000,0x0000,0x6D69,0x0000,0x0000,0x0000,0x0000,0x0000, +0x9373,0x0000,0x6D6B,0x0000,0x7C54,0x6D6A,0x3260,0x0000, +0x7C55,0x4676,0x6D6C,0x4777,0x0000,0x4533,0x7C56,0x6D6D, +0x3D52,0x9374,0x0000,0x0000,0x6D6F,0x9375,0x0000,0x4C42, +0x6D7E,0x6D71,0x6D72,0x9376,0x0000,0x4449,0x0000,0x0000, + +/* 9000h */ +0x4260,0x4177,0x9377,0x4628,0x0000,0x6D70,0x3555,0x0000, +0x7C57,0x0000,0x0000,0x6D79,0x9378,0x6D76,0x6E25,0x4629, +0x4360,0x6D73,0x0000,0x447E,0x4553,0x6D74,0x6D78,0x3F60, +0x0000,0x4767,0x444C,0x0000,0x0000,0x4042,0x6D77,0x422E, +0x4224,0x6D75,0x3029,0x4F22,0x0000,0x0000,0x0000,0x6D7A, +0x0000,0x0000,0x0000,0x0000,0x0000,0x7C58,0x4261,0x0000, +0x0000,0x3D35,0x3F4A,0x0000,0x0000,0x6D7C,0x6D7B,0x9379, +0x306F,0x6D7D,0x0000,0x0000,0x492F,0x0000,0x6E27,0x0000, +0x0000,0x465B,0x3F6B,0x937B,0x937C,0x4359,0x0000,0x3678, +0x0000,0x6E26,0x4D37,0x313F,0x0000,0x4A57,0x3261,0x6E21, +0x6E22,0x6E23,0x6E24,0x463B,0x4323,0x3063,0x6E28,0x0000, +0x6E29,0x7423,0x0000,0x0000,0x423D,0x937D,0x6E2A,0x0000, +0x3173,0x414C,0x0000,0x382F,0x0000,0x4D5A,0x0000,0x0000, +0x6E2B,0x452C,0x0000,0x0000,0x0000,0x4178,0x3C57,0x6E2C, +0x0000,0x0000,0x6E2F,0x0000,0x0000,0x3D65,0x6E2D,0x412B, +0x412A,0x0000,0x3064,0x0000,0x4E4B,0x6E31,0x0000,0x4872, +0x6E33,0x6E32,0x6E30,0x6364,0x3454,0x9422,0x0000,0x6D6E, +0x7C5A,0x6E35,0x6E34,0x0000,0x9423,0x0000,0x0000,0x6E36, +0x9424,0x4D38,0x0000,0x0000,0x0000,0x7C5B,0x0000,0x7C5C, +0x0000,0x7C5D,0x0000,0x7C5E,0x0000,0x0000,0x0000,0x0000, +0x0000,0x9426,0x7C5F,0x4661,0x0000,0x0000,0x4B2E,0x0000, +0x6E37,0x0000,0x3C59,0x0000,0x0000,0x0000,0x0000,0x6E38, +0x9428,0x6E39,0x0000,0x7C60,0x0000,0x6E3A,0x9429,0x0000, +0x4521,0x0000,0x0000,0x0000,0x0000,0x0000,0x7C61,0x0000, +0x0000,0x306A,0x0000,0x942A,0x7C62,0x7C63,0x0000,0x7C64, +0x942B,0x0000,0x3959,0x0000,0x0000,0x0000,0x4F3A,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x7C65, +0x0000,0x0000,0x0000,0x6E3E,0x942D,0x7C66,0x7C67,0x942E, +0x0000,0x3734,0x6E3B,0x0000,0x6E3C,0x0000,0x0000,0x0000, +0x4974,0x0000,0x0000,0x9433,0x0000,0x3354,0x0000,0x7C68, +0x0000,0x0000,0x9431,0x0000,0x7C69,0x4D39,0x9430,0x363F, +0x0000,0x0000,0x0000,0x0000,0x0000,0x4554,0x9434,0x9435, + +/* 9100h */ +0x9432,0x0000,0x6E3F,0x0000,0x9436,0x0000,0x9437,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x6E40,0x0000,0x7C6B,0x7C6C,0x7C6D,0x0000, +0x9438,0x6E41,0x0000,0x0000,0x9439,0x0000,0x943A,0x0000, +0x0000,0x0000,0x7C6E,0x7C6F,0x0000,0x0000,0x0000,0x7C70, +0x0000,0x0000,0x0000,0x0000,0x0000,0x4522,0x0000,0x7C71, +0x6E43,0x7C72,0x6E42,0x0000,0x7C73,0x0000,0x0000,0x943B, +0x0000,0x943C,0x943D,0x0000,0x0000,0x7C74,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x943E,0x943F, +0x7C75,0x4653,0x6E44,0x3D36,0x3C60,0x475B,0x4371,0x0000, +0x0000,0x0000,0x3C72,0x0000,0x3F6C,0x0000,0x6E45,0x9440, +0x6E46,0x9441,0x0000,0x7C76,0x0000,0x0000,0x0000,0x0000, +0x0000,0x9442,0x3F5D,0x6E47,0x9443,0x6E48,0x0000,0x0000, +0x0000,0x6E49,0x4D6F,0x0000,0x3D37,0x0000,0x0000,0x0000, +0x0000,0x0000,0x6E4B,0x6E4A,0x9444,0x395A,0x0000,0x3973, +0x3B40,0x9445,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x6E4E,0x7C77,0x0000,0x9446,0x0000,0x3D66, +0x0000,0x6E4D,0x0000,0x6E4C,0x0000,0x4269,0x9447,0x0000, +0x386F,0x0000,0x4043,0x0000,0x0000,0x0000,0x0000,0x4830, +0x0000,0x0000,0x0000,0x0000,0x3D39,0x0000,0x7C78,0x0000, +0x0000,0x0000,0x6E4F,0x0000,0x3E5F,0x0000,0x0000,0x0000, +0x9448,0x0000,0x6E52,0x6E50,0x7C79,0x0000,0x9449,0x6E51, +0x0000,0x7C7A,0x0000,0x944A,0x6E54,0x6E53,0x944B,0x0000, +0x3E7A,0x0000,0x6E55,0x0000,0x7C7B,0x0000,0x0000,0x0000, +0x6E56,0x6E57,0x0000,0x944C,0x944D,0x0000,0x4850,0x3A53, +0x3C61,0x6E58,0x0000,0x6E59,0x4E24,0x3D45,0x4C6E,0x4E4C, +0x6E5A,0x3662,0x0000,0x0000,0x0000,0x0000,0x6E5B,0x7C7C, +0x4523,0x0000,0x944E,0x6E5E,0x3378,0x3F4B,0x0000,0x6E5C, +0x0000,0x6E5D,0x0000,0x4460,0x7C7E,0x7D21,0x4B55,0x367C, +0x0000,0x0000,0x0000,0x0000,0x9451,0x7D22,0x9452,0x0000, +0x0000,0x7D23,0x0000,0x0000,0x0000,0x6E60,0x6E61,0x0000, +0x0000,0x0000,0x0000,0x7C7D,0x6E5F,0x0000,0x0000,0x6E63, + +/* 9200h */ +0x0000,0x9453,0x0000,0x0000,0x0000,0x0000,0x0000,0x7D24, +0x0000,0x0000,0x9454,0x0000,0x0000,0x465F,0x3343,0x0000, +0x7D25,0x6E67,0x0000,0x0000,0x6E64,0x6E66,0x9455,0x9456, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x6E62,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x6F4F,0x0000,0x0000,0x6E65,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x9458,0x4E6B,0x0000,0x0000,0x385A, +0x7D26,0x7D27,0x7D28,0x0000,0x7D29,0x0000,0x0000,0x6E6F, +0x7D2A,0x0000,0x9459,0x7D2B,0x4534,0x6E6A,0x0000,0x945A, +0x6E6D,0x6E6B,0x945B,0x6E70,0x0000,0x0000,0x945C,0x7D2C, +0x6E71,0x945D,0x0000,0x0000,0x0000,0x0000,0x945E,0x6E69, +0x0000,0x945F,0x6E76,0x3174,0x0000,0x0000,0x6E68,0x0000, +0x9460,0x9461,0x482D,0x0000,0x6E6C,0x9462,0x3E60,0x9463, +0x9464,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x395B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x7D2D,0x0000,0x0000,0x0000,0x9467,0x9468,0x4B48,0x9469, +0x3664,0x0000,0x0000,0x3D46,0x0000,0x463C,0x0000,0x0000, +0x7D2E,0x946A,0x0000,0x0000,0x0000,0x946B,0x0000,0x0000, +0x0000,0x412D,0x0000,0x6E74,0x0000,0x6E6E,0x6E73,0x946C, +0x4C43,0x946D,0x4438,0x6E75,0x6E72,0x0000,0x0000,0x946E, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x946F, +0x0000,0x0000,0x0000,0x9470,0x0000,0x412C,0x0000,0x0000, +0x0000,0x0000,0x9473,0x0000,0x0000,0x0000,0x0000,0x6E79, +0x0000,0x6E78,0x0000,0x0000,0x0000,0x0000,0x0000,0x9474, +0x9475,0x0000,0x7D2F,0x0000,0x0000,0x0000,0x9476,0x0000, +0x0000,0x0000,0x0000,0x7D30,0x7D31,0x0000,0x9477,0x6E77, +0x9478,0x0000,0x4B2F,0x7D32,0x0000,0x0000,0x0000,0x9479, +0x0000,0x947A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x7D33,0x0000,0x0000,0x0000,0x3D7B,0x947B,0x0000,0x947C, +0x0000,0x6E7A,0x4A5F,0x0000,0x0000,0x3154,0x0000,0x0000, +0x0000,0x0000,0x4946,0x4372,0x0000,0x0000,0x0000,0x9522, +0x3578,0x9523,0x6E7C,0x9524,0x395D,0x0000,0x0000,0x7D34, + +/* 9300h */ +0x0000,0x0000,0x9525,0x0000,0x7D35,0x0000,0x3B2C,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x9526,0x0000,0x6E7B, +0x3F6D,0x947D,0x0000,0x0000,0x0000,0x9527,0x0000,0x0000, +0x3F6E,0x6F21,0x6F23,0x0000,0x0000,0x9528,0x9529,0x7D36, +0x3E7B,0x7D37,0x6F22,0x6F24,0x0000,0x7D38,0x3653,0x952A, +0x4945,0x952B,0x0000,0x3C62,0x4F23,0x0000,0x6E7E,0x3A78, +0x0000,0x0000,0x4F3F,0x0000,0x0000,0x6F26,0x0000,0x0000, +0x0000,0x0000,0x6F25,0x6F27,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x6E7D,0x0000,0x0000,0x952E, +0x7D39,0x7D3A,0x7D3B,0x4669,0x0000,0x4555,0x0000,0x0000, +0x0000,0x952F,0x0000,0x0000,0x4457,0x0000,0x6F2C,0x9530, +0x0000,0x0000,0x9531,0x4343,0x6F28,0x0000,0x0000,0x0000, +0x6F29,0x0000,0x0000,0x0000,0x7D3C,0x7D3D,0x0000,0x0000, +0x0000,0x0000,0x7D3E,0x9532,0x372D,0x0000,0x6F2B,0x0000, +0x7D3F,0x9533,0x0000,0x9534,0x0000,0x3830,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x6F2A,0x0000,0x3E61,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x9538,0x0000,0x0000,0x9539,0x3379,0x0000,0x0000,0x953A, +0x0000,0x0000,0x0000,0x0000,0x6F30,0x0000,0x3A3F,0x4179, +0x0000,0x0000,0x444A,0x7D40,0x0000,0x0000,0x953B,0x0000, +0x0000,0x9535,0x0000,0x7D41,0x0000,0x0000,0x0000,0x333B, +0x0000,0x0000,0x0000,0x0000,0x6F2E,0x6F2F,0x4443,0x0000, +0x6F2D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x6F31,0x7D42,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x9540,0x0000,0x6F37,0x0000,0x0000,0x7D43,0x9541, +0x6F3A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x6F39,0x452D,0x0000,0x0000,0x0000,0x0000,0x6F32,0x6F33, +0x6F36,0x0000,0x0000,0x0000,0x9542,0x6F38,0x7D44,0x7D45, +0x0000,0x3640,0x9543,0x0000,0x6F3B,0x6F35,0x0000,0x9544, +0x6F34,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x953F,0x0000,0x0000,0x0000,0x953C,0x0000,0x0000, +0x0000,0x0000,0x0000,0x9549,0x0000,0x7D47,0x0000,0x0000, + +/* 9400h */ +0x0000,0x0000,0x0000,0x6F3F,0x7D46,0x0000,0x0000,0x6F40, +0x0000,0x9545,0x0000,0x0000,0x0000,0x0000,0x0000,0x9546, +0x6F41,0x0000,0x0000,0x6F3E,0x6F3D,0x0000,0x9547,0x9548, +0x3E62,0x462A,0x6F3C,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x6F45,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x6F43,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x954A,0x7D48,0x954B,0x6F44,0x6F42,0x0000, +0x4278,0x0000,0x6F46,0x954C,0x0000,0x0000,0x0000,0x0000, +0x0000,0x6F47,0x0000,0x0000,0x6F49,0x954D,0x0000,0x0000, +0x0000,0x0000,0x7D49,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x3455,0x6F48,0x4C7A,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x6F54,0x6F4A,0x0000,0x0000,0x6F4D,0x0000, +0x6F4B,0x0000,0x6F4C,0x7D4A,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x6F4E,0x7D4B,0x0000,0x9550,0x0000,0x9551, +0x6F50,0x7D4C,0x7D4D,0x0000,0x0000,0x6F51,0x0000,0x6F52, +0x0000,0x0000,0x0000,0x0000,0x6F55,0x6F53,0x6F56,0x6F58, +0x0000,0x6F57,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + +/* 9500h */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x4439, +0x9552,0x9553,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x4C67,0x0000,0x6F59,0x412E,0x0000,0x0000,0x9554,0x6F5A, +0x0000,0x4A44,0x6F5B,0x332B,0x9555,0x9556,0x7D4E,0x313C, +0x0000,0x3457,0x0000,0x3456,0x6F5C,0x0000,0x6F5D,0x0000, +0x6F5E,0x6F5F,0x0000,0x0000,0x0000,0x0000,0x0000,0x7D4F, +0x6F60,0x0000,0x3458,0x3355,0x395E,0x4836,0x7D50,0x6F62, +0x6F61,0x7D51,0x0000,0x9558,0x7D52,0x6F63,0x0000,0x0000, +0x0000,0x0000,0x315C,0x0000,0x9559,0x0000,0x7D53,0x0000, +0x0000,0x6F66,0x0000,0x6F65,0x6F64,0x7D54,0x6F67,0x0000, +0x0000,0x0000,0x0000,0x6F6A,0x0000,0x0000,0x0000,0x3047, +0x955B,0x0000,0x6F68,0x7D55,0x6F6C,0x6F6B,0x0000,0x0000, +0x7D56,0x0000,0x0000,0x7D57,0x6F6E,0x6F6D,0x6F6F,0x0000, +0x462E,0x0000,0x7D59,0x0000,0x6F70,0x0000,0x7D5A,0x0000, +0x0000,0x6F71,0x6F73,0x0000,0x0000,0x6F72,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + +/* 9600h */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x496C,0x9425,0x0000,0x0000, +0x0000,0x6F74,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x6F75,0x0000,0x3A65,0x0000,0x955E,0x0000,0x6F76,0x6F77, +0x0000,0x0000,0x4B49,0x955F,0x9560,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x414B,0x9562,0x0000,0x0000,0x3024, +0x424B,0x9563,0x6F78,0x0000,0x496D,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x6F7B,0x6F79,0x395F,0x0000,0x6F7A, +0x3842,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x7D5B,0x0000,0x0000,0x4A45,0x6F7D,0x7021,0x6F7E,0x7022, +0x0000,0x9564,0x3121,0x3F58,0x3D7C,0x3459,0x7023,0x0000, +0x0000,0x0000,0x4766,0x0000,0x7025,0x0000,0x0000,0x0000, +0x3122,0x0000,0x7024,0x4444,0x0000,0x4E4D,0x462B,0x6F7C, +0x4E26,0x0000,0x3831,0x0000,0x0000,0x4D5B,0x0000,0x0000, +0x0000,0x0000,0x9566,0x0000,0x7D5C,0x3679,0x4E34,0x0000, +0x3728,0x0000,0x4262,0x6721,0x0000,0x7026,0x332C,0x3F6F, +0x0000,0x0000,0x0000,0x0000,0x3356,0x7028,0x0000,0x7029, +0x7027,0x3764,0x9568,0x3A5D,0x3E63,0x7D5E,0x0000,0x0000, +0x3123,0x0000,0x0000,0x4E59,0x7D5F,0x7D60,0x0000,0x702B, +0x6E2E,0x956B,0x702A,0x0000,0x0000,0x0000,0x0000,0x956C, +0x702E,0x702C,0x702D,0x956D,0x702F,0x0000,0x7030,0x4E6C, +0x7031,0x7032,0x956E,0x4049,0x483B,0x956F,0x0000,0x0000, +0x3F7D,0x3467,0x0000,0x0000,0x4D3A,0x326D,0x3D38,0x385B, +0x0000,0x7035,0x0000,0x7034,0x3B73,0x7036,0x7033,0x0000, +0x0000,0x3B28,0x7D61,0x0000,0x0000,0x703A,0x6A2D,0x0000, +0x9572,0x5256,0x9573,0x3F77,0x7038,0x9574,0x7D62,0x0000, +0x0000,0x0000,0x4E25,0x4671,0x0000,0x0000,0x0000,0x0000, +0x312B,0x7D64,0x4063,0x3C36,0x0000,0x0000,0x0000,0x7D65, +0x4A37,0x0000,0x3140,0x0000,0x0000,0x0000,0x4E6D,0x4D6B, +0x0000,0x703B,0x0000,0x4545,0x0000,0x0000,0x0000,0x0000, + +/* 9700h */ +0x3C7B,0x0000,0x0000,0x0000,0x703C,0x0000,0x703D,0x3F4C, +0x703E,0x0000,0x4E6E,0x0000,0x0000,0x7039,0x7040,0x7042, +0x0000,0x7041,0x0000,0x703F,0x9576,0x0000,0x7043,0x0000, +0x0000,0x7044,0x0000,0x0000,0x417A,0x0000,0x3262,0x0000, +0x0000,0x0000,0x0000,0x9577,0x7045,0x0000,0x0000,0x4C38, +0x0000,0x0000,0x7046,0x0000,0x0000,0x0000,0x0000,0x0000, +0x7047,0x0000,0x4F2A,0x7D66,0x0000,0x0000,0x9579,0x0000, +0x5B31,0x7048,0x0000,0x7D67,0x0000,0x7049,0x704A,0x0000, +0x0000,0x957A,0x704E,0x0000,0x704B,0x0000,0x704C,0x957B, +0x704D,0x704F,0x0000,0x0000,0x0000,0x7D68,0x7D69,0x7D6A, +0x0000,0x0000,0x4044,0x0000,0x0000,0x957C,0x4C77,0x957D, +0x0000,0x4045,0x7D6B,0x957E,0x7050,0x0000,0x4873,0x0000, +0x7051,0x7353,0x4C4C,0x0000,0x7052,0x0000,0x7053,0x0000, +0x7054,0x3357,0x9621,0x7056,0x0000,0x3F59,0x7D6C,0x0000, +0x0000,0x7057,0x0000,0x7D6D,0x3724,0x0000,0x0000,0x0000, +0x0000,0x7058,0x705C,0x0000,0x705A,0x0000,0x0000,0x0000, +0x0000,0x705B,0x0000,0x0000,0x3373,0x7059,0x705D,0x0000, +0x0000,0x0000,0x0000,0x705E,0x0000,0x3048,0x0000,0x705F, +0x7060,0x0000,0x0000,0x0000,0x0000,0x7D6E,0x9624,0x0000, +0x3E64,0x0000,0x9625,0x0000,0x7061,0x0000,0x9626,0x0000, +0x3547,0x0000,0x9627,0x7064,0x0000,0x0000,0x7063,0x0000, +0x7062,0x0000,0x0000,0x6B71,0x0000,0x4A5C,0x7D6F,0x0000, +0x0000,0x9628,0x9629,0x7065,0x7066,0x0000,0x0000,0x0000, +0x0000,0x0000,0x7D70,0x0000,0x0000,0x0000,0x962A,0x0000, +0x0000,0x7D71,0x0000,0x7067,0x0000,0x0000,0x7068,0x0000, +0x7069,0x7D72,0x0000,0x706A,0x962B,0x0000,0x0000,0x0000, +0x0000,0x962C,0x0000,0x345A,0x962D,0x0000,0x0000,0x0000, +0x962E,0x962F,0x0000,0x7D74,0x706B,0x0000,0x7D73,0x0000, +0x0000,0x9630,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x706C,0x4723,0x0000, +0x0000,0x9631,0x706E,0x323B,0x7D75,0x7071,0x7070,0x0000, +0x0000,0x0000,0x0000,0x3124,0x0000,0x0000,0x0000,0x3641, + +/* 9800h */ +0x0000,0x4A47,0x443A,0x3A22,0x9632,0x3960,0x3D67,0x0000, +0x3F5C,0x0000,0x7D77,0x0000,0x7073,0x9633,0x9634,0x7072, +0x4D42,0x3468,0x4852,0x465C,0x9635,0x0000,0x9636,0x3F7C, +0x4E4E,0x0000,0x375B,0x0000,0x0000,0x0000,0x7D78,0x0000, +0x0000,0x7076,0x0000,0x9639,0x7075,0x963C,0x0000,0x0000, +0x0000,0x0000,0x0000,0x7D79,0x4B4B,0x462C,0x0000,0x0000, +0x7D7A,0x0000,0x963A,0x963B,0x3150,0x0000,0x0000,0x7077, +0x7074,0x0000,0x0000,0x4951,0x4D6A,0x7078,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x7079,0x963D, +0x0000,0x0000,0x0000,0x707B,0x426A,0x335B,0x335C,0x707A, +0x0000,0x0000,0x7D7C,0x7D7D,0x3469,0x3832,0x7D7E,0x7E21, +0x346A,0x7E22,0x7E23,0x453F,0x0000,0x0000,0x4E60,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x7E25,0x963E,0x385C, +0x0000,0x0000,0x0000,0x707C,0x7E26,0x0000,0x0000,0x707D, +0x707E,0x7121,0x0000,0x7123,0x7122,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x4977,0x0000,0x7124,0x963F,0x0000,0x9640,0x0000,0x7125, +0x9641,0x7126,0x0000,0x0000,0x0000,0x0000,0x7127,0x9643, +0x9644,0x0000,0x7E27,0x9645,0x9646,0x0000,0x0000,0x9647, +0x0000,0x0000,0x9648,0x7129,0x7128,0x0000,0x712A,0x9649, +0x7E28,0x0000,0x0000,0x964A,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x4874,0x664C,0x0000,0x0000,0x3F29, +0x964B,0x964D,0x3532,0x964E,0x0000,0x964F,0x0000,0x7E29, +0x0000,0x712B,0x9650,0x712C,0x0000,0x522C,0x5D3B,0x4853, +0x9651,0x9652,0x307B,0x9653,0x303B,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x3B74,0x4B30,0x3E7E,0x0000, + +/* 9900h */ +0x0000,0x0000,0x0000,0x712D,0x0000,0x4C5F,0x0000,0x0000, +0x9654,0x712E,0x4D5C,0x0000,0x3142,0x0000,0x0000,0x0000, +0x3B41,0x0000,0x712F,0x326E,0x7130,0x0000,0x9657,0x9658, +0x7131,0x0000,0x965A,0x965B,0x965C,0x7133,0x7134,0x0000, +0x7136,0x7132,0x0000,0x0000,0x7135,0x0000,0x0000,0x0000, +0x345B,0x0000,0x0000,0x0000,0x7137,0x0000,0x7138,0x0000, +0x0000,0x965E,0x965F,0x9660,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x9661,0x9662,0x9663,0x7139,0x713A,0x0000, +0x9664,0x9665,0x713B,0x0000,0x0000,0x713D,0x9666,0x0000, +0x0000,0x713C,0x0000,0x713F,0x7142,0x9667,0x9668,0x0000, +0x713E,0x7140,0x7141,0x0000,0x0000,0x7143,0x0000,0x3642, +0x7E2A,0x0000,0x0000,0x0000,0x9669,0x0000,0x0000,0x966A, +0x966B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x3C73,0x7144, +0x7145,0x3961,0x0000,0x0000,0x0000,0x0000,0x7E2B,0x0000, +0x0000,0x0000,0x0000,0x966C,0x0000,0x7146,0x966D,0x0000, +0x333E,0x0000,0x0000,0x0000,0x474F,0x7147,0x7148,0x0000, +0x0000,0x0000,0x0000,0x435A,0x466B,0x0000,0x0000,0x0000, +0x0000,0x966E,0x0000,0x0000,0x7149,0x966F,0x0000,0x9670, +0x0000,0x477D,0x0000,0x9671,0x424C,0x3158,0x366E,0x0000, +0x366F,0x9672,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x4373,0x714E,0x3670,0x0000,0x9673,0x326F,0x0000,0x0000, +0x714D,0x9674,0x0000,0x714B,0x0000,0x714C,0x9675,0x714A, +0x0000,0x0000,0x7158,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x714F,0x7150,0x0000, +0x9677,0x7151,0x7152,0x0000,0x0000,0x0000,0x0000,0x0000, +0x7154,0x9678,0x0000,0x7153,0x9679,0x0000,0x0000,0x3D59, + +/* 9A00h */ +0x0000,0x7155,0x7E2C,0x7E2D,0x0000,0x7157,0x0000,0x0000, +0x0000,0x0000,0x967A,0x0000,0x0000,0x0000,0x3533,0x7156, +0x0000,0x967B,0x417B,0x3833,0x0000,0x0000,0x967C,0x0000, +0x0000,0x7159,0x967D,0x0000,0x0000,0x0000,0x0000,0x0000, +0x967E,0x0000,0x0000,0x0000,0x7E2E,0x0000,0x0000,0x0000, +0x424D,0x0000,0x0000,0x715A,0x0000,0x7E2F,0x7E30,0x0000, +0x462D,0x9721,0x0000,0x0000,0x0000,0x0000,0x9722,0x715B, +0x7E31,0x0000,0x0000,0x0000,0x0000,0x0000,0x7160,0x0000, +0x715E,0x0000,0x715D,0x715F,0x9723,0x715C,0x0000,0x0000, +0x0000,0x0000,0x7E32,0x0000,0x9724,0x7162,0x7E33,0x0000, +0x0000,0x0000,0x7E34,0x0000,0x0000,0x7161,0x0000,0x7164, +0x9725,0x0000,0x3643,0x7163,0x0000,0x0000,0x0000,0x7165, +0x0000,0x0000,0x7166,0x0000,0x7168,0x7167,0x0000,0x0000, +0x0000,0x7169,0x716B,0x716A,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x397C,0x0000,0x0000,0x0000,0x0000,0x716C,0x0000,0x9727, +0x716D,0x0000,0x0000,0x0000,0x0000,0x0000,0x7E35,0x9729, +0x333C,0x972B,0x0000,0x0000,0x716E,0x0000,0x0000,0x0000, +0x716F,0x7E36,0x0000,0x7E37,0x3F71,0x0000,0x972D,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x7E38,0x7170, +0x972E,0x7171,0x972F,0x7172,0x7173,0x9730,0x7E39,0x0000, +0x3962,0x0000,0x0000,0x0000,0x9732,0x0000,0x7174,0x7175, +0x9733,0x0000,0x7176,0x7177,0x0000,0x9734,0x7178,0x0000, +0x0000,0x9735,0x4831,0x717A,0x0000,0x4926,0x717B,0x7179, +0x0000,0x717D,0x0000,0x0000,0x717C,0x0000,0x0000,0x717E, +0x0000,0x7E3A,0x0000,0x7221,0x0000,0x0000,0x0000,0x0000, + +/* 9B00h */ +0x0000,0x0000,0x7E3B,0x9736,0x0000,0x0000,0x7222,0x0000, +0x7E3C,0x0000,0x0000,0x0000,0x9737,0x0000,0x0000,0x0000, +0x9738,0x0000,0x9739,0x0000,0x0000,0x0000,0x973A,0x0000, +0x7223,0x0000,0x7224,0x0000,0x973B,0x0000,0x0000,0x7225, +0x7E3D,0x0000,0x7226,0x7227,0x0000,0x7228,0x0000,0x7229, +0x722A,0x722B,0x722C,0x973C,0x0000,0x7E3F,0x722D,0x722E, +0x0000,0x5D35,0x722F,0x973D,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x6478,0x3534,0x973E,0x0000,0x0000, +0x0000,0x3321,0x3A32,0x7231,0x7230,0x4C25,0x0000,0x0000, +0x0000,0x0000,0x0000,0x9740,0x0000,0x7233,0x7234,0x7232, +0x0000,0x7235,0x0000,0x0000,0x4B62,0x0000,0x0000,0x0000, +0x7236,0x0000,0x357B,0x0000,0x0000,0x0000,0x7E40,0x0000, +0x0000,0x0000,0x0000,0x9741,0x0000,0x9742,0x7E42,0x0000, +0x0000,0x0000,0x0000,0x9743,0x9744,0x0000,0x0000,0x4F25, +0x0000,0x0000,0x7E43,0x9745,0x7237,0x7E44,0x9746,0x9747, +0x0000,0x7E41,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x7239,0x7E45,0x0000,0x0000,0x0000, +0x0000,0x0000,0x7E46,0x0000,0x0000,0x0000,0x303E,0x7E47, +0x0000,0x723A,0x4A2B,0x7238,0x0000,0x0000,0x723B,0x723C, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x7E48,0x723D, +0x723E,0x0000,0x0000,0x0000,0x0000,0x0000,0x9748,0x7E49, +0x723F,0x0000,0x4B6E,0x3B2D,0x9749,0x3A7A,0x412F,0x0000, +0x0000,0x974A,0x974D,0x0000,0x7240,0x0000,0x0000,0x0000, +0x974E,0x7243,0x0000,0x0000,0x0000,0x0000,0x974F,0x0000, +0x7241,0x7E4A,0x0000,0x0000,0x0000,0x0000,0x7244,0x9750, +0x0000,0x3871,0x7242,0x0000,0x0000,0x0000,0x7E4B,0x7245, +0x0000,0x7246,0x7247,0x0000,0x724B,0x0000,0x3B2A,0x0000, +0x9752,0x0000,0x0000,0x4264,0x0000,0x9753,0x0000,0x0000, +0x0000,0x724C,0x7249,0x7248,0x724A,0x7E4C,0x0000,0x9754, +0x375F,0x0000,0x9755,0x9756,0x0000,0x0000,0x9758,0x9757, +0x7250,0x724F,0x724E,0x9751,0x0000,0x3033,0x0000,0x975C, +0x7E4D,0x0000,0x975A,0x0000,0x0000,0x7E4E,0x0000,0x0000, + +/* 9C00h */ +0x7E4F,0x0000,0x0000,0x0000,0x725A,0x0000,0x7256,0x0000, +0x7257,0x7253,0x7259,0x0000,0x7255,0x3362,0x0000,0x0000, +0x4F4C,0x0000,0x7258,0x7254,0x7252,0x7251,0x975E,0x0000, +0x975F,0x9760,0x9761,0x725C,0x0000,0x9762,0x0000,0x0000, +0x0000,0x725F,0x9763,0x7E50,0x725E,0x725D,0x0000,0x9764, +0x0000,0x9765,0x9766,0x0000,0x0000,0x4949,0x725B,0x3073, +0x7260,0x9768,0x7262,0x0000,0x0000,0x0000,0x9769,0x976A, +0x0000,0x336F,0x724D,0x3137,0x0000,0x0000,0x7264,0x0000, +0x0000,0x7E51,0x0000,0x0000,0x0000,0x976B,0x7263,0x7261, +0x432D,0x976E,0x976F,0x0000,0x0000,0x0000,0x0000,0x7E52, +0x7E53,0x0000,0x4B70,0x7E54,0x9771,0x0000,0x0000,0x4E5A, +0x9772,0x0000,0x7265,0x9773,0x976C,0x9774,0x0000,0x9775, +0x7266,0x0000,0x0000,0x7E55,0x0000,0x7E56,0x0000,0x7267, +0x0000,0x9776,0x9777,0x9778,0x0000,0x9779,0x977A,0x0000, +0x977B,0x0000,0x977C,0x0000,0x0000,0x977D,0x7268,0x7E57, +0x7269,0x0000,0x977E,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x443B,0x9821,0x726A, +0x0000,0x4837,0x0000,0x726F,0x726B,0x0000,0x0000,0x0000, +0x726C,0x0000,0x9822,0x4B31,0x4C44,0x0000,0x4650,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + +/* 9D00h */ +0x0000,0x0000,0x9824,0x7270,0x0000,0x0000,0x7271,0x463E, +0x726E,0x726D,0x0000,0x9823,0x0000,0x0000,0x322A,0x0000, +0x0000,0x9826,0x7279,0x0000,0x0000,0x7278,0x0000,0x9827, +0x9828,0x0000,0x0000,0x3175,0x0000,0x7E58,0x7E59,0x7276, +0x0000,0x0000,0x0000,0x7275,0x0000,0x0000,0x7273,0x0000, +0x337B,0x0000,0x7272,0x3C32,0x3229,0x0000,0x0000,0x0000, +0x0000,0x0000,0x982C,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x3963,0x0000,0x0000,0x727C,0x727B, +0x0000,0x727A,0x982E,0x7E5A,0x7277,0x0000,0x727D,0x7E5B, +0x727E,0x0000,0x982F,0x0000,0x0000,0x0000,0x0000,0x0000, +0x7325,0x7324,0x7E5C,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x7326,0x0000,0x0000,0x312D,0x7321,0x7322,0x9830, +0x3974,0x4C39,0x9831,0x7E5D,0x7323,0x0000,0x0000,0x0000, +0x0000,0x9833,0x0000,0x9834,0x4B32,0x0000,0x0000,0x732B, +0x7E5E,0x0000,0x7327,0x9836,0x0000,0x0000,0x9837,0x9838, +0x0000,0x0000,0x732C,0x0000,0x7E5F,0x0000,0x9839,0x0000, +0x0000,0x0000,0x0000,0x0000,0x983A,0x0000,0x0000,0x7329, +0x0000,0x7328,0x7E60,0x0000,0x0000,0x983B,0x0000,0x375C, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x7E61,0x0000, +0x0000,0x983C,0x732D,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x983D,0x0000,0x0000,0x732E,0x0000,0x0000,0x0000, +0x0000,0x732F,0x0000,0x732A,0x7E63,0x0000,0x0000,0x7274, +0x0000,0x0000,0x7330,0x0000,0x4461,0x983F,0x0000,0x0000, +0x7334,0x9840,0x7335,0x7333,0x7E64,0x9841,0x0000,0x983E, +0x7E62,0x7332,0x7338,0x9842,0x7331,0x0000,0x7336,0x9843, +0x0000,0x9844,0x0000,0x0000,0x0000,0x0000,0x0000,0x7337, +0x0000,0x0000,0x0000,0x733A,0x0000,0x0000,0x9845,0x7E65, +0x0000,0x7339,0x9846,0x0000,0x0000,0x0000,0x0000,0x9847, +0x9848,0x0000,0x0000,0x9849,0x0000,0x0000,0x733C,0x7E67, +0x0000,0x0000,0x0000,0x0000,0x0000,0x733D,0x0000,0x733E, +0x0000,0x0000,0x4F49,0x0000,0x984A,0x0000,0x0000,0x0000, +0x733B,0x426B,0x3A6D,0x0000,0x0000,0x733F,0x0000,0x0000, + +/* 9E00h */ +0x0000,0x0000,0x984D,0x0000,0x0000,0x0000,0x0000,0x7E68, +0x0000,0x0000,0x984C,0x0000,0x0000,0x984E,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x7E69,0x0000,0x0000, +0x0000,0x984F,0x7340,0x7341,0x9850,0x9851,0x7342,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x7343,0x0000,0x0000, +0x3834,0x7344,0x0000,0x9852,0x7E6A,0x7345,0x0000,0x3C2F, +0x9854,0x7346,0x0000,0x0000,0x0000,0x9855,0x0000,0x0000, +0x7347,0x0000,0x0000,0x7348,0x7349,0x0000,0x0000,0x0000, +0x0000,0x734C,0x734A,0x4F3C,0x0000,0x734B,0x0000,0x4E6F, +0x0000,0x0000,0x0000,0x9856,0x0000,0x734D,0x7E6B,0x4E5B, +0x0000,0x0000,0x0000,0x0000,0x7E6C,0x734E,0x477E,0x0000, +0x9857,0x734F,0x7351,0x0000,0x7E6D,0x7352,0x0000,0x7E6E, +0x0000,0x0000,0x0000,0x0000,0x7E6F,0x7E70,0x0000,0x0000, +0x7350,0x396D,0x4C4D,0x4B63,0x5677,0x9859,0x5D60,0x4B7B, +0x0000,0x0000,0x0000,0x7E71,0x322B,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x7354,0x3550,0x7355,0x7356, +0x7357,0x7E72,0x3975,0x0000,0x7358,0x0000,0x0000,0x0000, +0x6054,0x4C5B,0x0000,0x4263,0x7359,0x735B,0x735A,0x985B, +0x735C,0x0000,0x0000,0x0000,0x0000,0x735D,0x0000,0x985C, +0x735E,0x0000,0x0000,0x0000,0x0000,0x0000,0x985D,0x735F, +0x0000,0x0000,0x0000,0x0000,0x7360,0x0000,0x7361,0x7362, +0x0000,0x7363,0x0000,0x7364,0x7365,0x7366,0x0000,0x985E, + +/* 9F00h */ +0x0000,0x0000,0x985F,0x9861,0x0000,0x0000,0x0000,0x7367, +0x7368,0x0000,0x0000,0x0000,0x0000,0x0000,0x4524,0x0000, +0x7E73,0x0000,0x0000,0x385D,0x0000,0x736A,0x0000,0x9862, +0x0000,0x9863,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x414D,0x736B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x736C,0x0000,0x0000,0x9864, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x9865, +0x0000,0x7E74,0x9866,0x4921,0x0000,0x9867,0x736D,0x0000, +0x0000,0x9868,0x0000,0x0000,0x0000,0x9869,0x986A,0x0000, +0x0000,0x0000,0x736E,0x6337,0x0000,0x0000,0x6C5A,0x706D, +0x0000,0x0000,0x736F,0x986B,0x7370,0x986C,0x0000,0x7E75, +0x986D,0x0000,0x0000,0x0000,0x0000,0x986F,0x0000,0x7372, +0x7373,0x7374,0x4E70,0x7371,0x0000,0x0000,0x7375,0x7376, +0x0000,0x9871,0x7378,0x0000,0x7377,0x9873,0x0000,0x0000, +0x9874,0x0000,0x737A,0x0000,0x0000,0x9875,0x737B,0x7379, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x4E36,0x0000,0x0000, +0x7E76,0x0000,0x0000,0x0000,0x7E77,0x737C,0x0000,0x7E78, +0x0000,0x0000,0x0000,0x0000,0x737D,0x6354,0x0000,0x0000, +0x737E,0x0000,0x7E79,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +}; + +static const int ucs_i_jisx0213_table_min = 0x4E00; +static const int ucs_i_jisx0213_table_max = 0x4E00 + (sizeof(ucs_i_jisx0213_table)/ + sizeof(unsigned short)); + +/* Halfwidth and Fullwidth Forms */ +static const unsigned short ucs_r_jisx0213_table[] = { // 0xff00 - 0xffe5 + +/* FF00h */ +0x0000,0x212A,0x2230,0x2174,0x2170,0x2173,0x2175,0x222F, +0x214A,0x214B,0x2176,0x215C,0x2124,0x2231,0x2125,0x213F, +0x2330,0x2331,0x2332,0x2333,0x2334,0x2335,0x2336,0x2337, +0x2338,0x2339,0x2127,0x2128,0x2163,0x2161,0x2164,0x2129, +0x2177,0x2341,0x2342,0x2343,0x2344,0x2345,0x2346,0x2347, +0x2348,0x2349,0x234A,0x234B,0x234C,0x234D,0x234E,0x234F, +0x2350,0x2351,0x2352,0x2353,0x2354,0x2355,0x2356,0x2357, +0x2358,0x2359,0x235A,0x214E,0x2140,0x214F,0x2130,0x2132, +0x212E,0x2361,0x2362,0x2363,0x2364,0x2365,0x2366,0x2367, +0x2368,0x2369,0x236A,0x236B,0x236C,0x236D,0x236E,0x236F, +0x2370,0x2371,0x2372,0x2373,0x2374,0x2375,0x2376,0x2377, +0x2378,0x2379,0x237A,0x2150,0x2143,0x2151,0x2232,0x2256, +0x2257,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7, +0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF, +0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7, +0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF, +0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7, +0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF, +0x00D0,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7, +0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x00DD,0x00DE,0x00DF, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x2131,0x0000,0x216F,}; + +static const int ucs_r_jisx0213_table_min = 0xFF00; +static const int ucs_r_jisx0213_table_max = 0xFF00 + (sizeof(ucs_r_jisx0213_table)/ + sizeof(unsigned short)); + +/* CJK Compatibility Ideographs : U+F900 - U+FAFF */ +static const unsigned short ucs_r2_jisx0213_table[] = { // 0xfa0f - 0xfa6a +0x2F4B, +0x2F57,0x4F72,0x0000,0x8679,0x757A,0x775A,0x776F,0x0000, +0x0000,0x793C,0x793D,0x7941,0x0000,0x0000,0x0000,0x7B3A, +0x9138,0x9145,0x7C2E,0x0000,0x936E,0x0000,0x7C6A,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x2E38,0x2E49,0x2E50,0x2E63,0x2E68,0x2E6E,0x2F2C,0x2F2F, +0x2F36,0x2F5A,0x2F5E,0x4F61,0x4F62,0x7450,0x745C,0x745E, +0x7461,0x7528,0x752B,0x7543,0x7565,0x7669,0x7677,0x7725, +0x7755,0x8A29,0x7825,0x7927,0x7933,0x7934,0x7937,0x7938, +0x7939,0x793B,0x793F,0x7940,0x794D,0x7951,0x7964,0x7A2E, +0x8E50,0x7A33,0x7A3A,0x7A44,0x7A58,0x8F74,0x8F75,0x7B27, +0x7B6F,0x7B79,0x7C2F,0x7C30,0x7C38,0x7C3D,0x9369,0x7C59, +0x7D63,0x7D76,0x7D7B,}; + +static const int ucs_r2_jisx0213_min = 0xFA0F; +static const int ucs_r2_jisx0213_max = 0xFA6A; + +/* + CJK Compatibility Ideographs: U+F900 - U+FAFF (seperate mapping for U+F9XX) +*/ +static const unsigned short ucs_r2b_jisx0213_cmap_key[] = { + 0xf91d,0xf928,0xf929,0xf936,0xf970,0xf9d0,0xf9dc}; + +static const unsigned short ucs_r2b_jisx0213_cmap_val[] = { + 0x763b,0x742e,0x754e,0x7b4f,0x7649,0x7e24,0x7d5d}; + +static const int ucs_r2b_jisx0213_cmap_len = + sizeof(ucs_r2b_jisx0213_cmap_key)/sizeof(unsigned short); + +/* + U+1E00 - U+4DBF in compresed mapping + + Latin Extended Additional: U+1E00 - U+1EFF + Greek Extended: U+1F00 - U+1FFF + General Punctuation: U+2000 - U+206F + Currency Symbols U+20A0 - U+20CF + Combining Diacritical Marks for Symbols: U+20D0 - 20FF + Number Forms: U+2150 - U+218F + Arrow : U+2190 - U+21FF + Mathematical Operations : U+2200 - U+22FF + Miscellaneous Technical : U+2300 - U+23FF + Enclosed Alphanumerics : U+2460 - U+24FF + Box Drawing: U+2500 - U+257F + Geometric Shapes: U+25A0 - U+25FF + Miscellanuous Symbols : U+2600 - U+26FF + Digbats : U+2700 - U+27BF + Supplemental Arrows-B: U+2900 - U+297F + Miscellaneous Mathematical Symbols-B: U+2980 - U+29FF + CJK Symbols and Punctution: U+3000 - U+303F + Hiragana (*1) : U+3040 - U+309F + Katakana (*1): U+30A0 - U+30FF + CJK Strokes: U+31C0-31EF + Katakana Phonetic Extensions : U+31F0 - U+31FF + CJK Unified Ideographs Extension A: U+3400 - U+4DBF + + *1 U+3000 - U+30FF is also defined in ucs_hk to optimize for speed. + */ +static const unsigned short ucs_c1_jisx0213_tbl[] = { // 0x1e00 - 0x4dff +0x1E3E,0x1E3F,0x1F70,0x1F71,0x1F72,0x1F73,0x2010,0x2010, +0x2013,0x2013,0x2014,0x2014,0x2016,0x2016,0x2018,0x2019, +0x201C,0x201D,0x2020,0x2021,0x2022,0x2022,0x2025,0x2025, +0x2026,0x2026,0x2030,0x2030,0x2032,0x2033,0x203B,0x203B, +0x203C,0x203C,0x203E,0x203E,0x203F,0x203F,0x2042,0x2042, +0x2047,0x2049,0x2051,0x2051,0x20AC,0x20AC,0x2103,0x2103, +0x210F,0x210F,0x2113,0x2113,0x2116,0x2116,0x2121,0x2121, +0x2127,0x2127,0x212B,0x212B,0x2135,0x2135,0x2153,0x2155, +0x2160,0x216A,0x216B,0x216B,0x2170,0x217B,0x2190,0x2191, +0x2192,0x2192,0x2193,0x2193,0x2194,0x2194,0x2196,0x2196, +0x2197,0x2198,0x2199,0x2199,0x21C4,0x21C4,0x21D2,0x21D2, +0x21D4,0x21D4,0x21E6,0x21E7,0x21E8,0x21E8,0x21E9,0x21E9, +0x2200,0x2200,0x2202,0x2202,0x2203,0x2203,0x2205,0x2205, +0x2207,0x2207,0x2208,0x2208,0x2209,0x2209,0x220B,0x220B, +0x2212,0x2212,0x2213,0x2213,0x221A,0x221A,0x221D,0x221D, +0x221E,0x221E,0x221F,0x221F,0x2220,0x2220,0x2225,0x2226, +0x2227,0x2228,0x2229,0x2229,0x222A,0x222A,0x222B,0x222C, +0x222E,0x222E,0x2234,0x2234,0x2235,0x2235,0x223D,0x223D, +0x2243,0x2243,0x2245,0x2245,0x2248,0x2248,0x2252,0x2252, +0x2260,0x2260,0x2261,0x2261,0x2262,0x2262,0x2266,0x2267, +0x226A,0x226B,0x2276,0x2277,0x2282,0x2283,0x2284,0x2285, +0x2286,0x2287,0x228A,0x228B,0x2295,0x2297,0x22A5,0x22A5, +0x22BF,0x22BF,0x22DA,0x22DB,0x2305,0x2306,0x2312,0x2312, +0x2318,0x2318,0x23BE,0x23CC,0x23CE,0x23CE,0x2423,0x2423, +0x2460,0x2473,0x24D0,0x24E9,0x24EB,0x24F4,0x24F5,0x24FE, +0x2500,0x2500,0x2501,0x2501,0x2502,0x2502,0x2503,0x2503, +0x250C,0x250C,0x250F,0x250F,0x2510,0x2510,0x2513,0x2513, +0x2514,0x2514,0x2517,0x2517,0x2518,0x2518,0x251B,0x251B, +0x251C,0x251C,0x251D,0x251D,0x2520,0x2520,0x2523,0x2523, +0x2524,0x2524,0x2525,0x2525,0x2528,0x2528,0x252B,0x252B, +0x252C,0x252C,0x252F,0x252F,0x2530,0x2530,0x2533,0x2533, +0x2534,0x2534,0x2537,0x2537,0x2538,0x2538,0x253B,0x253B, +0x253C,0x253C,0x253F,0x253F,0x2542,0x2542,0x254B,0x254B, +0x25A0,0x25A0,0x25A1,0x25A1,0x25B1,0x25B1,0x25B2,0x25B2, +0x25B3,0x25B3,0x25B6,0x25B6,0x25B7,0x25B7,0x25BC,0x25BC, +0x25BD,0x25BD,0x25C0,0x25C0,0x25C1,0x25C1,0x25C6,0x25C6, +0x25C7,0x25C7,0x25C9,0x25C9,0x25CB,0x25CB,0x25CE,0x25CE, +0x25CF,0x25CF,0x25D0,0x25D3,0x25E6,0x25E6,0x25EF,0x25EF, +0x2600,0x2603,0x2605,0x2605,0x2606,0x2606,0x260E,0x260E, +0x2616,0x2617,0x261E,0x261E,0x2640,0x2640,0x2642,0x2642, +0x2660,0x2660,0x2661,0x2661,0x2662,0x2662,0x2663,0x2663, +0x2664,0x2664,0x2665,0x2665,0x2666,0x2666,0x2667,0x2667, +0x2668,0x2668,0x2669,0x2669,0x266A,0x266A,0x266B,0x266C, +0x266D,0x266D,0x266E,0x266E,0x266F,0x266F,0x2713,0x2713, +0x2756,0x2756,0x2776,0x277F,0x2934,0x2935,0x29BF,0x29BF, +0x29FA,0x29FB,0x3000,0x3002,0x3003,0x3003,0x3005,0x3007, +0x3008,0x3011,0x3012,0x3012,0x3013,0x3013,0x3014,0x3015, +0x3016,0x3017,0x3018,0x3019,0x301C,0x301C,0x301D,0x301D, +0x301F,0x301F,0x3020,0x3020,0x3033,0x3035,0x303B,0x303C, +0x303D,0x303D,0x3041,0x3096,0x309B,0x309C,0x309D,0x309E, +0x309F,0x309F,0x30A0,0x30A0,0x30A1,0x30F6,0x30F7,0x30FA, +0x30FB,0x30FB,0x30FC,0x30FC,0x30FD,0x30FE,0x30FF,0x30FF, +0x31F0,0x31F9,0x31FA,0x31FF,0x3231,0x3232,0x3239,0x3239, +0x3251,0x325F,0x32A4,0x32A8,0x32B1,0x32BF,0x32D0,0x32E3, +0x32E5,0x32E5,0x32E9,0x32E9,0x32EC,0x32EC,0x32ED,0x32ED, +0x32FA,0x32FA,0x3303,0x3303,0x330D,0x330D,0x3314,0x3314, +0x3318,0x3318,0x3322,0x3322,0x3323,0x3323,0x3326,0x3326, +0x3327,0x3327,0x332B,0x332B,0x3336,0x3336,0x333B,0x333B, +0x3349,0x3349,0x334A,0x334A,0x334D,0x334D,0x3351,0x3351, +0x3357,0x3357,0x337B,0x337B,0x337C,0x337C,0x337D,0x337D, +0x337E,0x337E,0x338E,0x338F,0x339C,0x339E,0x33A1,0x33A1, +0x33C4,0x33C4,0x33CB,0x33CB,0x33CD,0x33CD,0x3402,0x3402, +0x3406,0x3406,0x342C,0x342C,0x342E,0x342E,0x3468,0x3468, +0x346A,0x346A,0x3492,0x3492,0x34B5,0x34B5,0x34BC,0x34BC, +0x34C1,0x34C1,0x34C7,0x34C7,0x34DB,0x34DB,0x351F,0x351F, +0x355D,0x355E,0x3563,0x3563,0x356E,0x356E,0x35A6,0x35A6, +0x35A8,0x35A8,0x35C5,0x35C5,0x35DA,0x35DA,0x35F4,0x35F4, +0x3605,0x3605,0x364A,0x364A,0x3691,0x3691,0x3696,0x3696, +0x3699,0x3699,0x36CF,0x36CF,0x3761,0x3761,0x3762,0x3762, +0x376B,0x376B,0x376C,0x376C,0x3775,0x3775,0x378D,0x378D, +0x37C1,0x37C1,0x37E2,0x37E2,0x37E8,0x37E8,0x37F4,0x37F4, +0x37FD,0x37FD,0x3800,0x3800,0x382F,0x382F,0x3836,0x3836, +0x3840,0x3840,0x385C,0x385C,0x3861,0x3861,0x38FA,0x38FA, +0x3917,0x3917,0x391A,0x391A,0x396F,0x396F,0x3A6E,0x3A6E, +0x3A73,0x3A73,0x3AD6,0x3AD6,0x3AD7,0x3AD7,0x3AEA,0x3AEA, +0x3B0E,0x3B0E,0x3B1A,0x3B1A,0x3B1C,0x3B1C,0x3B22,0x3B22, +0x3B6D,0x3B6D,0x3B77,0x3B77,0x3B87,0x3B88,0x3B8D,0x3B8D, +0x3BA4,0x3BA4,0x3BB6,0x3BB6,0x3BC3,0x3BC3,0x3BCD,0x3BCD, +0x3BF0,0x3BF0,0x3C0F,0x3C0F,0x3C26,0x3C26,0x3CC3,0x3CC3, +0x3CD2,0x3CD2,0x3D11,0x3D11,0x3D1E,0x3D1E,0x3D64,0x3D64, +0x3D9A,0x3D9A,0x3DC0,0x3DC0,0x3DD4,0x3DD4,0x3E05,0x3E05, +0x3E3F,0x3E3F,0x3E60,0x3E60,0x3E66,0x3E66,0x3E68,0x3E68, +0x3E83,0x3E83,0x3E94,0x3E94,0x3F57,0x3F57,0x3F72,0x3F72, +0x3F75,0x3F75,0x3F77,0x3F77,0x3FAE,0x3FAE,0x3FC9,0x3FC9, +0x3FD7,0x3FD7,0x4039,0x4039,0x4058,0x4058,0x4093,0x4093, +0x4105,0x4105,0x4148,0x4148,0x414F,0x414F,0x4163,0x4163, +0x41B4,0x41B4,0x41BF,0x41BF,0x41E6,0x41E6,0x41EE,0x41EE, +0x41F3,0x41F3,0x4207,0x4207,0x420E,0x420E,0x4264,0x4264, +0x42C6,0x42C6,0x42D6,0x42D6,0x42DD,0x42DD,0x4302,0x4302, +0x432B,0x432B,0x4343,0x4343,0x43EE,0x43EE,0x43F0,0x43F0, +0x4408,0x4408,0x4417,0x4417,0x441C,0x441C,0x4422,0x4422, +0x4453,0x4453,0x445B,0x445B,0x4476,0x4476,0x447A,0x447A, +0x4491,0x4491,0x44B3,0x44B3,0x44BE,0x44BE,0x44D4,0x44D4, +0x4508,0x4508,0x450D,0x450D,0x4525,0x4525,0x4543,0x4543, +0x459D,0x459D,0x45B8,0x45B8,0x45E5,0x45E5,0x45EA,0x45EA, +0x460F,0x460F,0x4641,0x4641,0x4665,0x4665,0x46A1,0x46A1, +0x46AF,0x46AF,0x470C,0x470C,0x4764,0x4764,0x47FD,0x47FD, +0x4816,0x4816,0x4844,0x4844,0x484E,0x484E,0x48B5,0x48B5, +0x49B0,0x49B0,0x49E7,0x49E7,0x49FA,0x49FA,0x4A04,0x4A04, +0x4A29,0x4A29,0x4ABC,0x4ABC,0x4B3B,0x4B3B,0x4BC2,0x4BC2, +0x4BCA,0x4BCA,0x4BD2,0x4BD2,0x4BE8,0x4BE8,0x4C17,0x4C17, +0x4C20,0x4C20,0x4CC4,0x4CC4,0x4CD1,0x4CD1,0x4D07,0x4D07, +0x4D77,0x4D77,}; + +static const unsigned short ucs_c1_jisx0213_ofst[] = { +0x2872,0x2B46,0x2B50,0x213E,0x237C,0x213D,0x2142,0x2146, +0x2148,0x2277,0x2340,0x2145,0x2144,0x2273,0x216C,0x2228, +0x286B,0x007E,0x2B58,0x2C7E,0x286C,0x2C7D,0x2921,0x216E, +0x235D,0x235F,0x2D62,0x2D64,0x2360,0x2272,0x235C,0x2778, +0x2D35,0x2D57,0x2C35,0x222B,0x222A,0x222D,0x2271,0x2327, +0x2325,0x2328,0x2329,0x224D,0x224E,0x232B,0x232A,0x232D, +0x224F,0x225F,0x2250,0x2247,0x2260,0x223A,0x2246,0x223B, +0x215D,0x235B,0x2265,0x2267,0x2167,0x2D78,0x225C,0x2254, +0x224A,0x2241,0x2240,0x2269,0x2D73,0x2168,0x2268,0x2266, +0x226C,0x226D,0x226E,0x2262,0x2162,0x2261,0x226B,0x2165, +0x2263,0x226F,0x223E,0x2242,0x223C,0x2244,0x2251,0x225D, +0x2D79,0x2776,0x2248,0x225E,0x277C,0x2742,0x277E,0x277D, +0x2D21,0x2C41,0x2C2B,0x265A,0x2821,0x282C,0x2822,0x282D, +0x2823,0x282E,0x2824,0x282F,0x2826,0x2831,0x2825,0x2830, +0x2827,0x283C,0x2837,0x2832,0x2829,0x283E,0x2839,0x2834, +0x2828,0x2838,0x283D,0x2833,0x282A,0x283A,0x283F,0x2835, +0x282B,0x283B,0x2840,0x2836,0x2223,0x2222,0x266D,0x2225, +0x2224,0x2322,0x2321,0x2227,0x2226,0x2324,0x2323,0x2221, +0x217E,0x233B,0x217B,0x217D,0x217C,0x2867,0x233F,0x227E, +0x2668,0x217A,0x2179,0x2667,0x2664,0x2D7E,0x216A,0x2169, +0x263A,0x263D,0x263B,0x2640,0x2639,0x263E,0x263C,0x263F, +0x266C,0x227D,0x2276,0x227B,0x2275,0x227A,0x2274,0x277B, +0x2D7D,0x2C21,0x232E,0x233A,0x237D,0x2121,0x2137,0x2139, +0x2152,0x2229,0x222E,0x214C,0x225A,0x2258,0x2141,0x2D60, +0x2D61,0x2666,0x2233,0x2236,0x233C,0x2421,0x212B,0x2135, +0x2239,0x237B,0x2521,0x2772,0x2126,0x213C,0x2133,0x2238, +0x266E,0x2679,0x2D6A,0x2D6C,0x2841,0x2D65,0x2850,0x2C5B, +0x2C71,0x2C70,0x2C73,0x2C72,0x2C6F,0x2D46,0x2D4A,0x2D41, +0x2D44,0x2D42,0x2D4C,0x2D4B,0x2D45,0x2D4D,0x2D47,0x2D4F, +0x2D40,0x2D4E,0x2D43,0x2D48,0x2D49,0x2D5F,0x2D6F,0x2D6E, +0x2D6D,0x2D53,0x2D50,0x2D56,0x2D55,0x235E,0x2D63,0x2E23, +0x7F2D,0x7F32,0x7F33,0x7F5E,0x7F56,0x7F7E,0x2E53,0x812B, +0x8E68,0x812F,0x2E5B,0x8148,0x815D,0x8161,0x8167,0x8223, +0x8226,0x822F,0x8238,0x8242,0x824A,0x8279,0x833F,0x8343, +0x8341,0x8357,0x8023,0x8025,0x8029,0x8028,0x802C,0x4F5F, +0x803E,0x4F6F,0x8056,0x8059,0x805C,0x805E,0x806F,0x8071, +0x8074,0x8079,0x807B,0x843B,0x8446,0x844A,0x8460,0x855B, +0x855F,0x8571,0x8636,0x857C,0x862E,0x8632,0x8634,0x7549, +0x866D,0x8665,0x8728,0x872C,0x8734,0x757E,0x7621,0x8748, +0x875D,0x763A,0x8777,0x883B,0x8842,0x8871,0x887E,0x8940, +0x8954,0x8970,0x8977,0x8A28,0x7766,0x8A3F,0x8A41,0x8A42, +0x8A49,0x8A50,0x8B34,0x784D,0x8B46,0x8B48,0x8B5C,0x8B67, +0x8B6C,0x8C22,0x8C2D,0x8C39,0x8C64,0x8C74,0x8C77,0x8C7D, +0x8D33,0x8D37,0x8D47,0x8D4B,0x8D48,0x8D53,0x8D57,0x796D, +0x8E2B,0x8E36,0x8E3B,0x8E4E,0x8E5D,0x8E61,0x8F3E,0x8F42, +0x8F48,0x8F4A,0x8F4C,0x8F4F,0x7A59,0x7A5A,0x8F6C,0x8F6E, +0x8F77,0x9035,0x9032,0x9034,0x9059,0x9054,0x906D,0x906E, +0x7B51,0x914F,0x916C,0x7B60,0x9224,0x923A,0x9243,0x924E, +0x9253,0x926B,0x9329,0x933F,0x9349,0x7C4B,0x935C,0x9427, +0x7D58,0x956A,0x9570,0x9575,0x9578,0x9637,0x9655,0x9726, +0x9728,0x972A,0x9731,0x7E3E,0x973F,0x982A,0x982D,0x984B, +0x9860,}; + +static const int ucs_c1_jisx0213_tbl_len = sizeof(ucs_c1_jisx0213_ofst)/sizeof(unsigned short); + +static const int ucs_c1_jisx0213_min = 0x1E00; +static const int ucs_c1_jisx0213_max = 0x4DFF; + +/* CJK Unified ideographs Extension B: U+2XXXX */ +static const unsigned short jisx0213_jis_u5_tbl[] = { +0x000B,0x123D,0x131B,0x146E,0x18BD,0x0B9F,0x16B4,0x1E34, +0x31C4,0x35C4,0x373F,0x3763,0x3CFE,0x47F1,0x548E,0x550E, +0x5771,0x59C4,0x5DA1,0x6AFF,0x6E40,0x70F4,0x7684,0x8277, +0x83CD,0xA190,0x0089,0x00A2,0x00A4,0x01A2,0x0213,0x032B, +0x0381,0x0371,0x1C56,0x1D2D,0x1D45,0x1D78,0x1D62,0x1DA1, +0x1D9C,0x1D92,0x1DB7,0x1DE0,0x1E33,0x1F1E,0x1F76,0x1FFA, +0x03F9,0x044A,0x0509,0x05D6,0x0628,0x074F,0x0807,0x083A, +0x08B9,0x097C,0x099D,0x0AD3,0x0B1D,0x0D45,0x0DE1,0x0E95, +0x0E6D,0x0E64,0x0F5F,0x1201,0x1255,0x127B,0x1274,0x12E4, +0x12D7,0x12FD,0x1336,0x1344,0x13C4,0x146D,0x15D7,0x6C29, +0x1647,0x1706,0x1742,0x19C3,0x217B,0x231E,0x23AD,0x26F3, +0x285B,0x28AB,0x298F,0x2AB8,0x2B4F,0x2B50,0x2B46,0x2C1D, +0x2BA6,0x2C24,0x2DE1,0x31C3,0x31F5,0x31B6,0x3372,0x33D3, +0x33D2,0x33D0,0x33E4,0x33D5,0x33DA,0x33DF,0x344A,0x3451, +0x344B,0x3465,0x34E4,0x355A,0x3594,0x3639,0x3647,0x3638, +0x363A,0x371C,0x370C,0x3764,0x37FF,0x37E7,0x3824,0x383D, +0x3A98,0x3C7F,0x3D00,0x3D40,0x3DFA,0x3DF9,0x3DD3,0x3F7E, +0x4096,0x4103,0x41C6,0x41FE,0x43BC,0x4629,0x46A5,0x4896, +0x4A4D,0x4B56,0x4B6F,0x4C16,0x4D14,0x4E0E,0x4E37,0x4E6A, +0x4E8B,0x504A,0x5055,0x5122,0x51A9,0x51E5,0x51CD,0x521E, +0x524C,0x542E,0x54D9,0x55A7,0x57A9,0x57B4,0x59D4,0x5AE4, +0x5AE3,0x5AF1,0x5BB2,0x5C4B,0x5C64,0x5E2E,0x5E56,0x5E65, +0x5E62,0x5ED8,0x5EC2,0x5EE8,0x5F23,0x5F5C,0x5FE0,0x5FD4, +0x600C,0x5FFB,0x6017,0x6060,0x60ED,0x6270,0x6286,0x634C, +0x3D0E,0x6402,0x667E,0x66B0,0x671D,0x68DD,0x68EA,0x6951, +0x696F,0x69DD,0x6A1E,0x6A58,0x6A8C,0x6AB7,0x6C73,0x6CDD, +0x6E65,0x6F94,0x6FF8,0x6FF6,0x6FF7,0x710D,0x7139,0x73DB, +0x73DA,0x73FE,0x7410,0x7449,0x7615,0x7614,0x7631,0x7693, +0x770E,0x7723,0x7752,0x7985,0x7A84,0x7BB3,0x7BBE,0x7BC7, +0x7CB8,0x7DA0,0x7E10,0x7FB7,0x808A,0x80BB,0x8282,0x82F3, +0x840C,0x8455,0x856B,0x85C8,0x85C9,0x86D7,0x86FA,0x8949, +0x8946,0x896B,0x8987,0x8988,0x89BA,0x89BB,0x8A1E,0x8A29, +0x8A71,0x8A43,0x8A99,0x8ACD,0x8AE4,0x8ADD,0x8BC1,0x8BEF, +0x8D10,0x8D71,0x8DFB,0x8E1F,0x8E36,0x8E89,0x8EEB,0x8F32, +0x8FF8,0x92A0,0x92B1,0x9490,0x95CF,0x967F,0x96F0,0x9719, +0x9750,0x98C6,0x9A72,0x9DDB,0x9E3D,0x9E15,0x9E8A,0x9E49, +0x9EC4,0x9EE9,0x9EDB,0x9FCE,0xA02F,0xA01A,0xA0F9,0xA082, +0x2218,0xA38C,0xA437,0xA5F1,0xA602,0xA61A,0xA6B2,}; + +static const unsigned short jisx0213_jis_u5_key[] = { +0x2E22,0x2F42,0x2F4C,0x2F60,0x2F7B,0x4F54,0x4F63,0x4F6E, +0x753A,0x7572,0x7629,0x7632,0x7660,0x776C,0x787E,0x7929, +0x7947,0x7954,0x796E,0x7A5D,0x7B33,0x7B49,0x7B6C,0x7C49, +0x7C51,0x7E66,0x7F21,0x7F2B,0x7F2E,0x7F36,0x7F46,0x7F70, +0x7F77,0x7F79,0x8030,0x8037,0x8038,0x803A,0x803B,0x803F, +0x8040,0x8045,0x8048,0x804A,0x804B,0x805B,0x8066,0x806C, +0x8122,0x8125,0x8127,0x8131,0x8132,0x8138,0x813F,0x8141, +0x814A,0x8152,0x8153,0x8159,0x815C,0x8177,0x822A,0x8231, +0x8232,0x823A,0x823D,0x8259,0x825C,0x825E,0x8263,0x826A, +0x826B,0x8272,0x8274,0x8275,0x8325,0x8332,0x833E,0x8344, +0x8347,0x8355,0x8356,0x837E,0x8422,0x842B,0x8430,0x8450, +0x8465,0x846D,0x8472,0x8524,0x8529,0x852A,0x8532,0x8534, +0x8535,0x8539,0x8556,0x857D,0x8623,0x8624,0x863A,0x863C, +0x863D,0x8642,0x8643,0x8644,0x8647,0x8649,0x8655,0x8656, +0x8657,0x865B,0x8677,0x8678,0x872A,0x873F,0x8740,0x8742, +0x8743,0x874E,0x8759,0x8761,0x8769,0x876A,0x8770,0x8775, +0x8823,0x8834,0x8849,0x885C,0x885E,0x885F,0x8860,0x8932, +0x8947,0x894D,0x8961,0x8964,0x8A22,0x8A33,0x8A39,0x8A53, +0x8A7B,0x8B2E,0x8B30,0x8B35,0x8B44,0x8B5D,0x8B61,0x8B66, +0x8B69,0x8B75,0x8B77,0x8B7A,0x8C21,0x8C23,0x8C24,0x8C28, +0x8C2C,0x8C3D,0x8C48,0x8C5B,0x8C75,0x8C76,0x8D32,0x8D3D, +0x8D3E,0x8D40,0x8D52,0x8D5D,0x8D5E,0x8D73,0x8D74,0x8D75, +0x8D77,0x8D7B,0x8D7D,0x8E22,0x8E24,0x8E27,0x8E2E,0x8E2F, +0x8E34,0x8E35,0x8E3D,0x8E42,0x8E4F,0x8E69,0x8E6B,0x8E72, +0x8E75,0x8E79,0x8F35,0x8F3A,0x8F46,0x8F56,0x8F58,0x8F5A, +0x8F5D,0x8F5F,0x8F63,0x8F6A,0x8F70,0x8F73,0x9044,0x904E, +0x905D,0x9075,0x907E,0x9121,0x9122,0x9133,0x9136,0x9164, +0x9165,0x916B,0x916E,0x9173,0x9229,0x922A,0x922C,0x9234, +0x923C,0x923E,0x9242,0x9256,0x9263,0x9277,0x9279,0x927A, +0x9325,0x932F,0x9332,0x9339,0x9342,0x9348,0x9359,0x935E, +0x9366,0x936B,0x937A,0x937E,0x9421,0x942C,0x942F,0x944F, +0x9450,0x9457,0x9465,0x9466,0x9471,0x9472,0x947E,0x9521, +0x952C,0x952D,0x9536,0x9537,0x953D,0x953E,0x954E,0x954F, +0x9557,0x955A,0x955C,0x955D,0x9561,0x9565,0x9567,0x9569, +0x9571,0x9622,0x9623,0x9638,0x9642,0x964C,0x9656,0x9659, +0x965D,0x9676,0x972C,0x974B,0x974C,0x9759,0x975B,0x975D, +0x9767,0x976D,0x9770,0x9825,0x9829,0x982B,0x9832,0x9835, +0x9853,0x9858,0x985A,0x986E,0x9870,0x9872,0x9876,}; + +static const unsigned short jisx0213_u5_jis_tbl[] = { +0x2E22,0x7F21,0x7F2B,0x7F2E,0x7F36,0x7F46,0x7F70,0x7F79, +0x7F77,0x8122,0x8125,0x8127,0x8131,0x8132,0x8138,0x813F, +0x8141,0x814A,0x8152,0x8153,0x8159,0x815C,0x4F54,0x8177, +0x822A,0x823A,0x8232,0x8231,0x823D,0x8259,0x2F42,0x825C, +0x8263,0x825E,0x826B,0x826A,0x8272,0x2F4C,0x8274,0x8275, +0x8325,0x8332,0x2F60,0x833E,0x8347,0x4F63,0x8355,0x8356, +0x2F7B,0x837E,0x8030,0x8037,0x8038,0x803B,0x803A,0x8045, +0x8040,0x803F,0x8048,0x804A,0x804B,0x4F6E,0x805B,0x8066, +0x806C,0x8422,0x9853,0x842B,0x8430,0x8450,0x8465,0x846D, +0x8472,0x8524,0x8532,0x8529,0x852A,0x8535,0x8534,0x8539, +0x8556,0x8624,0x857D,0x753A,0x8623,0x863A,0x8642,0x863D, +0x863C,0x8644,0x8647,0x8649,0x8643,0x8655,0x8657,0x8656, +0x865B,0x8677,0x8678,0x872A,0x7572,0x8742,0x873F,0x8743, +0x8740,0x8759,0x874E,0x7629,0x7632,0x8761,0x876A,0x8769, +0x8770,0x8775,0x8823,0x8834,0x7660,0x8849,0x8E75,0x885C, +0x8860,0x885F,0x885E,0x8932,0x8947,0x894D,0x8961,0x8964, +0x8A22,0x8A33,0x8A39,0x776C,0x8A53,0x8A7B,0x8B2E,0x8B30, +0x8B35,0x8B44,0x8B5D,0x8B61,0x8B66,0x8B69,0x8B75,0x8B77, +0x8B7A,0x8C21,0x8C24,0x8C23,0x8C28,0x8C2C,0x8C3D,0x787E, +0x8C48,0x7929,0x8C5B,0x7947,0x8C75,0x8C76,0x7954,0x8D32, +0x8D3E,0x8D3D,0x8D40,0x8D52,0x8D5D,0x8D5E,0x796E,0x8D73, +0x8D74,0x8D77,0x8D75,0x8D7D,0x8D7B,0x8E22,0x8E24,0x8E27, +0x8E2F,0x8E2E,0x8E35,0x8E34,0x8E3D,0x8E42,0x8E4F,0x8E69, +0x8E6B,0x8E72,0x8E79,0x8F35,0x8F3A,0x8F46,0x8F56,0x8F58, +0x8F5A,0x8F5D,0x8F5F,0x8F63,0x8F6A,0x8F70,0x8F73,0x7A5D, +0x8344,0x9044,0x904E,0x7B33,0x905D,0x9075,0x9121,0x9122, +0x907E,0x7B49,0x9133,0x9136,0x9165,0x9164,0x916B,0x916E, +0x9173,0x922A,0x9229,0x922C,0x7B6C,0x9234,0x923C,0x923E, +0x9242,0x9256,0x9263,0x9277,0x9279,0x927A,0x9325,0x932F, +0x9332,0x9339,0x9342,0x9348,0x7C49,0x9359,0x935E,0x7C51, +0x9366,0x936B,0x937A,0x937E,0x9421,0x942C,0x942F,0x9450, +0x944F,0x9457,0x9465,0x9466,0x9471,0x9472,0x947E,0x9521, +0x952D,0x952C,0x9536,0x9537,0x953E,0x953D,0x954E,0x954F, +0x9557,0x955A,0x955C,0x955D,0x9561,0x9565,0x9567,0x9569, +0x9571,0x9622,0x9623,0x9638,0x9642,0x964C,0x9656,0x9659, +0x965D,0x9676,0x972C,0x974B,0x9759,0x974C,0x975D,0x975B, +0x9767,0x9770,0x976D,0x9825,0x982B,0x9829,0x9835,0x9832, +0x7E66,0x9858,0x985A,0x986E,0x9870,0x9872,0x9876,}; + +static const unsigned short jisx0213_u5_jis_key[] = { +0x000B,0x0089,0x00A2,0x00A4,0x01A2,0x0213,0x032B,0x0371, +0x0381,0x03F9,0x044A,0x0509,0x05D6,0x0628,0x074F,0x0807, +0x083A,0x08B9,0x097C,0x099D,0x0AD3,0x0B1D,0x0B9F,0x0D45, +0x0DE1,0x0E64,0x0E6D,0x0E95,0x0F5F,0x1201,0x123D,0x1255, +0x1274,0x127B,0x12D7,0x12E4,0x12FD,0x131B,0x1336,0x1344, +0x13C4,0x146D,0x146E,0x15D7,0x1647,0x16B4,0x1706,0x1742, +0x18BD,0x19C3,0x1C56,0x1D2D,0x1D45,0x1D62,0x1D78,0x1D92, +0x1D9C,0x1DA1,0x1DB7,0x1DE0,0x1E33,0x1E34,0x1F1E,0x1F76, +0x1FFA,0x217B,0x2218,0x231E,0x23AD,0x26F3,0x285B,0x28AB, +0x298F,0x2AB8,0x2B46,0x2B4F,0x2B50,0x2BA6,0x2C1D,0x2C24, +0x2DE1,0x31B6,0x31C3,0x31C4,0x31F5,0x3372,0x33D0,0x33D2, +0x33D3,0x33D5,0x33DA,0x33DF,0x33E4,0x344A,0x344B,0x3451, +0x3465,0x34E4,0x355A,0x3594,0x35C4,0x3638,0x3639,0x363A, +0x3647,0x370C,0x371C,0x373F,0x3763,0x3764,0x37E7,0x37FF, +0x3824,0x383D,0x3A98,0x3C7F,0x3CFE,0x3D00,0x3D0E,0x3D40, +0x3DD3,0x3DF9,0x3DFA,0x3F7E,0x4096,0x4103,0x41C6,0x41FE, +0x43BC,0x4629,0x46A5,0x47F1,0x4896,0x4A4D,0x4B56,0x4B6F, +0x4C16,0x4D14,0x4E0E,0x4E37,0x4E6A,0x4E8B,0x504A,0x5055, +0x5122,0x51A9,0x51CD,0x51E5,0x521E,0x524C,0x542E,0x548E, +0x54D9,0x550E,0x55A7,0x5771,0x57A9,0x57B4,0x59C4,0x59D4, +0x5AE3,0x5AE4,0x5AF1,0x5BB2,0x5C4B,0x5C64,0x5DA1,0x5E2E, +0x5E56,0x5E62,0x5E65,0x5EC2,0x5ED8,0x5EE8,0x5F23,0x5F5C, +0x5FD4,0x5FE0,0x5FFB,0x600C,0x6017,0x6060,0x60ED,0x6270, +0x6286,0x634C,0x6402,0x667E,0x66B0,0x671D,0x68DD,0x68EA, +0x6951,0x696F,0x69DD,0x6A1E,0x6A58,0x6A8C,0x6AB7,0x6AFF, +0x6C29,0x6C73,0x6CDD,0x6E40,0x6E65,0x6F94,0x6FF6,0x6FF7, +0x6FF8,0x70F4,0x710D,0x7139,0x73DA,0x73DB,0x73FE,0x7410, +0x7449,0x7614,0x7615,0x7631,0x7684,0x7693,0x770E,0x7723, +0x7752,0x7985,0x7A84,0x7BB3,0x7BBE,0x7BC7,0x7CB8,0x7DA0, +0x7E10,0x7FB7,0x808A,0x80BB,0x8277,0x8282,0x82F3,0x83CD, +0x840C,0x8455,0x856B,0x85C8,0x85C9,0x86D7,0x86FA,0x8946, +0x8949,0x896B,0x8987,0x8988,0x89BA,0x89BB,0x8A1E,0x8A29, +0x8A43,0x8A71,0x8A99,0x8ACD,0x8ADD,0x8AE4,0x8BC1,0x8BEF, +0x8D10,0x8D71,0x8DFB,0x8E1F,0x8E36,0x8E89,0x8EEB,0x8F32, +0x8FF8,0x92A0,0x92B1,0x9490,0x95CF,0x967F,0x96F0,0x9719, +0x9750,0x98C6,0x9A72,0x9DDB,0x9E15,0x9E3D,0x9E49,0x9E8A, +0x9EC4,0x9EDB,0x9EE9,0x9FCE,0xA01A,0xA02F,0xA082,0xA0F9, +0xA190,0xA38C,0xA437,0xA5F1,0xA602,0xA61A,0xA6B2,}; + +static const int jisx0213_u5_tbl_min = 0x2000B; +static const int jisx0213_u5_tbl_max = 0x2A6B2; +static const int jisx0213_u5_tbl_len = sizeof(jisx0213_u5_jis_key)/sizeof(unsigned short); + +/* combined chars in JIS X 0213 */ +static const unsigned short jisx0213_u2_key[] = { + 0x2477,0x2478,0x2479,0x247A,0x247B,0x2577,0x2578,0x2579, + 0x257A,0x257B,0x257C,0x257D,0x257E,0x2678,0x2B44,0x2B48, + 0x2B49,0x2B4A,0x2B4B,0x2B4C,0x2B4D,0x2B4E,0x2B4F,0x2B65, + 0x2B66}; + +/* combined pairs in Unicode */ +static const unsigned short jisx0213_u2_tbl[] = { + 0x304B,0x309A,0x304D,0x309A,0x304F,0x309A,0x3051,0x309A, + 0x3053,0x309A,0x30AB,0x309A,0x30AD,0x309A,0x30AF,0x309A, + 0x30B1,0x309A,0x30B3,0x309A,0x30BB,0x309A,0x30C4,0x309A, + 0x30C8,0x309A,0x31F7,0x309A,0x00E6,0x0300,0x0254,0x0300, + 0x0254,0x0301,0x028C,0x0300,0x028C,0x0301,0x0259,0x0300, + 0x0259,0x0301,0x025A,0x0300,0x025A,0x0301,0x02E9,0x02E5, + 0x02E5,0x02E9}; + +/* fallback chars for combined chars in Unicode */ +static const unsigned short jisx0213_u2_fb_tbl[] = { + 0x242B,0x242D,0x242F,0x2431,0x2433,0x252B,0x252D,0x252F, + 0x2531,0x2533,0x253B,0x2544,0x2548,0x2675,0x295C,0x2B38, + 0x2B38,0x2B37,0x2B37,0x2B30,0x2B30,0x2B43,0x2B43,0x2B64, + 0x2B60}; + +static const int jisx0213_u2_tbl_len = sizeof(jisx0213_u2_key)/sizeof(unsigned short); + + +static const unsigned short jisx0213_p2_ofst[] = { + 1, 8, 3, 4, 5, 12, 13, 14, 15, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94}; + +static const int jisx0213_p2_ofst_len = + sizeof(jisx0213_p2_ofst)/sizeof(unsigned short); + +static const int uni2jis_tbl_range[][2] = { + {0x0000, 0x045f}, + {0x3000, 0x30ff}, + {0x4e00, 0x9fff}, + {0xff00, 0xffe5}, + {0xfa0f, 0xfa6a}, +}; + +static const unsigned short *uni2jis_tbl[] = { + ucs_a1_jisx0213_table, + ucs_hk_jisx0213_table, + ucs_i_jisx0213_table, + ucs_r_jisx0213_table, + ucs_r2_jisx0213_table, +}; + +static const int uni2jis_tbl_len = sizeof(uni2jis_tbl_range)/(sizeof(int)*2); + +#endif /* UNICODE_TABLE_JIS2004_H */ + diff --git a/ext/mbstring/libmbfl/filters/unicode_table_koi8r.h b/ext/mbstring/libmbfl/filters/unicode_table_koi8r.h new file mode 100644 index 0000000..ad3a68c --- /dev/null +++ b/ext/mbstring/libmbfl/filters/unicode_table_koi8r.h @@ -0,0 +1,53 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The original author of this file: Den V. Tsopa <tdv@edisoft.ru> + * + */ + +#ifndef UNICODE_TABLE_KOI8R_H +#define UNICODE_TABLE_KOI8R_H + +/* KOI8-R (RFC1489) to Unicode */ +static const unsigned short koi8r_ucs_table[] = { + 0x2500, 0x2502, 0x250c, 0x2510, 0x2514, 0x2518, 0x251c, 0x2524, + 0x252c, 0x2534, 0x253c, 0x2580, 0x2584, 0x2588, 0x258c, 0x2590, + 0x2591, 0x2592, 0x2593, 0x2320, 0x25a0, 0x2219, 0x221a, 0x2248, + 0x2264, 0x2265, 0x00a0, 0x2321, 0x00b0, 0x00b2, 0x00b7, 0x00f7, + 0x2550, 0x2551, 0x2552, 0x0451, 0x2553, 0x2554, 0x2555, 0x2556, + 0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x255c, 0x255d, 0x255e, + 0x255f, 0x2560, 0x2561, 0x0401, 0x2562, 0x2563, 0x2564, 0x2565, + 0x2566, 0x2567, 0x2568, 0x2569, 0x256a, 0x256b, 0x256c, 0x00a9, + 0x044e, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, + 0x0445, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, + 0x043f, 0x044f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, + 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, + 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, + 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, + 0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, + 0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a +}; +static const int koi8r_ucs_table_min = 0x80; +static const int koi8r_ucs_table_len = (sizeof (koi8r_ucs_table) / sizeof (unsigned short)); +static const int koi8r_ucs_table_max = 0x80 + (sizeof (koi8r_ucs_table) / sizeof (unsigned short)); + + + +#endif /* UNNICODE_TABLE_KOI8R_H */ diff --git a/ext/mbstring/libmbfl/filters/unicode_table_koi8u.h b/ext/mbstring/libmbfl/filters/unicode_table_koi8u.h new file mode 100644 index 0000000..f3a4e9d --- /dev/null +++ b/ext/mbstring/libmbfl/filters/unicode_table_koi8u.h @@ -0,0 +1,166 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this part: Maksym Veremeyenko <verem@m1.tv> + * + */ + +#ifndef UNICODE_TABLE_KOI8U_H +#define UNICODE_TABLE_KOI8U_H + +/* KOI8-U (RFC2319) to Unicode */ +static const unsigned short koi8u_ucs_table[] = { + 0x2500, /* BOX DRAWINGS LIGHT HORIZONTAL */ + 0x2502, /* BOX DRAWINGS LIGHT VERTICAL */ + 0x250C, /* BOX DRAWINGS LIGHT DOWN AND RIGHT */ + 0x2510, /* BOX DRAWINGS LIGHT DOWN AND LEFT */ + 0x2514, /* BOX DRAWINGS LIGHT UP AND RIGHT */ + 0x2518, /* BOX DRAWINGS LIGHT UP AND LEFT */ + 0x251C, /* BOX DRAWINGS LIGHT VERTICAL AND RIGHT */ + 0x2524, /* BOX DRAWINGS LIGHT VERTICAL AND LEFT */ + 0x252C, /* BOX DRAWINGS LIGHT DOWN AND HORIZONTAL */ + 0x2534, /* BOX DRAWINGS LIGHT UP AND HORIZONTAL */ + 0x253C, /* BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL */ + 0x2580, /* UPPER HALF BLOCK */ + 0x2584, /* LOWER HALF BLOCK */ + 0x2588, /* FULL BLOCK */ + 0x258C, /* LEFT HALF BLOCK */ + 0x2590, /* RIGHT HALF BLOCK */ + 0x2591, /* LIGHT SHADE */ + 0x2592, /* MEDIUM SHADE */ + 0x2593, /* DARK SHADE */ + 0x2320, /* TOP HALF INTEGRAL */ + 0x25A0, /* BLACK SQUARE */ + 0x2219, /* BULLET OPERATOR */ + 0x221A, /* SQUARE ROOT */ + 0x2248, /* ALMOST EQUAL TO */ + 0x2264, /* LESS THAN OR EQUAL TO */ + 0x2265, /* GREATER THAN OR EQUAL TO */ + 0x00A0, /* NO-BREAK SPACE */ + 0x2321, /* BOTTOM HALF INTEGRAL */ + 0x00B0, /* DEGREE SIGN */ + 0x00B2, /* SUPERSCRIPT TWO */ + 0x00B7, /* MIDDLE DOT */ + 0x00F7, /* DIVISION SIGN */ + 0x2550, /* BOX DRAWINGS DOUBLE HORIZONTAL */ + 0x2551, /* BOX DRAWINGS DOUBLE VERTICAL */ + 0x2552, /* BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE */ + 0x0451, /* CYRILLIC SMALL LETTER IO */ + 0x0454, /* CYRILLIC SMALL LETTER UKRAINIAN IE */ + 0x2554, /* BOX DRAWINGS DOUBLE DOWN AND RIGHT */ + 0x0456, /* CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I */ + 0x0457, /* CYRILLIC SMALL LETTER YI (UKRAINIAN) */ + 0x2557, /* BOX DRAWINGS DOUBLE DOWN AND LEFT */ + 0x2558, /* BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE */ + 0x2559, /* BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE */ + 0x255A, /* BOX DRAWINGS DOUBLE UP AND RIGHT */ + 0x255B, /* BOX DRAWINGS UP SINGLE AND LEFT DOUBLE */ + 0x0491, /* CYRILLIC SMALL LETTER GHE WITH UPTURN */ + 0x255D, /* BOX DRAWINGS DOUBLE UP AND LEFT */ + 0x255E, /* BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE */ + 0x255F, /* BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE */ + 0x2560, /* BOX DRAWINGS DOUBLE VERTICAL AND RIGHT */ + 0x2561, /* BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE */ + 0x0401, /* CYRILLIC CAPITAL LETTER IO */ + 0x0404, /* CYRILLIC CAPITAL LETTER UKRAINIAN IE */ + 0x2563, /* BOX DRAWINGS DOUBLE VERTICAL AND LEFT */ + 0x0406, /* CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I */ + 0x0407, /* CYRILLIC CAPITAL LETTER YI (UKRAINIAN) */ + 0x2566, /* BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL */ + 0x2567, /* BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE */ + 0x2568, /* BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE */ + 0x2569, /* BOX DRAWINGS DOUBLE UP AND HORIZONTAL */ + 0x256A, /* BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE */ + 0x0490, /* CYRILLIC CAPITAL LETTER GHE WITH UPTURN */ + 0x256C, /* BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL */ + 0x00A9, /* COPYRIGHT SIGN */ + 0x044E, /* CYRILLIC SMALL LETTER YU */ + 0x0430, /* CYRILLIC SMALL LETTER A */ + 0x0431, /* CYRILLIC SMALL LETTER BE */ + 0x0446, /* CYRILLIC SMALL LETTER TSE */ + 0x0434, /* CYRILLIC SMALL LETTER DE */ + 0x0435, /* CYRILLIC SMALL LETTER IE */ + 0x0444, /* CYRILLIC SMALL LETTER EF */ + 0x0433, /* CYRILLIC SMALL LETTER GHE */ + 0x0445, /* CYRILLIC SMALL LETTER KHA */ + 0x0438, /* CYRILLIC SMALL LETTER I */ + 0x0439, /* CYRILLIC SMALL LETTER SHORT I */ + 0x043A, /* CYRILLIC SMALL LETTER KA */ + 0x043B, /* CYRILLIC SMALL LETTER EL */ + 0x043C, /* CYRILLIC SMALL LETTER EM */ + 0x043D, /* CYRILLIC SMALL LETTER EN */ + 0x043E, /* CYRILLIC SMALL LETTER O */ + 0x043F, /* CYRILLIC SMALL LETTER PE */ + 0x044F, /* CYRILLIC SMALL LETTER YA */ + 0x0440, /* CYRILLIC SMALL LETTER ER */ + 0x0441, /* CYRILLIC SMALL LETTER ES */ + 0x0442, /* CYRILLIC SMALL LETTER TE */ + 0x0443, /* CYRILLIC SMALL LETTER U */ + 0x0436, /* CYRILLIC SMALL LETTER ZHE */ + 0x0432, /* CYRILLIC SMALL LETTER VE */ + 0x044C, /* CYRILLIC SMALL LETTER SOFT SIGN */ + 0x044B, /* CYRILLIC SMALL LETTER YERU */ + 0x0437, /* CYRILLIC SMALL LETTER ZE */ + 0x0448, /* CYRILLIC SMALL LETTER SHA */ + 0x044D, /* CYRILLIC SMALL LETTER E */ + 0x0449, /* CYRILLIC SMALL LETTER SHCHA */ + 0x0447, /* CYRILLIC SMALL LETTER CHE */ + 0x044A, /* CYRILLIC SMALL LETTER HARD SIGN */ + 0x042E, /* CYRILLIC CAPITAL LETTER YU */ + 0x0410, /* CYRILLIC CAPITAL LETTER A */ + 0x0411, /* CYRILLIC CAPITAL LETTER BE */ + 0x0426, /* CYRILLIC CAPITAL LETTER TSE */ + 0x0414, /* CYRILLIC CAPITAL LETTER DE */ + 0x0415, /* CYRILLIC CAPITAL LETTER IE */ + 0x0424, /* CYRILLIC CAPITAL LETTER EF */ + 0x0413, /* CYRILLIC CAPITAL LETTER GHE */ + 0x0425, /* CYRILLIC CAPITAL LETTER KHA */ + 0x0418, /* CYRILLIC CAPITAL LETTER I */ + 0x0419, /* CYRILLIC CAPITAL LETTER SHORT I */ + 0x041A, /* CYRILLIC CAPITAL LETTER KA */ + 0x041B, /* CYRILLIC CAPITAL LETTER EL */ + 0x041C, /* CYRILLIC CAPITAL LETTER EM */ + 0x041D, /* CYRILLIC CAPITAL LETTER EN */ + 0x041E, /* CYRILLIC CAPITAL LETTER O */ + 0x041F, /* CYRILLIC CAPITAL LETTER PE */ + 0x042F, /* CYRILLIC CAPITAL LETTER YA */ + 0x0420, /* CYRILLIC CAPITAL LETTER ER */ + 0x0421, /* CYRILLIC CAPITAL LETTER ES */ + 0x0422, /* CYRILLIC CAPITAL LETTER TE */ + 0x0423, /* CYRILLIC CAPITAL LETTER U */ + 0x0416, /* CYRILLIC CAPITAL LETTER ZHE */ + 0x0412, /* CYRILLIC CAPITAL LETTER VE */ + 0x042C, /* CYRILLIC CAPITAL LETTER SOFT SIGN */ + 0x042B, /* CYRILLIC CAPITAL LETTER YERU */ + 0x0417, /* CYRILLIC CAPITAL LETTER ZE */ + 0x0428, /* CYRILLIC CAPITAL LETTER SHA */ + 0x042D, /* CYRILLIC CAPITAL LETTER E */ + 0x0429, /* CYRILLIC CAPITAL LETTER SHCHA */ + 0x0427, /* CYRILLIC CAPITAL LETTER CHE */ + 0x042A /* CYRILLIC CAPITAL LETTER HARD SIGN */ +}; +static const int koi8u_ucs_table_min = 0x80; +static const int koi8u_ucs_table_len = (sizeof (koi8u_ucs_table) / sizeof (unsigned short)); +static const int koi8u_ucs_table_max = 0x80 + (sizeof (koi8u_ucs_table) / sizeof (unsigned short)); + + + +#endif /* UNNICODE_TABLE_KOI8U_H */ + diff --git a/ext/mbstring/libmbfl/filters/unicode_table_uhc.h b/ext/mbstring/libmbfl/filters/unicode_table_uhc.h new file mode 100644 index 0000000..6b98c65 --- /dev/null +++ b/ext/mbstring/libmbfl/filters/unicode_table_uhc.h @@ -0,0 +1,7222 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: Rui Hirokawa <hirokawa@php.net> + * + */ + +#ifndef UNICODE_TABLE_UHC_H +#define UNICODE_TABLE_UHC_H + +/* + * Unicode table + */ +#ifdef UNICODE_TABLE_UHC_DEF + +const unsigned short uhc1_ucs_table[] = { +0xac02,0xac03,0xac05,0xac06,0xac0b,0xac0c,0xac0d,0xac0e, +0xac0f,0xac18,0xac1e,0xac1f,0xac21,0xac22,0xac23,0xac25, +0xac26,0xac27,0xac28,0xac29,0xac2a,0xac2b,0xac2e,0xac32, +0xac33,0xac34,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xac35,0xac36,0xac37,0xac3a,0xac3b,0xac3d,0xac3e,0xac3f, +0xac41,0xac42,0xac43,0xac44,0xac45,0xac46,0xac47,0xac48, +0xac49,0xac4a,0xac4c,0xac4e,0xac4f,0xac50,0xac51,0xac52, +0xac53,0xac55,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xac56,0xac57,0xac59,0xac5a,0xac5b,0xac5d,0xac5e,0xac5f, +0xac60,0xac61,0xac62,0xac63,0xac64,0xac65,0xac66,0xac67, +0xac68,0xac69,0xac6a,0xac6b,0xac6c,0xac6d,0xac6e,0xac6f, +0xac72,0xac73,0xac75,0xac76,0xac79,0xac7b,0xac7c,0xac7d, +0xac7e,0xac7f,0xac82,0xac87,0xac88,0xac8d,0xac8e,0xac8f, +0xac91,0xac92,0xac93,0xac95,0xac96,0xac97,0xac98,0xac99, +0xac9a,0xac9b,0xac9e,0xaca2,0xaca3,0xaca4,0xaca5,0xaca6, +0xaca7,0xacab,0xacad,0xacae,0xacb1,0xacb2,0xacb3,0xacb4, +0xacb5,0xacb6,0xacb7,0xacba,0xacbe,0xacbf,0xacc0,0xacc2, +0xacc3,0xacc5,0xacc6,0xacc7,0xacc9,0xacca,0xaccb,0xaccd, +0xacce,0xaccf,0xacd0,0xacd1,0xacd2,0xacd3,0xacd4,0xacd6, +0xacd8,0xacd9,0xacda,0xacdb,0xacdc,0xacdd,0xacde,0xacdf, +0xace2,0xace3,0xace5,0xace6,0xace9,0xaceb,0xaced,0xacee, +0xacf2,0xacf4,0xacf7,0xacf8,0xacf9,0xacfa,0xacfb,0xacfe, +0xacff,0xad01,0xad02,0xad03,0xad05,0xad07,0xad08,0xad09, +0xad0a,0xad0b,0xad0e,0xad10,0xad12,0xad13,0xad14,0xad15, +0xad16,0xad17,0xad19,0xad1a,0xad1b,0xad1d,0xad1e,0xad1f, +0xad21,0xad22,0xad23,0xad24,0xad25,0xad26,0xad27,0xad28, +0xad2a,0xad2b,0xad2e,0xad2f,0xad30,0xad31,0xad32,0xad33, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xad36,0xad37, +0xad39,0xad3a,0xad3b,0xad3d,0xad3e,0xad3f,0xad40,0xad41, +0xad42,0xad43,0xad46,0xad48,0xad4a,0xad4b,0xad4c,0xad4d, +0xad4e,0xad4f,0xad51,0xad52,0xad53,0xad55,0xad56,0xad57, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xad59,0xad5a, +0xad5b,0xad5c,0xad5d,0xad5e,0xad5f,0xad60,0xad62,0xad64, +0xad65,0xad66,0xad67,0xad68,0xad69,0xad6a,0xad6b,0xad6e, +0xad6f,0xad71,0xad72,0xad77,0xad78,0xad79,0xad7a,0xad7e, +0xad80,0xad83,0xad84,0xad85,0xad86,0xad87,0xad8a,0xad8b, +0xad8d,0xad8e,0xad8f,0xad91,0xad92,0xad93,0xad94,0xad95, +0xad96,0xad97,0xad98,0xad99,0xad9a,0xad9b,0xad9e,0xad9f, +0xada0,0xada1,0xada2,0xada3,0xada5,0xada6,0xada7,0xada8, +0xada9,0xadaa,0xadab,0xadac,0xadad,0xadae,0xadaf,0xadb0, +0xadb1,0xadb2,0xadb3,0xadb4,0xadb5,0xadb6,0xadb8,0xadb9, +0xadba,0xadbb,0xadbc,0xadbd,0xadbe,0xadbf,0xadc2,0xadc3, +0xadc5,0xadc6,0xadc7,0xadc9,0xadca,0xadcb,0xadcc,0xadcd, +0xadce,0xadcf,0xadd2,0xadd4,0xadd5,0xadd6,0xadd7,0xadd8, +0xadd9,0xadda,0xaddb,0xaddd,0xadde,0xaddf,0xade1,0xade2, +0xade3,0xade5,0xade6,0xade7,0xade8,0xade9,0xadea,0xadeb, +0xadec,0xaded,0xadee,0xadef,0xadf0,0xadf1,0xadf2,0xadf3, +0xadf4,0xadf5,0xadf6,0xadf7,0xadfa,0xadfb,0xadfd,0xadfe, +0xae02,0xae03,0xae04,0xae05,0xae06,0xae07,0xae0a,0xae0c, +0xae0e,0xae0f,0xae10,0xae11,0xae12,0xae13,0xae15,0xae16, +0xae17,0xae18,0xae19,0xae1a,0xae1b,0xae1c,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xae1d,0xae1e,0xae1f,0xae20, +0xae21,0xae22,0xae23,0xae24,0xae25,0xae26,0xae27,0xae28, +0xae29,0xae2a,0xae2b,0xae2c,0xae2d,0xae2e,0xae2f,0xae32, +0xae33,0xae35,0xae36,0xae39,0xae3b,0xae3c,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xae3d,0xae3e,0xae3f,0xae42, +0xae44,0xae47,0xae48,0xae49,0xae4b,0xae4f,0xae51,0xae52, +0xae53,0xae55,0xae57,0xae58,0xae59,0xae5a,0xae5b,0xae5e, +0xae62,0xae63,0xae64,0xae66,0xae67,0xae6a,0xae6b,0xae6d, +0xae6e,0xae6f,0xae71,0xae72,0xae73,0xae74,0xae75,0xae76, +0xae77,0xae7a,0xae7e,0xae7f,0xae80,0xae81,0xae82,0xae83, +0xae86,0xae87,0xae88,0xae89,0xae8a,0xae8b,0xae8d,0xae8e, +0xae8f,0xae90,0xae91,0xae92,0xae93,0xae94,0xae95,0xae96, +0xae97,0xae98,0xae99,0xae9a,0xae9b,0xae9c,0xae9d,0xae9e, +0xae9f,0xaea0,0xaea1,0xaea2,0xaea3,0xaea4,0xaea5,0xaea6, +0xaea7,0xaea8,0xaea9,0xaeaa,0xaeab,0xaeac,0xaead,0xaeae, +0xaeaf,0xaeb0,0xaeb1,0xaeb2,0xaeb3,0xaeb4,0xaeb5,0xaeb6, +0xaeb7,0xaeb8,0xaeb9,0xaeba,0xaebb,0xaebf,0xaec1,0xaec2, +0xaec3,0xaec5,0xaec6,0xaec7,0xaec8,0xaec9,0xaeca,0xaecb, +0xaece,0xaed2,0xaed3,0xaed4,0xaed5,0xaed6,0xaed7,0xaeda, +0xaedb,0xaedd,0xaede,0xaedf,0xaee0,0xaee1,0xaee2,0xaee3, +0xaee4,0xaee5,0xaee6,0xaee7,0xaee9,0xaeea,0xaeec,0xaeee, +0xaeef,0xaef0,0xaef1,0xaef2,0xaef3,0xaef5,0xaef6,0xaef7, +0xaef9,0xaefa,0xaefb,0xaefd,0xaefe,0xaeff,0xaf00,0xaf01, +0xaf02,0xaf03,0xaf04,0xaf05,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xaf06,0xaf09,0xaf0a,0xaf0b,0xaf0c,0xaf0e, +0xaf0f,0xaf11,0xaf12,0xaf13,0xaf14,0xaf15,0xaf16,0xaf17, +0xaf18,0xaf19,0xaf1a,0xaf1b,0xaf1c,0xaf1d,0xaf1e,0xaf1f, +0xaf20,0xaf21,0xaf22,0xaf23,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xaf24,0xaf25,0xaf26,0xaf27,0xaf28,0xaf29, +0xaf2a,0xaf2b,0xaf2e,0xaf2f,0xaf31,0xaf33,0xaf35,0xaf36, +0xaf37,0xaf38,0xaf39,0xaf3a,0xaf3b,0xaf3e,0xaf40,0xaf44, +0xaf45,0xaf46,0xaf47,0xaf4a,0xaf4b,0xaf4c,0xaf4d,0xaf4e, +0xaf4f,0xaf51,0xaf52,0xaf53,0xaf54,0xaf55,0xaf56,0xaf57, +0xaf58,0xaf59,0xaf5a,0xaf5b,0xaf5e,0xaf5f,0xaf60,0xaf61, +0xaf62,0xaf63,0xaf66,0xaf67,0xaf68,0xaf69,0xaf6a,0xaf6b, +0xaf6c,0xaf6d,0xaf6e,0xaf6f,0xaf70,0xaf71,0xaf72,0xaf73, +0xaf74,0xaf75,0xaf76,0xaf77,0xaf78,0xaf7a,0xaf7b,0xaf7c, +0xaf7d,0xaf7e,0xaf7f,0xaf81,0xaf82,0xaf83,0xaf85,0xaf86, +0xaf87,0xaf89,0xaf8a,0xaf8b,0xaf8c,0xaf8d,0xaf8e,0xaf8f, +0xaf92,0xaf93,0xaf94,0xaf96,0xaf97,0xaf98,0xaf99,0xaf9a, +0xaf9b,0xaf9d,0xaf9e,0xaf9f,0xafa0,0xafa1,0xafa2,0xafa3, +0xafa4,0xafa5,0xafa6,0xafa7,0xafa8,0xafa9,0xafaa,0xafab, +0xafac,0xafad,0xafae,0xafaf,0xafb0,0xafb1,0xafb2,0xafb3, +0xafb4,0xafb5,0xafb6,0xafb7,0xafba,0xafbb,0xafbd,0xafbe, +0xafbf,0xafc1,0xafc2,0xafc3,0xafc4,0xafc5,0xafc6,0xafca, +0xafcc,0xafcf,0xafd0,0xafd1,0xafd2,0xafd3,0xafd5,0xafd6, +0xafd7,0xafd8,0xafd9,0xafda,0xafdb,0xafdd,0xafde,0xafdf, +0xafe0,0xafe1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xafe2,0xafe3,0xafe4,0xafe5,0xafe6,0xafe7,0xafea,0xafeb, +0xafec,0xafed,0xafee,0xafef,0xaff2,0xaff3,0xaff5,0xaff6, +0xaff7,0xaff9,0xaffa,0xaffb,0xaffc,0xaffd,0xaffe,0xafff, +0xb002,0xb003,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xb005,0xb006,0xb007,0xb008,0xb009,0xb00a,0xb00b,0xb00d, +0xb00e,0xb00f,0xb011,0xb012,0xb013,0xb015,0xb016,0xb017, +0xb018,0xb019,0xb01a,0xb01b,0xb01e,0xb01f,0xb020,0xb021, +0xb022,0xb023,0xb024,0xb025,0xb026,0xb027,0xb029,0xb02a, +0xb02b,0xb02c,0xb02d,0xb02e,0xb02f,0xb030,0xb031,0xb032, +0xb033,0xb034,0xb035,0xb036,0xb037,0xb038,0xb039,0xb03a, +0xb03b,0xb03c,0xb03d,0xb03e,0xb03f,0xb040,0xb041,0xb042, +0xb043,0xb046,0xb047,0xb049,0xb04b,0xb04d,0xb04f,0xb050, +0xb051,0xb052,0xb056,0xb058,0xb05a,0xb05b,0xb05c,0xb05e, +0xb05f,0xb060,0xb061,0xb062,0xb063,0xb064,0xb065,0xb066, +0xb067,0xb068,0xb069,0xb06a,0xb06b,0xb06c,0xb06d,0xb06e, +0xb06f,0xb070,0xb071,0xb072,0xb073,0xb074,0xb075,0xb076, +0xb077,0xb078,0xb079,0xb07a,0xb07b,0xb07e,0xb07f,0xb081, +0xb082,0xb083,0xb085,0xb086,0xb087,0xb088,0xb089,0xb08a, +0xb08b,0xb08e,0xb090,0xb092,0xb093,0xb094,0xb095,0xb096, +0xb097,0xb09b,0xb09d,0xb09e,0xb0a3,0xb0a4,0xb0a5,0xb0a6, +0xb0a7,0xb0aa,0xb0b0,0xb0b2,0xb0b6,0xb0b7,0xb0b9,0xb0ba, +0xb0bb,0xb0bd,0xb0be,0xb0bf,0xb0c0,0xb0c1,0xb0c2,0xb0c3, +0xb0c6,0xb0ca,0xb0cb,0xb0cc,0xb0cd,0xb0ce,0xb0cf,0xb0d2, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xb0d3,0xb0d5, +0xb0d6,0xb0d7,0xb0d9,0xb0da,0xb0db,0xb0dc,0xb0dd,0xb0de, +0xb0df,0xb0e1,0xb0e2,0xb0e3,0xb0e4,0xb0e6,0xb0e7,0xb0e8, +0xb0e9,0xb0ea,0xb0eb,0xb0ec,0xb0ed,0xb0ee,0xb0ef,0xb0f0, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xb0f1,0xb0f2, +0xb0f3,0xb0f4,0xb0f5,0xb0f6,0xb0f7,0xb0f8,0xb0f9,0xb0fa, +0xb0fb,0xb0fc,0xb0fd,0xb0fe,0xb0ff,0xb100,0xb101,0xb102, +0xb103,0xb104,0xb105,0xb106,0xb107,0xb10a,0xb10d,0xb10e, +0xb10f,0xb111,0xb114,0xb115,0xb116,0xb117,0xb11a,0xb11e, +0xb11f,0xb120,0xb121,0xb122,0xb126,0xb127,0xb129,0xb12a, +0xb12b,0xb12d,0xb12e,0xb12f,0xb130,0xb131,0xb132,0xb133, +0xb136,0xb13a,0xb13b,0xb13c,0xb13d,0xb13e,0xb13f,0xb142, +0xb143,0xb145,0xb146,0xb147,0xb149,0xb14a,0xb14b,0xb14c, +0xb14d,0xb14e,0xb14f,0xb152,0xb153,0xb156,0xb157,0xb159, +0xb15a,0xb15b,0xb15d,0xb15e,0xb15f,0xb161,0xb162,0xb163, +0xb164,0xb165,0xb166,0xb167,0xb168,0xb169,0xb16a,0xb16b, +0xb16c,0xb16d,0xb16e,0xb16f,0xb170,0xb171,0xb172,0xb173, +0xb174,0xb175,0xb176,0xb177,0xb17a,0xb17b,0xb17d,0xb17e, +0xb17f,0xb181,0xb183,0xb184,0xb185,0xb186,0xb187,0xb18a, +0xb18c,0xb18e,0xb18f,0xb190,0xb191,0xb195,0xb196,0xb197, +0xb199,0xb19a,0xb19b,0xb19d,0xb19e,0xb19f,0xb1a0,0xb1a1, +0xb1a2,0xb1a3,0xb1a4,0xb1a5,0xb1a6,0xb1a7,0xb1a9,0xb1aa, +0xb1ab,0xb1ac,0xb1ad,0xb1ae,0xb1af,0xb1b0,0xb1b1,0xb1b2, +0xb1b3,0xb1b4,0xb1b5,0xb1b6,0xb1b7,0xb1b8,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xb1b9,0xb1ba,0xb1bb,0xb1bc, +0xb1bd,0xb1be,0xb1bf,0xb1c0,0xb1c1,0xb1c2,0xb1c3,0xb1c4, +0xb1c5,0xb1c6,0xb1c7,0xb1c8,0xb1c9,0xb1ca,0xb1cb,0xb1cd, +0xb1ce,0xb1cf,0xb1d1,0xb1d2,0xb1d3,0xb1d5,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xb1d6,0xb1d7,0xb1d8,0xb1d9, +0xb1da,0xb1db,0xb1de,0xb1e0,0xb1e1,0xb1e2,0xb1e3,0xb1e4, +0xb1e5,0xb1e6,0xb1e7,0xb1ea,0xb1eb,0xb1ed,0xb1ee,0xb1ef, +0xb1f1,0xb1f2,0xb1f3,0xb1f4,0xb1f5,0xb1f6,0xb1f7,0xb1f8, +0xb1fa,0xb1fc,0xb1fe,0xb1ff,0xb200,0xb201,0xb202,0xb203, +0xb206,0xb207,0xb209,0xb20a,0xb20d,0xb20e,0xb20f,0xb210, +0xb211,0xb212,0xb213,0xb216,0xb218,0xb21a,0xb21b,0xb21c, +0xb21d,0xb21e,0xb21f,0xb221,0xb222,0xb223,0xb224,0xb225, +0xb226,0xb227,0xb228,0xb229,0xb22a,0xb22b,0xb22c,0xb22d, +0xb22e,0xb22f,0xb230,0xb231,0xb232,0xb233,0xb235,0xb236, +0xb237,0xb238,0xb239,0xb23a,0xb23b,0xb23d,0xb23e,0xb23f, +0xb240,0xb241,0xb242,0xb243,0xb244,0xb245,0xb246,0xb247, +0xb248,0xb249,0xb24a,0xb24b,0xb24c,0xb24d,0xb24e,0xb24f, +0xb250,0xb251,0xb252,0xb253,0xb254,0xb255,0xb256,0xb257, +0xb259,0xb25a,0xb25b,0xb25d,0xb25e,0xb25f,0xb261,0xb262, +0xb263,0xb264,0xb265,0xb266,0xb267,0xb26a,0xb26b,0xb26c, +0xb26d,0xb26e,0xb26f,0xb270,0xb271,0xb272,0xb273,0xb276, +0xb277,0xb278,0xb279,0xb27a,0xb27b,0xb27d,0xb27e,0xb27f, +0xb280,0xb281,0xb282,0xb283,0xb286,0xb287,0xb288,0xb28a, +0xb28b,0xb28c,0xb28d,0xb28e,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xb28f,0xb292,0xb293,0xb295,0xb296,0xb297, +0xb29b,0xb29c,0xb29d,0xb29e,0xb29f,0xb2a2,0xb2a4,0xb2a7, +0xb2a8,0xb2a9,0xb2ab,0xb2ad,0xb2ae,0xb2af,0xb2b1,0xb2b2, +0xb2b3,0xb2b5,0xb2b6,0xb2b7,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xb2b8,0xb2b9,0xb2ba,0xb2bb,0xb2bc,0xb2bd, +0xb2be,0xb2bf,0xb2c0,0xb2c1,0xb2c2,0xb2c3,0xb2c4,0xb2c5, +0xb2c6,0xb2c7,0xb2ca,0xb2cb,0xb2cd,0xb2ce,0xb2cf,0xb2d1, +0xb2d3,0xb2d4,0xb2d5,0xb2d6,0xb2d7,0xb2da,0xb2dc,0xb2de, +0xb2df,0xb2e0,0xb2e1,0xb2e3,0xb2e7,0xb2e9,0xb2ea,0xb2f0, +0xb2f1,0xb2f2,0xb2f6,0xb2fc,0xb2fd,0xb2fe,0xb302,0xb303, +0xb305,0xb306,0xb307,0xb309,0xb30a,0xb30b,0xb30c,0xb30d, +0xb30e,0xb30f,0xb312,0xb316,0xb317,0xb318,0xb319,0xb31a, +0xb31b,0xb31d,0xb31e,0xb31f,0xb320,0xb321,0xb322,0xb323, +0xb324,0xb325,0xb326,0xb327,0xb328,0xb329,0xb32a,0xb32b, +0xb32c,0xb32d,0xb32e,0xb32f,0xb330,0xb331,0xb332,0xb333, +0xb334,0xb335,0xb336,0xb337,0xb338,0xb339,0xb33a,0xb33b, +0xb33c,0xb33d,0xb33e,0xb33f,0xb340,0xb341,0xb342,0xb343, +0xb344,0xb345,0xb346,0xb347,0xb348,0xb349,0xb34a,0xb34b, +0xb34c,0xb34d,0xb34e,0xb34f,0xb350,0xb351,0xb352,0xb353, +0xb357,0xb359,0xb35a,0xb35d,0xb360,0xb361,0xb362,0xb363, +0xb366,0xb368,0xb36a,0xb36c,0xb36d,0xb36f,0xb372,0xb373, +0xb375,0xb376,0xb377,0xb379,0xb37a,0xb37b,0xb37c,0xb37d, +0xb37e,0xb37f,0xb382,0xb386,0xb387,0xb388,0xb389,0xb38a, +0xb38b,0xb38d,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xb38e,0xb38f,0xb391,0xb392,0xb393,0xb395,0xb396,0xb397, +0xb398,0xb399,0xb39a,0xb39b,0xb39c,0xb39d,0xb39e,0xb39f, +0xb3a2,0xb3a3,0xb3a4,0xb3a5,0xb3a6,0xb3a7,0xb3a9,0xb3aa, +0xb3ab,0xb3ad,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xb3ae,0xb3af,0xb3b0,0xb3b1,0xb3b2,0xb3b3,0xb3b4,0xb3b5, +0xb3b6,0xb3b7,0xb3b8,0xb3b9,0xb3ba,0xb3bb,0xb3bc,0xb3bd, +0xb3be,0xb3bf,0xb3c0,0xb3c1,0xb3c2,0xb3c3,0xb3c6,0xb3c7, +0xb3c9,0xb3ca,0xb3cd,0xb3cf,0xb3d1,0xb3d2,0xb3d3,0xb3d6, +0xb3d8,0xb3da,0xb3dc,0xb3de,0xb3df,0xb3e1,0xb3e2,0xb3e3, +0xb3e5,0xb3e6,0xb3e7,0xb3e9,0xb3ea,0xb3eb,0xb3ec,0xb3ed, +0xb3ee,0xb3ef,0xb3f0,0xb3f1,0xb3f2,0xb3f3,0xb3f4,0xb3f5, +0xb3f6,0xb3f7,0xb3f8,0xb3f9,0xb3fa,0xb3fb,0xb3fd,0xb3fe, +0xb3ff,0xb400,0xb401,0xb402,0xb403,0xb404,0xb405,0xb406, +0xb407,0xb408,0xb409,0xb40a,0xb40b,0xb40c,0xb40d,0xb40e, +0xb40f,0xb411,0xb412,0xb413,0xb414,0xb415,0xb416,0xb417, +0xb419,0xb41a,0xb41b,0xb41d,0xb41e,0xb41f,0xb421,0xb422, +0xb423,0xb424,0xb425,0xb426,0xb427,0xb42a,0xb42c,0xb42d, +0xb42e,0xb42f,0xb430,0xb431,0xb432,0xb433,0xb435,0xb436, +0xb437,0xb438,0xb439,0xb43a,0xb43b,0xb43c,0xb43d,0xb43e, +0xb43f,0xb440,0xb441,0xb442,0xb443,0xb444,0xb445,0xb446, +0xb447,0xb448,0xb449,0xb44a,0xb44b,0xb44c,0xb44d,0xb44e, +0xb44f,0xb452,0xb453,0xb455,0xb456,0xb457,0xb459,0xb45a, +0xb45b,0xb45c,0xb45d,0xb45e,0xb45f,0xb462,0xb464,0xb466, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xb467,0xb468, +0xb469,0xb46a,0xb46b,0xb46d,0xb46e,0xb46f,0xb470,0xb471, +0xb472,0xb473,0xb474,0xb475,0xb476,0xb477,0xb478,0xb479, +0xb47a,0xb47b,0xb47c,0xb47d,0xb47e,0xb47f,0xb481,0xb482, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xb483,0xb484, +0xb485,0xb486,0xb487,0xb489,0xb48a,0xb48b,0xb48c,0xb48d, +0xb48e,0xb48f,0xb490,0xb491,0xb492,0xb493,0xb494,0xb495, +0xb496,0xb497,0xb498,0xb499,0xb49a,0xb49b,0xb49c,0xb49e, +0xb49f,0xb4a0,0xb4a1,0xb4a2,0xb4a3,0xb4a5,0xb4a6,0xb4a7, +0xb4a9,0xb4aa,0xb4ab,0xb4ad,0xb4ae,0xb4af,0xb4b0,0xb4b1, +0xb4b2,0xb4b3,0xb4b4,0xb4b6,0xb4b8,0xb4ba,0xb4bb,0xb4bc, +0xb4bd,0xb4be,0xb4bf,0xb4c1,0xb4c2,0xb4c3,0xb4c5,0xb4c6, +0xb4c7,0xb4c9,0xb4ca,0xb4cb,0xb4cc,0xb4cd,0xb4ce,0xb4cf, +0xb4d1,0xb4d2,0xb4d3,0xb4d4,0xb4d6,0xb4d7,0xb4d8,0xb4d9, +0xb4da,0xb4db,0xb4de,0xb4df,0xb4e1,0xb4e2,0xb4e5,0xb4e7, +0xb4e8,0xb4e9,0xb4ea,0xb4eb,0xb4ee,0xb4f0,0xb4f2,0xb4f3, +0xb4f4,0xb4f5,0xb4f6,0xb4f7,0xb4f9,0xb4fa,0xb4fb,0xb4fc, +0xb4fd,0xb4fe,0xb4ff,0xb500,0xb501,0xb502,0xb503,0xb504, +0xb505,0xb506,0xb507,0xb508,0xb509,0xb50a,0xb50b,0xb50c, +0xb50d,0xb50e,0xb50f,0xb510,0xb511,0xb512,0xb513,0xb516, +0xb517,0xb519,0xb51a,0xb51d,0xb51e,0xb51f,0xb520,0xb521, +0xb522,0xb523,0xb526,0xb52b,0xb52c,0xb52d,0xb52e,0xb52f, +0xb532,0xb533,0xb535,0xb536,0xb537,0xb539,0xb53a,0xb53b, +0xb53c,0xb53d,0xb53e,0xb53f,0xb542,0xb546,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xb547,0xb548,0xb549,0xb54a, +0xb54e,0xb54f,0xb551,0xb552,0xb553,0xb555,0xb556,0xb557, +0xb558,0xb559,0xb55a,0xb55b,0xb55e,0xb562,0xb563,0xb564, +0xb565,0xb566,0xb567,0xb568,0xb569,0xb56a,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xb56b,0xb56c,0xb56d,0xb56e, +0xb56f,0xb570,0xb571,0xb572,0xb573,0xb574,0xb575,0xb576, +0xb577,0xb578,0xb579,0xb57a,0xb57b,0xb57c,0xb57d,0xb57e, +0xb57f,0xb580,0xb581,0xb582,0xb583,0xb584,0xb585,0xb586, +0xb587,0xb588,0xb589,0xb58a,0xb58b,0xb58c,0xb58d,0xb58e, +0xb58f,0xb590,0xb591,0xb592,0xb593,0xb594,0xb595,0xb596, +0xb597,0xb598,0xb599,0xb59a,0xb59b,0xb59c,0xb59d,0xb59e, +0xb59f,0xb5a2,0xb5a3,0xb5a5,0xb5a6,0xb5a7,0xb5a9,0xb5ac, +0xb5ad,0xb5ae,0xb5af,0xb5b2,0xb5b6,0xb5b7,0xb5b8,0xb5b9, +0xb5ba,0xb5be,0xb5bf,0xb5c1,0xb5c2,0xb5c3,0xb5c5,0xb5c6, +0xb5c7,0xb5c8,0xb5c9,0xb5ca,0xb5cb,0xb5ce,0xb5d2,0xb5d3, +0xb5d4,0xb5d5,0xb5d6,0xb5d7,0xb5d9,0xb5da,0xb5db,0xb5dc, +0xb5dd,0xb5de,0xb5df,0xb5e0,0xb5e1,0xb5e2,0xb5e3,0xb5e4, +0xb5e5,0xb5e6,0xb5e7,0xb5e8,0xb5e9,0xb5ea,0xb5eb,0xb5ed, +0xb5ee,0xb5ef,0xb5f0,0xb5f1,0xb5f2,0xb5f3,0xb5f4,0xb5f5, +0xb5f6,0xb5f7,0xb5f8,0xb5f9,0xb5fa,0xb5fb,0xb5fc,0xb5fd, +0xb5fe,0xb5ff,0xb600,0xb601,0xb602,0xb603,0xb604,0xb605, +0xb606,0xb607,0xb608,0xb609,0xb60a,0xb60b,0xb60c,0xb60d, +0xb60e,0xb60f,0xb612,0xb613,0xb615,0xb616,0xb617,0xb619, +0xb61a,0xb61b,0xb61c,0xb61d,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xb61e,0xb61f,0xb620,0xb621,0xb622,0xb623, +0xb624,0xb626,0xb627,0xb628,0xb629,0xb62a,0xb62b,0xb62d, +0xb62e,0xb62f,0xb630,0xb631,0xb632,0xb633,0xb635,0xb636, +0xb637,0xb638,0xb639,0xb63a,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xb63b,0xb63c,0xb63d,0xb63e,0xb63f,0xb640, +0xb641,0xb642,0xb643,0xb644,0xb645,0xb646,0xb647,0xb649, +0xb64a,0xb64b,0xb64c,0xb64d,0xb64e,0xb64f,0xb650,0xb651, +0xb652,0xb653,0xb654,0xb655,0xb656,0xb657,0xb658,0xb659, +0xb65a,0xb65b,0xb65c,0xb65d,0xb65e,0xb65f,0xb660,0xb661, +0xb662,0xb663,0xb665,0xb666,0xb667,0xb669,0xb66a,0xb66b, +0xb66c,0xb66d,0xb66e,0xb66f,0xb670,0xb671,0xb672,0xb673, +0xb674,0xb675,0xb676,0xb677,0xb678,0xb679,0xb67a,0xb67b, +0xb67c,0xb67d,0xb67e,0xb67f,0xb680,0xb681,0xb682,0xb683, +0xb684,0xb685,0xb686,0xb687,0xb688,0xb689,0xb68a,0xb68b, +0xb68c,0xb68d,0xb68e,0xb68f,0xb690,0xb691,0xb692,0xb693, +0xb694,0xb695,0xb696,0xb697,0xb698,0xb699,0xb69a,0xb69b, +0xb69e,0xb69f,0xb6a1,0xb6a2,0xb6a3,0xb6a5,0xb6a6,0xb6a7, +0xb6a8,0xb6a9,0xb6aa,0xb6ad,0xb6ae,0xb6af,0xb6b0,0xb6b2, +0xb6b3,0xb6b4,0xb6b5,0xb6b6,0xb6b7,0xb6b8,0xb6b9,0xb6ba, +0xb6bb,0xb6bc,0xb6bd,0xb6be,0xb6bf,0xb6c0,0xb6c1,0xb6c2, +0xb6c3,0xb6c4,0xb6c5,0xb6c6,0xb6c7,0xb6c8,0xb6c9,0xb6ca, +0xb6cb,0xb6cc,0xb6cd,0xb6ce,0xb6cf,0xb6d0,0xb6d1,0xb6d2, +0xb6d3,0xb6d5,0xb6d6,0xb6d7,0xb6d8,0xb6d9,0xb6da,0xb6db, +0xb6dc,0xb6dd,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xb6de,0xb6df,0xb6e0,0xb6e1,0xb6e2,0xb6e3,0xb6e4,0xb6e5, +0xb6e6,0xb6e7,0xb6e8,0xb6e9,0xb6ea,0xb6eb,0xb6ec,0xb6ed, +0xb6ee,0xb6ef,0xb6f1,0xb6f2,0xb6f3,0xb6f5,0xb6f6,0xb6f7, +0xb6f9,0xb6fa,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xb6fb,0xb6fc,0xb6fd,0xb6fe,0xb6ff,0xb702,0xb703,0xb704, +0xb706,0xb707,0xb708,0xb709,0xb70a,0xb70b,0xb70c,0xb70d, +0xb70e,0xb70f,0xb710,0xb711,0xb712,0xb713,0xb714,0xb715, +0xb716,0xb717,0xb718,0xb719,0xb71a,0xb71b,0xb71c,0xb71d, +0xb71e,0xb71f,0xb720,0xb721,0xb722,0xb723,0xb724,0xb725, +0xb726,0xb727,0xb72a,0xb72b,0xb72d,0xb72e,0xb731,0xb732, +0xb733,0xb734,0xb735,0xb736,0xb737,0xb73a,0xb73c,0xb73d, +0xb73e,0xb73f,0xb740,0xb741,0xb742,0xb743,0xb745,0xb746, +0xb747,0xb749,0xb74a,0xb74b,0xb74d,0xb74e,0xb74f,0xb750, +0xb751,0xb752,0xb753,0xb756,0xb757,0xb758,0xb759,0xb75a, +0xb75b,0xb75c,0xb75d,0xb75e,0xb75f,0xb761,0xb762,0xb763, +0xb765,0xb766,0xb767,0xb769,0xb76a,0xb76b,0xb76c,0xb76d, +0xb76e,0xb76f,0xb772,0xb774,0xb776,0xb777,0xb778,0xb779, +0xb77a,0xb77b,0xb77e,0xb77f,0xb781,0xb782,0xb783,0xb785, +0xb786,0xb787,0xb788,0xb789,0xb78a,0xb78b,0xb78e,0xb793, +0xb794,0xb795,0xb79a,0xb79b,0xb79d,0xb79e,0xb79f,0xb7a1, +0xb7a2,0xb7a3,0xb7a4,0xb7a5,0xb7a6,0xb7a7,0xb7aa,0xb7ae, +0xb7af,0xb7b0,0xb7b1,0xb7b2,0xb7b3,0xb7b6,0xb7b7,0xb7b9, +0xb7ba,0xb7bb,0xb7bc,0xb7bd,0xb7be,0xb7bf,0xb7c0,0xb7c1, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xb7c2,0xb7c3, +0xb7c4,0xb7c5,0xb7c6,0xb7c8,0xb7ca,0xb7cb,0xb7cc,0xb7cd, +0xb7ce,0xb7cf,0xb7d0,0xb7d1,0xb7d2,0xb7d3,0xb7d4,0xb7d5, +0xb7d6,0xb7d7,0xb7d8,0xb7d9,0xb7da,0xb7db,0xb7dc,0xb7dd, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xb7de,0xb7df, +0xb7e0,0xb7e1,0xb7e2,0xb7e3,0xb7e4,0xb7e5,0xb7e6,0xb7e7, +0xb7e8,0xb7e9,0xb7ea,0xb7eb,0xb7ee,0xb7ef,0xb7f1,0xb7f2, +0xb7f3,0xb7f5,0xb7f6,0xb7f7,0xb7f8,0xb7f9,0xb7fa,0xb7fb, +0xb7fe,0xb802,0xb803,0xb804,0xb805,0xb806,0xb80a,0xb80b, +0xb80d,0xb80e,0xb80f,0xb811,0xb812,0xb813,0xb814,0xb815, +0xb816,0xb817,0xb81a,0xb81c,0xb81e,0xb81f,0xb820,0xb821, +0xb822,0xb823,0xb826,0xb827,0xb829,0xb82a,0xb82b,0xb82d, +0xb82e,0xb82f,0xb830,0xb831,0xb832,0xb833,0xb836,0xb83a, +0xb83b,0xb83c,0xb83d,0xb83e,0xb83f,0xb841,0xb842,0xb843, +0xb845,0xb846,0xb847,0xb848,0xb849,0xb84a,0xb84b,0xb84c, +0xb84d,0xb84e,0xb84f,0xb850,0xb852,0xb854,0xb855,0xb856, +0xb857,0xb858,0xb859,0xb85a,0xb85b,0xb85e,0xb85f,0xb861, +0xb862,0xb863,0xb865,0xb866,0xb867,0xb868,0xb869,0xb86a, +0xb86b,0xb86e,0xb870,0xb872,0xb873,0xb874,0xb875,0xb876, +0xb877,0xb879,0xb87a,0xb87b,0xb87d,0xb87e,0xb87f,0xb880, +0xb881,0xb882,0xb883,0xb884,0xb885,0xb886,0xb887,0xb888, +0xb889,0xb88a,0xb88b,0xb88c,0xb88e,0xb88f,0xb890,0xb891, +0xb892,0xb893,0xb894,0xb895,0xb896,0xb897,0xb898,0xb899, +0xb89a,0xb89b,0xb89c,0xb89d,0xb89e,0xb89f,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xb8a0,0xb8a1,0xb8a2,0xb8a3, +0xb8a4,0xb8a5,0xb8a6,0xb8a7,0xb8a9,0xb8aa,0xb8ab,0xb8ac, +0xb8ad,0xb8ae,0xb8af,0xb8b1,0xb8b2,0xb8b3,0xb8b5,0xb8b6, +0xb8b7,0xb8b9,0xb8ba,0xb8bb,0xb8bc,0xb8bd,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xb8be,0xb8bf,0xb8c2,0xb8c4, +0xb8c6,0xb8c7,0xb8c8,0xb8c9,0xb8ca,0xb8cb,0xb8cd,0xb8ce, +0xb8cf,0xb8d1,0xb8d2,0xb8d3,0xb8d5,0xb8d6,0xb8d7,0xb8d8, +0xb8d9,0xb8da,0xb8db,0xb8dc,0xb8de,0xb8e0,0xb8e2,0xb8e3, +0xb8e4,0xb8e5,0xb8e6,0xb8e7,0xb8ea,0xb8eb,0xb8ed,0xb8ee, +0xb8ef,0xb8f1,0xb8f2,0xb8f3,0xb8f4,0xb8f5,0xb8f6,0xb8f7, +0xb8fa,0xb8fc,0xb8fe,0xb8ff,0xb900,0xb901,0xb902,0xb903, +0xb905,0xb906,0xb907,0xb908,0xb909,0xb90a,0xb90b,0xb90c, +0xb90d,0xb90e,0xb90f,0xb910,0xb911,0xb912,0xb913,0xb914, +0xb915,0xb916,0xb917,0xb919,0xb91a,0xb91b,0xb91c,0xb91d, +0xb91e,0xb91f,0xb921,0xb922,0xb923,0xb924,0xb925,0xb926, +0xb927,0xb928,0xb929,0xb92a,0xb92b,0xb92c,0xb92d,0xb92e, +0xb92f,0xb930,0xb931,0xb932,0xb933,0xb934,0xb935,0xb936, +0xb937,0xb938,0xb939,0xb93a,0xb93b,0xb93e,0xb93f,0xb941, +0xb942,0xb943,0xb945,0xb946,0xb947,0xb948,0xb949,0xb94a, +0xb94b,0xb94d,0xb94e,0xb950,0xb952,0xb953,0xb954,0xb955, +0xb956,0xb957,0xb95a,0xb95b,0xb95d,0xb95e,0xb95f,0xb961, +0xb962,0xb963,0xb964,0xb965,0xb966,0xb967,0xb96a,0xb96c, +0xb96e,0xb96f,0xb970,0xb971,0xb972,0xb973,0xb976,0xb977, +0xb979,0xb97a,0xb97b,0xb97d,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xb97e,0xb97f,0xb980,0xb981,0xb982,0xb983, +0xb986,0xb988,0xb98b,0xb98c,0xb98f,0xb990,0xb991,0xb992, +0xb993,0xb994,0xb995,0xb996,0xb997,0xb998,0xb999,0xb99a, +0xb99b,0xb99c,0xb99d,0xb99e,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xb99f,0xb9a0,0xb9a1,0xb9a2,0xb9a3,0xb9a4, +0xb9a5,0xb9a6,0xb9a7,0xb9a8,0xb9a9,0xb9aa,0xb9ab,0xb9ae, +0xb9af,0xb9b1,0xb9b2,0xb9b3,0xb9b5,0xb9b6,0xb9b7,0xb9b8, +0xb9b9,0xb9ba,0xb9bb,0xb9be,0xb9c0,0xb9c2,0xb9c3,0xb9c4, +0xb9c5,0xb9c6,0xb9c7,0xb9ca,0xb9cb,0xb9cd,0xb9d3,0xb9d4, +0xb9d5,0xb9d6,0xb9d7,0xb9da,0xb9dc,0xb9df,0xb9e0,0xb9e2, +0xb9e6,0xb9e7,0xb9e9,0xb9ea,0xb9eb,0xb9ed,0xb9ee,0xb9ef, +0xb9f0,0xb9f1,0xb9f2,0xb9f3,0xb9f6,0xb9fb,0xb9fc,0xb9fd, +0xb9fe,0xb9ff,0xba02,0xba03,0xba04,0xba05,0xba06,0xba07, +0xba09,0xba0a,0xba0b,0xba0c,0xba0d,0xba0e,0xba0f,0xba10, +0xba11,0xba12,0xba13,0xba14,0xba16,0xba17,0xba18,0xba19, +0xba1a,0xba1b,0xba1c,0xba1d,0xba1e,0xba1f,0xba20,0xba21, +0xba22,0xba23,0xba24,0xba25,0xba26,0xba27,0xba28,0xba29, +0xba2a,0xba2b,0xba2c,0xba2d,0xba2e,0xba2f,0xba30,0xba31, +0xba32,0xba33,0xba34,0xba35,0xba36,0xba37,0xba3a,0xba3b, +0xba3d,0xba3e,0xba3f,0xba41,0xba43,0xba44,0xba45,0xba46, +0xba47,0xba4a,0xba4c,0xba4f,0xba50,0xba51,0xba52,0xba56, +0xba57,0xba59,0xba5a,0xba5b,0xba5d,0xba5e,0xba5f,0xba60, +0xba61,0xba62,0xba63,0xba66,0xba6a,0xba6b,0xba6c,0xba6d, +0xba6e,0xba6f,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xba72,0xba73,0xba75,0xba76,0xba77,0xba79,0xba7a,0xba7b, +0xba7c,0xba7d,0xba7e,0xba7f,0xba80,0xba81,0xba82,0xba86, +0xba88,0xba89,0xba8a,0xba8b,0xba8d,0xba8e,0xba8f,0xba90, +0xba91,0xba92,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xba93,0xba94,0xba95,0xba96,0xba97,0xba98,0xba99,0xba9a, +0xba9b,0xba9c,0xba9d,0xba9e,0xba9f,0xbaa0,0xbaa1,0xbaa2, +0xbaa3,0xbaa4,0xbaa5,0xbaa6,0xbaa7,0xbaaa,0xbaad,0xbaae, +0xbaaf,0xbab1,0xbab3,0xbab4,0xbab5,0xbab6,0xbab7,0xbaba, +0xbabc,0xbabe,0xbabf,0xbac0,0xbac1,0xbac2,0xbac3,0xbac5, +0xbac6,0xbac7,0xbac9,0xbaca,0xbacb,0xbacc,0xbacd,0xbace, +0xbacf,0xbad0,0xbad1,0xbad2,0xbad3,0xbad4,0xbad5,0xbad6, +0xbad7,0xbada,0xbadb,0xbadc,0xbadd,0xbade,0xbadf,0xbae0, +0xbae1,0xbae2,0xbae3,0xbae4,0xbae5,0xbae6,0xbae7,0xbae8, +0xbae9,0xbaea,0xbaeb,0xbaec,0xbaed,0xbaee,0xbaef,0xbaf0, +0xbaf1,0xbaf2,0xbaf3,0xbaf4,0xbaf5,0xbaf6,0xbaf7,0xbaf8, +0xbaf9,0xbafa,0xbafb,0xbafd,0xbafe,0xbaff,0xbb01,0xbb02, +0xbb03,0xbb05,0xbb06,0xbb07,0xbb08,0xbb09,0xbb0a,0xbb0b, +0xbb0c,0xbb0e,0xbb10,0xbb12,0xbb13,0xbb14,0xbb15,0xbb16, +0xbb17,0xbb19,0xbb1a,0xbb1b,0xbb1d,0xbb1e,0xbb1f,0xbb21, +0xbb22,0xbb23,0xbb24,0xbb25,0xbb26,0xbb27,0xbb28,0xbb2a, +0xbb2c,0xbb2d,0xbb2e,0xbb2f,0xbb30,0xbb31,0xbb32,0xbb33, +0xbb37,0xbb39,0xbb3a,0xbb3f,0xbb40,0xbb41,0xbb42,0xbb43, +0xbb46,0xbb48,0xbb4a,0xbb4b,0xbb4c,0xbb4e,0xbb51,0xbb52, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xbb53,0xbb55, +0xbb56,0xbb57,0xbb59,0xbb5a,0xbb5b,0xbb5c,0xbb5d,0xbb5e, +0xbb5f,0xbb60,0xbb62,0xbb64,0xbb65,0xbb66,0xbb67,0xbb68, +0xbb69,0xbb6a,0xbb6b,0xbb6d,0xbb6e,0xbb6f,0xbb70,0xbb71, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xbb72,0xbb73, +0xbb74,0xbb75,0xbb76,0xbb77,0xbb78,0xbb79,0xbb7a,0xbb7b, +0xbb7c,0xbb7d,0xbb7e,0xbb7f,0xbb80,0xbb81,0xbb82,0xbb83, +0xbb84,0xbb85,0xbb86,0xbb87,0xbb89,0xbb8a,0xbb8b,0xbb8d, +0xbb8e,0xbb8f,0xbb91,0xbb92,0xbb93,0xbb94,0xbb95,0xbb96, +0xbb97,0xbb98,0xbb99,0xbb9a,0xbb9b,0xbb9c,0xbb9d,0xbb9e, +0xbb9f,0xbba0,0xbba1,0xbba2,0xbba3,0xbba5,0xbba6,0xbba7, +0xbba9,0xbbaa,0xbbab,0xbbad,0xbbae,0xbbaf,0xbbb0,0xbbb1, +0xbbb2,0xbbb3,0xbbb5,0xbbb6,0xbbb8,0xbbb9,0xbbba,0xbbbb, +0xbbbc,0xbbbd,0xbbbe,0xbbbf,0xbbc1,0xbbc2,0xbbc3,0xbbc5, +0xbbc6,0xbbc7,0xbbc9,0xbbca,0xbbcb,0xbbcc,0xbbcd,0xbbce, +0xbbcf,0xbbd1,0xbbd2,0xbbd4,0xbbd5,0xbbd6,0xbbd7,0xbbd8, +0xbbd9,0xbbda,0xbbdb,0xbbdc,0xbbdd,0xbbde,0xbbdf,0xbbe0, +0xbbe1,0xbbe2,0xbbe3,0xbbe4,0xbbe5,0xbbe6,0xbbe7,0xbbe8, +0xbbe9,0xbbea,0xbbeb,0xbbec,0xbbed,0xbbee,0xbbef,0xbbf0, +0xbbf1,0xbbf2,0xbbf3,0xbbf4,0xbbf5,0xbbf6,0xbbf7,0xbbfa, +0xbbfb,0xbbfd,0xbbfe,0xbc01,0xbc03,0xbc04,0xbc05,0xbc06, +0xbc07,0xbc0a,0xbc0e,0xbc10,0xbc12,0xbc13,0xbc19,0xbc1a, +0xbc20,0xbc21,0xbc22,0xbc23,0xbc26,0xbc28,0xbc2a,0xbc2b, +0xbc2c,0xbc2e,0xbc2f,0xbc32,0xbc33,0xbc35,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xbc36,0xbc37,0xbc39,0xbc3a, +0xbc3b,0xbc3c,0xbc3d,0xbc3e,0xbc3f,0xbc42,0xbc46,0xbc47, +0xbc48,0xbc4a,0xbc4b,0xbc4e,0xbc4f,0xbc51,0xbc52,0xbc53, +0xbc54,0xbc55,0xbc56,0xbc57,0xbc58,0xbc59,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xbc5a,0xbc5b,0xbc5c,0xbc5e, +0xbc5f,0xbc60,0xbc61,0xbc62,0xbc63,0xbc64,0xbc65,0xbc66, +0xbc67,0xbc68,0xbc69,0xbc6a,0xbc6b,0xbc6c,0xbc6d,0xbc6e, +0xbc6f,0xbc70,0xbc71,0xbc72,0xbc73,0xbc74,0xbc75,0xbc76, +0xbc77,0xbc78,0xbc79,0xbc7a,0xbc7b,0xbc7c,0xbc7d,0xbc7e, +0xbc7f,0xbc80,0xbc81,0xbc82,0xbc83,0xbc86,0xbc87,0xbc89, +0xbc8a,0xbc8d,0xbc8f,0xbc90,0xbc91,0xbc92,0xbc93,0xbc96, +0xbc98,0xbc9b,0xbc9c,0xbc9d,0xbc9e,0xbc9f,0xbca2,0xbca3, +0xbca5,0xbca6,0xbca9,0xbcaa,0xbcab,0xbcac,0xbcad,0xbcae, +0xbcaf,0xbcb2,0xbcb6,0xbcb7,0xbcb8,0xbcb9,0xbcba,0xbcbb, +0xbcbe,0xbcbf,0xbcc1,0xbcc2,0xbcc3,0xbcc5,0xbcc6,0xbcc7, +0xbcc8,0xbcc9,0xbcca,0xbccb,0xbccc,0xbcce,0xbcd2,0xbcd3, +0xbcd4,0xbcd6,0xbcd7,0xbcd9,0xbcda,0xbcdb,0xbcdd,0xbcde, +0xbcdf,0xbce0,0xbce1,0xbce2,0xbce3,0xbce4,0xbce5,0xbce6, +0xbce7,0xbce8,0xbce9,0xbcea,0xbceb,0xbcec,0xbced,0xbcee, +0xbcef,0xbcf0,0xbcf1,0xbcf2,0xbcf3,0xbcf7,0xbcf9,0xbcfa, +0xbcfb,0xbcfd,0xbcfe,0xbcff,0xbd00,0xbd01,0xbd02,0xbd03, +0xbd06,0xbd08,0xbd0a,0xbd0b,0xbd0c,0xbd0d,0xbd0e,0xbd0f, +0xbd11,0xbd12,0xbd13,0xbd15,0xbd16,0xbd17,0xbd18,0xbd19, +0xbd1a,0xbd1b,0xbd1c,0xbd1d,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xbd1e,0xbd1f,0xbd20,0xbd21,0xbd22,0xbd23, +0xbd25,0xbd26,0xbd27,0xbd28,0xbd29,0xbd2a,0xbd2b,0xbd2d, +0xbd2e,0xbd2f,0xbd30,0xbd31,0xbd32,0xbd33,0xbd34,0xbd35, +0xbd36,0xbd37,0xbd38,0xbd39,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xbd3a,0xbd3b,0xbd3c,0xbd3d,0xbd3e,0xbd3f, +0xbd41,0xbd42,0xbd43,0xbd44,0xbd45,0xbd46,0xbd47,0xbd4a, +0xbd4b,0xbd4d,0xbd4e,0xbd4f,0xbd51,0xbd52,0xbd53,0xbd54, +0xbd55,0xbd56,0xbd57,0xbd5a,0xbd5b,0xbd5c,0xbd5d,0xbd5e, +0xbd5f,0xbd60,0xbd61,0xbd62,0xbd63,0xbd65,0xbd66,0xbd67, +0xbd69,0xbd6a,0xbd6b,0xbd6c,0xbd6d,0xbd6e,0xbd6f,0xbd70, +0xbd71,0xbd72,0xbd73,0xbd74,0xbd75,0xbd76,0xbd77,0xbd78, +0xbd79,0xbd7a,0xbd7b,0xbd7c,0xbd7d,0xbd7e,0xbd7f,0xbd82, +0xbd83,0xbd85,0xbd86,0xbd8b,0xbd8c,0xbd8d,0xbd8e,0xbd8f, +0xbd92,0xbd94,0xbd96,0xbd97,0xbd98,0xbd9b,0xbd9d,0xbd9e, +0xbd9f,0xbda0,0xbda1,0xbda2,0xbda3,0xbda5,0xbda6,0xbda7, +0xbda8,0xbda9,0xbdaa,0xbdab,0xbdac,0xbdad,0xbdae,0xbdaf, +0xbdb1,0xbdb2,0xbdb3,0xbdb4,0xbdb5,0xbdb6,0xbdb7,0xbdb9, +0xbdba,0xbdbb,0xbdbc,0xbdbd,0xbdbe,0xbdbf,0xbdc0,0xbdc1, +0xbdc2,0xbdc3,0xbdc4,0xbdc5,0xbdc6,0xbdc7,0xbdc8,0xbdc9, +0xbdca,0xbdcb,0xbdcc,0xbdcd,0xbdce,0xbdcf,0xbdd0,0xbdd1, +0xbdd2,0xbdd3,0xbdd6,0xbdd7,0xbdd9,0xbdda,0xbddb,0xbddd, +0xbdde,0xbddf,0xbde0,0xbde1,0xbde2,0xbde3,0xbde4,0xbde5, +0xbde6,0xbde7,0xbde8,0xbdea,0xbdeb,0xbdec,0xbded,0xbdee, +0xbdef,0xbdf1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xbdf2,0xbdf3,0xbdf5,0xbdf6,0xbdf7,0xbdf9,0xbdfa,0xbdfb, +0xbdfc,0xbdfd,0xbdfe,0xbdff,0xbe01,0xbe02,0xbe04,0xbe06, +0xbe07,0xbe08,0xbe09,0xbe0a,0xbe0b,0xbe0e,0xbe0f,0xbe11, +0xbe12,0xbe13,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xbe15,0xbe16,0xbe17,0xbe18,0xbe19,0xbe1a,0xbe1b,0xbe1e, +0xbe20,0xbe21,0xbe22,0xbe23,0xbe24,0xbe25,0xbe26,0xbe27, +0xbe28,0xbe29,0xbe2a,0xbe2b,0xbe2c,0xbe2d,0xbe2e,0xbe2f, +0xbe30,0xbe31,0xbe32,0xbe33,0xbe34,0xbe35,0xbe36,0xbe37, +0xbe38,0xbe39,0xbe3a,0xbe3b,0xbe3c,0xbe3d,0xbe3e,0xbe3f, +0xbe40,0xbe41,0xbe42,0xbe43,0xbe46,0xbe47,0xbe49,0xbe4a, +0xbe4b,0xbe4d,0xbe4f,0xbe50,0xbe51,0xbe52,0xbe53,0xbe56, +0xbe58,0xbe5c,0xbe5d,0xbe5e,0xbe5f,0xbe62,0xbe63,0xbe65, +0xbe66,0xbe67,0xbe69,0xbe6b,0xbe6c,0xbe6d,0xbe6e,0xbe6f, +0xbe72,0xbe76,0xbe77,0xbe78,0xbe79,0xbe7a,0xbe7e,0xbe7f, +0xbe81,0xbe82,0xbe83,0xbe85,0xbe86,0xbe87,0xbe88,0xbe89, +0xbe8a,0xbe8b,0xbe8e,0xbe92,0xbe93,0xbe94,0xbe95,0xbe96, +0xbe97,0xbe9a,0xbe9b,0xbe9c,0xbe9d,0xbe9e,0xbe9f,0xbea0, +0xbea1,0xbea2,0xbea3,0xbea4,0xbea5,0xbea6,0xbea7,0xbea9, +0xbeaa,0xbeab,0xbeac,0xbead,0xbeae,0xbeaf,0xbeb0,0xbeb1, +0xbeb2,0xbeb3,0xbeb4,0xbeb5,0xbeb6,0xbeb7,0xbeb8,0xbeb9, +0xbeba,0xbebb,0xbebc,0xbebd,0xbebe,0xbebf,0xbec0,0xbec1, +0xbec2,0xbec3,0xbec4,0xbec5,0xbec6,0xbec7,0xbec8,0xbec9, +0xbeca,0xbecb,0xbecc,0xbecd,0xbece,0xbecf,0xbed2,0xbed3, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xbed5,0xbed6, +0xbed9,0xbeda,0xbedb,0xbedc,0xbedd,0xbede,0xbedf,0xbee1, +0xbee2,0xbee6,0xbee7,0xbee8,0xbee9,0xbeea,0xbeeb,0xbeed, +0xbeee,0xbeef,0xbef0,0xbef1,0xbef2,0xbef3,0xbef4,0xbef5, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xbef6,0xbef7, +0xbef8,0xbef9,0xbefa,0xbefb,0xbefc,0xbefd,0xbefe,0xbeff, +0xbf00,0xbf02,0xbf03,0xbf04,0xbf05,0xbf06,0xbf07,0xbf0a, +0xbf0b,0xbf0c,0xbf0d,0xbf0e,0xbf0f,0xbf10,0xbf11,0xbf12, +0xbf13,0xbf14,0xbf15,0xbf16,0xbf17,0xbf1a,0xbf1e,0xbf1f, +0xbf20,0xbf21,0xbf22,0xbf23,0xbf24,0xbf25,0xbf26,0xbf27, +0xbf28,0xbf29,0xbf2a,0xbf2b,0xbf2c,0xbf2d,0xbf2e,0xbf2f, +0xbf30,0xbf31,0xbf32,0xbf33,0xbf34,0xbf35,0xbf36,0xbf37, +0xbf38,0xbf39,0xbf3a,0xbf3b,0xbf3c,0xbf3d,0xbf3e,0xbf3f, +0xbf42,0xbf43,0xbf45,0xbf46,0xbf47,0xbf49,0xbf4a,0xbf4b, +0xbf4c,0xbf4d,0xbf4e,0xbf4f,0xbf52,0xbf53,0xbf54,0xbf56, +0xbf57,0xbf58,0xbf59,0xbf5a,0xbf5b,0xbf5c,0xbf5d,0xbf5e, +0xbf5f,0xbf60,0xbf61,0xbf62,0xbf63,0xbf64,0xbf65,0xbf66, +0xbf67,0xbf68,0xbf69,0xbf6a,0xbf6b,0xbf6c,0xbf6d,0xbf6e, +0xbf6f,0xbf70,0xbf71,0xbf72,0xbf73,0xbf74,0xbf75,0xbf76, +0xbf77,0xbf78,0xbf79,0xbf7a,0xbf7b,0xbf7c,0xbf7d,0xbf7e, +0xbf7f,0xbf80,0xbf81,0xbf82,0xbf83,0xbf84,0xbf85,0xbf86, +0xbf87,0xbf88,0xbf89,0xbf8a,0xbf8b,0xbf8c,0xbf8d,0xbf8e, +0xbf8f,0xbf90,0xbf91,0xbf92,0xbf93,0xbf95,0xbf96,0xbf97, +0xbf98,0xbf99,0xbf9a,0xbf9b,0xbf9c,0xbf9d,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xbf9e,0xbf9f,0xbfa0,0xbfa1, +0xbfa2,0xbfa3,0xbfa4,0xbfa5,0xbfa6,0xbfa7,0xbfa8,0xbfa9, +0xbfaa,0xbfab,0xbfac,0xbfad,0xbfae,0xbfaf,0xbfb1,0xbfb2, +0xbfb3,0xbfb4,0xbfb5,0xbfb6,0xbfb7,0xbfb8,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xbfb9,0xbfba,0xbfbb,0xbfbc, +0xbfbd,0xbfbe,0xbfbf,0xbfc0,0xbfc1,0xbfc2,0xbfc3,0xbfc4, +0xbfc6,0xbfc7,0xbfc8,0xbfc9,0xbfca,0xbfcb,0xbfce,0xbfcf, +0xbfd1,0xbfd2,0xbfd3,0xbfd5,0xbfd6,0xbfd7,0xbfd8,0xbfd9, +0xbfda,0xbfdb,0xbfdd,0xbfde,0xbfe0,0xbfe2,0xbfe3,0xbfe4, +0xbfe5,0xbfe6,0xbfe7,0xbfe8,0xbfe9,0xbfea,0xbfeb,0xbfec, +0xbfed,0xbfee,0xbfef,0xbff0,0xbff1,0xbff2,0xbff3,0xbff4, +0xbff5,0xbff6,0xbff7,0xbff8,0xbff9,0xbffa,0xbffb,0xbffc, +0xbffd,0xbffe,0xbfff,0xc000,0xc001,0xc002,0xc003,0xc004, +0xc005,0xc006,0xc007,0xc008,0xc009,0xc00a,0xc00b,0xc00c, +0xc00d,0xc00e,0xc00f,0xc010,0xc011,0xc012,0xc013,0xc014, +0xc015,0xc016,0xc017,0xc018,0xc019,0xc01a,0xc01b,0xc01c, +0xc01d,0xc01e,0xc01f,0xc020,0xc021,0xc022,0xc023,0xc024, +0xc025,0xc026,0xc027,0xc028,0xc029,0xc02a,0xc02b,0xc02c, +0xc02d,0xc02e,0xc02f,0xc030,0xc031,0xc032,0xc033,0xc034, +0xc035,0xc036,0xc037,0xc038,0xc039,0xc03a,0xc03b,0xc03d, +0xc03e,0xc03f,0xc040,0xc041,0xc042,0xc043,0xc044,0xc045, +0xc046,0xc047,0xc048,0xc049,0xc04a,0xc04b,0xc04c,0xc04d, +0xc04e,0xc04f,0xc050,0xc052,0xc053,0xc054,0xc055,0xc056, +0xc057,0xc059,0xc05a,0xc05b,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xc05d,0xc05e,0xc05f,0xc061,0xc062,0xc063, +0xc064,0xc065,0xc066,0xc067,0xc06a,0xc06b,0xc06c,0xc06d, +0xc06e,0xc06f,0xc070,0xc071,0xc072,0xc073,0xc074,0xc075, +0xc076,0xc077,0xc078,0xc079,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xc07a,0xc07b,0xc07c,0xc07d,0xc07e,0xc07f, +0xc080,0xc081,0xc082,0xc083,0xc084,0xc085,0xc086,0xc087, +0xc088,0xc089,0xc08a,0xc08b,0xc08c,0xc08d,0xc08e,0xc08f, +0xc092,0xc093,0xc095,0xc096,0xc097,0xc099,0xc09a,0xc09b, +0xc09c,0xc09d,0xc09e,0xc09f,0xc0a2,0xc0a4,0xc0a6,0xc0a7, +0xc0a8,0xc0a9,0xc0aa,0xc0ab,0xc0ae,0xc0b1,0xc0b2,0xc0b7, +0xc0b8,0xc0b9,0xc0ba,0xc0bb,0xc0be,0xc0c2,0xc0c3,0xc0c4, +0xc0c6,0xc0c7,0xc0ca,0xc0cb,0xc0cd,0xc0ce,0xc0cf,0xc0d1, +0xc0d2,0xc0d3,0xc0d4,0xc0d5,0xc0d6,0xc0d7,0xc0da,0xc0de, +0xc0df,0xc0e0,0xc0e1,0xc0e2,0xc0e3,0xc0e6,0xc0e7,0xc0e9, +0xc0ea,0xc0eb,0xc0ed,0xc0ee,0xc0ef,0xc0f0,0xc0f1,0xc0f2, +0xc0f3,0xc0f6,0xc0f8,0xc0fa,0xc0fb,0xc0fc,0xc0fd,0xc0fe, +0xc0ff,0xc101,0xc102,0xc103,0xc105,0xc106,0xc107,0xc109, +0xc10a,0xc10b,0xc10c,0xc10d,0xc10e,0xc10f,0xc111,0xc112, +0xc113,0xc114,0xc116,0xc117,0xc118,0xc119,0xc11a,0xc11b, +0xc121,0xc122,0xc125,0xc128,0xc129,0xc12a,0xc12b,0xc12e, +0xc132,0xc133,0xc134,0xc135,0xc137,0xc13a,0xc13b,0xc13d, +0xc13e,0xc13f,0xc141,0xc142,0xc143,0xc144,0xc145,0xc146, +0xc147,0xc14a,0xc14e,0xc14f,0xc150,0xc151,0xc152,0xc153, +0xc156,0xc157,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xc159,0xc15a,0xc15b,0xc15d,0xc15e,0xc15f,0xc160,0xc161, +0xc162,0xc163,0xc166,0xc16a,0xc16b,0xc16c,0xc16d,0xc16e, +0xc16f,0xc171,0xc172,0xc173,0xc175,0xc176,0xc177,0xc179, +0xc17a,0xc17b,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xc17c,0xc17d,0xc17e,0xc17f,0xc180,0xc181,0xc182,0xc183, +0xc184,0xc186,0xc187,0xc188,0xc189,0xc18a,0xc18b,0xc18f, +0xc191,0xc192,0xc193,0xc195,0xc197,0xc198,0xc199,0xc19a, +0xc19b,0xc19e,0xc1a0,0xc1a2,0xc1a3,0xc1a4,0xc1a6,0xc1a7, +0xc1aa,0xc1ab,0xc1ad,0xc1ae,0xc1af,0xc1b1,0xc1b2,0xc1b3, +0xc1b4,0xc1b5,0xc1b6,0xc1b7,0xc1b8,0xc1b9,0xc1ba,0xc1bb, +0xc1bc,0xc1be,0xc1bf,0xc1c0,0xc1c1,0xc1c2,0xc1c3,0xc1c5, +0xc1c6,0xc1c7,0xc1c9,0xc1ca,0xc1cb,0xc1cd,0xc1ce,0xc1cf, +0xc1d0,0xc1d1,0xc1d2,0xc1d3,0xc1d5,0xc1d6,0xc1d9,0xc1da, +0xc1db,0xc1dc,0xc1dd,0xc1de,0xc1df,0xc1e1,0xc1e2,0xc1e3, +0xc1e5,0xc1e6,0xc1e7,0xc1e9,0xc1ea,0xc1eb,0xc1ec,0xc1ed, +0xc1ee,0xc1ef,0xc1f2,0xc1f4,0xc1f5,0xc1f6,0xc1f7,0xc1f8, +0xc1f9,0xc1fa,0xc1fb,0xc1fe,0xc1ff,0xc201,0xc202,0xc203, +0xc205,0xc206,0xc207,0xc208,0xc209,0xc20a,0xc20b,0xc20e, +0xc210,0xc212,0xc213,0xc214,0xc215,0xc216,0xc217,0xc21a, +0xc21b,0xc21d,0xc21e,0xc221,0xc222,0xc223,0xc224,0xc225, +0xc226,0xc227,0xc22a,0xc22c,0xc22e,0xc230,0xc233,0xc235, +0xc236,0xc237,0xc238,0xc239,0xc23a,0xc23b,0xc23c,0xc23d, +0xc23e,0xc23f,0xc240,0xc241,0xc242,0xc243,0xc244,0xc245, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xc246,0xc247, +0xc249,0xc24a,0xc24b,0xc24c,0xc24d,0xc24e,0xc24f,0xc252, +0xc253,0xc255,0xc256,0xc257,0xc259,0xc25a,0xc25b,0xc25c, +0xc25d,0xc25e,0xc25f,0xc261,0xc262,0xc263,0xc264,0xc266, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xc267,0xc268, +0xc269,0xc26a,0xc26b,0xc26e,0xc26f,0xc271,0xc272,0xc273, +0xc275,0xc276,0xc277,0xc278,0xc279,0xc27a,0xc27b,0xc27e, +0xc280,0xc282,0xc283,0xc284,0xc285,0xc286,0xc287,0xc28a, +0xc28b,0xc28c,0xc28d,0xc28e,0xc28f,0xc291,0xc292,0xc293, +0xc294,0xc295,0xc296,0xc297,0xc299,0xc29a,0xc29c,0xc29e, +0xc29f,0xc2a0,0xc2a1,0xc2a2,0xc2a3,0xc2a6,0xc2a7,0xc2a9, +0xc2aa,0xc2ab,0xc2ae,0xc2af,0xc2b0,0xc2b1,0xc2b2,0xc2b3, +0xc2b6,0xc2b8,0xc2ba,0xc2bb,0xc2bc,0xc2bd,0xc2be,0xc2bf, +0xc2c0,0xc2c1,0xc2c2,0xc2c3,0xc2c4,0xc2c5,0xc2c6,0xc2c7, +0xc2c8,0xc2c9,0xc2ca,0xc2cb,0xc2cc,0xc2cd,0xc2ce,0xc2cf, +0xc2d0,0xc2d1,0xc2d2,0xc2d3,0xc2d4,0xc2d5,0xc2d6,0xc2d7, +0xc2d8,0xc2d9,0xc2da,0xc2db,0xc2de,0xc2df,0xc2e1,0xc2e2, +0xc2e5,0xc2e6,0xc2e7,0xc2e8,0xc2e9,0xc2ea,0xc2ee,0xc2f0, +0xc2f2,0xc2f3,0xc2f4,0xc2f5,0xc2f7,0xc2fa,0xc2fd,0xc2fe, +0xc2ff,0xc301,0xc302,0xc303,0xc304,0xc305,0xc306,0xc307, +0xc30a,0xc30b,0xc30e,0xc30f,0xc310,0xc311,0xc312,0xc316, +0xc317,0xc319,0xc31a,0xc31b,0xc31d,0xc31e,0xc31f,0xc320, +0xc321,0xc322,0xc323,0xc326,0xc327,0xc32a,0xc32b,0xc32c, +0xc32d,0xc32e,0xc32f,0xc330,0xc331,0xc332,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xc333,0xc334,0xc335,0xc336, +0xc337,0xc338,0xc339,0xc33a,0xc33b,0xc33c,0xc33d,0xc33e, +0xc33f,0xc340,0xc341,0xc342,0xc343,0xc344,0xc346,0xc347, +0xc348,0xc349,0xc34a,0xc34b,0xc34c,0xc34d,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xc34e,0xc34f,0xc350,0xc351, +0xc352,0xc353,0xc354,0xc355,0xc356,0xc357,0xc358,0xc359, +0xc35a,0xc35b,0xc35c,0xc35d,0xc35e,0xc35f,0xc360,0xc361, +0xc362,0xc363,0xc364,0xc365,0xc366,0xc367,0xc36a,0xc36b, +0xc36d,0xc36e,0xc36f,0xc371,0xc373,0xc374,0xc375,0xc376, +0xc377,0xc37a,0xc37b,0xc37e,0xc37f,0xc380,0xc381,0xc382, +0xc383,0xc385,0xc386,0xc387,0xc389,0xc38a,0xc38b,0xc38d, +0xc38e,0xc38f,0xc390,0xc391,0xc392,0xc393,0xc394,0xc395, +0xc396,0xc397,0xc398,0xc399,0xc39a,0xc39b,0xc39c,0xc39d, +0xc39e,0xc39f,0xc3a0,0xc3a1,0xc3a2,0xc3a3,0xc3a4,0xc3a5, +0xc3a6,0xc3a7,0xc3a8,0xc3a9,0xc3aa,0xc3ab,0xc3ac,0xc3ad, +0xc3ae,0xc3af,0xc3b0,0xc3b1,0xc3b2,0xc3b3,0xc3b4,0xc3b5, +0xc3b6,0xc3b7,0xc3b8,0xc3b9,0xc3ba,0xc3bb,0xc3bc,0xc3bd, +0xc3be,0xc3bf,0xc3c1,0xc3c2,0xc3c3,0xc3c4,0xc3c5,0xc3c6, +0xc3c7,0xc3c8,0xc3c9,0xc3ca,0xc3cb,0xc3cc,0xc3cd,0xc3ce, +0xc3cf,0xc3d0,0xc3d1,0xc3d2,0xc3d3,0xc3d4,0xc3d5,0xc3d6, +0xc3d7,0xc3da,0xc3db,0xc3dd,0xc3de,0xc3e1,0xc3e3,0xc3e4, +0xc3e5,0xc3e6,0xc3e7,0xc3ea,0xc3eb,0xc3ec,0xc3ee,0xc3ef, +0xc3f0,0xc3f1,0xc3f2,0xc3f3,0xc3f6,0xc3f7,0xc3f9,0xc3fa, +0xc3fb,0xc3fc,0xc3fd,0xc3fe,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xc3ff,0xc400,0xc401,0xc402,0xc403,0xc404, +0xc405,0xc406,0xc407,0xc409,0xc40a,0xc40b,0xc40c,0xc40d, +0xc40e,0xc40f,0xc411,0xc412,0xc413,0xc414,0xc415,0xc416, +0xc417,0xc418,0xc419,0xc41a,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xc41b,0xc41c,0xc41d,0xc41e,0xc41f,0xc420, +0xc421,0xc422,0xc423,0xc425,0xc426,0xc427,0xc428,0xc429, +0xc42a,0xc42b,0xc42d,0xc42e,0xc42f,0xc431,0xc432,0xc433, +0xc435,0xc436,0xc437,0xc438,0xc439,0xc43a,0xc43b,0xc43e, +0xc43f,0xc440,0xc441,0xc442,0xc443,0xc444,0xc445,0xc446, +0xc447,0xc449,0xc44a,0xc44b,0xc44c,0xc44d,0xc44e,0xc44f, +0xc450,0xc451,0xc452,0xc453,0xc454,0xc455,0xc456,0xc457, +0xc458,0xc459,0xc45a,0xc45b,0xc45c,0xc45d,0xc45e,0xc45f, +0xc460,0xc461,0xc462,0xc463,0xc466,0xc467,0xc469,0xc46a, +0xc46b,0xc46d,0xc46e,0xc46f,0xc470,0xc471,0xc472,0xc473, +0xc476,0xc477,0xc478,0xc47a,0xc47b,0xc47c,0xc47d,0xc47e, +0xc47f,0xc481,0xc482,0xc483,0xc484,0xc485,0xc486,0xc487, +0xc488,0xc489,0xc48a,0xc48b,0xc48c,0xc48d,0xc48e,0xc48f, +0xc490,0xc491,0xc492,0xc493,0xc495,0xc496,0xc497,0xc498, +0xc499,0xc49a,0xc49b,0xc49d,0xc49e,0xc49f,0xc4a0,0xc4a1, +0xc4a2,0xc4a3,0xc4a4,0xc4a5,0xc4a6,0xc4a7,0xc4a8,0xc4a9, +0xc4aa,0xc4ab,0xc4ac,0xc4ad,0xc4ae,0xc4af,0xc4b0,0xc4b1, +0xc4b2,0xc4b3,0xc4b4,0xc4b5,0xc4b6,0xc4b7,0xc4b9,0xc4ba, +0xc4bb,0xc4bd,0xc4be,0xc4bf,0xc4c0,0xc4c1,0xc4c2,0xc4c3, +0xc4c4,0xc4c5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xc4c6,0xc4c7,0xc4c8,0xc4c9,0xc4ca,0xc4cb,0xc4cc,0xc4cd, +0xc4ce,0xc4cf,0xc4d0,0xc4d1,0xc4d2,0xc4d3,0xc4d4,0xc4d5, +0xc4d6,0xc4d7,0xc4d8,0xc4d9,0xc4da,0xc4db,0xc4dc,0xc4dd, +0xc4de,0xc4df,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xc4e0,0xc4e1,0xc4e2,0xc4e3,0xc4e4,0xc4e5,0xc4e6,0xc4e7, +0xc4e8,0xc4ea,0xc4eb,0xc4ec,0xc4ed,0xc4ee,0xc4ef,0xc4f2, +0xc4f3,0xc4f5,0xc4f6,0xc4f7,0xc4f9,0xc4fb,0xc4fc,0xc4fd, +0xc4fe,0xc502,0xc503,0xc504,0xc505,0xc506,0xc507,0xc508, +0xc509,0xc50a,0xc50b,0xc50d,0xc50e,0xc50f,0xc511,0xc512, +0xc513,0xc515,0xc516,0xc517,0xc518,0xc519,0xc51a,0xc51b, +0xc51d,0xc51e,0xc51f,0xc520,0xc521,0xc522,0xc523,0xc524, +0xc525,0xc526,0xc527,0xc52a,0xc52b,0xc52d,0xc52e,0xc52f, +0xc531,0xc532,0xc533,0xc534,0xc535,0xc536,0xc537,0xc53a, +0xc53c,0xc53e,0xc53f,0xc540,0xc541,0xc542,0xc543,0xc546, +0xc547,0xc54b,0xc54f,0xc550,0xc551,0xc552,0xc556,0xc55a, +0xc55b,0xc55c,0xc55f,0xc562,0xc563,0xc565,0xc566,0xc567, +0xc569,0xc56a,0xc56b,0xc56c,0xc56d,0xc56e,0xc56f,0xc572, +0xc576,0xc577,0xc578,0xc579,0xc57a,0xc57b,0xc57e,0xc57f, +0xc581,0xc582,0xc583,0xc585,0xc586,0xc588,0xc589,0xc58a, +0xc58b,0xc58e,0xc590,0xc592,0xc593,0xc594,0xc596,0xc599, +0xc59a,0xc59b,0xc59d,0xc59e,0xc59f,0xc5a1,0xc5a2,0xc5a3, +0xc5a4,0xc5a5,0xc5a6,0xc5a7,0xc5a8,0xc5aa,0xc5ab,0xc5ac, +0xc5ad,0xc5ae,0xc5af,0xc5b0,0xc5b1,0xc5b2,0xc5b3,0xc5b6, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xc5b7,0xc5ba, +0xc5bf,0xc5c0,0xc5c1,0xc5c2,0xc5c3,0xc5cb,0xc5cd,0xc5cf, +0xc5d2,0xc5d3,0xc5d5,0xc5d6,0xc5d7,0xc5d9,0xc5da,0xc5db, +0xc5dc,0xc5dd,0xc5de,0xc5df,0xc5e2,0xc5e4,0xc5e6,0xc5e7, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xc5e8,0xc5e9, +0xc5ea,0xc5eb,0xc5ef,0xc5f1,0xc5f2,0xc5f3,0xc5f5,0xc5f8, +0xc5f9,0xc5fa,0xc5fb,0xc602,0xc603,0xc604,0xc609,0xc60a, +0xc60b,0xc60d,0xc60e,0xc60f,0xc611,0xc612,0xc613,0xc614, +0xc615,0xc616,0xc617,0xc61a,0xc61d,0xc61e,0xc61f,0xc620, +0xc621,0xc622,0xc623,0xc626,0xc627,0xc629,0xc62a,0xc62b, +0xc62f,0xc631,0xc632,0xc636,0xc638,0xc63a,0xc63c,0xc63d, +0xc63e,0xc63f,0xc642,0xc643,0xc645,0xc646,0xc647,0xc649, +0xc64a,0xc64b,0xc64c,0xc64d,0xc64e,0xc64f,0xc652,0xc656, +0xc657,0xc658,0xc659,0xc65a,0xc65b,0xc65e,0xc65f,0xc661, +0xc662,0xc663,0xc664,0xc665,0xc666,0xc667,0xc668,0xc669, +0xc66a,0xc66b,0xc66d,0xc66e,0xc670,0xc672,0xc673,0xc674, +0xc675,0xc676,0xc677,0xc67a,0xc67b,0xc67d,0xc67e,0xc67f, +0xc681,0xc682,0xc683,0xc684,0xc685,0xc686,0xc687,0xc68a, +0xc68c,0xc68e,0xc68f,0xc690,0xc691,0xc692,0xc693,0xc696, +0xc697,0xc699,0xc69a,0xc69b,0xc69d,0xc69e,0xc69f,0xc6a0, +0xc6a1,0xc6a2,0xc6a3,0xc6a6,0xc6a8,0xc6aa,0xc6ab,0xc6ac, +0xc6ad,0xc6ae,0xc6af,0xc6b2,0xc6b3,0xc6b5,0xc6b6,0xc6b7, +0xc6bb,0xc6bc,0xc6bd,0xc6be,0xc6bf,0xc6c2,0xc6c4,0xc6c6, +0xc6c7,0xc6c8,0xc6c9,0xc6ca,0xc6cb,0xc6ce,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xc6cf,0xc6d1,0xc6d2,0xc6d3, +0xc6d5,0xc6d6,0xc6d7,0xc6d8,0xc6d9,0xc6da,0xc6db,0xc6de, +0xc6df,0xc6e2,0xc6e3,0xc6e4,0xc6e5,0xc6e6,0xc6e7,0xc6ea, +0xc6eb,0xc6ed,0xc6ee,0xc6ef,0xc6f1,0xc6f2,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xc6f3,0xc6f4,0xc6f5,0xc6f6, +0xc6f7,0xc6fa,0xc6fb,0xc6fc,0xc6fe,0xc6ff,0xc700,0xc701, +0xc702,0xc703,0xc706,0xc707,0xc709,0xc70a,0xc70b,0xc70d, +0xc70e,0xc70f,0xc710,0xc711,0xc712,0xc713,0xc716,0xc718, +0xc71a,0xc71b,0xc71c,0xc71d,0xc71e,0xc71f,0xc722,0xc723, +0xc725,0xc726,0xc727,0xc729,0xc72a,0xc72b,0xc72c,0xc72d, +0xc72e,0xc72f,0xc732,0xc734,0xc736,0xc738,0xc739,0xc73a, +0xc73b,0xc73e,0xc73f,0xc741,0xc742,0xc743,0xc745,0xc746, +0xc747,0xc748,0xc749,0xc74b,0xc74e,0xc750,0xc759,0xc75a, +0xc75b,0xc75d,0xc75e,0xc75f,0xc761,0xc762,0xc763,0xc764, +0xc765,0xc766,0xc767,0xc769,0xc76a,0xc76c,0xc76d,0xc76e, +0xc76f,0xc770,0xc771,0xc772,0xc773,0xc776,0xc777,0xc779, +0xc77a,0xc77b,0xc77f,0xc780,0xc781,0xc782,0xc786,0xc78b, +0xc78c,0xc78d,0xc78f,0xc792,0xc793,0xc795,0xc799,0xc79b, +0xc79c,0xc79d,0xc79e,0xc79f,0xc7a2,0xc7a7,0xc7a8,0xc7a9, +0xc7aa,0xc7ab,0xc7ae,0xc7af,0xc7b1,0xc7b2,0xc7b3,0xc7b5, +0xc7b6,0xc7b7,0xc7b8,0xc7b9,0xc7ba,0xc7bb,0xc7be,0xc7c2, +0xc7c3,0xc7c4,0xc7c5,0xc7c6,0xc7c7,0xc7ca,0xc7cb,0xc7cd, +0xc7cf,0xc7d1,0xc7d2,0xc7d3,0xc7d4,0xc7d5,0xc7d6,0xc7d7, +0xc7d9,0xc7da,0xc7db,0xc7dc,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xc7de,0xc7df,0xc7e0,0xc7e1,0xc7e2,0xc7e3, +0xc7e5,0xc7e6,0xc7e7,0xc7e9,0xc7ea,0xc7eb,0xc7ed,0xc7ee, +0xc7ef,0xc7f0,0xc7f1,0xc7f2,0xc7f3,0xc7f4,0xc7f5,0xc7f6, +0xc7f7,0xc7f8,0xc7f9,0xc7fa,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xc7fb,0xc7fc,0xc7fd,0xc7fe,0xc7ff,0xc802, +0xc803,0xc805,0xc806,0xc807,0xc809,0xc80b,0xc80c,0xc80d, +0xc80e,0xc80f,0xc812,0xc814,0xc817,0xc818,0xc819,0xc81a, +0xc81b,0xc81e,0xc81f,0xc821,0xc822,0xc823,0xc825,0xc826, +0xc827,0xc828,0xc829,0xc82a,0xc82b,0xc82e,0xc830,0xc832, +0xc833,0xc834,0xc835,0xc836,0xc837,0xc839,0xc83a,0xc83b, +0xc83d,0xc83e,0xc83f,0xc841,0xc842,0xc843,0xc844,0xc845, +0xc846,0xc847,0xc84a,0xc84b,0xc84e,0xc84f,0xc850,0xc851, +0xc852,0xc853,0xc855,0xc856,0xc857,0xc858,0xc859,0xc85a, +0xc85b,0xc85c,0xc85d,0xc85e,0xc85f,0xc860,0xc861,0xc862, +0xc863,0xc864,0xc865,0xc866,0xc867,0xc868,0xc869,0xc86a, +0xc86b,0xc86c,0xc86d,0xc86e,0xc86f,0xc872,0xc873,0xc875, +0xc876,0xc877,0xc879,0xc87b,0xc87c,0xc87d,0xc87e,0xc87f, +0xc882,0xc884,0xc888,0xc889,0xc88a,0xc88e,0xc88f,0xc890, +0xc891,0xc892,0xc893,0xc895,0xc896,0xc897,0xc898,0xc899, +0xc89a,0xc89b,0xc89c,0xc89e,0xc8a0,0xc8a2,0xc8a3,0xc8a4 +}; + +const int uhc1_ucs_table_size = (sizeof(uhc1_ucs_table)/sizeof(unsigned short)); + +const unsigned short uhc2_ucs_table[] = { +0xc8a5,0xc8a6,0xc8a7,0xc8a9,0xc8aa,0xc8ab,0xc8ac,0xc8ad, +0xc8ae,0xc8af,0xc8b0,0xc8b1,0xc8b2,0xc8b3,0xc8b4,0xc8b5, +0xc8b6,0xc8b7,0xc8b8,0xc8b9,0xc8ba,0xc8bb,0xc8be,0xc8bf, +0xc8c0,0xc8c1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xc8c2,0xc8c3,0xc8c5,0xc8c6,0xc8c7,0xc8c9,0xc8ca,0xc8cb, +0xc8cd,0xc8ce,0xc8cf,0xc8d0,0xc8d1,0xc8d2,0xc8d3,0xc8d6, +0xc8d8,0xc8da,0xc8db,0xc8dc,0xc8dd,0xc8de,0xc8df,0xc8e2, +0xc8e3,0xc8e5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xc8e6,0xc8e7,0xc8e8,0xc8e9,0xc8ea,0xc8eb,0xc8ec,0xc8ed, +0xc8ee,0xc8ef,0xc8f0,0xc8f1,0xc8f2,0xc8f3,0xc8f4,0xc8f6, +0xc8f7,0xc8f8,0xc8f9,0xc8fa,0xc8fb,0xc8fe,0xc8ff,0xc901, +0xc902,0xc903,0xc907,0xc908,0xc909,0xc90a,0xc90b,0xc90e, +0x3000,0x3001,0x3002,0x00b7,0x2025,0x2026,0x00a8,0x3003, +0x00ad,0x2015,0x2225,0xff3c,0x223c,0x2018,0x2019,0x201c, +0x201d,0x3014,0x3015,0x3008,0x3009,0x300a,0x300b,0x300c, +0x300d,0x300e,0x300f,0x3010,0x3011,0x00b1,0x00d7,0x00f7, +0x2260,0x2264,0x2265,0x221e,0x2234,0x00b0,0x2032,0x2033, +0x2103,0x212b,0xffe0,0xffe1,0xffe5,0x2642,0x2640,0x2220, +0x22a5,0x2312,0x2202,0x2207,0x2261,0x2252,0x00a7,0x203b, +0x2606,0x2605,0x25cb,0x25cf,0x25ce,0x25c7,0x25c6,0x25a1, +0x25a0,0x25b3,0x25b2,0x25bd,0x25bc,0x2192,0x2190,0x2191, +0x2193,0x2194,0x3013,0x226a,0x226b,0x221a,0x223d,0x221d, +0x2235,0x222b,0x222c,0x2208,0x220b,0x2286,0x2287,0x2282, +0x2283,0x222a,0x2229,0x2227,0x2228,0xffe2,0xc910,0xc912, +0xc913,0xc914,0xc915,0xc916,0xc917,0xc919,0xc91a,0xc91b, +0xc91c,0xc91d,0xc91e,0xc91f,0xc920,0xc921,0xc922,0xc923, +0xc924,0xc925,0xc926,0xc927,0xc928,0xc929,0xc92a,0xc92b, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xc92d,0xc92e, +0xc92f,0xc930,0xc931,0xc932,0xc933,0xc935,0xc936,0xc937, +0xc938,0xc939,0xc93a,0xc93b,0xc93c,0xc93d,0xc93e,0xc93f, +0xc940,0xc941,0xc942,0xc943,0xc944,0xc945,0xc946,0xc947, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xc948,0xc949, +0xc94a,0xc94b,0xc94c,0xc94d,0xc94e,0xc94f,0xc952,0xc953, +0xc955,0xc956,0xc957,0xc959,0xc95a,0xc95b,0xc95c,0xc95d, +0xc95e,0xc95f,0xc962,0xc964,0xc965,0xc966,0xc967,0xc968, +0xc969,0xc96a,0xc96b,0xc96d,0xc96e,0xc96f,0x21d2,0x21d4, +0x2200,0x2203,0x00b4,0xff5e,0x02c7,0x02d8,0x02dd,0x02da, +0x02d9,0x00b8,0x02db,0x00a1,0x00bf,0x02d0,0x222e,0x2211, +0x220f,0x00a4,0x2109,0x2030,0x25c1,0x25c0,0x25b7,0x25b6, +0x2664,0x2660,0x2661,0x2665,0x2667,0x2663,0x2299,0x25c8, +0x25a3,0x25d0,0x25d1,0x2592,0x25a4,0x25a5,0x25a8,0x25a7, +0x25a6,0x25a9,0x2668,0x260f,0x260e,0x261c,0x261e,0x00b6, +0x2020,0x2021,0x2195,0x2197,0x2199,0x2196,0x2198,0x266d, +0x2669,0x266a,0x266c,0x327f,0x321c,0x2116,0x33c7,0x2122, +0x33c2,0x33d8,0x2121,0x20ac,0x00ae,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xc971,0xc972,0xc973,0xc975, +0xc976,0xc977,0xc978,0xc979,0xc97a,0xc97b,0xc97d,0xc97e, +0xc97f,0xc980,0xc981,0xc982,0xc983,0xc984,0xc985,0xc986, +0xc987,0xc98a,0xc98b,0xc98d,0xc98e,0xc98f,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xc991,0xc992,0xc993,0xc994, +0xc995,0xc996,0xc997,0xc99a,0xc99c,0xc99e,0xc99f,0xc9a0, +0xc9a1,0xc9a2,0xc9a3,0xc9a4,0xc9a5,0xc9a6,0xc9a7,0xc9a8, +0xc9a9,0xc9aa,0xc9ab,0xc9ac,0xc9ad,0xc9ae,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xc9af,0xc9b0,0xc9b1,0xc9b2, +0xc9b3,0xc9b4,0xc9b5,0xc9b6,0xc9b7,0xc9b8,0xc9b9,0xc9ba, +0xc9bb,0xc9bc,0xc9bd,0xc9be,0xc9bf,0xc9c2,0xc9c3,0xc9c5, +0xc9c6,0xc9c9,0xc9cb,0xc9cc,0xc9cd,0xc9ce,0xc9cf,0xc9d2, +0xc9d4,0xc9d7,0xc9d8,0xc9db,0xff01,0xff02,0xff03,0xff04, +0xff05,0xff06,0xff07,0xff08,0xff09,0xff0a,0xff0b,0xff0c, +0xff0d,0xff0e,0xff0f,0xff10,0xff11,0xff12,0xff13,0xff14, +0xff15,0xff16,0xff17,0xff18,0xff19,0xff1a,0xff1b,0xff1c, +0xff1d,0xff1e,0xff1f,0xff20,0xff21,0xff22,0xff23,0xff24, +0xff25,0xff26,0xff27,0xff28,0xff29,0xff2a,0xff2b,0xff2c, +0xff2d,0xff2e,0xff2f,0xff30,0xff31,0xff32,0xff33,0xff34, +0xff35,0xff36,0xff37,0xff38,0xff39,0xff3a,0xff3b,0xffe6, +0xff3d,0xff3e,0xff3f,0xff40,0xff41,0xff42,0xff43,0xff44, +0xff45,0xff46,0xff47,0xff48,0xff49,0xff4a,0xff4b,0xff4c, +0xff4d,0xff4e,0xff4f,0xff50,0xff51,0xff52,0xff53,0xff54, +0xff55,0xff56,0xff57,0xff58,0xff59,0xff5a,0xff5b,0xff5c, +0xff5d,0xffe3,0xc9de,0xc9df,0xc9e1,0xc9e3,0xc9e5,0xc9e6, +0xc9e8,0xc9e9,0xc9ea,0xc9eb,0xc9ee,0xc9f2,0xc9f3,0xc9f4, +0xc9f5,0xc9f6,0xc9f7,0xc9fa,0xc9fb,0xc9fd,0xc9fe,0xc9ff, +0xca01,0xca02,0xca03,0xca04,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xca05,0xca06,0xca07,0xca0a,0xca0e,0xca0f, +0xca10,0xca11,0xca12,0xca13,0xca15,0xca16,0xca17,0xca19, +0xca1a,0xca1b,0xca1c,0xca1d,0xca1e,0xca1f,0xca20,0xca21, +0xca22,0xca23,0xca24,0xca25,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xca26,0xca27,0xca28,0xca2a,0xca2b,0xca2c, +0xca2d,0xca2e,0xca2f,0xca30,0xca31,0xca32,0xca33,0xca34, +0xca35,0xca36,0xca37,0xca38,0xca39,0xca3a,0xca3b,0xca3c, +0xca3d,0xca3e,0xca3f,0xca40,0xca41,0xca42,0xca43,0xca44, +0xca45,0xca46,0x3131,0x3132,0x3133,0x3134,0x3135,0x3136, +0x3137,0x3138,0x3139,0x313a,0x313b,0x313c,0x313d,0x313e, +0x313f,0x3140,0x3141,0x3142,0x3143,0x3144,0x3145,0x3146, +0x3147,0x3148,0x3149,0x314a,0x314b,0x314c,0x314d,0x314e, +0x314f,0x3150,0x3151,0x3152,0x3153,0x3154,0x3155,0x3156, +0x3157,0x3158,0x3159,0x315a,0x315b,0x315c,0x315d,0x315e, +0x315f,0x3160,0x3161,0x3162,0x3163,0x3164,0x3165,0x3166, +0x3167,0x3168,0x3169,0x316a,0x316b,0x316c,0x316d,0x316e, +0x316f,0x3170,0x3171,0x3172,0x3173,0x3174,0x3175,0x3176, +0x3177,0x3178,0x3179,0x317a,0x317b,0x317c,0x317d,0x317e, +0x317f,0x3180,0x3181,0x3182,0x3183,0x3184,0x3185,0x3186, +0x3187,0x3188,0x3189,0x318a,0x318b,0x318c,0x318d,0x318e, +0xca47,0xca48,0xca49,0xca4a,0xca4b,0xca4e,0xca4f,0xca51, +0xca52,0xca53,0xca55,0xca56,0xca57,0xca58,0xca59,0xca5a, +0xca5b,0xca5e,0xca62,0xca63,0xca64,0xca65,0xca66,0xca67, +0xca69,0xca6a,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xca6b,0xca6c,0xca6d,0xca6e,0xca6f,0xca70,0xca71,0xca72, +0xca73,0xca74,0xca75,0xca76,0xca77,0xca78,0xca79,0xca7a, +0xca7b,0xca7c,0xca7e,0xca7f,0xca80,0xca81,0xca82,0xca83, +0xca85,0xca86,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xca87,0xca88,0xca89,0xca8a,0xca8b,0xca8c,0xca8d,0xca8e, +0xca8f,0xca90,0xca91,0xca92,0xca93,0xca94,0xca95,0xca96, +0xca97,0xca99,0xca9a,0xca9b,0xca9c,0xca9d,0xca9e,0xca9f, +0xcaa0,0xcaa1,0xcaa2,0xcaa3,0xcaa4,0xcaa5,0xcaa6,0xcaa7, +0x2170,0x2171,0x2172,0x2173,0x2174,0x2175,0x2176,0x2177, +0x2178,0x2179,0x0000,0x0000,0x0000,0x0000,0x0000,0x2160, +0x2161,0x2162,0x2163,0x2164,0x2165,0x2166,0x2167,0x2168, +0x2169,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0391,0x0392,0x0393,0x0394,0x0395,0x0396,0x0397,0x0398, +0x0399,0x039a,0x039b,0x039c,0x039d,0x039e,0x039f,0x03a0, +0x03a1,0x03a3,0x03a4,0x03a5,0x03a6,0x03a7,0x03a8,0x03a9, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x03b1,0x03b2,0x03b3,0x03b4,0x03b5,0x03b6,0x03b7,0x03b8, +0x03b9,0x03ba,0x03bb,0x03bc,0x03bd,0x03be,0x03bf,0x03c0, +0x03c1,0x03c3,0x03c4,0x03c5,0x03c6,0x03c7,0x03c8,0x03c9, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xcaa8,0xcaa9, +0xcaaa,0xcaab,0xcaac,0xcaad,0xcaae,0xcaaf,0xcab0,0xcab1, +0xcab2,0xcab3,0xcab4,0xcab5,0xcab6,0xcab7,0xcab8,0xcab9, +0xcaba,0xcabb,0xcabe,0xcabf,0xcac1,0xcac2,0xcac3,0xcac5, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xcac6,0xcac7, +0xcac8,0xcac9,0xcaca,0xcacb,0xcace,0xcad0,0xcad2,0xcad4, +0xcad5,0xcad6,0xcad7,0xcada,0xcadb,0xcadc,0xcadd,0xcade, +0xcadf,0xcae1,0xcae2,0xcae3,0xcae4,0xcae5,0xcae6,0xcae7, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xcae8,0xcae9, +0xcaea,0xcaeb,0xcaed,0xcaee,0xcaef,0xcaf0,0xcaf1,0xcaf2, +0xcaf3,0xcaf5,0xcaf6,0xcaf7,0xcaf8,0xcaf9,0xcafa,0xcafb, +0xcafc,0xcafd,0xcafe,0xcaff,0xcb00,0xcb01,0xcb02,0xcb03, +0xcb04,0xcb05,0xcb06,0xcb07,0xcb09,0xcb0a,0x2500,0x2502, +0x250c,0x2510,0x2518,0x2514,0x251c,0x252c,0x2524,0x2534, +0x253c,0x2501,0x2503,0x250f,0x2513,0x251b,0x2517,0x2523, +0x2533,0x252b,0x253b,0x254b,0x2520,0x252f,0x2528,0x2537, +0x253f,0x251d,0x2530,0x2525,0x2538,0x2542,0x2512,0x2511, +0x251a,0x2519,0x2516,0x2515,0x250e,0x250d,0x251e,0x251f, +0x2521,0x2522,0x2526,0x2527,0x2529,0x252a,0x252d,0x252e, +0x2531,0x2532,0x2535,0x2536,0x2539,0x253a,0x253d,0x253e, +0x2540,0x2541,0x2543,0x2544,0x2545,0x2546,0x2547,0x2548, +0x2549,0x254a,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xcb0b,0xcb0c,0xcb0d,0xcb0e, +0xcb0f,0xcb11,0xcb12,0xcb13,0xcb15,0xcb16,0xcb17,0xcb19, +0xcb1a,0xcb1b,0xcb1c,0xcb1d,0xcb1e,0xcb1f,0xcb22,0xcb23, +0xcb24,0xcb25,0xcb26,0xcb27,0xcb28,0xcb29,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xcb2a,0xcb2b,0xcb2c,0xcb2d, +0xcb2e,0xcb2f,0xcb30,0xcb31,0xcb32,0xcb33,0xcb34,0xcb35, +0xcb36,0xcb37,0xcb38,0xcb39,0xcb3a,0xcb3b,0xcb3c,0xcb3d, +0xcb3e,0xcb3f,0xcb40,0xcb42,0xcb43,0xcb44,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xcb45,0xcb46,0xcb47,0xcb4a, +0xcb4b,0xcb4d,0xcb4e,0xcb4f,0xcb51,0xcb52,0xcb53,0xcb54, +0xcb55,0xcb56,0xcb57,0xcb5a,0xcb5b,0xcb5c,0xcb5e,0xcb5f, +0xcb60,0xcb61,0xcb62,0xcb63,0xcb65,0xcb66,0xcb67,0xcb68, +0xcb69,0xcb6a,0xcb6b,0xcb6c,0x3395,0x3396,0x3397,0x2113, +0x3398,0x33c4,0x33a3,0x33a4,0x33a5,0x33a6,0x3399,0x339a, +0x339b,0x339c,0x339d,0x339e,0x339f,0x33a0,0x33a1,0x33a2, +0x33ca,0x338d,0x338e,0x338f,0x33cf,0x3388,0x3389,0x33c8, +0x33a7,0x33a8,0x33b0,0x33b1,0x33b2,0x33b3,0x33b4,0x33b5, +0x33b6,0x33b7,0x33b8,0x33b9,0x3380,0x3381,0x3382,0x3383, +0x3384,0x33ba,0x33bb,0x33bc,0x33bd,0x33be,0x33bf,0x3390, +0x3391,0x3392,0x3393,0x3394,0x2126,0x33c0,0x33c1,0x338a, +0x338b,0x338c,0x33d6,0x33c5,0x33ad,0x33ae,0x33af,0x33db, +0x33a9,0x33aa,0x33ab,0x33ac,0x33dd,0x33d0,0x33d3,0x33c3, +0x33c9,0x33dc,0x33c6,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xcb6d,0xcb6e,0xcb6f,0xcb70,0xcb71,0xcb72, +0xcb73,0xcb74,0xcb75,0xcb76,0xcb77,0xcb7a,0xcb7b,0xcb7c, +0xcb7d,0xcb7e,0xcb7f,0xcb80,0xcb81,0xcb82,0xcb83,0xcb84, +0xcb85,0xcb86,0xcb87,0xcb88,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xcb89,0xcb8a,0xcb8b,0xcb8c,0xcb8d,0xcb8e, +0xcb8f,0xcb90,0xcb91,0xcb92,0xcb93,0xcb94,0xcb95,0xcb96, +0xcb97,0xcb98,0xcb99,0xcb9a,0xcb9b,0xcb9d,0xcb9e,0xcb9f, +0xcba0,0xcba1,0xcba2,0xcba3,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xcba4,0xcba5,0xcba6,0xcba7,0xcba8,0xcba9, +0xcbaa,0xcbab,0xcbac,0xcbad,0xcbae,0xcbaf,0xcbb0,0xcbb1, +0xcbb2,0xcbb3,0xcbb4,0xcbb5,0xcbb6,0xcbb7,0xcbb9,0xcbba, +0xcbbb,0xcbbc,0xcbbd,0xcbbe,0xcbbf,0xcbc0,0xcbc1,0xcbc2, +0xcbc3,0xcbc4,0x00c6,0x00d0,0x00aa,0x0126,0x0000,0x0132, +0x0000,0x013f,0x0141,0x00d8,0x0152,0x00ba,0x00de,0x0166, +0x014a,0x0000,0x3260,0x3261,0x3262,0x3263,0x3264,0x3265, +0x3266,0x3267,0x3268,0x3269,0x326a,0x326b,0x326c,0x326d, +0x326e,0x326f,0x3270,0x3271,0x3272,0x3273,0x3274,0x3275, +0x3276,0x3277,0x3278,0x3279,0x327a,0x327b,0x24d0,0x24d1, +0x24d2,0x24d3,0x24d4,0x24d5,0x24d6,0x24d7,0x24d8,0x24d9, +0x24da,0x24db,0x24dc,0x24dd,0x24de,0x24df,0x24e0,0x24e1, +0x24e2,0x24e3,0x24e4,0x24e5,0x24e6,0x24e7,0x24e8,0x24e9, +0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467, +0x2468,0x2469,0x246a,0x246b,0x246c,0x246d,0x246e,0x00bd, +0x2153,0x2154,0x00bc,0x00be,0x215b,0x215c,0x215d,0x215e, +0xcbc5,0xcbc6,0xcbc7,0xcbc8,0xcbc9,0xcbca,0xcbcb,0xcbcc, +0xcbcd,0xcbce,0xcbcf,0xcbd0,0xcbd1,0xcbd2,0xcbd3,0xcbd5, +0xcbd6,0xcbd7,0xcbd8,0xcbd9,0xcbda,0xcbdb,0xcbdc,0xcbdd, +0xcbde,0xcbdf,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xcbe0,0xcbe1,0xcbe2,0xcbe3,0xcbe5,0xcbe6,0xcbe8,0xcbea, +0xcbeb,0xcbec,0xcbed,0xcbee,0xcbef,0xcbf0,0xcbf1,0xcbf2, +0xcbf3,0xcbf4,0xcbf5,0xcbf6,0xcbf7,0xcbf8,0xcbf9,0xcbfa, +0xcbfb,0xcbfc,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xcbfd,0xcbfe,0xcbff,0xcc00,0xcc01,0xcc02,0xcc03,0xcc04, +0xcc05,0xcc06,0xcc07,0xcc08,0xcc09,0xcc0a,0xcc0b,0xcc0e, +0xcc0f,0xcc11,0xcc12,0xcc13,0xcc15,0xcc16,0xcc17,0xcc18, +0xcc19,0xcc1a,0xcc1b,0xcc1e,0xcc1f,0xcc20,0xcc23,0xcc24, +0x00e6,0x0111,0x00f0,0x0127,0x0131,0x0133,0x0138,0x0140, +0x0142,0x00f8,0x0153,0x00df,0x00fe,0x0167,0x014b,0x0149, +0x3200,0x3201,0x3202,0x3203,0x3204,0x3205,0x3206,0x3207, +0x3208,0x3209,0x320a,0x320b,0x320c,0x320d,0x320e,0x320f, +0x3210,0x3211,0x3212,0x3213,0x3214,0x3215,0x3216,0x3217, +0x3218,0x3219,0x321a,0x321b,0x249c,0x249d,0x249e,0x249f, +0x24a0,0x24a1,0x24a2,0x24a3,0x24a4,0x24a5,0x24a6,0x24a7, +0x24a8,0x24a9,0x24aa,0x24ab,0x24ac,0x24ad,0x24ae,0x24af, +0x24b0,0x24b1,0x24b2,0x24b3,0x24b4,0x24b5,0x2474,0x2475, +0x2476,0x2477,0x2478,0x2479,0x247a,0x247b,0x247c,0x247d, +0x247e,0x247f,0x2480,0x2481,0x2482,0x00b9,0x00b2,0x00b3, +0x2074,0x207f,0x2081,0x2082,0x2083,0x2084,0xcc25,0xcc26, +0xcc2a,0xcc2b,0xcc2d,0xcc2f,0xcc31,0xcc32,0xcc33,0xcc34, +0xcc35,0xcc36,0xcc37,0xcc3a,0xcc3f,0xcc40,0xcc41,0xcc42, +0xcc43,0xcc46,0xcc47,0xcc49,0xcc4a,0xcc4b,0xcc4d,0xcc4e, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xcc4f,0xcc50, +0xcc51,0xcc52,0xcc53,0xcc56,0xcc5a,0xcc5b,0xcc5c,0xcc5d, +0xcc5e,0xcc5f,0xcc61,0xcc62,0xcc63,0xcc65,0xcc67,0xcc69, +0xcc6a,0xcc6b,0xcc6c,0xcc6d,0xcc6e,0xcc6f,0xcc71,0xcc72, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xcc73,0xcc74, +0xcc76,0xcc77,0xcc78,0xcc79,0xcc7a,0xcc7b,0xcc7c,0xcc7d, +0xcc7e,0xcc7f,0xcc80,0xcc81,0xcc82,0xcc83,0xcc84,0xcc85, +0xcc86,0xcc87,0xcc88,0xcc89,0xcc8a,0xcc8b,0xcc8c,0xcc8d, +0xcc8e,0xcc8f,0xcc90,0xcc91,0xcc92,0xcc93,0x3041,0x3042, +0x3043,0x3044,0x3045,0x3046,0x3047,0x3048,0x3049,0x304a, +0x304b,0x304c,0x304d,0x304e,0x304f,0x3050,0x3051,0x3052, +0x3053,0x3054,0x3055,0x3056,0x3057,0x3058,0x3059,0x305a, +0x305b,0x305c,0x305d,0x305e,0x305f,0x3060,0x3061,0x3062, +0x3063,0x3064,0x3065,0x3066,0x3067,0x3068,0x3069,0x306a, +0x306b,0x306c,0x306d,0x306e,0x306f,0x3070,0x3071,0x3072, +0x3073,0x3074,0x3075,0x3076,0x3077,0x3078,0x3079,0x307a, +0x307b,0x307c,0x307d,0x307e,0x307f,0x3080,0x3081,0x3082, +0x3083,0x3084,0x3085,0x3086,0x3087,0x3088,0x3089,0x308a, +0x308b,0x308c,0x308d,0x308e,0x308f,0x3090,0x3091,0x3092, +0x3093,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xcc94,0xcc95,0xcc96,0xcc97, +0xcc9a,0xcc9b,0xcc9d,0xcc9e,0xcc9f,0xcca1,0xcca2,0xcca3, +0xcca4,0xcca5,0xcca6,0xcca7,0xccaa,0xccae,0xccaf,0xccb0, +0xccb1,0xccb2,0xccb3,0xccb6,0xccb7,0xccb9,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xccba,0xccbb,0xccbd,0xccbe, +0xccbf,0xccc0,0xccc1,0xccc2,0xccc3,0xccc6,0xccc8,0xccca, +0xcccb,0xcccc,0xcccd,0xccce,0xcccf,0xccd1,0xccd2,0xccd3, +0xccd5,0xccd6,0xccd7,0xccd8,0xccd9,0xccda,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xccdb,0xccdc,0xccdd,0xccde, +0xccdf,0xcce0,0xcce1,0xcce2,0xcce3,0xcce5,0xcce6,0xcce7, +0xcce8,0xcce9,0xccea,0xcceb,0xcced,0xccee,0xccef,0xccf1, +0xccf2,0xccf3,0xccf4,0xccf5,0xccf6,0xccf7,0xccf8,0xccf9, +0xccfa,0xccfb,0xccfc,0xccfd,0x30a1,0x30a2,0x30a3,0x30a4, +0x30a5,0x30a6,0x30a7,0x30a8,0x30a9,0x30aa,0x30ab,0x30ac, +0x30ad,0x30ae,0x30af,0x30b0,0x30b1,0x30b2,0x30b3,0x30b4, +0x30b5,0x30b6,0x30b7,0x30b8,0x30b9,0x30ba,0x30bb,0x30bc, +0x30bd,0x30be,0x30bf,0x30c0,0x30c1,0x30c2,0x30c3,0x30c4, +0x30c5,0x30c6,0x30c7,0x30c8,0x30c9,0x30ca,0x30cb,0x30cc, +0x30cd,0x30ce,0x30cf,0x30d0,0x30d1,0x30d2,0x30d3,0x30d4, +0x30d5,0x30d6,0x30d7,0x30d8,0x30d9,0x30da,0x30db,0x30dc, +0x30dd,0x30de,0x30df,0x30e0,0x30e1,0x30e2,0x30e3,0x30e4, +0x30e5,0x30e6,0x30e7,0x30e8,0x30e9,0x30ea,0x30eb,0x30ec, +0x30ed,0x30ee,0x30ef,0x30f0,0x30f1,0x30f2,0x30f3,0x30f4, +0x30f5,0x30f6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xccfe,0xccff,0xcd00,0xcd02,0xcd03,0xcd04, +0xcd05,0xcd06,0xcd07,0xcd0a,0xcd0b,0xcd0d,0xcd0e,0xcd0f, +0xcd11,0xcd12,0xcd13,0xcd14,0xcd15,0xcd16,0xcd17,0xcd1a, +0xcd1c,0xcd1e,0xcd1f,0xcd20,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xcd21,0xcd22,0xcd23,0xcd25,0xcd26,0xcd27, +0xcd29,0xcd2a,0xcd2b,0xcd2d,0xcd2e,0xcd2f,0xcd30,0xcd31, +0xcd32,0xcd33,0xcd34,0xcd35,0xcd36,0xcd37,0xcd38,0xcd3a, +0xcd3b,0xcd3c,0xcd3d,0xcd3e,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xcd3f,0xcd40,0xcd41,0xcd42,0xcd43,0xcd44, +0xcd45,0xcd46,0xcd47,0xcd48,0xcd49,0xcd4a,0xcd4b,0xcd4c, +0xcd4d,0xcd4e,0xcd4f,0xcd50,0xcd51,0xcd52,0xcd53,0xcd54, +0xcd55,0xcd56,0xcd57,0xcd58,0xcd59,0xcd5a,0xcd5b,0xcd5d, +0xcd5e,0xcd5f,0x0410,0x0411,0x0412,0x0413,0x0414,0x0415, +0x0401,0x0416,0x0417,0x0418,0x0419,0x041a,0x041b,0x041c, +0x041d,0x041e,0x041f,0x0420,0x0421,0x0422,0x0423,0x0424, +0x0425,0x0426,0x0427,0x0428,0x0429,0x042a,0x042b,0x042c, +0x042d,0x042e,0x042f,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0430,0x0431,0x0432,0x0433,0x0434,0x0435, +0x0451,0x0436,0x0437,0x0438,0x0439,0x043a,0x043b,0x043c, +0x043d,0x043e,0x043f,0x0440,0x0441,0x0442,0x0443,0x0444, +0x0445,0x0446,0x0447,0x0448,0x0449,0x044a,0x044b,0x044c, +0x044d,0x044e,0x044f,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xcd61,0xcd62,0xcd63,0xcd65,0xcd66,0xcd67,0xcd68,0xcd69, +0xcd6a,0xcd6b,0xcd6e,0xcd70,0xcd72,0xcd73,0xcd74,0xcd75, +0xcd76,0xcd77,0xcd79,0xcd7a,0xcd7b,0xcd7c,0xcd7d,0xcd7e, +0xcd7f,0xcd80,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xcd81,0xcd82,0xcd83,0xcd84,0xcd85,0xcd86,0xcd87,0xcd89, +0xcd8a,0xcd8b,0xcd8c,0xcd8d,0xcd8e,0xcd8f,0xcd90,0xcd91, +0xcd92,0xcd93,0xcd96,0xcd97,0xcd99,0xcd9a,0xcd9b,0xcd9d, +0xcd9e,0xcd9f,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xcda0,0xcda1,0xcda2,0xcda3,0xcda6,0xcda8,0xcdaa,0xcdab, +0xcdac,0xcdad,0xcdae,0xcdaf,0xcdb1,0xcdb2,0xcdb3,0xcdb4, +0xcdb5,0xcdb6,0xcdb7,0xcdb8,0xcdb9,0xcdba,0xcdbb,0xcdbc, +0xcdbd,0xcdbe,0xcdbf,0xcdc0,0xcdc1,0xcdc2,0xcdc3,0xcdc5, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xcdc6,0xcdc7, +0xcdc8,0xcdc9,0xcdca,0xcdcb,0xcdcd,0xcdce,0xcdcf,0xcdd1, +0xcdd2,0xcdd3,0xcdd4,0xcdd5,0xcdd6,0xcdd7,0xcdd8,0xcdd9, +0xcdda,0xcddb,0xcddc,0xcddd,0xcdde,0xcddf,0xcde0,0xcde1, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xcde2,0xcde3, +0xcde4,0xcde5,0xcde6,0xcde7,0xcde9,0xcdea,0xcdeb,0xcded, +0xcdee,0xcdef,0xcdf1,0xcdf2,0xcdf3,0xcdf4,0xcdf5,0xcdf6, +0xcdf7,0xcdfa,0xcdfc,0xcdfe,0xcdff,0xce00,0xce01,0xce02, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xce03,0xce05, +0xce06,0xce07,0xce09,0xce0a,0xce0b,0xce0d,0xce0e,0xce0f, +0xce10,0xce11,0xce12,0xce13,0xce15,0xce16,0xce17,0xce18, +0xce1a,0xce1b,0xce1c,0xce1d,0xce1e,0xce1f,0xce22,0xce23, +0xce25,0xce26,0xce27,0xce29,0xce2a,0xce2b,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xce2c,0xce2d,0xce2e,0xce2f, +0xce32,0xce34,0xce36,0xce37,0xce38,0xce39,0xce3a,0xce3b, +0xce3c,0xce3d,0xce3e,0xce3f,0xce40,0xce41,0xce42,0xce43, +0xce44,0xce45,0xce46,0xce47,0xce48,0xce49,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xce4a,0xce4b,0xce4c,0xce4d, +0xce4e,0xce4f,0xce50,0xce51,0xce52,0xce53,0xce54,0xce55, +0xce56,0xce57,0xce5a,0xce5b,0xce5d,0xce5e,0xce62,0xce63, +0xce64,0xce65,0xce66,0xce67,0xce6a,0xce6c,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xce6e,0xce6f,0xce70,0xce71, +0xce72,0xce73,0xce76,0xce77,0xce79,0xce7a,0xce7b,0xce7d, +0xce7e,0xce7f,0xce80,0xce81,0xce82,0xce83,0xce86,0xce88, +0xce8a,0xce8b,0xce8c,0xce8d,0xce8e,0xce8f,0xce92,0xce93, +0xce95,0xce96,0xce97,0xce99,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xce9a,0xce9b,0xce9c,0xce9d,0xce9e,0xce9f, +0xcea2,0xcea6,0xcea7,0xcea8,0xcea9,0xceaa,0xceab,0xceae, +0xceaf,0xceb0,0xceb1,0xceb2,0xceb3,0xceb4,0xceb5,0xceb6, +0xceb7,0xceb8,0xceb9,0xceba,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xcebb,0xcebc,0xcebd,0xcebe,0xcebf,0xcec0, +0xcec2,0xcec3,0xcec4,0xcec5,0xcec6,0xcec7,0xcec8,0xcec9, +0xceca,0xcecb,0xcecc,0xcecd,0xcece,0xcecf,0xced0,0xced1, +0xced2,0xced3,0xced4,0xced5,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xced6,0xced7,0xced8,0xced9,0xceda,0xcedb, +0xcedc,0xcedd,0xcede,0xcedf,0xcee0,0xcee1,0xcee2,0xcee3, +0xcee6,0xcee7,0xcee9,0xceea,0xceed,0xceee,0xceef,0xcef0, +0xcef1,0xcef2,0xcef3,0xcef6,0xcefa,0xcefb,0xcefc,0xcefd, +0xcefe,0xceff,0xac00,0xac01,0xac04,0xac07,0xac08,0xac09, +0xac0a,0xac10,0xac11,0xac12,0xac13,0xac14,0xac15,0xac16, +0xac17,0xac19,0xac1a,0xac1b,0xac1c,0xac1d,0xac20,0xac24, +0xac2c,0xac2d,0xac2f,0xac30,0xac31,0xac38,0xac39,0xac3c, +0xac40,0xac4b,0xac4d,0xac54,0xac58,0xac5c,0xac70,0xac71, +0xac74,0xac77,0xac78,0xac7a,0xac80,0xac81,0xac83,0xac84, +0xac85,0xac86,0xac89,0xac8a,0xac8b,0xac8c,0xac90,0xac94, +0xac9c,0xac9d,0xac9f,0xaca0,0xaca1,0xaca8,0xaca9,0xacaa, +0xacac,0xacaf,0xacb0,0xacb8,0xacb9,0xacbb,0xacbc,0xacbd, +0xacc1,0xacc4,0xacc8,0xaccc,0xacd5,0xacd7,0xace0,0xace1, +0xace4,0xace7,0xace8,0xacea,0xacec,0xacef,0xacf0,0xacf1, +0xacf3,0xacf5,0xacf6,0xacfc,0xacfd,0xad00,0xad04,0xad06, +0xcf02,0xcf03,0xcf05,0xcf06,0xcf07,0xcf09,0xcf0a,0xcf0b, +0xcf0c,0xcf0d,0xcf0e,0xcf0f,0xcf12,0xcf14,0xcf16,0xcf17, +0xcf18,0xcf19,0xcf1a,0xcf1b,0xcf1d,0xcf1e,0xcf1f,0xcf21, +0xcf22,0xcf23,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xcf25,0xcf26,0xcf27,0xcf28,0xcf29,0xcf2a,0xcf2b,0xcf2e, +0xcf32,0xcf33,0xcf34,0xcf35,0xcf36,0xcf37,0xcf39,0xcf3a, +0xcf3b,0xcf3c,0xcf3d,0xcf3e,0xcf3f,0xcf40,0xcf41,0xcf42, +0xcf43,0xcf44,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xcf45,0xcf46,0xcf47,0xcf48,0xcf49,0xcf4a,0xcf4b,0xcf4c, +0xcf4d,0xcf4e,0xcf4f,0xcf50,0xcf51,0xcf52,0xcf53,0xcf56, +0xcf57,0xcf59,0xcf5a,0xcf5b,0xcf5d,0xcf5e,0xcf5f,0xcf60, +0xcf61,0xcf62,0xcf63,0xcf66,0xcf68,0xcf6a,0xcf6b,0xcf6c, +0xad0c,0xad0d,0xad0f,0xad11,0xad18,0xad1c,0xad20,0xad29, +0xad2c,0xad2d,0xad34,0xad35,0xad38,0xad3c,0xad44,0xad45, +0xad47,0xad49,0xad50,0xad54,0xad58,0xad61,0xad63,0xad6c, +0xad6d,0xad70,0xad73,0xad74,0xad75,0xad76,0xad7b,0xad7c, +0xad7d,0xad7f,0xad81,0xad82,0xad88,0xad89,0xad8c,0xad90, +0xad9c,0xad9d,0xada4,0xadb7,0xadc0,0xadc1,0xadc4,0xadc8, +0xadd0,0xadd1,0xadd3,0xaddc,0xade0,0xade4,0xadf8,0xadf9, +0xadfc,0xadff,0xae00,0xae01,0xae08,0xae09,0xae0b,0xae0d, +0xae14,0xae30,0xae31,0xae34,0xae37,0xae38,0xae3a,0xae40, +0xae41,0xae43,0xae45,0xae46,0xae4a,0xae4c,0xae4d,0xae4e, +0xae50,0xae54,0xae56,0xae5c,0xae5d,0xae5f,0xae60,0xae61, +0xae65,0xae68,0xae69,0xae6c,0xae70,0xae78,0xcf6d,0xcf6e, +0xcf6f,0xcf72,0xcf73,0xcf75,0xcf76,0xcf77,0xcf79,0xcf7a, +0xcf7b,0xcf7c,0xcf7d,0xcf7e,0xcf7f,0xcf81,0xcf82,0xcf83, +0xcf84,0xcf86,0xcf87,0xcf88,0xcf89,0xcf8a,0xcf8b,0xcf8d, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xcf8e,0xcf8f, +0xcf90,0xcf91,0xcf92,0xcf93,0xcf94,0xcf95,0xcf96,0xcf97, +0xcf98,0xcf99,0xcf9a,0xcf9b,0xcf9c,0xcf9d,0xcf9e,0xcf9f, +0xcfa0,0xcfa2,0xcfa3,0xcfa4,0xcfa5,0xcfa6,0xcfa7,0xcfa9, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xcfaa,0xcfab, +0xcfac,0xcfad,0xcfae,0xcfaf,0xcfb1,0xcfb2,0xcfb3,0xcfb4, +0xcfb5,0xcfb6,0xcfb7,0xcfb8,0xcfb9,0xcfba,0xcfbb,0xcfbc, +0xcfbd,0xcfbe,0xcfbf,0xcfc0,0xcfc1,0xcfc2,0xcfc3,0xcfc5, +0xcfc6,0xcfc7,0xcfc8,0xcfc9,0xcfca,0xcfcb,0xae79,0xae7b, +0xae7c,0xae7d,0xae84,0xae85,0xae8c,0xaebc,0xaebd,0xaebe, +0xaec0,0xaec4,0xaecc,0xaecd,0xaecf,0xaed0,0xaed1,0xaed8, +0xaed9,0xaedc,0xaee8,0xaeeb,0xaeed,0xaef4,0xaef8,0xaefc, +0xaf07,0xaf08,0xaf0d,0xaf10,0xaf2c,0xaf2d,0xaf30,0xaf32, +0xaf34,0xaf3c,0xaf3d,0xaf3f,0xaf41,0xaf42,0xaf43,0xaf48, +0xaf49,0xaf50,0xaf5c,0xaf5d,0xaf64,0xaf65,0xaf79,0xaf80, +0xaf84,0xaf88,0xaf90,0xaf91,0xaf95,0xaf9c,0xafb8,0xafb9, +0xafbc,0xafc0,0xafc7,0xafc8,0xafc9,0xafcb,0xafcd,0xafce, +0xafd4,0xafdc,0xafe8,0xafe9,0xaff0,0xaff1,0xaff4,0xaff8, +0xb000,0xb001,0xb004,0xb00c,0xb010,0xb014,0xb01c,0xb01d, +0xb028,0xb044,0xb045,0xb048,0xb04a,0xb04c,0xb04e,0xb053, +0xb054,0xb055,0xb057,0xb059,0xcfcc,0xcfcd,0xcfce,0xcfcf, +0xcfd0,0xcfd1,0xcfd2,0xcfd3,0xcfd4,0xcfd5,0xcfd6,0xcfd7, +0xcfd8,0xcfd9,0xcfda,0xcfdb,0xcfdc,0xcfdd,0xcfde,0xcfdf, +0xcfe2,0xcfe3,0xcfe5,0xcfe6,0xcfe7,0xcfe9,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xcfea,0xcfeb,0xcfec,0xcfed, +0xcfee,0xcfef,0xcff2,0xcff4,0xcff6,0xcff7,0xcff8,0xcff9, +0xcffa,0xcffb,0xcffd,0xcffe,0xcfff,0xd001,0xd002,0xd003, +0xd005,0xd006,0xd007,0xd008,0xd009,0xd00a,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xd00b,0xd00c,0xd00d,0xd00e, +0xd00f,0xd010,0xd012,0xd013,0xd014,0xd015,0xd016,0xd017, +0xd019,0xd01a,0xd01b,0xd01c,0xd01d,0xd01e,0xd01f,0xd020, +0xd021,0xd022,0xd023,0xd024,0xd025,0xd026,0xd027,0xd028, +0xd029,0xd02a,0xd02b,0xd02c,0xb05d,0xb07c,0xb07d,0xb080, +0xb084,0xb08c,0xb08d,0xb08f,0xb091,0xb098,0xb099,0xb09a, +0xb09c,0xb09f,0xb0a0,0xb0a1,0xb0a2,0xb0a8,0xb0a9,0xb0ab, +0xb0ac,0xb0ad,0xb0ae,0xb0af,0xb0b1,0xb0b3,0xb0b4,0xb0b5, +0xb0b8,0xb0bc,0xb0c4,0xb0c5,0xb0c7,0xb0c8,0xb0c9,0xb0d0, +0xb0d1,0xb0d4,0xb0d8,0xb0e0,0xb0e5,0xb108,0xb109,0xb10b, +0xb10c,0xb110,0xb112,0xb113,0xb118,0xb119,0xb11b,0xb11c, +0xb11d,0xb123,0xb124,0xb125,0xb128,0xb12c,0xb134,0xb135, +0xb137,0xb138,0xb139,0xb140,0xb141,0xb144,0xb148,0xb150, +0xb151,0xb154,0xb155,0xb158,0xb15c,0xb160,0xb178,0xb179, +0xb17c,0xb180,0xb182,0xb188,0xb189,0xb18b,0xb18d,0xb192, +0xb193,0xb194,0xb198,0xb19c,0xb1a8,0xb1cc,0xb1d0,0xb1d4, +0xb1dc,0xb1dd,0xd02e,0xd02f,0xd030,0xd031,0xd032,0xd033, +0xd036,0xd037,0xd039,0xd03a,0xd03b,0xd03d,0xd03e,0xd03f, +0xd040,0xd041,0xd042,0xd043,0xd046,0xd048,0xd04a,0xd04b, +0xd04c,0xd04d,0xd04e,0xd04f,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xd051,0xd052,0xd053,0xd055,0xd056,0xd057, +0xd059,0xd05a,0xd05b,0xd05c,0xd05d,0xd05e,0xd05f,0xd061, +0xd062,0xd063,0xd064,0xd065,0xd066,0xd067,0xd068,0xd069, +0xd06a,0xd06b,0xd06e,0xd06f,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xd071,0xd072,0xd073,0xd075,0xd076,0xd077, +0xd078,0xd079,0xd07a,0xd07b,0xd07e,0xd07f,0xd080,0xd082, +0xd083,0xd084,0xd085,0xd086,0xd087,0xd088,0xd089,0xd08a, +0xd08b,0xd08c,0xd08d,0xd08e,0xd08f,0xd090,0xd091,0xd092, +0xd093,0xd094,0xb1df,0xb1e8,0xb1e9,0xb1ec,0xb1f0,0xb1f9, +0xb1fb,0xb1fd,0xb204,0xb205,0xb208,0xb20b,0xb20c,0xb214, +0xb215,0xb217,0xb219,0xb220,0xb234,0xb23c,0xb258,0xb25c, +0xb260,0xb268,0xb269,0xb274,0xb275,0xb27c,0xb284,0xb285, +0xb289,0xb290,0xb291,0xb294,0xb298,0xb299,0xb29a,0xb2a0, +0xb2a1,0xb2a3,0xb2a5,0xb2a6,0xb2aa,0xb2ac,0xb2b0,0xb2b4, +0xb2c8,0xb2c9,0xb2cc,0xb2d0,0xb2d2,0xb2d8,0xb2d9,0xb2db, +0xb2dd,0xb2e2,0xb2e4,0xb2e5,0xb2e6,0xb2e8,0xb2eb,0xb2ec, +0xb2ed,0xb2ee,0xb2ef,0xb2f3,0xb2f4,0xb2f5,0xb2f7,0xb2f8, +0xb2f9,0xb2fa,0xb2fb,0xb2ff,0xb300,0xb301,0xb304,0xb308, +0xb310,0xb311,0xb313,0xb314,0xb315,0xb31c,0xb354,0xb355, +0xb356,0xb358,0xb35b,0xb35c,0xb35e,0xb35f,0xb364,0xb365, +0xd095,0xd096,0xd097,0xd098,0xd099,0xd09a,0xd09b,0xd09c, +0xd09d,0xd09e,0xd09f,0xd0a0,0xd0a1,0xd0a2,0xd0a3,0xd0a6, +0xd0a7,0xd0a9,0xd0aa,0xd0ab,0xd0ad,0xd0ae,0xd0af,0xd0b0, +0xd0b1,0xd0b2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xd0b3,0xd0b6,0xd0b8,0xd0ba,0xd0bb,0xd0bc,0xd0bd,0xd0be, +0xd0bf,0xd0c2,0xd0c3,0xd0c5,0xd0c6,0xd0c7,0xd0ca,0xd0cb, +0xd0cc,0xd0cd,0xd0ce,0xd0cf,0xd0d2,0xd0d6,0xd0d7,0xd0d8, +0xd0d9,0xd0da,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xd0db,0xd0de,0xd0df,0xd0e1,0xd0e2,0xd0e3,0xd0e5,0xd0e6, +0xd0e7,0xd0e8,0xd0e9,0xd0ea,0xd0eb,0xd0ee,0xd0f2,0xd0f3, +0xd0f4,0xd0f5,0xd0f6,0xd0f7,0xd0f9,0xd0fa,0xd0fb,0xd0fc, +0xd0fd,0xd0fe,0xd0ff,0xd100,0xd101,0xd102,0xd103,0xd104, +0xb367,0xb369,0xb36b,0xb36e,0xb370,0xb371,0xb374,0xb378, +0xb380,0xb381,0xb383,0xb384,0xb385,0xb38c,0xb390,0xb394, +0xb3a0,0xb3a1,0xb3a8,0xb3ac,0xb3c4,0xb3c5,0xb3c8,0xb3cb, +0xb3cc,0xb3ce,0xb3d0,0xb3d4,0xb3d5,0xb3d7,0xb3d9,0xb3db, +0xb3dd,0xb3e0,0xb3e4,0xb3e8,0xb3fc,0xb410,0xb418,0xb41c, +0xb420,0xb428,0xb429,0xb42b,0xb434,0xb450,0xb451,0xb454, +0xb458,0xb460,0xb461,0xb463,0xb465,0xb46c,0xb480,0xb488, +0xb49d,0xb4a4,0xb4a8,0xb4ac,0xb4b5,0xb4b7,0xb4b9,0xb4c0, +0xb4c4,0xb4c8,0xb4d0,0xb4d5,0xb4dc,0xb4dd,0xb4e0,0xb4e3, +0xb4e4,0xb4e6,0xb4ec,0xb4ed,0xb4ef,0xb4f1,0xb4f8,0xb514, +0xb515,0xb518,0xb51b,0xb51c,0xb524,0xb525,0xb527,0xb528, +0xb529,0xb52a,0xb530,0xb531,0xb534,0xb538,0xd105,0xd106, +0xd107,0xd108,0xd109,0xd10a,0xd10b,0xd10c,0xd10e,0xd10f, +0xd110,0xd111,0xd112,0xd113,0xd114,0xd115,0xd116,0xd117, +0xd118,0xd119,0xd11a,0xd11b,0xd11c,0xd11d,0xd11e,0xd11f, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd120,0xd121, +0xd122,0xd123,0xd124,0xd125,0xd126,0xd127,0xd128,0xd129, +0xd12a,0xd12b,0xd12c,0xd12d,0xd12e,0xd12f,0xd132,0xd133, +0xd135,0xd136,0xd137,0xd139,0xd13b,0xd13c,0xd13d,0xd13e, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd13f,0xd142, +0xd146,0xd147,0xd148,0xd149,0xd14a,0xd14b,0xd14e,0xd14f, +0xd151,0xd152,0xd153,0xd155,0xd156,0xd157,0xd158,0xd159, +0xd15a,0xd15b,0xd15e,0xd160,0xd162,0xd163,0xd164,0xd165, +0xd166,0xd167,0xd169,0xd16a,0xd16b,0xd16d,0xb540,0xb541, +0xb543,0xb544,0xb545,0xb54b,0xb54c,0xb54d,0xb550,0xb554, +0xb55c,0xb55d,0xb55f,0xb560,0xb561,0xb5a0,0xb5a1,0xb5a4, +0xb5a8,0xb5aa,0xb5ab,0xb5b0,0xb5b1,0xb5b3,0xb5b4,0xb5b5, +0xb5bb,0xb5bc,0xb5bd,0xb5c0,0xb5c4,0xb5cc,0xb5cd,0xb5cf, +0xb5d0,0xb5d1,0xb5d8,0xb5ec,0xb610,0xb611,0xb614,0xb618, +0xb625,0xb62c,0xb634,0xb648,0xb664,0xb668,0xb69c,0xb69d, +0xb6a0,0xb6a4,0xb6ab,0xb6ac,0xb6b1,0xb6d4,0xb6f0,0xb6f4, +0xb6f8,0xb700,0xb701,0xb705,0xb728,0xb729,0xb72c,0xb72f, +0xb730,0xb738,0xb739,0xb73b,0xb744,0xb748,0xb74c,0xb754, +0xb755,0xb760,0xb764,0xb768,0xb770,0xb771,0xb773,0xb775, +0xb77c,0xb77d,0xb780,0xb784,0xb78c,0xb78d,0xb78f,0xb790, +0xb791,0xb792,0xb796,0xb797,0xd16e,0xd16f,0xd170,0xd171, +0xd172,0xd173,0xd174,0xd175,0xd176,0xd177,0xd178,0xd179, +0xd17a,0xd17b,0xd17d,0xd17e,0xd17f,0xd180,0xd181,0xd182, +0xd183,0xd185,0xd186,0xd187,0xd189,0xd18a,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xd18b,0xd18c,0xd18d,0xd18e, +0xd18f,0xd190,0xd191,0xd192,0xd193,0xd194,0xd195,0xd196, +0xd197,0xd198,0xd199,0xd19a,0xd19b,0xd19c,0xd19d,0xd19e, +0xd19f,0xd1a2,0xd1a3,0xd1a5,0xd1a6,0xd1a7,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xd1a9,0xd1aa,0xd1ab,0xd1ac, +0xd1ad,0xd1ae,0xd1af,0xd1b2,0xd1b4,0xd1b6,0xd1b7,0xd1b8, +0xd1b9,0xd1bb,0xd1bd,0xd1be,0xd1bf,0xd1c1,0xd1c2,0xd1c3, +0xd1c4,0xd1c5,0xd1c6,0xd1c7,0xd1c8,0xd1c9,0xd1ca,0xd1cb, +0xd1cc,0xd1cd,0xd1ce,0xd1cf,0xb798,0xb799,0xb79c,0xb7a0, +0xb7a8,0xb7a9,0xb7ab,0xb7ac,0xb7ad,0xb7b4,0xb7b5,0xb7b8, +0xb7c7,0xb7c9,0xb7ec,0xb7ed,0xb7f0,0xb7f4,0xb7fc,0xb7fd, +0xb7ff,0xb800,0xb801,0xb807,0xb808,0xb809,0xb80c,0xb810, +0xb818,0xb819,0xb81b,0xb81d,0xb824,0xb825,0xb828,0xb82c, +0xb834,0xb835,0xb837,0xb838,0xb839,0xb840,0xb844,0xb851, +0xb853,0xb85c,0xb85d,0xb860,0xb864,0xb86c,0xb86d,0xb86f, +0xb871,0xb878,0xb87c,0xb88d,0xb8a8,0xb8b0,0xb8b4,0xb8b8, +0xb8c0,0xb8c1,0xb8c3,0xb8c5,0xb8cc,0xb8d0,0xb8d4,0xb8dd, +0xb8df,0xb8e1,0xb8e8,0xb8e9,0xb8ec,0xb8f0,0xb8f8,0xb8f9, +0xb8fb,0xb8fd,0xb904,0xb918,0xb920,0xb93c,0xb93d,0xb940, +0xb944,0xb94c,0xb94f,0xb951,0xb958,0xb959,0xb95c,0xb960, +0xb968,0xb969,0xd1d0,0xd1d1,0xd1d2,0xd1d3,0xd1d4,0xd1d5, +0xd1d6,0xd1d7,0xd1d9,0xd1da,0xd1db,0xd1dc,0xd1dd,0xd1de, +0xd1df,0xd1e0,0xd1e1,0xd1e2,0xd1e3,0xd1e4,0xd1e5,0xd1e6, +0xd1e7,0xd1e8,0xd1e9,0xd1ea,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xd1eb,0xd1ec,0xd1ed,0xd1ee,0xd1ef,0xd1f0, +0xd1f1,0xd1f2,0xd1f3,0xd1f5,0xd1f6,0xd1f7,0xd1f9,0xd1fa, +0xd1fb,0xd1fc,0xd1fd,0xd1fe,0xd1ff,0xd200,0xd201,0xd202, +0xd203,0xd204,0xd205,0xd206,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xd208,0xd20a,0xd20b,0xd20c,0xd20d,0xd20e, +0xd20f,0xd211,0xd212,0xd213,0xd214,0xd215,0xd216,0xd217, +0xd218,0xd219,0xd21a,0xd21b,0xd21c,0xd21d,0xd21e,0xd21f, +0xd220,0xd221,0xd222,0xd223,0xd224,0xd225,0xd226,0xd227, +0xd228,0xd229,0xb96b,0xb96d,0xb974,0xb975,0xb978,0xb97c, +0xb984,0xb985,0xb987,0xb989,0xb98a,0xb98d,0xb98e,0xb9ac, +0xb9ad,0xb9b0,0xb9b4,0xb9bc,0xb9bd,0xb9bf,0xb9c1,0xb9c8, +0xb9c9,0xb9cc,0xb9ce,0xb9cf,0xb9d0,0xb9d1,0xb9d2,0xb9d8, +0xb9d9,0xb9db,0xb9dd,0xb9de,0xb9e1,0xb9e3,0xb9e4,0xb9e5, +0xb9e8,0xb9ec,0xb9f4,0xb9f5,0xb9f7,0xb9f8,0xb9f9,0xb9fa, +0xba00,0xba01,0xba08,0xba15,0xba38,0xba39,0xba3c,0xba40, +0xba42,0xba48,0xba49,0xba4b,0xba4d,0xba4e,0xba53,0xba54, +0xba55,0xba58,0xba5c,0xba64,0xba65,0xba67,0xba68,0xba69, +0xba70,0xba71,0xba74,0xba78,0xba83,0xba84,0xba85,0xba87, +0xba8c,0xbaa8,0xbaa9,0xbaab,0xbaac,0xbab0,0xbab2,0xbab8, +0xbab9,0xbabb,0xbabd,0xbac4,0xbac8,0xbad8,0xbad9,0xbafc, +0xd22a,0xd22b,0xd22e,0xd22f,0xd231,0xd232,0xd233,0xd235, +0xd236,0xd237,0xd238,0xd239,0xd23a,0xd23b,0xd23e,0xd240, +0xd242,0xd243,0xd244,0xd245,0xd246,0xd247,0xd249,0xd24a, +0xd24b,0xd24c,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xd24d,0xd24e,0xd24f,0xd250,0xd251,0xd252,0xd253,0xd254, +0xd255,0xd256,0xd257,0xd258,0xd259,0xd25a,0xd25b,0xd25d, +0xd25e,0xd25f,0xd260,0xd261,0xd262,0xd263,0xd265,0xd266, +0xd267,0xd268,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xd269,0xd26a,0xd26b,0xd26c,0xd26d,0xd26e,0xd26f,0xd270, +0xd271,0xd272,0xd273,0xd274,0xd275,0xd276,0xd277,0xd278, +0xd279,0xd27a,0xd27b,0xd27c,0xd27d,0xd27e,0xd27f,0xd282, +0xd283,0xd285,0xd286,0xd287,0xd289,0xd28a,0xd28b,0xd28c, +0xbb00,0xbb04,0xbb0d,0xbb0f,0xbb11,0xbb18,0xbb1c,0xbb20, +0xbb29,0xbb2b,0xbb34,0xbb35,0xbb36,0xbb38,0xbb3b,0xbb3c, +0xbb3d,0xbb3e,0xbb44,0xbb45,0xbb47,0xbb49,0xbb4d,0xbb4f, +0xbb50,0xbb54,0xbb58,0xbb61,0xbb63,0xbb6c,0xbb88,0xbb8c, +0xbb90,0xbba4,0xbba8,0xbbac,0xbbb4,0xbbb7,0xbbc0,0xbbc4, +0xbbc8,0xbbd0,0xbbd3,0xbbf8,0xbbf9,0xbbfc,0xbbff,0xbc00, +0xbc02,0xbc08,0xbc09,0xbc0b,0xbc0c,0xbc0d,0xbc0f,0xbc11, +0xbc14,0xbc15,0xbc16,0xbc17,0xbc18,0xbc1b,0xbc1c,0xbc1d, +0xbc1e,0xbc1f,0xbc24,0xbc25,0xbc27,0xbc29,0xbc2d,0xbc30, +0xbc31,0xbc34,0xbc38,0xbc40,0xbc41,0xbc43,0xbc44,0xbc45, +0xbc49,0xbc4c,0xbc4d,0xbc50,0xbc5d,0xbc84,0xbc85,0xbc88, +0xbc8b,0xbc8c,0xbc8e,0xbc94,0xbc95,0xbc97,0xd28d,0xd28e, +0xd28f,0xd292,0xd293,0xd294,0xd296,0xd297,0xd298,0xd299, +0xd29a,0xd29b,0xd29d,0xd29e,0xd29f,0xd2a1,0xd2a2,0xd2a3, +0xd2a5,0xd2a6,0xd2a7,0xd2a8,0xd2a9,0xd2aa,0xd2ab,0xd2ad, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd2ae,0xd2af, +0xd2b0,0xd2b2,0xd2b3,0xd2b4,0xd2b5,0xd2b6,0xd2b7,0xd2ba, +0xd2bb,0xd2bd,0xd2be,0xd2c1,0xd2c3,0xd2c4,0xd2c5,0xd2c6, +0xd2c7,0xd2ca,0xd2cc,0xd2cd,0xd2ce,0xd2cf,0xd2d0,0xd2d1, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd2d2,0xd2d3, +0xd2d5,0xd2d6,0xd2d7,0xd2d9,0xd2da,0xd2db,0xd2dd,0xd2de, +0xd2df,0xd2e0,0xd2e1,0xd2e2,0xd2e3,0xd2e6,0xd2e7,0xd2e8, +0xd2e9,0xd2ea,0xd2eb,0xd2ec,0xd2ed,0xd2ee,0xd2ef,0xd2f2, +0xd2f3,0xd2f5,0xd2f6,0xd2f7,0xd2f9,0xd2fa,0xbc99,0xbc9a, +0xbca0,0xbca1,0xbca4,0xbca7,0xbca8,0xbcb0,0xbcb1,0xbcb3, +0xbcb4,0xbcb5,0xbcbc,0xbcbd,0xbcc0,0xbcc4,0xbccd,0xbccf, +0xbcd0,0xbcd1,0xbcd5,0xbcd8,0xbcdc,0xbcf4,0xbcf5,0xbcf6, +0xbcf8,0xbcfc,0xbd04,0xbd05,0xbd07,0xbd09,0xbd10,0xbd14, +0xbd24,0xbd2c,0xbd40,0xbd48,0xbd49,0xbd4c,0xbd50,0xbd58, +0xbd59,0xbd64,0xbd68,0xbd80,0xbd81,0xbd84,0xbd87,0xbd88, +0xbd89,0xbd8a,0xbd90,0xbd91,0xbd93,0xbd95,0xbd99,0xbd9a, +0xbd9c,0xbda4,0xbdb0,0xbdb8,0xbdd4,0xbdd5,0xbdd8,0xbddc, +0xbde9,0xbdf0,0xbdf4,0xbdf8,0xbe00,0xbe03,0xbe05,0xbe0c, +0xbe0d,0xbe10,0xbe14,0xbe1c,0xbe1d,0xbe1f,0xbe44,0xbe45, +0xbe48,0xbe4c,0xbe4e,0xbe54,0xbe55,0xbe57,0xbe59,0xbe5a, +0xbe5b,0xbe60,0xbe61,0xbe64,0xd2fb,0xd2fc,0xd2fd,0xd2fe, +0xd2ff,0xd302,0xd304,0xd306,0xd307,0xd308,0xd309,0xd30a, +0xd30b,0xd30f,0xd311,0xd312,0xd313,0xd315,0xd317,0xd318, +0xd319,0xd31a,0xd31b,0xd31e,0xd322,0xd323,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xd324,0xd326,0xd327,0xd32a, +0xd32b,0xd32d,0xd32e,0xd32f,0xd331,0xd332,0xd333,0xd334, +0xd335,0xd336,0xd337,0xd33a,0xd33e,0xd33f,0xd340,0xd341, +0xd342,0xd343,0xd346,0xd347,0xd348,0xd349,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xd34a,0xd34b,0xd34c,0xd34d, +0xd34e,0xd34f,0xd350,0xd351,0xd352,0xd353,0xd354,0xd355, +0xd356,0xd357,0xd358,0xd359,0xd35a,0xd35b,0xd35c,0xd35d, +0xd35e,0xd35f,0xd360,0xd361,0xd362,0xd363,0xd364,0xd365, +0xd366,0xd367,0xd368,0xd369,0xbe68,0xbe6a,0xbe70,0xbe71, +0xbe73,0xbe74,0xbe75,0xbe7b,0xbe7c,0xbe7d,0xbe80,0xbe84, +0xbe8c,0xbe8d,0xbe8f,0xbe90,0xbe91,0xbe98,0xbe99,0xbea8, +0xbed0,0xbed1,0xbed4,0xbed7,0xbed8,0xbee0,0xbee3,0xbee4, +0xbee5,0xbeec,0xbf01,0xbf08,0xbf09,0xbf18,0xbf19,0xbf1b, +0xbf1c,0xbf1d,0xbf40,0xbf41,0xbf44,0xbf48,0xbf50,0xbf51, +0xbf55,0xbf94,0xbfb0,0xbfc5,0xbfcc,0xbfcd,0xbfd0,0xbfd4, +0xbfdc,0xbfdf,0xbfe1,0xc03c,0xc051,0xc058,0xc05c,0xc060, +0xc068,0xc069,0xc090,0xc091,0xc094,0xc098,0xc0a0,0xc0a1, +0xc0a3,0xc0a5,0xc0ac,0xc0ad,0xc0af,0xc0b0,0xc0b3,0xc0b4, +0xc0b5,0xc0b6,0xc0bc,0xc0bd,0xc0bf,0xc0c0,0xc0c1,0xc0c5, +0xc0c8,0xc0c9,0xc0cc,0xc0d0,0xc0d8,0xc0d9,0xc0db,0xc0dc, +0xc0dd,0xc0e4,0xd36a,0xd36b,0xd36c,0xd36d,0xd36e,0xd36f, +0xd370,0xd371,0xd372,0xd373,0xd374,0xd375,0xd376,0xd377, +0xd378,0xd379,0xd37a,0xd37b,0xd37e,0xd37f,0xd381,0xd382, +0xd383,0xd385,0xd386,0xd387,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xd388,0xd389,0xd38a,0xd38b,0xd38e,0xd392, +0xd393,0xd394,0xd395,0xd396,0xd397,0xd39a,0xd39b,0xd39d, +0xd39e,0xd39f,0xd3a1,0xd3a2,0xd3a3,0xd3a4,0xd3a5,0xd3a6, +0xd3a7,0xd3aa,0xd3ac,0xd3ae,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xd3af,0xd3b0,0xd3b1,0xd3b2,0xd3b3,0xd3b5, +0xd3b6,0xd3b7,0xd3b9,0xd3ba,0xd3bb,0xd3bd,0xd3be,0xd3bf, +0xd3c0,0xd3c1,0xd3c2,0xd3c3,0xd3c6,0xd3c7,0xd3ca,0xd3cb, +0xd3cc,0xd3cd,0xd3ce,0xd3cf,0xd3d1,0xd3d2,0xd3d3,0xd3d4, +0xd3d5,0xd3d6,0xc0e5,0xc0e8,0xc0ec,0xc0f4,0xc0f5,0xc0f7, +0xc0f9,0xc100,0xc104,0xc108,0xc110,0xc115,0xc11c,0xc11d, +0xc11e,0xc11f,0xc120,0xc123,0xc124,0xc126,0xc127,0xc12c, +0xc12d,0xc12f,0xc130,0xc131,0xc136,0xc138,0xc139,0xc13c, +0xc140,0xc148,0xc149,0xc14b,0xc14c,0xc14d,0xc154,0xc155, +0xc158,0xc15c,0xc164,0xc165,0xc167,0xc168,0xc169,0xc170, +0xc174,0xc178,0xc185,0xc18c,0xc18d,0xc18e,0xc190,0xc194, +0xc196,0xc19c,0xc19d,0xc19f,0xc1a1,0xc1a5,0xc1a8,0xc1a9, +0xc1ac,0xc1b0,0xc1bd,0xc1c4,0xc1c8,0xc1cc,0xc1d4,0xc1d7, +0xc1d8,0xc1e0,0xc1e4,0xc1e8,0xc1f0,0xc1f1,0xc1f3,0xc1fc, +0xc1fd,0xc200,0xc204,0xc20c,0xc20d,0xc20f,0xc211,0xc218, +0xc219,0xc21c,0xc21f,0xc220,0xc228,0xc229,0xc22b,0xc22d, +0xd3d7,0xd3d9,0xd3da,0xd3db,0xd3dc,0xd3dd,0xd3de,0xd3df, +0xd3e0,0xd3e2,0xd3e4,0xd3e5,0xd3e6,0xd3e7,0xd3e8,0xd3e9, +0xd3ea,0xd3eb,0xd3ee,0xd3ef,0xd3f1,0xd3f2,0xd3f3,0xd3f5, +0xd3f6,0xd3f7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xd3f8,0xd3f9,0xd3fa,0xd3fb,0xd3fe,0xd400,0xd402,0xd403, +0xd404,0xd405,0xd406,0xd407,0xd409,0xd40a,0xd40b,0xd40c, +0xd40d,0xd40e,0xd40f,0xd410,0xd411,0xd412,0xd413,0xd414, +0xd415,0xd416,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xd417,0xd418,0xd419,0xd41a,0xd41b,0xd41c,0xd41e,0xd41f, +0xd420,0xd421,0xd422,0xd423,0xd424,0xd425,0xd426,0xd427, +0xd428,0xd429,0xd42a,0xd42b,0xd42c,0xd42d,0xd42e,0xd42f, +0xd430,0xd431,0xd432,0xd433,0xd434,0xd435,0xd436,0xd437, +0xc22f,0xc231,0xc232,0xc234,0xc248,0xc250,0xc251,0xc254, +0xc258,0xc260,0xc265,0xc26c,0xc26d,0xc270,0xc274,0xc27c, +0xc27d,0xc27f,0xc281,0xc288,0xc289,0xc290,0xc298,0xc29b, +0xc29d,0xc2a4,0xc2a5,0xc2a8,0xc2ac,0xc2ad,0xc2b4,0xc2b5, +0xc2b7,0xc2b9,0xc2dc,0xc2dd,0xc2e0,0xc2e3,0xc2e4,0xc2eb, +0xc2ec,0xc2ed,0xc2ef,0xc2f1,0xc2f6,0xc2f8,0xc2f9,0xc2fb, +0xc2fc,0xc300,0xc308,0xc309,0xc30c,0xc30d,0xc313,0xc314, +0xc315,0xc318,0xc31c,0xc324,0xc325,0xc328,0xc329,0xc345, +0xc368,0xc369,0xc36c,0xc370,0xc372,0xc378,0xc379,0xc37c, +0xc37d,0xc384,0xc388,0xc38c,0xc3c0,0xc3d8,0xc3d9,0xc3dc, +0xc3df,0xc3e0,0xc3e2,0xc3e8,0xc3e9,0xc3ed,0xc3f4,0xc3f5, +0xc3f8,0xc408,0xc410,0xc424,0xc42c,0xc430,0xd438,0xd439, +0xd43a,0xd43b,0xd43c,0xd43d,0xd43e,0xd43f,0xd441,0xd442, +0xd443,0xd445,0xd446,0xd447,0xd448,0xd449,0xd44a,0xd44b, +0xd44c,0xd44d,0xd44e,0xd44f,0xd450,0xd451,0xd452,0xd453, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd454,0xd455, +0xd456,0xd457,0xd458,0xd459,0xd45a,0xd45b,0xd45d,0xd45e, +0xd45f,0xd461,0xd462,0xd463,0xd465,0xd466,0xd467,0xd468, +0xd469,0xd46a,0xd46b,0xd46c,0xd46e,0xd470,0xd471,0xd472, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd473,0xd474, +0xd475,0xd476,0xd477,0xd47a,0xd47b,0xd47d,0xd47e,0xd481, +0xd483,0xd484,0xd485,0xd486,0xd487,0xd48a,0xd48c,0xd48e, +0xd48f,0xd490,0xd491,0xd492,0xd493,0xd495,0xd496,0xd497, +0xd498,0xd499,0xd49a,0xd49b,0xd49c,0xd49d,0xc434,0xc43c, +0xc43d,0xc448,0xc464,0xc465,0xc468,0xc46c,0xc474,0xc475, +0xc479,0xc480,0xc494,0xc49c,0xc4b8,0xc4bc,0xc4e9,0xc4f0, +0xc4f1,0xc4f4,0xc4f8,0xc4fa,0xc4ff,0xc500,0xc501,0xc50c, +0xc510,0xc514,0xc51c,0xc528,0xc529,0xc52c,0xc530,0xc538, +0xc539,0xc53b,0xc53d,0xc544,0xc545,0xc548,0xc549,0xc54a, +0xc54c,0xc54d,0xc54e,0xc553,0xc554,0xc555,0xc557,0xc558, +0xc559,0xc55d,0xc55e,0xc560,0xc561,0xc564,0xc568,0xc570, +0xc571,0xc573,0xc574,0xc575,0xc57c,0xc57d,0xc580,0xc584, +0xc587,0xc58c,0xc58d,0xc58f,0xc591,0xc595,0xc597,0xc598, +0xc59c,0xc5a0,0xc5a9,0xc5b4,0xc5b5,0xc5b8,0xc5b9,0xc5bb, +0xc5bc,0xc5bd,0xc5be,0xc5c4,0xc5c5,0xc5c6,0xc5c7,0xc5c8, +0xc5c9,0xc5ca,0xc5cc,0xc5ce,0xd49e,0xd49f,0xd4a0,0xd4a1, +0xd4a2,0xd4a3,0xd4a4,0xd4a5,0xd4a6,0xd4a7,0xd4a8,0xd4aa, +0xd4ab,0xd4ac,0xd4ad,0xd4ae,0xd4af,0xd4b0,0xd4b1,0xd4b2, +0xd4b3,0xd4b4,0xd4b5,0xd4b6,0xd4b7,0xd4b8,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xd4b9,0xd4ba,0xd4bb,0xd4bc, +0xd4bd,0xd4be,0xd4bf,0xd4c0,0xd4c1,0xd4c2,0xd4c3,0xd4c4, +0xd4c5,0xd4c6,0xd4c7,0xd4c8,0xd4c9,0xd4ca,0xd4cb,0xd4cd, +0xd4ce,0xd4cf,0xd4d1,0xd4d2,0xd4d3,0xd4d5,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xd4d6,0xd4d7,0xd4d8,0xd4d9, +0xd4da,0xd4db,0xd4dd,0xd4de,0xd4e0,0xd4e1,0xd4e2,0xd4e3, +0xd4e4,0xd4e5,0xd4e6,0xd4e7,0xd4e9,0xd4ea,0xd4eb,0xd4ed, +0xd4ee,0xd4ef,0xd4f1,0xd4f2,0xd4f3,0xd4f4,0xd4f5,0xd4f6, +0xd4f7,0xd4f9,0xd4fa,0xd4fc,0xc5d0,0xc5d1,0xc5d4,0xc5d8, +0xc5e0,0xc5e1,0xc5e3,0xc5e5,0xc5ec,0xc5ed,0xc5ee,0xc5f0, +0xc5f4,0xc5f6,0xc5f7,0xc5fc,0xc5fd,0xc5fe,0xc5ff,0xc600, +0xc601,0xc605,0xc606,0xc607,0xc608,0xc60c,0xc610,0xc618, +0xc619,0xc61b,0xc61c,0xc624,0xc625,0xc628,0xc62c,0xc62d, +0xc62e,0xc630,0xc633,0xc634,0xc635,0xc637,0xc639,0xc63b, +0xc640,0xc641,0xc644,0xc648,0xc650,0xc651,0xc653,0xc654, +0xc655,0xc65c,0xc65d,0xc660,0xc66c,0xc66f,0xc671,0xc678, +0xc679,0xc67c,0xc680,0xc688,0xc689,0xc68b,0xc68d,0xc694, +0xc695,0xc698,0xc69c,0xc6a4,0xc6a5,0xc6a7,0xc6a9,0xc6b0, +0xc6b1,0xc6b4,0xc6b8,0xc6b9,0xc6ba,0xc6c0,0xc6c1,0xc6c3, +0xc6c5,0xc6cc,0xc6cd,0xc6d0,0xc6d4,0xc6dc,0xc6dd,0xc6e0, +0xc6e1,0xc6e8,0xd4fe,0xd4ff,0xd500,0xd501,0xd502,0xd503, +0xd505,0xd506,0xd507,0xd509,0xd50a,0xd50b,0xd50d,0xd50e, +0xd50f,0xd510,0xd511,0xd512,0xd513,0xd516,0xd518,0xd519, +0xd51a,0xd51b,0xd51c,0xd51d,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xd51e,0xd51f,0xd520,0xd521,0xd522,0xd523, +0xd524,0xd525,0xd526,0xd527,0xd528,0xd529,0xd52a,0xd52b, +0xd52c,0xd52d,0xd52e,0xd52f,0xd530,0xd531,0xd532,0xd533, +0xd534,0xd535,0xd536,0xd537,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xd538,0xd539,0xd53a,0xd53b,0xd53e,0xd53f, +0xd541,0xd542,0xd543,0xd545,0xd546,0xd547,0xd548,0xd549, +0xd54a,0xd54b,0xd54e,0xd550,0xd552,0xd553,0xd554,0xd555, +0xd556,0xd557,0xd55a,0xd55b,0xd55d,0xd55e,0xd55f,0xd561, +0xd562,0xd563,0xc6e9,0xc6ec,0xc6f0,0xc6f8,0xc6f9,0xc6fd, +0xc704,0xc705,0xc708,0xc70c,0xc714,0xc715,0xc717,0xc719, +0xc720,0xc721,0xc724,0xc728,0xc730,0xc731,0xc733,0xc735, +0xc737,0xc73c,0xc73d,0xc740,0xc744,0xc74a,0xc74c,0xc74d, +0xc74f,0xc751,0xc752,0xc753,0xc754,0xc755,0xc756,0xc757, +0xc758,0xc75c,0xc760,0xc768,0xc76b,0xc774,0xc775,0xc778, +0xc77c,0xc77d,0xc77e,0xc783,0xc784,0xc785,0xc787,0xc788, +0xc789,0xc78a,0xc78e,0xc790,0xc791,0xc794,0xc796,0xc797, +0xc798,0xc79a,0xc7a0,0xc7a1,0xc7a3,0xc7a4,0xc7a5,0xc7a6, +0xc7ac,0xc7ad,0xc7b0,0xc7b4,0xc7bc,0xc7bd,0xc7bf,0xc7c0, +0xc7c1,0xc7c8,0xc7c9,0xc7cc,0xc7ce,0xc7d0,0xc7d8,0xc7dd, +0xc7e4,0xc7e8,0xc7ec,0xc800,0xc801,0xc804,0xc808,0xc80a, +0xd564,0xd566,0xd567,0xd56a,0xd56c,0xd56e,0xd56f,0xd570, +0xd571,0xd572,0xd573,0xd576,0xd577,0xd579,0xd57a,0xd57b, +0xd57d,0xd57e,0xd57f,0xd580,0xd581,0xd582,0xd583,0xd586, +0xd58a,0xd58b,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xd58c,0xd58d,0xd58e,0xd58f,0xd591,0xd592,0xd593,0xd594, +0xd595,0xd596,0xd597,0xd598,0xd599,0xd59a,0xd59b,0xd59c, +0xd59d,0xd59e,0xd59f,0xd5a0,0xd5a1,0xd5a2,0xd5a3,0xd5a4, +0xd5a6,0xd5a7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xd5a8,0xd5a9,0xd5aa,0xd5ab,0xd5ac,0xd5ad,0xd5ae,0xd5af, +0xd5b0,0xd5b1,0xd5b2,0xd5b3,0xd5b4,0xd5b5,0xd5b6,0xd5b7, +0xd5b8,0xd5b9,0xd5ba,0xd5bb,0xd5bc,0xd5bd,0xd5be,0xd5bf, +0xd5c0,0xd5c1,0xd5c2,0xd5c3,0xd5c4,0xd5c5,0xd5c6,0xd5c7, +0xc810,0xc811,0xc813,0xc815,0xc816,0xc81c,0xc81d,0xc820, +0xc824,0xc82c,0xc82d,0xc82f,0xc831,0xc838,0xc83c,0xc840, +0xc848,0xc849,0xc84c,0xc84d,0xc854,0xc870,0xc871,0xc874, +0xc878,0xc87a,0xc880,0xc881,0xc883,0xc885,0xc886,0xc887, +0xc88b,0xc88c,0xc88d,0xc894,0xc89d,0xc89f,0xc8a1,0xc8a8, +0xc8bc,0xc8bd,0xc8c4,0xc8c8,0xc8cc,0xc8d4,0xc8d5,0xc8d7, +0xc8d9,0xc8e0,0xc8e1,0xc8e4,0xc8f5,0xc8fc,0xc8fd,0xc900, +0xc904,0xc905,0xc906,0xc90c,0xc90d,0xc90f,0xc911,0xc918, +0xc92c,0xc934,0xc950,0xc951,0xc954,0xc958,0xc960,0xc961, +0xc963,0xc96c,0xc970,0xc974,0xc97c,0xc988,0xc989,0xc98c, +0xc990,0xc998,0xc999,0xc99b,0xc99d,0xc9c0,0xc9c1,0xc9c4, +0xc9c7,0xc9c8,0xc9ca,0xc9d0,0xc9d1,0xc9d3,0xd5ca,0xd5cb, +0xd5cd,0xd5ce,0xd5cf,0xd5d1,0xd5d3,0xd5d4,0xd5d5,0xd5d6, +0xd5d7,0xd5da,0xd5dc,0xd5de,0xd5df,0xd5e0,0xd5e1,0xd5e2, +0xd5e3,0xd5e6,0xd5e7,0xd5e9,0xd5ea,0xd5eb,0xd5ed,0xd5ee, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd5ef,0xd5f0, +0xd5f1,0xd5f2,0xd5f3,0xd5f6,0xd5f8,0xd5fa,0xd5fb,0xd5fc, +0xd5fd,0xd5fe,0xd5ff,0xd602,0xd603,0xd605,0xd606,0xd607, +0xd609,0xd60a,0xd60b,0xd60c,0xd60d,0xd60e,0xd60f,0xd612, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd616,0xd617, +0xd618,0xd619,0xd61a,0xd61b,0xd61d,0xd61e,0xd61f,0xd621, +0xd622,0xd623,0xd625,0xd626,0xd627,0xd628,0xd629,0xd62a, +0xd62b,0xd62c,0xd62e,0xd62f,0xd630,0xd631,0xd632,0xd633, +0xd634,0xd635,0xd636,0xd637,0xd63a,0xd63b,0xc9d5,0xc9d6, +0xc9d9,0xc9da,0xc9dc,0xc9dd,0xc9e0,0xc9e2,0xc9e4,0xc9e7, +0xc9ec,0xc9ed,0xc9ef,0xc9f0,0xc9f1,0xc9f8,0xc9f9,0xc9fc, +0xca00,0xca08,0xca09,0xca0b,0xca0c,0xca0d,0xca14,0xca18, +0xca29,0xca4c,0xca4d,0xca50,0xca54,0xca5c,0xca5d,0xca5f, +0xca60,0xca61,0xca68,0xca7d,0xca84,0xca98,0xcabc,0xcabd, +0xcac0,0xcac4,0xcacc,0xcacd,0xcacf,0xcad1,0xcad3,0xcad8, +0xcad9,0xcae0,0xcaec,0xcaf4,0xcb08,0xcb10,0xcb14,0xcb18, +0xcb20,0xcb21,0xcb41,0xcb48,0xcb49,0xcb4c,0xcb50,0xcb58, +0xcb59,0xcb5d,0xcb64,0xcb78,0xcb79,0xcb9c,0xcbb8,0xcbd4, +0xcbe4,0xcbe7,0xcbe9,0xcc0c,0xcc0d,0xcc10,0xcc14,0xcc1c, +0xcc1d,0xcc21,0xcc22,0xcc27,0xcc28,0xcc29,0xcc2c,0xcc2e, +0xcc30,0xcc38,0xcc39,0xcc3b,0xd63d,0xd63e,0xd63f,0xd641, +0xd642,0xd643,0xd644,0xd646,0xd647,0xd64a,0xd64c,0xd64e, +0xd64f,0xd650,0xd652,0xd653,0xd656,0xd657,0xd659,0xd65a, +0xd65b,0xd65d,0xd65e,0xd65f,0xd660,0xd661,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xd662,0xd663,0xd664,0xd665, +0xd666,0xd668,0xd66a,0xd66b,0xd66c,0xd66d,0xd66e,0xd66f, +0xd672,0xd673,0xd675,0xd676,0xd677,0xd678,0xd679,0xd67a, +0xd67b,0xd67c,0xd67d,0xd67e,0xd67f,0xd680,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xd681,0xd682,0xd684,0xd686, +0xd687,0xd688,0xd689,0xd68a,0xd68b,0xd68e,0xd68f,0xd691, +0xd692,0xd693,0xd695,0xd696,0xd697,0xd698,0xd699,0xd69a, +0xd69b,0xd69c,0xd69e,0xd6a0,0xd6a2,0xd6a3,0xd6a4,0xd6a5, +0xd6a6,0xd6a7,0xd6a9,0xd6aa,0xcc3c,0xcc3d,0xcc3e,0xcc44, +0xcc45,0xcc48,0xcc4c,0xcc54,0xcc55,0xcc57,0xcc58,0xcc59, +0xcc60,0xcc64,0xcc66,0xcc68,0xcc70,0xcc75,0xcc98,0xcc99, +0xcc9c,0xcca0,0xcca8,0xcca9,0xccab,0xccac,0xccad,0xccb4, +0xccb5,0xccb8,0xccbc,0xccc4,0xccc5,0xccc7,0xccc9,0xccd0, +0xccd4,0xcce4,0xccec,0xccf0,0xcd01,0xcd08,0xcd09,0xcd0c, +0xcd10,0xcd18,0xcd19,0xcd1b,0xcd1d,0xcd24,0xcd28,0xcd2c, +0xcd39,0xcd5c,0xcd60,0xcd64,0xcd6c,0xcd6d,0xcd6f,0xcd71, +0xcd78,0xcd88,0xcd94,0xcd95,0xcd98,0xcd9c,0xcda4,0xcda5, +0xcda7,0xcda9,0xcdb0,0xcdc4,0xcdcc,0xcdd0,0xcde8,0xcdec, +0xcdf0,0xcdf8,0xcdf9,0xcdfb,0xcdfd,0xce04,0xce08,0xce0c, +0xce14,0xce19,0xce20,0xce21,0xce24,0xce28,0xce30,0xce31, +0xce33,0xce35,0xd6ab,0xd6ad,0xd6ae,0xd6af,0xd6b1,0xd6b2, +0xd6b3,0xd6b4,0xd6b5,0xd6b6,0xd6b7,0xd6b8,0xd6ba,0xd6bc, +0xd6bd,0xd6be,0xd6bf,0xd6c0,0xd6c1,0xd6c2,0xd6c3,0xd6c6, +0xd6c7,0xd6c9,0xd6ca,0xd6cb,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xd6cd,0xd6ce,0xd6cf,0xd6d0,0xd6d2,0xd6d3, +0xd6d5,0xd6d6,0xd6d8,0xd6da,0xd6db,0xd6dc,0xd6dd,0xd6de, +0xd6df,0xd6e1,0xd6e2,0xd6e3,0xd6e5,0xd6e6,0xd6e7,0xd6e9, +0xd6ea,0xd6eb,0xd6ec,0xd6ed,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xd6ee,0xd6ef,0xd6f1,0xd6f2,0xd6f3,0xd6f4, +0xd6f6,0xd6f7,0xd6f8,0xd6f9,0xd6fa,0xd6fb,0xd6fe,0xd6ff, +0xd701,0xd702,0xd703,0xd705,0xd706,0xd707,0xd708,0xd709, +0xd70a,0xd70b,0xd70c,0xd70d,0xd70e,0xd70f,0xd710,0xd712, +0xd713,0xd714,0xce58,0xce59,0xce5c,0xce5f,0xce60,0xce61, +0xce68,0xce69,0xce6b,0xce6d,0xce74,0xce75,0xce78,0xce7c, +0xce84,0xce85,0xce87,0xce89,0xce90,0xce91,0xce94,0xce98, +0xcea0,0xcea1,0xcea3,0xcea4,0xcea5,0xceac,0xcead,0xcec1, +0xcee4,0xcee5,0xcee8,0xceeb,0xceec,0xcef4,0xcef5,0xcef7, +0xcef8,0xcef9,0xcf00,0xcf01,0xcf04,0xcf08,0xcf10,0xcf11, +0xcf13,0xcf15,0xcf1c,0xcf20,0xcf24,0xcf2c,0xcf2d,0xcf2f, +0xcf30,0xcf31,0xcf38,0xcf54,0xcf55,0xcf58,0xcf5c,0xcf64, +0xcf65,0xcf67,0xcf69,0xcf70,0xcf71,0xcf74,0xcf78,0xcf80, +0xcf85,0xcf8c,0xcfa1,0xcfa8,0xcfb0,0xcfc4,0xcfe0,0xcfe1, +0xcfe4,0xcfe8,0xcff0,0xcff1,0xcff3,0xcff5,0xcffc,0xd000, +0xd004,0xd011,0xd018,0xd02d,0xd034,0xd035,0xd038,0xd03c, +0xd715,0xd716,0xd717,0xd71a,0xd71b,0xd71d,0xd71e,0xd71f, +0xd721,0xd722,0xd723,0xd724,0xd725,0xd726,0xd727,0xd72a, +0xd72c,0xd72e,0xd72f,0xd730,0xd731,0xd732,0xd733,0xd736, +0xd737,0xd739,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xd73a,0xd73b,0xd73d,0xd73e,0xd73f,0xd740,0xd741,0xd742, +0xd743,0xd745,0xd746,0xd748,0xd74a,0xd74b,0xd74c,0xd74d, +0xd74e,0xd74f,0xd752,0xd753,0xd755,0xd75a,0xd75b,0xd75c, +0xd75d,0xd75e,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xd75f,0xd762,0xd764,0xd766,0xd767,0xd768,0xd76a,0xd76b, +0xd76d,0xd76e,0xd76f,0xd771,0xd772,0xd773,0xd775,0xd776, +0xd777,0xd778,0xd779,0xd77a,0xd77b,0xd77e,0xd77f,0xd780, +0xd782,0xd783,0xd784,0xd785,0xd786,0xd787,0xd78a,0xd78b, +0xd044,0xd045,0xd047,0xd049,0xd050,0xd054,0xd058,0xd060, +0xd06c,0xd06d,0xd070,0xd074,0xd07c,0xd07d,0xd081,0xd0a4, +0xd0a5,0xd0a8,0xd0ac,0xd0b4,0xd0b5,0xd0b7,0xd0b9,0xd0c0, +0xd0c1,0xd0c4,0xd0c8,0xd0c9,0xd0d0,0xd0d1,0xd0d3,0xd0d4, +0xd0d5,0xd0dc,0xd0dd,0xd0e0,0xd0e4,0xd0ec,0xd0ed,0xd0ef, +0xd0f0,0xd0f1,0xd0f8,0xd10d,0xd130,0xd131,0xd134,0xd138, +0xd13a,0xd140,0xd141,0xd143,0xd144,0xd145,0xd14c,0xd14d, +0xd150,0xd154,0xd15c,0xd15d,0xd15f,0xd161,0xd168,0xd16c, +0xd17c,0xd184,0xd188,0xd1a0,0xd1a1,0xd1a4,0xd1a8,0xd1b0, +0xd1b1,0xd1b3,0xd1b5,0xd1ba,0xd1bc,0xd1c0,0xd1d8,0xd1f4, +0xd1f8,0xd207,0xd209,0xd210,0xd22c,0xd22d,0xd230,0xd234, +0xd23c,0xd23d,0xd23f,0xd241,0xd248,0xd25c,0xd78d,0xd78e, +0xd78f,0xd791,0xd792,0xd793,0xd794,0xd795,0xd796,0xd797, +0xd79a,0xd79c,0xd79e,0xd79f,0xd7a0,0xd7a1,0xd7a2,0xd7a3, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd264,0xd280, +0xd281,0xd284,0xd288,0xd290,0xd291,0xd295,0xd29c,0xd2a0, +0xd2a4,0xd2ac,0xd2b1,0xd2b8,0xd2b9,0xd2bc,0xd2bf,0xd2c0, +0xd2c2,0xd2c8,0xd2c9,0xd2cb,0xd2d4,0xd2d8,0xd2dc,0xd2e4, +0xd2e5,0xd2f0,0xd2f1,0xd2f4,0xd2f8,0xd300,0xd301,0xd303, +0xd305,0xd30c,0xd30d,0xd30e,0xd310,0xd314,0xd316,0xd31c, +0xd31d,0xd31f,0xd320,0xd321,0xd325,0xd328,0xd329,0xd32c, +0xd330,0xd338,0xd339,0xd33b,0xd33c,0xd33d,0xd344,0xd345, +0xd37c,0xd37d,0xd380,0xd384,0xd38c,0xd38d,0xd38f,0xd390, +0xd391,0xd398,0xd399,0xd39c,0xd3a0,0xd3a8,0xd3a9,0xd3ab, +0xd3ad,0xd3b4,0xd3b8,0xd3bc,0xd3c4,0xd3c5,0xd3c8,0xd3c9, +0xd3d0,0xd3d8,0xd3e1,0xd3e3,0xd3ec,0xd3ed,0xd3f0,0xd3f4, +0xd3fc,0xd3fd,0xd3ff,0xd401}; + +const int uhc2_ucs_table_size = (sizeof(uhc2_ucs_table)/sizeof(unsigned short)); + +const unsigned short uhc3_ucs_table[] = { +0xd408,0xd41d,0xd440,0xd444,0xd45c,0xd460,0xd464,0xd46d, +0xd46f,0xd478,0xd479,0xd47c,0xd47f,0xd480,0xd482,0xd488, +0xd489,0xd48b,0xd48d,0xd494,0xd4a9,0xd4cc,0xd4d0,0xd4d4, +0xd4dc,0xd4df,0xd4e8,0xd4ec,0xd4f0,0xd4f8,0xd4fb,0xd4fd, +0xd504,0xd508,0xd50c,0xd514,0xd515,0xd517,0xd53c,0xd53d, +0xd540,0xd544,0xd54c,0xd54d,0xd54f,0xd551,0xd558,0xd559, +0xd55c,0xd560,0xd565,0xd568,0xd569,0xd56b,0xd56d,0xd574, +0xd575,0xd578,0xd57c,0xd584,0xd585,0xd587,0xd588,0xd589, +0xd590,0xd5a5,0xd5c8,0xd5c9,0xd5cc,0xd5d0,0xd5d2,0xd5d8, +0xd5d9,0xd5db,0xd5dd,0xd5e4,0xd5e5,0xd5e8,0xd5ec,0xd5f4, +0xd5f5,0xd5f7,0xd5f9,0xd600,0xd601,0xd604,0xd608,0xd610, +0xd611,0xd613,0xd614,0xd615,0xd61c,0xd620,0xd624,0xd62d, +0xd638,0xd639,0xd63c,0xd640,0xd645,0xd648,0xd649,0xd64b, +0xd64d,0xd651,0xd654,0xd655,0xd658,0xd65c,0xd667,0xd669, +0xd670,0xd671,0xd674,0xd683,0xd685,0xd68c,0xd68d,0xd690, +0xd694,0xd69d,0xd69f,0xd6a1,0xd6a8,0xd6ac,0xd6b0,0xd6b9, +0xd6bb,0xd6c4,0xd6c5,0xd6c8,0xd6cc,0xd6d1,0xd6d4,0xd6d7, +0xd6d9,0xd6e0,0xd6e4,0xd6e8,0xd6f0,0xd6f5,0xd6fc,0xd6fd, +0xd700,0xd704,0xd711,0xd718,0xd719,0xd71c,0xd720,0xd728, +0xd729,0xd72b,0xd72d,0xd734,0xd735,0xd738,0xd73c,0xd744, +0xd747,0xd749,0xd750,0xd751,0xd754,0xd756,0xd757,0xd758, +0xd759,0xd760,0xd761,0xd763,0xd765,0xd769,0xd76c,0xd770, +0xd774,0xd77c,0xd77d,0xd781,0xd788,0xd789,0xd78c,0xd790, +0xd798,0xd799,0xd79b,0xd79d,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x4f3d,0x4f73,0x5047,0x50f9,0x52a0,0x53ef, +0x5475,0x54e5,0x5609,0x5ac1,0x5bb6,0x6687,0x67b6,0x67b7, +0x67ef,0x6b4c,0x73c2,0x75c2,0x7a3c,0x82db,0x8304,0x8857, +0x8888,0x8a36,0x8cc8,0x8dcf,0x8efb,0x8fe6,0x99d5,0x523b, +0x5374,0x5404,0x606a,0x6164,0x6bbc,0x73cf,0x811a,0x89ba, +0x89d2,0x95a3,0x4f83,0x520a,0x58be,0x5978,0x59e6,0x5e72, +0x5e79,0x61c7,0x63c0,0x6746,0x67ec,0x687f,0x6f97,0x764e, +0x770b,0x78f5,0x7a08,0x7aff,0x7c21,0x809d,0x826e,0x8271, +0x8aeb,0x9593,0x4e6b,0x559d,0x66f7,0x6e34,0x78a3,0x7aed, +0x845b,0x8910,0x874e,0x97a8,0x52d8,0x574e,0x582a,0x5d4c, +0x611f,0x61be,0x6221,0x6562,0x67d1,0x6a44,0x6e1b,0x7518, +0x75b3,0x76e3,0x77b0,0x7d3a,0x90af,0x9451,0x9452,0x9f95, +0x5323,0x5cac,0x7532,0x80db,0x9240,0x9598,0x525b,0x5808, +0x59dc,0x5ca1,0x5d17,0x5eb7,0x5f3a,0x5f4a,0x6177,0x6c5f, +0x757a,0x7586,0x7ce0,0x7d73,0x7db1,0x7f8c,0x8154,0x8221, +0x8591,0x8941,0x8b1b,0x92fc,0x964d,0x9c47,0x4ecb,0x4ef7, +0x500b,0x51f1,0x584f,0x6137,0x613e,0x6168,0x6539,0x69ea, +0x6f11,0x75a5,0x7686,0x76d6,0x7b87,0x82a5,0x84cb,0xf900, +0x93a7,0x958b,0x5580,0x5ba2,0x5751,0xf901,0x7cb3,0x7fb9, +0x91b5,0x5028,0x53bb,0x5c45,0x5de8,0x62d2,0x636e,0x64da, +0x64e7,0x6e20,0x70ac,0x795b,0x8ddd,0x8e1e,0xf902,0x907d, +0x9245,0x92f8,0x4e7e,0x4ef6,0x5065,0x5dfe,0x5efa,0x6106, +0x6957,0x8171,0x8654,0x8e47,0x9375,0x9a2b,0x4e5e,0x5091, +0x6770,0x6840,0x5109,0x528d,0x5292,0x6aa2,0x77bc,0x9210, +0x9ed4,0x52ab,0x602f,0x8ff2,0x5048,0x61a9,0x63ed,0x64ca, +0x683c,0x6a84,0x6fc0,0x8188,0x89a1,0x9694,0x5805,0x727d, +0x72ac,0x7504,0x7d79,0x7e6d,0x80a9,0x898b,0x8b74,0x9063, +0x9d51,0x6289,0x6c7a,0x6f54,0x7d50,0x7f3a,0x8a23,0x517c, +0x614a,0x7b9d,0x8b19,0x9257,0x938c,0x4eac,0x4fd3,0x501e, +0x50be,0x5106,0x52c1,0x52cd,0x537f,0x5770,0x5883,0x5e9a, +0x5f91,0x6176,0x61ac,0x64ce,0x656c,0x666f,0x66bb,0x66f4, +0x6897,0x6d87,0x7085,0x70f1,0x749f,0x74a5,0x74ca,0x75d9, +0x786c,0x78ec,0x7adf,0x7af6,0x7d45,0x7d93,0x8015,0x803f, +0x811b,0x8396,0x8b66,0x8f15,0x9015,0x93e1,0x9803,0x9838, +0x9a5a,0x9be8,0x4fc2,0x5553,0x583a,0x5951,0x5b63,0x5c46, +0x60b8,0x6212,0x6842,0x68b0,0x68e8,0x6eaa,0x754c,0x7678, +0x78ce,0x7a3d,0x7cfb,0x7e6b,0x7e7c,0x8a08,0x8aa1,0x8c3f, +0x968e,0x9dc4,0x53e4,0x53e9,0x544a,0x5471,0x56fa,0x59d1, +0x5b64,0x5c3b,0x5eab,0x62f7,0x6537,0x6545,0x6572,0x66a0, +0x67af,0x69c1,0x6cbd,0x75fc,0x7690,0x777e,0x7a3f,0x7f94, +0x8003,0x80a1,0x818f,0x82e6,0x82fd,0x83f0,0x85c1,0x8831, +0x88b4,0x8aa5,0xf903,0x8f9c,0x932e,0x96c7,0x9867,0x9ad8, +0x9f13,0x54ed,0x659b,0x66f2,0x688f,0x7a40,0x8c37,0x9d60, +0x56f0,0x5764,0x5d11,0x6606,0x68b1,0x68cd,0x6efe,0x7428, +0x889e,0x9be4,0x6c68,0xf904,0x9aa8,0x4f9b,0x516c,0x5171, +0x529f,0x5b54,0x5de5,0x6050,0x606d,0x62f1,0x63a7,0x653b, +0x73d9,0x7a7a,0x86a3,0x8ca2,0x978f,0x4e32,0x5be1,0x6208, +0x679c,0x74dc,0x79d1,0x83d3,0x8a87,0x8ab2,0x8de8,0x904e, +0x934b,0x9846,0x5ed3,0x69e8,0x85ff,0x90ed,0xf905,0x51a0, +0x5b98,0x5bec,0x6163,0x68fa,0x6b3e,0x704c,0x742f,0x74d8, +0x7ba1,0x7f50,0x83c5,0x89c0,0x8cab,0x95dc,0x9928,0x522e, +0x605d,0x62ec,0x9002,0x4f8a,0x5149,0x5321,0x58d9,0x5ee3, +0x66e0,0x6d38,0x709a,0x72c2,0x73d6,0x7b50,0x80f1,0x945b, +0x5366,0x639b,0x7f6b,0x4e56,0x5080,0x584a,0x58de,0x602a, +0x6127,0x62d0,0x69d0,0x9b41,0x5b8f,0x7d18,0x80b1,0x8f5f, +0x4ea4,0x50d1,0x54ac,0x55ac,0x5b0c,0x5da0,0x5de7,0x652a, +0x654e,0x6821,0x6a4b,0x72e1,0x768e,0x77ef,0x7d5e,0x7ff9, +0x81a0,0x854e,0x86df,0x8f03,0x8f4e,0x90ca,0x9903,0x9a55, +0x9bab,0x4e18,0x4e45,0x4e5d,0x4ec7,0x4ff1,0x5177,0x52fe, +0x5340,0x53e3,0x53e5,0x548e,0x5614,0x5775,0x57a2,0x5bc7, +0x5d87,0x5ed0,0x61fc,0x62d8,0x6551,0x67b8,0x67e9,0x69cb, +0x6b50,0x6bc6,0x6bec,0x6c42,0x6e9d,0x7078,0x72d7,0x7396, +0x7403,0x77bf,0x77e9,0x7a76,0x7d7f,0x8009,0x81fc,0x8205, +0x820a,0x82df,0x8862,0x8b33,0x8cfc,0x8ec0,0x9011,0x90b1, +0x9264,0x92b6,0x99d2,0x9a45,0x9ce9,0x9dd7,0x9f9c,0x570b, +0x5c40,0x83ca,0x97a0,0x97ab,0x9eb4,0x541b,0x7a98,0x7fa4, +0x88d9,0x8ecd,0x90e1,0x5800,0x5c48,0x6398,0x7a9f,0x5bae, +0x5f13,0x7a79,0x7aae,0x828e,0x8eac,0x5026,0x5238,0x52f8, +0x5377,0x5708,0x62f3,0x6372,0x6b0a,0x6dc3,0x7737,0x53a5, +0x7357,0x8568,0x8e76,0x95d5,0x673a,0x6ac3,0x6f70,0x8a6d, +0x8ecc,0x994b,0xf906,0x6677,0x6b78,0x8cb4,0x9b3c,0xf907, +0x53eb,0x572d,0x594e,0x63c6,0x69fb,0x73ea,0x7845,0x7aba, +0x7ac5,0x7cfe,0x8475,0x898f,0x8d73,0x9035,0x95a8,0x52fb, +0x5747,0x7547,0x7b60,0x83cc,0x921e,0xf908,0x6a58,0x514b, +0x524b,0x5287,0x621f,0x68d8,0x6975,0x9699,0x50c5,0x52a4, +0x52e4,0x61c3,0x65a4,0x6839,0x69ff,0x747e,0x7b4b,0x82b9, +0x83eb,0x89b2,0x8b39,0x8fd1,0x9949,0xf909,0x4eca,0x5997, +0x64d2,0x6611,0x6a8e,0x7434,0x7981,0x79bd,0x82a9,0x887e, +0x887f,0x895f,0xf90a,0x9326,0x4f0b,0x53ca,0x6025,0x6271, +0x6c72,0x7d1a,0x7d66,0x4e98,0x5162,0x77dc,0x80af,0x4f01, +0x4f0e,0x5176,0x5180,0x55dc,0x5668,0x573b,0x57fa,0x57fc, +0x5914,0x5947,0x5993,0x5bc4,0x5c90,0x5d0e,0x5df1,0x5e7e, +0x5fcc,0x6280,0x65d7,0x65e3,0x671e,0x671f,0x675e,0x68cb, +0x68c4,0x6a5f,0x6b3a,0x6c23,0x6c7d,0x6c82,0x6dc7,0x7398, +0x7426,0x742a,0x7482,0x74a3,0x7578,0x757f,0x7881,0x78ef, +0x7941,0x7947,0x7948,0x797a,0x7b95,0x7d00,0x7dba,0x7f88, +0x8006,0x802d,0x808c,0x8a18,0x8b4f,0x8c48,0x8d77,0x9321, +0x9324,0x98e2,0x9951,0x9a0e,0x9a0f,0x9a65,0x9e92,0x7dca, +0x4f76,0x5409,0x62ee,0x6854,0x91d1,0x55ab,0x513a,0xf90b, +0xf90c,0x5a1c,0x61e6,0xf90d,0x62cf,0x62ff,0xf90e,0xf90f, +0xf910,0xf911,0xf912,0xf913,0x90a3,0xf914,0xf915,0xf916, +0xf917,0xf918,0x8afe,0xf919,0xf91a,0xf91b,0xf91c,0x6696, +0xf91d,0x7156,0xf91e,0xf91f,0x96e3,0xf920,0x634f,0x637a, +0x5357,0xf921,0x678f,0x6960,0x6e73,0xf922,0x7537,0xf923, +0xf924,0xf925,0x7d0d,0xf926,0xf927,0x8872,0x56ca,0x5a18, +0xf928,0xf929,0xf92a,0xf92b,0xf92c,0x4e43,0xf92d,0x5167, +0x5948,0x67f0,0x8010,0xf92e,0x5973,0x5e74,0x649a,0x79ca, +0x5ff5,0x606c,0x62c8,0x637b,0x5be7,0x5bd7,0x52aa,0xf92f, +0x5974,0x5f29,0x6012,0xf930,0xf931,0xf932,0x7459,0xf933, +0xf934,0xf935,0xf936,0xf937,0xf938,0x99d1,0xf939,0xf93a, +0xf93b,0xf93c,0xf93d,0xf93e,0xf93f,0xf940,0xf941,0xf942, +0xf943,0x6fc3,0xf944,0xf945,0x81bf,0x8fb2,0x60f1,0xf946, +0xf947,0x8166,0xf948,0xf949,0x5c3f,0xf94a,0xf94b,0xf94c, +0xf94d,0xf94e,0xf94f,0xf950,0xf951,0x5ae9,0x8a25,0x677b, +0x7d10,0xf952,0xf953,0xf954,0xf955,0xf956,0xf957,0x80fd, +0xf958,0xf959,0x5c3c,0x6ce5,0x533f,0x6eba,0x591a,0x8336, +0x4e39,0x4eb6,0x4f46,0x55ae,0x5718,0x58c7,0x5f56,0x65b7, +0x65e6,0x6a80,0x6bb5,0x6e4d,0x77ed,0x7aef,0x7c1e,0x7dde, +0x86cb,0x8892,0x9132,0x935b,0x64bb,0x6fbe,0x737a,0x75b8, +0x9054,0x5556,0x574d,0x61ba,0x64d4,0x66c7,0x6de1,0x6e5b, +0x6f6d,0x6fb9,0x75f0,0x8043,0x81bd,0x8541,0x8983,0x8ac7, +0x8b5a,0x931f,0x6c93,0x7553,0x7b54,0x8e0f,0x905d,0x5510, +0x5802,0x5858,0x5e62,0x6207,0x649e,0x68e0,0x7576,0x7cd6, +0x87b3,0x9ee8,0x4ee3,0x5788,0x576e,0x5927,0x5c0d,0x5cb1, +0x5e36,0x5f85,0x6234,0x64e1,0x73b3,0x81fa,0x888b,0x8cb8, +0x968a,0x9edb,0x5b85,0x5fb7,0x60b3,0x5012,0x5200,0x5230, +0x5716,0x5835,0x5857,0x5c0e,0x5c60,0x5cf6,0x5d8b,0x5ea6, +0x5f92,0x60bc,0x6311,0x6389,0x6417,0x6843,0x68f9,0x6ac2, +0x6dd8,0x6e21,0x6ed4,0x6fe4,0x71fe,0x76dc,0x7779,0x79b1, +0x7a3b,0x8404,0x89a9,0x8ced,0x8df3,0x8e48,0x9003,0x9014, +0x9053,0x90fd,0x934d,0x9676,0x97dc,0x6bd2,0x7006,0x7258, +0x72a2,0x7368,0x7763,0x79bf,0x7be4,0x7e9b,0x8b80,0x58a9, +0x60c7,0x6566,0x65fd,0x66be,0x6c8c,0x711e,0x71c9,0x8c5a, +0x9813,0x4e6d,0x7a81,0x4edd,0x51ac,0x51cd,0x52d5,0x540c, +0x61a7,0x6771,0x6850,0x68df,0x6d1e,0x6f7c,0x75bc,0x77b3, +0x7ae5,0x80f4,0x8463,0x9285,0x515c,0x6597,0x675c,0x6793, +0x75d8,0x7ac7,0x8373,0xf95a,0x8c46,0x9017,0x982d,0x5c6f, +0x81c0,0x829a,0x9041,0x906f,0x920d,0x5f97,0x5d9d,0x6a59, +0x71c8,0x767b,0x7b49,0x85e4,0x8b04,0x9127,0x9a30,0x5587, +0x61f6,0xf95b,0x7669,0x7f85,0x863f,0x87ba,0x88f8,0x908f, +0xf95c,0x6d1b,0x70d9,0x73de,0x7d61,0x843d,0xf95d,0x916a, +0x99f1,0xf95e,0x4e82,0x5375,0x6b04,0x6b12,0x703e,0x721b, +0x862d,0x9e1e,0x524c,0x8fa3,0x5d50,0x64e5,0x652c,0x6b16, +0x6feb,0x7c43,0x7e9c,0x85cd,0x8964,0x89bd,0x62c9,0x81d8, +0x881f,0x5eca,0x6717,0x6d6a,0x72fc,0x7405,0x746f,0x8782, +0x90de,0x4f86,0x5d0d,0x5fa0,0x840a,0x51b7,0x63a0,0x7565, +0x4eae,0x5006,0x5169,0x51c9,0x6881,0x6a11,0x7cae,0x7cb1, +0x7ce7,0x826f,0x8ad2,0x8f1b,0x91cf,0x4fb6,0x5137,0x52f5, +0x5442,0x5eec,0x616e,0x623e,0x65c5,0x6ada,0x6ffe,0x792a, +0x85dc,0x8823,0x95ad,0x9a62,0x9a6a,0x9e97,0x9ece,0x529b, +0x66c6,0x6b77,0x701d,0x792b,0x8f62,0x9742,0x6190,0x6200, +0x6523,0x6f23,0x7149,0x7489,0x7df4,0x806f,0x84ee,0x8f26, +0x9023,0x934a,0x51bd,0x5217,0x52a3,0x6d0c,0x70c8,0x88c2, +0x5ec9,0x6582,0x6bae,0x6fc2,0x7c3e,0x7375,0x4ee4,0x4f36, +0x56f9,0xf95f,0x5cba,0x5dba,0x601c,0x73b2,0x7b2d,0x7f9a, +0x7fce,0x8046,0x901e,0x9234,0x96f6,0x9748,0x9818,0x9f61, +0x4f8b,0x6fa7,0x79ae,0x91b4,0x96b7,0x52de,0xf960,0x6488, +0x64c4,0x6ad3,0x6f5e,0x7018,0x7210,0x76e7,0x8001,0x8606, +0x865c,0x8def,0x8f05,0x9732,0x9b6f,0x9dfa,0x9e75,0x788c, +0x797f,0x7da0,0x83c9,0x9304,0x9e7f,0x9e93,0x8ad6,0x58df, +0x5f04,0x6727,0x7027,0x74cf,0x7c60,0x807e,0x5121,0x7028, +0x7262,0x78ca,0x8cc2,0x8cda,0x8cf4,0x96f7,0x4e86,0x50da, +0x5bee,0x5ed6,0x6599,0x71ce,0x7642,0x77ad,0x804a,0x84fc, +0x907c,0x9b27,0x9f8d,0x58d8,0x5a41,0x5c62,0x6a13,0x6dda, +0x6f0f,0x763b,0x7d2f,0x7e37,0x851e,0x8938,0x93e4,0x964b, +0x5289,0x65d2,0x67f3,0x69b4,0x6d41,0x6e9c,0x700f,0x7409, +0x7460,0x7559,0x7624,0x786b,0x8b2c,0x985e,0x516d,0x622e, +0x9678,0x4f96,0x502b,0x5d19,0x6dea,0x7db8,0x8f2a,0x5f8b, +0x6144,0x6817,0xf961,0x9686,0x52d2,0x808b,0x51dc,0x51cc, +0x695e,0x7a1c,0x7dbe,0x83f1,0x9675,0x4fda,0x5229,0x5398, +0x540f,0x550e,0x5c65,0x60a7,0x674e,0x68a8,0x6d6c,0x7281, +0x72f8,0x7406,0x7483,0xf962,0x75e2,0x7c6c,0x7f79,0x7fb8, +0x8389,0x88cf,0x88e1,0x91cc,0x91d0,0x96e2,0x9bc9,0x541d, +0x6f7e,0x71d0,0x7498,0x85fa,0x8eaa,0x96a3,0x9c57,0x9e9f, +0x6797,0x6dcb,0x7433,0x81e8,0x9716,0x782c,0x7acb,0x7b20, +0x7c92,0x6469,0x746a,0x75f2,0x78bc,0x78e8,0x99ac,0x9b54, +0x9ebb,0x5bde,0x5e55,0x6f20,0x819c,0x83ab,0x9088,0x4e07, +0x534d,0x5a29,0x5dd2,0x5f4e,0x6162,0x633d,0x6669,0x66fc, +0x6eff,0x6f2b,0x7063,0x779e,0x842c,0x8513,0x883b,0x8f13, +0x9945,0x9c3b,0x551c,0x62b9,0x672b,0x6cab,0x8309,0x896a, +0x977a,0x4ea1,0x5984,0x5fd8,0x5fd9,0x671b,0x7db2,0x7f54, +0x8292,0x832b,0x83bd,0x8f1e,0x9099,0x57cb,0x59b9,0x5a92, +0x5bd0,0x6627,0x679a,0x6885,0x6bcf,0x7164,0x7f75,0x8cb7, +0x8ce3,0x9081,0x9b45,0x8108,0x8c8a,0x964c,0x9a40,0x9ea5, +0x5b5f,0x6c13,0x731b,0x76f2,0x76df,0x840c,0x51aa,0x8993, +0x514d,0x5195,0x52c9,0x68c9,0x6c94,0x7704,0x7720,0x7dbf, +0x7dec,0x9762,0x9eb5,0x6ec5,0x8511,0x51a5,0x540d,0x547d, +0x660e,0x669d,0x6927,0x6e9f,0x76bf,0x7791,0x8317,0x84c2, +0x879f,0x9169,0x9298,0x9cf4,0x8882,0x4fae,0x5192,0x52df, +0x59c6,0x5e3d,0x6155,0x6478,0x6479,0x66ae,0x67d0,0x6a21, +0x6bcd,0x6bdb,0x725f,0x7261,0x7441,0x7738,0x77db,0x8017, +0x82bc,0x8305,0x8b00,0x8b28,0x8c8c,0x6728,0x6c90,0x7267, +0x76ee,0x7766,0x7a46,0x9da9,0x6b7f,0x6c92,0x5922,0x6726, +0x8499,0x536f,0x5893,0x5999,0x5edf,0x63cf,0x6634,0x6773, +0x6e3a,0x732b,0x7ad7,0x82d7,0x9328,0x52d9,0x5deb,0x61ae, +0x61cb,0x620a,0x62c7,0x64ab,0x65e0,0x6959,0x6b66,0x6bcb, +0x7121,0x73f7,0x755d,0x7e46,0x821e,0x8302,0x856a,0x8aa3, +0x8cbf,0x9727,0x9d61,0x58a8,0x9ed8,0x5011,0x520e,0x543b, +0x554f,0x6587,0x6c76,0x7d0a,0x7d0b,0x805e,0x868a,0x9580, +0x96ef,0x52ff,0x6c95,0x7269,0x5473,0x5a9a,0x5c3e,0x5d4b, +0x5f4c,0x5fae,0x672a,0x68b6,0x6963,0x6e3c,0x6e44,0x7709, +0x7c73,0x7f8e,0x8587,0x8b0e,0x8ff7,0x9761,0x9ef4,0x5cb7, +0x60b6,0x610d,0x61ab,0x654f,0x65fb,0x65fc,0x6c11,0x6cef, +0x739f,0x73c9,0x7de1,0x9594,0x5bc6,0x871c,0x8b10,0x525d, +0x535a,0x62cd,0x640f,0x64b2,0x6734,0x6a38,0x6cca,0x73c0, +0x749e,0x7b94,0x7c95,0x7e1b,0x818a,0x8236,0x8584,0x8feb, +0x96f9,0x99c1,0x4f34,0x534a,0x53cd,0x53db,0x62cc,0x642c, +0x6500,0x6591,0x69c3,0x6cee,0x6f58,0x73ed,0x7554,0x7622, +0x76e4,0x76fc,0x78d0,0x78fb,0x792c,0x7d46,0x822c,0x87e0, +0x8fd4,0x9812,0x98ef,0x52c3,0x62d4,0x64a5,0x6e24,0x6f51, +0x767c,0x8dcb,0x91b1,0x9262,0x9aee,0x9b43,0x5023,0x508d, +0x574a,0x59a8,0x5c28,0x5e47,0x5f77,0x623f,0x653e,0x65b9, +0x65c1,0x6609,0x678b,0x699c,0x6ec2,0x78c5,0x7d21,0x80aa, +0x8180,0x822b,0x82b3,0x84a1,0x868c,0x8a2a,0x8b17,0x90a6, +0x9632,0x9f90,0x500d,0x4ff3,0xf963,0x57f9,0x5f98,0x62dc, +0x6392,0x676f,0x6e43,0x7119,0x76c3,0x80cc,0x80da,0x88f4, +0x88f5,0x8919,0x8ce0,0x8f29,0x914d,0x966a,0x4f2f,0x4f70, +0x5e1b,0x67cf,0x6822,0x767d,0x767e,0x9b44,0x5e61,0x6a0a, +0x7169,0x71d4,0x756a,0xf964,0x7e41,0x8543,0x85e9,0x98dc, +0x4f10,0x7b4f,0x7f70,0x95a5,0x51e1,0x5e06,0x68b5,0x6c3e, +0x6c4e,0x6cdb,0x72af,0x7bc4,0x8303,0x6cd5,0x743a,0x50fb, +0x5288,0x58c1,0x64d8,0x6a97,0x74a7,0x7656,0x78a7,0x8617, +0x95e2,0x9739,0xf965,0x535e,0x5f01,0x8b8a,0x8fa8,0x8faf, +0x908a,0x5225,0x77a5,0x9c49,0x9f08,0x4e19,0x5002,0x5175, +0x5c5b,0x5e77,0x661e,0x663a,0x67c4,0x68c5,0x70b3,0x7501, +0x75c5,0x79c9,0x7add,0x8f27,0x9920,0x9a08,0x4fdd,0x5821, +0x5831,0x5bf6,0x666e,0x6b65,0x6d11,0x6e7a,0x6f7d,0x73e4, +0x752b,0x83e9,0x88dc,0x8913,0x8b5c,0x8f14,0x4f0f,0x50d5, +0x5310,0x535c,0x5b93,0x5fa9,0x670d,0x798f,0x8179,0x832f, +0x8514,0x8907,0x8986,0x8f39,0x8f3b,0x99a5,0x9c12,0x672c, +0x4e76,0x4ff8,0x5949,0x5c01,0x5cef,0x5cf0,0x6367,0x68d2, +0x70fd,0x71a2,0x742b,0x7e2b,0x84ec,0x8702,0x9022,0x92d2, +0x9cf3,0x4e0d,0x4ed8,0x4fef,0x5085,0x5256,0x526f,0x5426, +0x5490,0x57e0,0x592b,0x5a66,0x5b5a,0x5b75,0x5bcc,0x5e9c, +0xf966,0x6276,0x6577,0x65a7,0x6d6e,0x6ea5,0x7236,0x7b26, +0x7c3f,0x7f36,0x8150,0x8151,0x819a,0x8240,0x8299,0x83a9, +0x8a03,0x8ca0,0x8ce6,0x8cfb,0x8d74,0x8dba,0x90e8,0x91dc, +0x961c,0x9644,0x99d9,0x9ce7,0x5317,0x5206,0x5429,0x5674, +0x58b3,0x5954,0x596e,0x5fff,0x61a4,0x626e,0x6610,0x6c7e, +0x711a,0x76c6,0x7c89,0x7cde,0x7d1b,0x82ac,0x8cc1,0x96f0, +0xf967,0x4f5b,0x5f17,0x5f7f,0x62c2,0x5d29,0x670b,0x68da, +0x787c,0x7e43,0x9d6c,0x4e15,0x5099,0x5315,0x532a,0x5351, +0x5983,0x5a62,0x5e87,0x60b2,0x618a,0x6249,0x6279,0x6590, +0x6787,0x69a7,0x6bd4,0x6bd6,0x6bd7,0x6bd8,0x6cb8,0xf968, +0x7435,0x75fa,0x7812,0x7891,0x79d5,0x79d8,0x7c83,0x7dcb, +0x7fe1,0x80a5,0x813e,0x81c2,0x83f2,0x871a,0x88e8,0x8ab9, +0x8b6c,0x8cbb,0x9119,0x975e,0x98db,0x9f3b,0x56ac,0x5b2a, +0x5f6c,0x658c,0x6ab3,0x6baf,0x6d5c,0x6ff1,0x7015,0x725d, +0x73ad,0x8ca7,0x8cd3,0x983b,0x6191,0x6c37,0x8058,0x9a01, +0x4e4d,0x4e8b,0x4e9b,0x4ed5,0x4f3a,0x4f3c,0x4f7f,0x4fdf, +0x50ff,0x53f2,0x53f8,0x5506,0x55e3,0x56db,0x58eb,0x5962, +0x5a11,0x5beb,0x5bfa,0x5c04,0x5df3,0x5e2b,0x5f99,0x601d, +0x6368,0x659c,0x65af,0x67f6,0x67fb,0x68ad,0x6b7b,0x6c99, +0x6cd7,0x6e23,0x7009,0x7345,0x7802,0x793e,0x7940,0x7960, +0x79c1,0x7be9,0x7d17,0x7d72,0x8086,0x820d,0x838e,0x84d1, +0x86c7,0x88df,0x8a50,0x8a5e,0x8b1d,0x8cdc,0x8d66,0x8fad, +0x90aa,0x98fc,0x99df,0x9e9d,0x524a,0xf969,0x6714,0xf96a, +0x5098,0x522a,0x5c71,0x6563,0x6c55,0x73ca,0x7523,0x759d, +0x7b97,0x849c,0x9178,0x9730,0x4e77,0x6492,0x6bba,0x715e, +0x85a9,0x4e09,0xf96b,0x6749,0x68ee,0x6e17,0x829f,0x8518, +0x886b,0x63f7,0x6f81,0x9212,0x98af,0x4e0a,0x50b7,0x50cf, +0x511f,0x5546,0x55aa,0x5617,0x5b40,0x5c19,0x5ce0,0x5e38, +0x5e8a,0x5ea0,0x5ec2,0x60f3,0x6851,0x6a61,0x6e58,0x723d, +0x7240,0x72c0,0x76f8,0x7965,0x7bb1,0x7fd4,0x88f3,0x89f4, +0x8a73,0x8c61,0x8cde,0x971c,0x585e,0x74bd,0x8cfd,0x55c7, +0xf96c,0x7a61,0x7d22,0x8272,0x7272,0x751f,0x7525,0xf96d, +0x7b19,0x5885,0x58fb,0x5dbc,0x5e8f,0x5eb6,0x5f90,0x6055, +0x6292,0x637f,0x654d,0x6691,0x66d9,0x66f8,0x6816,0x68f2, +0x7280,0x745e,0x7b6e,0x7d6e,0x7dd6,0x7f72,0x80e5,0x8212, +0x85af,0x897f,0x8a93,0x901d,0x92e4,0x9ecd,0x9f20,0x5915, +0x596d,0x5e2d,0x60dc,0x6614,0x6673,0x6790,0x6c50,0x6dc5, +0x6f5f,0x77f3,0x78a9,0x84c6,0x91cb,0x932b,0x4ed9,0x50ca, +0x5148,0x5584,0x5b0b,0x5ba3,0x6247,0x657e,0x65cb,0x6e32, +0x717d,0x7401,0x7444,0x7487,0x74bf,0x766c,0x79aa,0x7dda, +0x7e55,0x7fa8,0x817a,0x81b3,0x8239,0x861a,0x87ec,0x8a75, +0x8de3,0x9078,0x9291,0x9425,0x994d,0x9bae,0x5368,0x5c51, +0x6954,0x6cc4,0x6d29,0x6e2b,0x820c,0x859b,0x893b,0x8a2d, +0x8aaa,0x96ea,0x9f67,0x5261,0x66b9,0x6bb2,0x7e96,0x87fe, +0x8d0d,0x9583,0x965d,0x651d,0x6d89,0x71ee,0xf96e,0x57ce, +0x59d3,0x5bac,0x6027,0x60fa,0x6210,0x661f,0x665f,0x7329, +0x73f9,0x76db,0x7701,0x7b6c,0x8056,0x8072,0x8165,0x8aa0, +0x9192,0x4e16,0x52e2,0x6b72,0x6d17,0x7a05,0x7b39,0x7d30, +0xf96f,0x8cb0,0x53ec,0x562f,0x5851,0x5bb5,0x5c0f,0x5c11, +0x5de2,0x6240,0x6383,0x6414,0x662d,0x68b3,0x6cbc,0x6d88, +0x6eaf,0x701f,0x70a4,0x71d2,0x7526,0x758f,0x758e,0x7619, +0x7b11,0x7be0,0x7c2b,0x7d20,0x7d39,0x852c,0x856d,0x8607, +0x8a34,0x900d,0x9061,0x90b5,0x92b7,0x97f6,0x9a37,0x4fd7, +0x5c6c,0x675f,0x6d91,0x7c9f,0x7e8c,0x8b16,0x8d16,0x901f, +0x5b6b,0x5dfd,0x640d,0x84c0,0x905c,0x98e1,0x7387,0x5b8b, +0x609a,0x677e,0x6dde,0x8a1f,0x8aa6,0x9001,0x980c,0x5237, +0xf970,0x7051,0x788e,0x9396,0x8870,0x91d7,0x4fee,0x53d7, +0x55fd,0x56da,0x5782,0x58fd,0x5ac2,0x5b88,0x5cab,0x5cc0, +0x5e25,0x6101,0x620d,0x624b,0x6388,0x641c,0x6536,0x6578, +0x6a39,0x6b8a,0x6c34,0x6d19,0x6f31,0x71e7,0x72e9,0x7378, +0x7407,0x74b2,0x7626,0x7761,0x79c0,0x7a57,0x7aea,0x7cb9, +0x7d8f,0x7dac,0x7e61,0x7f9e,0x8129,0x8331,0x8490,0x84da, +0x85ea,0x8896,0x8ab0,0x8b90,0x8f38,0x9042,0x9083,0x916c, +0x9296,0x92b9,0x968b,0x96a7,0x96a8,0x96d6,0x9700,0x9808, +0x9996,0x9ad3,0x9b1a,0x53d4,0x587e,0x5919,0x5b70,0x5bbf, +0x6dd1,0x6f5a,0x719f,0x7421,0x74b9,0x8085,0x83fd,0x5de1, +0x5f87,0x5faa,0x6042,0x65ec,0x6812,0x696f,0x6a53,0x6b89, +0x6d35,0x6df3,0x73e3,0x76fe,0x77ac,0x7b4d,0x7d14,0x8123, +0x821c,0x8340,0x84f4,0x8563,0x8a62,0x8ac4,0x9187,0x931e, +0x9806,0x99b4,0x620c,0x8853,0x8ff0,0x9265,0x5d07,0x5d27, +0x5d69,0x745f,0x819d,0x8768,0x6fd5,0x62fe,0x7fd2,0x8936, +0x8972,0x4e1e,0x4e58,0x50e7,0x52dd,0x5347,0x627f,0x6607, +0x7e69,0x8805,0x965e,0x4f8d,0x5319,0x5636,0x59cb,0x5aa4, +0x5c38,0x5c4e,0x5c4d,0x5e02,0x5f11,0x6043,0x65bd,0x662f, +0x6642,0x67be,0x67f4,0x731c,0x77e2,0x793a,0x7fc5,0x8494, +0x84cd,0x8996,0x8a66,0x8a69,0x8ae1,0x8c55,0x8c7a,0x57f4, +0x5bd4,0x5f0f,0x606f,0x62ed,0x690d,0x6b96,0x6e5c,0x7184, +0x7bd2,0x8755,0x8b58,0x8efe,0x98df,0x98fe,0x4f38,0x4f81, +0x4fe1,0x547b,0x5a20,0x5bb8,0x613c,0x65b0,0x6668,0x71fc, +0x7533,0x795e,0x7d33,0x814e,0x81e3,0x8398,0x85aa,0x85ce, +0x8703,0x8a0a,0x8eab,0x8f9b,0xf971,0x8fc5,0x5931,0x5ba4, +0x5be6,0x6089,0x5be9,0x5c0b,0x5fc3,0x6c81,0xf972,0x6df1, +0x700b,0x751a,0x82af,0x8af6,0x4ec0,0x5341,0xf973,0x96d9, +0x6c0f,0x4e9e,0x4fc4,0x5152,0x555e,0x5a25,0x5ce8,0x6211, +0x7259,0x82bd,0x83aa,0x86fe,0x8859,0x8a1d,0x963f,0x96c5, +0x9913,0x9d09,0x9d5d,0x580a,0x5cb3,0x5dbd,0x5e44,0x60e1, +0x6115,0x63e1,0x6a02,0x6e25,0x9102,0x9354,0x984e,0x9c10, +0x9f77,0x5b89,0x5cb8,0x6309,0x664f,0x6848,0x773c,0x96c1, +0x978d,0x9854,0x9b9f,0x65a1,0x8b01,0x8ecb,0x95bc,0x5535, +0x5ca9,0x5dd6,0x5eb5,0x6697,0x764c,0x83f4,0x95c7,0x58d3, +0x62bc,0x72ce,0x9d28,0x4ef0,0x592e,0x600f,0x663b,0x6b83, +0x79e7,0x9d26,0x5393,0x54c0,0x57c3,0x5d16,0x611b,0x66d6, +0x6daf,0x788d,0x827e,0x9698,0x9744,0x5384,0x627c,0x6396, +0x6db2,0x7e0a,0x814b,0x984d,0x6afb,0x7f4c,0x9daf,0x9e1a, +0x4e5f,0x503b,0x51b6,0x591c,0x60f9,0x63f6,0x6930,0x723a, +0x8036,0xf974,0x91ce,0x5f31,0xf975,0xf976,0x7d04,0x82e5, +0x846f,0x84bb,0x85e5,0x8e8d,0xf977,0x4f6f,0xf978,0xf979, +0x58e4,0x5b43,0x6059,0x63da,0x6518,0x656d,0x6698,0xf97a, +0x694a,0x6a23,0x6d0b,0x7001,0x716c,0x75d2,0x760d,0x79b3, +0x7a70,0xf97b,0x7f8a,0xf97c,0x8944,0xf97d,0x8b93,0x91c0, +0x967d,0xf97e,0x990a,0x5704,0x5fa1,0x65bc,0x6f01,0x7600, +0x79a6,0x8a9e,0x99ad,0x9b5a,0x9f6c,0x5104,0x61b6,0x6291, +0x6a8d,0x81c6,0x5043,0x5830,0x5f66,0x7109,0x8a00,0x8afa, +0x5b7c,0x8616,0x4ffa,0x513c,0x56b4,0x5944,0x63a9,0x6df9, +0x5daa,0x696d,0x5186,0x4e88,0x4f59,0xf97f,0xf980,0xf981, +0x5982,0xf982,0xf983,0x6b5f,0x6c5d,0xf984,0x74b5,0x7916, +0xf985,0x8207,0x8245,0x8339,0x8f3f,0x8f5d,0xf986,0x9918, +0xf987,0xf988,0xf989,0x4ea6,0xf98a,0x57df,0x5f79,0x6613, +0xf98b,0xf98c,0x75ab,0x7e79,0x8b6f,0xf98d,0x9006,0x9a5b, +0x56a5,0x5827,0x59f8,0x5a1f,0x5bb4,0xf98e,0x5ef6,0xf98f, +0xf990,0x6350,0x633b,0xf991,0x693d,0x6c87,0x6cbf,0x6d8e, +0x6d93,0x6df5,0x6f14,0xf992,0x70df,0x7136,0x7159,0xf993, +0x71c3,0x71d5,0xf994,0x784f,0x786f,0xf995,0x7b75,0x7de3, +0xf996,0x7e2f,0xf997,0x884d,0x8edf,0xf998,0xf999,0xf99a, +0x925b,0xf99b,0x9cf6,0xf99c,0xf99d,0xf99e,0x6085,0x6d85, +0xf99f,0x71b1,0xf9a0,0xf9a1,0x95b1,0x53ad,0xf9a2,0xf9a3, +0xf9a4,0x67d3,0xf9a5,0x708e,0x7130,0x7430,0x8276,0x82d2, +0xf9a6,0x95bb,0x9ae5,0x9e7d,0x66c4,0xf9a7,0x71c1,0x8449, +0xf9a8,0xf9a9,0x584b,0xf9aa,0xf9ab,0x5db8,0x5f71,0xf9ac, +0x6620,0x668e,0x6979,0x69ae,0x6c38,0x6cf3,0x6e36,0x6f41, +0x6fda,0x701b,0x702f,0x7150,0x71df,0x7370,0xf9ad,0x745b, +0xf9ae,0x74d4,0x76c8,0x7a4e,0x7e93,0xf9af,0xf9b0,0x82f1, +0x8a60,0x8fce,0xf9b1,0x9348,0xf9b2,0x9719,0xf9b3,0xf9b4, +0x4e42,0x502a,0xf9b5,0x5208,0x53e1,0x66f3,0x6c6d,0x6fca, +0x730a,0x777f,0x7a62,0x82ae,0x85dd,0x8602,0xf9b6,0x88d4, +0x8a63,0x8b7d,0x8c6b,0xf9b7,0x92b3,0xf9b8,0x9713,0x9810, +0x4e94,0x4f0d,0x4fc9,0x50b2,0x5348,0x543e,0x5433,0x55da, +0x5862,0x58ba,0x5967,0x5a1b,0x5be4,0x609f,0xf9b9,0x61ca, +0x6556,0x65ff,0x6664,0x68a7,0x6c5a,0x6fb3,0x70cf,0x71ac, +0x7352,0x7b7d,0x8708,0x8aa4,0x9c32,0x9f07,0x5c4b,0x6c83, +0x7344,0x7389,0x923a,0x6eab,0x7465,0x761f,0x7a69,0x7e15, +0x860a,0x5140,0x58c5,0x64c1,0x74ee,0x7515,0x7670,0x7fc1, +0x9095,0x96cd,0x9954,0x6e26,0x74e6,0x7aa9,0x7aaa,0x81e5, +0x86d9,0x8778,0x8a1b,0x5a49,0x5b8c,0x5b9b,0x68a1,0x6900, +0x6d63,0x73a9,0x7413,0x742c,0x7897,0x7de9,0x7feb,0x8118, +0x8155,0x839e,0x8c4c,0x962e,0x9811,0x66f0,0x5f80,0x65fa, +0x6789,0x6c6a,0x738b,0x502d,0x5a03,0x6b6a,0x77ee,0x5916, +0x5d6c,0x5dcd,0x7325,0x754f,0xf9ba,0xf9bb,0x50e5,0x51f9, +0x582f,0x592d,0x5996,0x59da,0x5be5,0xf9bc,0xf9bd,0x5da2, +0x62d7,0x6416,0x6493,0x64fe,0xf9be,0x66dc,0xf9bf,0x6a48, +0xf9c0,0x71ff,0x7464,0xf9c1,0x7a88,0x7aaf,0x7e47,0x7e5e, +0x8000,0x8170,0xf9c2,0x87ef,0x8981,0x8b20,0x9059,0xf9c3, +0x9080,0x9952,0x617e,0x6b32,0x6d74,0x7e1f,0x8925,0x8fb1, +0x4fd1,0x50ad,0x5197,0x52c7,0x57c7,0x5889,0x5bb9,0x5eb8, +0x6142,0x6995,0x6d8c,0x6e67,0x6eb6,0x7194,0x7462,0x7528, +0x752c,0x8073,0x8338,0x84c9,0x8e0a,0x9394,0x93de,0xf9c4, +0x4e8e,0x4f51,0x5076,0x512a,0x53c8,0x53cb,0x53f3,0x5b87, +0x5bd3,0x5c24,0x611a,0x6182,0x65f4,0x725b,0x7397,0x7440, +0x76c2,0x7950,0x7991,0x79b9,0x7d06,0x7fbd,0x828b,0x85d5, +0x865e,0x8fc2,0x9047,0x90f5,0x91ea,0x9685,0x96e8,0x96e9, +0x52d6,0x5f67,0x65ed,0x6631,0x682f,0x715c,0x7a36,0x90c1, +0x980a,0x4e91,0xf9c5,0x6a52,0x6b9e,0x6f90,0x7189,0x8018, +0x82b8,0x8553,0x904b,0x9695,0x96f2,0x97fb,0x851a,0x9b31, +0x4e90,0x718a,0x96c4,0x5143,0x539f,0x54e1,0x5713,0x5712, +0x57a3,0x5a9b,0x5ac4,0x5bc3,0x6028,0x613f,0x63f4,0x6c85, +0x6d39,0x6e72,0x6e90,0x7230,0x733f,0x7457,0x82d1,0x8881, +0x8f45,0x9060,0xf9c6,0x9662,0x9858,0x9d1b,0x6708,0x8d8a, +0x925e,0x4f4d,0x5049,0x50de,0x5371,0x570d,0x59d4,0x5a01, +0x5c09,0x6170,0x6690,0x6e2d,0x7232,0x744b,0x7def,0x80c3, +0x840e,0x8466,0x853f,0x875f,0x885b,0x8918,0x8b02,0x9055, +0x97cb,0x9b4f,0x4e73,0x4f91,0x5112,0x516a,0xf9c7,0x552f, +0x55a9,0x5b7a,0x5ba5,0x5e7c,0x5e7d,0x5ebe,0x60a0,0x60df, +0x6108,0x6109,0x63c4,0x6538,0x6709,0xf9c8,0x67d4,0x67da, +0xf9c9,0x6961,0x6962,0x6cb9,0x6d27,0xf9ca,0x6e38,0xf9cb, +0x6fe1,0x7336,0x7337,0xf9cc,0x745c,0x7531,0xf9cd,0x7652, +0xf9ce,0xf9cf,0x7dad,0x81fe,0x8438,0x88d5,0x8a98,0x8adb, +0x8aed,0x8e30,0x8e42,0x904a,0x903e,0x907a,0x9149,0x91c9, +0x936e,0xf9d0,0xf9d1,0x5809,0xf9d2,0x6bd3,0x8089,0x80b2, +0xf9d3,0xf9d4,0x5141,0x596b,0x5c39,0xf9d5,0xf9d6,0x6f64, +0x73a7,0x80e4,0x8d07,0xf9d7,0x9217,0x958f,0xf9d8,0xf9d9, +0xf9da,0xf9db,0x807f,0x620e,0x701c,0x7d68,0x878d,0xf9dc, +0x57a0,0x6069,0x6147,0x6bb7,0x8abe,0x9280,0x96b1,0x4e59, +0x541f,0x6deb,0x852d,0x9670,0x97f3,0x98ee,0x63d6,0x6ce3, +0x9091,0x51dd,0x61c9,0x81ba,0x9df9,0x4f9d,0x501a,0x5100, +0x5b9c,0x610f,0x61ff,0x64ec,0x6905,0x6bc5,0x7591,0x77e3, +0x7fa9,0x8264,0x858f,0x87fb,0x8863,0x8abc,0x8b70,0x91ab, +0x4e8c,0x4ee5,0x4f0a,0xf9dd,0xf9de,0x5937,0x59e8,0xf9df, +0x5df2,0x5f1b,0x5f5b,0x6021,0xf9e0,0xf9e1,0xf9e2,0xf9e3, +0x723e,0x73e5,0xf9e4,0x7570,0x75cd,0xf9e5,0x79fb,0xf9e6, +0x800c,0x8033,0x8084,0x82e1,0x8351,0xf9e7,0xf9e8,0x8cbd, +0x8cb3,0x9087,0xf9e9,0xf9ea,0x98f4,0x990c,0xf9eb,0xf9ec, +0x7037,0x76ca,0x7fca,0x7fcc,0x7ffc,0x8b1a,0x4eba,0x4ec1, +0x5203,0x5370,0xf9ed,0x54bd,0x56e0,0x59fb,0x5bc5,0x5f15, +0x5fcd,0x6e6e,0xf9ee,0xf9ef,0x7d6a,0x8335,0xf9f0,0x8693, +0x8a8d,0xf9f1,0x976d,0x9777,0xf9f2,0xf9f3,0x4e00,0x4f5a, +0x4f7e,0x58f9,0x65e5,0x6ea2,0x9038,0x93b0,0x99b9,0x4efb, +0x58ec,0x598a,0x59d9,0x6041,0xf9f4,0xf9f5,0x7a14,0xf9f6, +0x834f,0x8cc3,0x5165,0x5344,0xf9f7,0xf9f8,0xf9f9,0x4ecd, +0x5269,0x5b55,0x82bf,0x4ed4,0x523a,0x54a8,0x59c9,0x59ff, +0x5b50,0x5b57,0x5b5c,0x6063,0x6148,0x6ecb,0x7099,0x716e, +0x7386,0x74f7,0x75b5,0x78c1,0x7d2b,0x8005,0x81ea,0x8328, +0x8517,0x85c9,0x8aee,0x8cc7,0x96cc,0x4f5c,0x52fa,0x56bc, +0x65ab,0x6628,0x707c,0x70b8,0x7235,0x7dbd,0x828d,0x914c, +0x96c0,0x9d72,0x5b71,0x68e7,0x6b98,0x6f7a,0x76de,0x5c91, +0x66ab,0x6f5b,0x7bb4,0x7c2a,0x8836,0x96dc,0x4e08,0x4ed7, +0x5320,0x5834,0x58bb,0x58ef,0x596c,0x5c07,0x5e33,0x5e84, +0x5f35,0x638c,0x66b2,0x6756,0x6a1f,0x6aa3,0x6b0c,0x6f3f, +0x7246,0xf9fa,0x7350,0x748b,0x7ae0,0x7ca7,0x8178,0x81df, +0x81e7,0x838a,0x846c,0x8523,0x8594,0x85cf,0x88dd,0x8d13, +0x91ac,0x9577,0x969c,0x518d,0x54c9,0x5728,0x5bb0,0x624d, +0x6750,0x683d,0x6893,0x6e3d,0x6ed3,0x707d,0x7e21,0x88c1, +0x8ca1,0x8f09,0x9f4b,0x9f4e,0x722d,0x7b8f,0x8acd,0x931a, +0x4f47,0x4f4e,0x5132,0x5480,0x59d0,0x5e95,0x62b5,0x6775, +0x696e,0x6a17,0x6cae,0x6e1a,0x72d9,0x732a,0x75bd,0x7bb8, +0x7d35,0x82e7,0x83f9,0x8457,0x85f7,0x8a5b,0x8caf,0x8e87, +0x9019,0x90b8,0x96ce,0x9f5f,0x52e3,0x540a,0x5ae1,0x5bc2, +0x6458,0x6575,0x6ef4,0x72c4,0xf9fb,0x7684,0x7a4d,0x7b1b, +0x7c4d,0x7e3e,0x7fdf,0x837b,0x8b2b,0x8cca,0x8d64,0x8de1, +0x8e5f,0x8fea,0x8ff9,0x9069,0x93d1,0x4f43,0x4f7a,0x50b3, +0x5168,0x5178,0x524d,0x526a,0x5861,0x587c,0x5960,0x5c08, +0x5c55,0x5edb,0x609b,0x6230,0x6813,0x6bbf,0x6c08,0x6fb1, +0x714e,0x7420,0x7530,0x7538,0x7551,0x7672,0x7b4c,0x7b8b, +0x7bad,0x7bc6,0x7e8f,0x8a6e,0x8f3e,0x8f49,0x923f,0x9293, +0x9322,0x942b,0x96fb,0x985a,0x986b,0x991e,0x5207,0x622a, +0x6298,0x6d59,0x7664,0x7aca,0x7bc0,0x7d76,0x5360,0x5cbe, +0x5e97,0x6f38,0x70b9,0x7c98,0x9711,0x9b8e,0x9ede,0x63a5, +0x647a,0x8776,0x4e01,0x4e95,0x4ead,0x505c,0x5075,0x5448, +0x59c3,0x5b9a,0x5e40,0x5ead,0x5ef7,0x5f81,0x60c5,0x633a, +0x653f,0x6574,0x65cc,0x6676,0x6678,0x67fe,0x6968,0x6a89, +0x6b63,0x6c40,0x6dc0,0x6de8,0x6e1f,0x6e5e,0x701e,0x70a1, +0x738e,0x73fd,0x753a,0x775b,0x7887,0x798e,0x7a0b,0x7a7d, +0x7cbe,0x7d8e,0x8247,0x8a02,0x8aea,0x8c9e,0x912d,0x914a, +0x91d8,0x9266,0x92cc,0x9320,0x9706,0x9756,0x975c,0x9802, +0x9f0e,0x5236,0x5291,0x557c,0x5824,0x5e1d,0x5f1f,0x608c, +0x63d0,0x68af,0x6fdf,0x796d,0x7b2c,0x81cd,0x85ba,0x88fd, +0x8af8,0x8e44,0x918d,0x9664,0x969b,0x973d,0x984c,0x9f4a, +0x4fce,0x5146,0x51cb,0x52a9,0x5632,0x5f14,0x5f6b,0x63aa, +0x64cd,0x65e9,0x6641,0x66fa,0x66f9,0x671d,0x689d,0x68d7, +0x69fd,0x6f15,0x6f6e,0x7167,0x71e5,0x722a,0x74aa,0x773a, +0x7956,0x795a,0x79df,0x7a20,0x7a95,0x7c97,0x7cdf,0x7d44, +0x7e70,0x8087,0x85fb,0x86a4,0x8a54,0x8abf,0x8d99,0x8e81, +0x9020,0x906d,0x91e3,0x963b,0x96d5,0x9ce5,0x65cf,0x7c07, +0x8db3,0x93c3,0x5b58,0x5c0a,0x5352,0x62d9,0x731d,0x5027, +0x5b97,0x5f9e,0x60b0,0x616b,0x68d5,0x6dd9,0x742e,0x7a2e, +0x7d42,0x7d9c,0x7e31,0x816b,0x8e2a,0x8e35,0x937e,0x9418, +0x4f50,0x5750,0x5de6,0x5ea7,0x632b,0x7f6a,0x4e3b,0x4f4f, +0x4f8f,0x505a,0x59dd,0x80c4,0x546a,0x5468,0x55fe,0x594f, +0x5b99,0x5dde,0x5eda,0x665d,0x6731,0x67f1,0x682a,0x6ce8, +0x6d32,0x6e4a,0x6f8d,0x70b7,0x73e0,0x7587,0x7c4c,0x7d02, +0x7d2c,0x7da2,0x821f,0x86db,0x8a3b,0x8a85,0x8d70,0x8e8a, +0x8f33,0x9031,0x914e,0x9152,0x9444,0x99d0,0x7af9,0x7ca5, +0x4fca,0x5101,0x51c6,0x57c8,0x5bef,0x5cfb,0x6659,0x6a3d, +0x6d5a,0x6e96,0x6fec,0x710c,0x756f,0x7ae3,0x8822,0x9021, +0x9075,0x96cb,0x99ff,0x8301,0x4e2d,0x4ef2,0x8846,0x91cd, +0x537d,0x6adb,0x696b,0x6c41,0x847a,0x589e,0x618e,0x66fe, +0x62ef,0x70dd,0x7511,0x75c7,0x7e52,0x84b8,0x8b49,0x8d08, +0x4e4b,0x53ea,0x54ab,0x5730,0x5740,0x5fd7,0x6301,0x6307, +0x646f,0x652f,0x65e8,0x667a,0x679d,0x67b3,0x6b62,0x6c60, +0x6c9a,0x6f2c,0x77e5,0x7825,0x7949,0x7957,0x7d19,0x80a2, +0x8102,0x81f3,0x829d,0x82b7,0x8718,0x8a8c,0xf9fc,0x8d04, +0x8dbe,0x9072,0x76f4,0x7a19,0x7a37,0x7e54,0x8077,0x5507, +0x55d4,0x5875,0x632f,0x6422,0x6649,0x664b,0x686d,0x699b, +0x6b84,0x6d25,0x6eb1,0x73cd,0x7468,0x74a1,0x755b,0x75b9, +0x76e1,0x771e,0x778b,0x79e6,0x7e09,0x7e1d,0x81fb,0x852f, +0x8897,0x8a3a,0x8cd1,0x8eeb,0x8fb0,0x9032,0x93ad,0x9663, +0x9673,0x9707,0x4f84,0x53f1,0x59ea,0x5ac9,0x5e19,0x684e, +0x74c6,0x75be,0x79e9,0x7a92,0x81a3,0x86ed,0x8cea,0x8dcc, +0x8fed,0x659f,0x6715,0xf9fd,0x57f7,0x6f57,0x7ddd,0x8f2f, +0x93f6,0x96c6,0x5fb5,0x61f2,0x6f84,0x4e14,0x4f98,0x501f, +0x53c9,0x55df,0x5d6f,0x5dee,0x6b21,0x6b64,0x78cb,0x7b9a, +0xf9fe,0x8e49,0x8eca,0x906e,0x6349,0x643e,0x7740,0x7a84, +0x932f,0x947f,0x9f6a,0x64b0,0x6faf,0x71e6,0x74a8,0x74da, +0x7ac4,0x7c12,0x7e82,0x7cb2,0x7e98,0x8b9a,0x8d0a,0x947d, +0x9910,0x994c,0x5239,0x5bdf,0x64e6,0x672d,0x7d2e,0x50ed, +0x53c3,0x5879,0x6158,0x6159,0x61fa,0x65ac,0x7ad9,0x8b92, +0x8b96,0x5009,0x5021,0x5275,0x5531,0x5a3c,0x5ee0,0x5f70, +0x6134,0x655e,0x660c,0x6636,0x66a2,0x69cd,0x6ec4,0x6f32, +0x7316,0x7621,0x7a93,0x8139,0x8259,0x83d6,0x84bc,0x50b5, +0x57f0,0x5bc0,0x5be8,0x5f69,0x63a1,0x7826,0x7db5,0x83dc, +0x8521,0x91c7,0x91f5,0x518a,0x67f5,0x7b56,0x8cac,0x51c4, +0x59bb,0x60bd,0x8655,0x501c,0xf9ff,0x5254,0x5c3a,0x617d, +0x621a,0x62d3,0x64f2,0x65a5,0x6ecc,0x7620,0x810a,0x8e60, +0x965f,0x96bb,0x4edf,0x5343,0x5598,0x5929,0x5ddd,0x64c5, +0x6cc9,0x6dfa,0x7394,0x7a7f,0x821b,0x85a6,0x8ce4,0x8e10, +0x9077,0x91e7,0x95e1,0x9621,0x97c6,0x51f8,0x54f2,0x5586, +0x5fb9,0x64a4,0x6f88,0x7db4,0x8f1f,0x8f4d,0x9435,0x50c9, +0x5c16,0x6cbe,0x6dfb,0x751b,0x77bb,0x7c3d,0x7c64,0x8a79, +0x8ac2,0x581e,0x59be,0x5e16,0x6377,0x7252,0x758a,0x776b, +0x8adc,0x8cbc,0x8f12,0x5ef3,0x6674,0x6df8,0x807d,0x83c1, +0x8acb,0x9751,0x9bd6,0xfa00,0x5243,0x66ff,0x6d95,0x6eef, +0x7de0,0x8ae6,0x902e,0x905e,0x9ad4,0x521d,0x527f,0x54e8, +0x6194,0x6284,0x62db,0x68a2,0x6912,0x695a,0x6a35,0x7092, +0x7126,0x785d,0x7901,0x790e,0x79d2,0x7a0d,0x8096,0x8278, +0x82d5,0x8349,0x8549,0x8c82,0x8d85,0x9162,0x918b,0x91ae, +0x4fc3,0x56d1,0x71ed,0x77d7,0x8700,0x89f8,0x5bf8,0x5fd6, +0x6751,0x90a8,0x53e2,0x585a,0x5bf5,0x60a4,0x6181,0x6460, +0x7e3d,0x8070,0x8525,0x9283,0x64ae,0x50ac,0x5d14,0x6700, +0x589c,0x62bd,0x63a8,0x690e,0x6978,0x6a1e,0x6e6b,0x76ba, +0x79cb,0x82bb,0x8429,0x8acf,0x8da8,0x8ffd,0x9112,0x914b, +0x919c,0x9310,0x9318,0x939a,0x96db,0x9a36,0x9c0d,0x4e11, +0x755c,0x795d,0x7afa,0x7b51,0x7bc9,0x7e2e,0x84c4,0x8e59, +0x8e74,0x8ef8,0x9010,0x6625,0x693f,0x7443,0x51fa,0x672e, +0x9edc,0x5145,0x5fe0,0x6c96,0x87f2,0x885d,0x8877,0x60b4, +0x81b5,0x8403,0x8d05,0x53d6,0x5439,0x5634,0x5a36,0x5c31, +0x708a,0x7fe0,0x805a,0x8106,0x81ed,0x8da3,0x9189,0x9a5f, +0x9df2,0x5074,0x4ec4,0x53a0,0x60fb,0x6e2c,0x5c64,0x4f88, +0x5024,0x55e4,0x5cd9,0x5e5f,0x6065,0x6894,0x6cbb,0x6dc4, +0x71be,0x75d4,0x75f4,0x7661,0x7a1a,0x7a49,0x7dc7,0x7dfb, +0x7f6e,0x81f4,0x86a9,0x8f1c,0x96c9,0x99b3,0x9f52,0x5247, +0x52c5,0x98ed,0x89aa,0x4e03,0x67d2,0x6f06,0x4fb5,0x5be2, +0x6795,0x6c88,0x6d78,0x741b,0x7827,0x91dd,0x937c,0x87c4, +0x79e4,0x7a31,0x5feb,0x4ed6,0x54a4,0x553e,0x58ae,0x59a5, +0x60f0,0x6253,0x62d6,0x6736,0x6955,0x8235,0x9640,0x99b1, +0x99dd,0x502c,0x5353,0x5544,0x577c,0xfa01,0x6258,0xfa02, +0x64e2,0x666b,0x67dd,0x6fc1,0x6fef,0x7422,0x7438,0x8a17, +0x9438,0x5451,0x5606,0x5766,0x5f48,0x619a,0x6b4e,0x7058, +0x70ad,0x7dbb,0x8a95,0x596a,0x812b,0x63a2,0x7708,0x803d, +0x8caa,0x5854,0x642d,0x69bb,0x5b95,0x5e11,0x6e6f,0xfa03, +0x8569,0x514c,0x53f0,0x592a,0x6020,0x614b,0x6b86,0x6c70, +0x6cf0,0x7b1e,0x80ce,0x82d4,0x8dc6,0x90b0,0x98b1,0xfa04, +0x64c7,0x6fa4,0x6491,0x6504,0x514e,0x5410,0x571f,0x8a0e, +0x615f,0x6876,0xfa05,0x75db,0x7b52,0x7d71,0x901a,0x5806, +0x69cc,0x817f,0x892a,0x9000,0x9839,0x5078,0x5957,0x59ac, +0x6295,0x900f,0x9b2a,0x615d,0x7279,0x95d6,0x5761,0x5a46, +0x5df4,0x628a,0x64ad,0x64fa,0x6777,0x6ce2,0x6d3e,0x722c, +0x7436,0x7834,0x7f77,0x82ad,0x8ddb,0x9817,0x5224,0x5742, +0x677f,0x7248,0x74e3,0x8ca9,0x8fa6,0x9211,0x962a,0x516b, +0x53ed,0x634c,0x4f69,0x5504,0x6096,0x6557,0x6c9b,0x6d7f, +0x724c,0x72fd,0x7a17,0x8987,0x8c9d,0x5f6d,0x6f8e,0x70f9, +0x81a8,0x610e,0x4fbf,0x504f,0x6241,0x7247,0x7bc7,0x7de8, +0x7fe9,0x904d,0x97ad,0x9a19,0x8cb6,0x576a,0x5e73,0x67b0, +0x840d,0x8a55,0x5420,0x5b16,0x5e63,0x5ee2,0x5f0a,0x6583, +0x80ba,0x853d,0x9589,0x965b,0x4f48,0x5305,0x530d,0x530f, +0x5486,0x54fa,0x5703,0x5e03,0x6016,0x629b,0x62b1,0x6355, +0xfa06,0x6ce1,0x6d66,0x75b1,0x7832,0x80de,0x812f,0x82de, +0x8461,0x84b2,0x888d,0x8912,0x900b,0x92ea,0x98fd,0x9b91, +0x5e45,0x66b4,0x66dd,0x7011,0x7206,0xfa07,0x4ff5,0x527d, +0x5f6a,0x6153,0x6753,0x6a19,0x6f02,0x74e2,0x7968,0x8868, +0x8c79,0x98c7,0x98c4,0x9a43,0x54c1,0x7a1f,0x6953,0x8af7, +0x8c4a,0x98a8,0x99ae,0x5f7c,0x62ab,0x75b2,0x76ae,0x88ab, +0x907f,0x9642,0x5339,0x5f3c,0x5fc5,0x6ccc,0x73cc,0x7562, +0x758b,0x7b46,0x82fe,0x999d,0x4e4f,0x903c,0x4e0b,0x4f55, +0x53a6,0x590f,0x5ec8,0x6630,0x6cb3,0x7455,0x8377,0x8766, +0x8cc0,0x9050,0x971e,0x9c15,0x58d1,0x5b78,0x8650,0x8b14, +0x9db4,0x5bd2,0x6068,0x608d,0x65f1,0x6c57,0x6f22,0x6fa3, +0x701a,0x7f55,0x7ff0,0x9591,0x9592,0x9650,0x97d3,0x5272, +0x8f44,0x51fd,0x542b,0x54b8,0x5563,0x558a,0x6abb,0x6db5, +0x7dd8,0x8266,0x929c,0x9677,0x9e79,0x5408,0x54c8,0x76d2, +0x86e4,0x95a4,0x95d4,0x965c,0x4ea2,0x4f09,0x59ee,0x5ae6, +0x5df7,0x6052,0x6297,0x676d,0x6841,0x6c86,0x6e2f,0x7f38, +0x809b,0x822a,0xfa08,0xfa09,0x9805,0x4ea5,0x5055,0x54b3, +0x5793,0x595a,0x5b69,0x5bb3,0x61c8,0x6977,0x6d77,0x7023, +0x87f9,0x89e3,0x8a72,0x8ae7,0x9082,0x99ed,0x9ab8,0x52be, +0x6838,0x5016,0x5e78,0x674f,0x8347,0x884c,0x4eab,0x5411, +0x56ae,0x73e6,0x9115,0x97ff,0x9909,0x9957,0x9999,0x5653, +0x589f,0x865b,0x8a31,0x61b2,0x6af6,0x737b,0x8ed2,0x6b47, +0x96aa,0x9a57,0x5955,0x7200,0x8d6b,0x9769,0x4fd4,0x5cf4, +0x5f26,0x61f8,0x665b,0x6ceb,0x70ab,0x7384,0x73b9,0x73fe, +0x7729,0x774d,0x7d43,0x7d62,0x7e23,0x8237,0x8852,0xfa0a, +0x8ce2,0x9249,0x986f,0x5b51,0x7a74,0x8840,0x9801,0x5acc, +0x4fe0,0x5354,0x593e,0x5cfd,0x633e,0x6d79,0x72f9,0x8105, +0x8107,0x83a2,0x92cf,0x9830,0x4ea8,0x5144,0x5211,0x578b, +0x5f62,0x6cc2,0x6ece,0x7005,0x7050,0x70af,0x7192,0x73e9, +0x7469,0x834a,0x87a2,0x8861,0x9008,0x90a2,0x93a3,0x99a8, +0x516e,0x5f57,0x60e0,0x6167,0x66b3,0x8559,0x8e4a,0x91af, +0x978b,0x4e4e,0x4e92,0x547c,0x58d5,0x58fa,0x597d,0x5cb5, +0x5f27,0x6236,0x6248,0x660a,0x6667,0x6beb,0x6d69,0x6dcf, +0x6e56,0x6ef8,0x6f94,0x6fe0,0x6fe9,0x705d,0x72d0,0x7425, +0x745a,0x74e0,0x7693,0x795c,0x7cca,0x7e1e,0x80e1,0x82a6, +0x846b,0x84bf,0x864e,0x865f,0x8774,0x8b77,0x8c6a,0x93ac, +0x9800,0x9865,0x60d1,0x6216,0x9177,0x5a5a,0x660f,0x6df7, +0x6e3e,0x743f,0x9b42,0x5ffd,0x60da,0x7b0f,0x54c4,0x5f18, +0x6c5e,0x6cd3,0x6d2a,0x70d8,0x7d05,0x8679,0x8a0c,0x9d3b, +0x5316,0x548c,0x5b05,0x6a3a,0x706b,0x7575,0x798d,0x79be, +0x82b1,0x83ef,0x8a71,0x8b41,0x8ca8,0x9774,0xfa0b,0x64f4, +0x652b,0x78ba,0x78bb,0x7a6b,0x4e38,0x559a,0x5950,0x5ba6, +0x5e7b,0x60a3,0x63db,0x6b61,0x6665,0x6853,0x6e19,0x7165, +0x74b0,0x7d08,0x9084,0x9a69,0x9c25,0x6d3b,0x6ed1,0x733e, +0x8c41,0x95ca,0x51f0,0x5e4c,0x5fa8,0x604d,0x60f6,0x6130, +0x614c,0x6643,0x6644,0x69a5,0x6cc1,0x6e5f,0x6ec9,0x6f62, +0x714c,0x749c,0x7687,0x7bc1,0x7c27,0x8352,0x8757,0x9051, +0x968d,0x9ec3,0x532f,0x56de,0x5efb,0x5f8a,0x6062,0x6094, +0x61f7,0x6666,0x6703,0x6a9c,0x6dee,0x6fae,0x7070,0x736a, +0x7e6a,0x81be,0x8334,0x86d4,0x8aa8,0x8cc4,0x5283,0x7372, +0x5b96,0x6a6b,0x9404,0x54ee,0x5686,0x5b5d,0x6548,0x6585, +0x66c9,0x689f,0x6d8d,0x6dc6,0x723b,0x80b4,0x9175,0x9a4d, +0x4faf,0x5019,0x539a,0x540e,0x543c,0x5589,0x55c5,0x5e3f, +0x5f8c,0x673d,0x7166,0x73dd,0x9005,0x52db,0x52f3,0x5864, +0x58ce,0x7104,0x718f,0x71fb,0x85b0,0x8a13,0x6688,0x85a8, +0x55a7,0x6684,0x714a,0x8431,0x5349,0x5599,0x6bc1,0x5f59, +0x5fbd,0x63ee,0x6689,0x7147,0x8af1,0x8f1d,0x9ebe,0x4f11, +0x643a,0x70cb,0x7566,0x8667,0x6064,0x8b4e,0x9df8,0x5147, +0x51f6,0x5308,0x6d36,0x80f8,0x9ed1,0x6615,0x6b23,0x7098, +0x75d5,0x5403,0x5c79,0x7d07,0x8a16,0x6b20,0x6b3d,0x6b46, +0x5438,0x6070,0x6d3d,0x7fd5,0x8208,0x50d6,0x51de,0x559c, +0x566b,0x56cd,0x59ec,0x5b09,0x5e0c,0x6199,0x6198,0x6231, +0x665e,0x66e6,0x7199,0x71b9,0x71ba,0x72a7,0x79a7,0x7a00, +0x7fb2,0x8a70}; + +const int uhc3_ucs_table_size = (sizeof(uhc3_ucs_table)/sizeof(unsigned short)); + +/* UCS -> UHC */ +const unsigned short ucs_a1_uhc_table[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000a,0x000b,0x000c,0x000d,0x000e,0x000f, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001a,0x001b,0x001c,0x001d,0x001e,0x001f, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002a,0x002b,0x002c,0x002d,0x002e,0x002f, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003a,0x003b,0x003c,0x003d,0x003e,0x003f, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004a,0x004b,0x004c,0x004d,0x004e,0x004f, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005a,0x005b,0x005c,0x005d,0x005e,0x005f, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006a,0x006b,0x006c,0x006d,0x006e,0x006f, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007a,0x007b,0x007c,0x007d,0x007e,0x007f, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xa2ae,0x0000,0x0000,0xa2b4,0x0000,0x0000,0xa1d7, +0xa1a7,0x0000,0xa8a3,0x0000,0x0000,0xa1a9,0xa2e7,0x0000, +0xa1c6,0xa1be,0xa9f7,0xa9f8,0xa2a5,0x0000,0xa2d2,0xa1a4, +0xa2ac,0xa9f6,0xa8ac,0x0000,0xa8f9,0xa8f6,0xa8fa,0xa2af, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xa8a1,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa8a2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xa1bf, +0xa8aa,0x0000,0x0000,0x0000,0x0000,0x0000,0xa8ad,0xa9ac, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xa9a1,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa9a3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xa1c0, +0xa9aa,0x0000,0x0000,0x0000,0x0000,0x0000,0xa9ad,0x0000, +/* 0x0100 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xa9a2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xa8a4,0xa9a4, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xa9a5,0xa8a6,0xa9a6,0x0000,0x0000,0x0000,0x0000, +0xa9a7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xa8a8, +0xa9a8,0xa8a9,0xa9a9,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xa9b0,0xa8af,0xa9af,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xa8ab,0xa9ab,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xa8ae,0xa9ae, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x0200 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xa2a7, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa2b0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa2a8,0xa2ab,0xa2aa,0xa2ad,0x0000,0xa2a9,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x0300 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xa5c1,0xa5c2,0xa5c3,0xa5c4,0xa5c5,0xa5c6,0xa5c7, +0xa5c8,0xa5c9,0xa5ca,0xa5cb,0xa5cc,0xa5cd,0xa5ce,0xa5cf, +0xa5d0,0xa5d1,0x0000,0xa5d2,0xa5d3,0xa5d4,0xa5d5,0xa5d6, +0xa5d7,0xa5d8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xa5e1,0xa5e2,0xa5e3,0xa5e4,0xa5e5,0xa5e6,0xa5e7, +0xa5e8,0xa5e9,0xa5ea,0xa5eb,0xa5ec,0xa5ed,0xa5ee,0xa5ef, +0xa5f0,0xa5f1,0x0000,0xa5f2,0xa5f3,0xa5f4,0xa5f5,0xa5f6, +0xa5f7,0xa5f8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x0400 */ +0x0000,0xaca7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xaca1,0xaca2,0xaca3,0xaca4,0xaca5,0xaca6,0xaca8,0xaca9, +0xacaa,0xacab,0xacac,0xacad,0xacae,0xacaf,0xacb0,0xacb1, +0xacb2,0xacb3,0xacb4,0xacb5,0xacb6,0xacb7,0xacb8,0xacb9, +0xacba,0xacbb,0xacbc,0xacbd,0xacbe,0xacbf,0xacc0,0xacc1, +0xacd1,0xacd2,0xacd3,0xacd4,0xacd5,0xacd6,0xacd8,0xacd9, +0xacda,0xacdb,0xacdc,0xacdd,0xacde,0xacdf,0xace0,0xace1, +0xace2,0xace3,0xace4,0xace5,0xace6,0xace7,0xace8,0xace9, +0xacea,0xaceb,0xacec,0xaced,0xacee,0xacef,0xacf0,0xacf1, +0x0000,0xacd7}; + +const int ucs_a1_uhc_table_min = 0x0000; +const int ucs_a1_uhc_table_max = 0x0000 + (sizeof(ucs_a1_uhc_table)/sizeof(unsigned short)); + +const unsigned short ucs_a2_uhc_table[] = { +/* 0x2000 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xa1aa,0x0000,0x0000, +0xa1ae,0xa1af,0x0000,0x0000,0xa1b0,0xa1b1,0x0000,0x0000, +0xa2d3,0xa2d4,0x0000,0x0000,0x0000,0xa1a5,0xa1a6,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa2b6,0x0000,0xa1c7,0xa1c8,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xa1d8,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xa9f9,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xa9fa, +0x0000,0xa9fb,0xa9fc,0xa9fd,0xa9fe,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xa2e6,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x2100 */ +0x0000,0x0000,0x0000,0xa1c9,0x0000,0x0000,0x0000,0x0000, +0x0000,0xa2b5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xa7a4,0x0000,0x0000,0xa2e0,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xa2e5,0xa2e2,0x0000,0x0000,0x0000,0xa7d9,0x0000, +0x0000,0x0000,0x0000,0xa1ca,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xa8f7,0xa8f8,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xa8fb,0xa8fc,0xa8fd,0xa8fe,0x0000, +0xa5b0,0xa5b1,0xa5b2,0xa5b3,0xa5b4,0xa5b5,0xa5b6,0xa5b7, +0xa5b8,0xa5b9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa5a1,0xa5a2,0xa5a3,0xa5a4,0xa5a5,0xa5a6,0xa5a7,0xa5a8, +0xa5a9,0xa5aa,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa1e7,0xa1e8,0xa1e6,0xa1e9,0xa1ea,0xa2d5,0xa2d8,0xa2d6, +0xa2d9,0xa2d7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xa2a1,0x0000,0xa2a2,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa2a3,0x0000,0xa1d3,0xa2a4,0x0000,0x0000,0x0000,0xa1d4, +0xa1f4,0x0000,0x0000,0xa1f5,0x0000,0x0000,0x0000,0xa2b3, +0x0000,0xa2b2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xa1ee,0x0000,0x0000,0xa1f0,0xa1c4,0x0000, +0xa1d0,0x0000,0x0000,0x0000,0x0000,0xa1ab,0x0000,0xa1fc, +0xa1fd,0xa1fb,0xa1fa,0xa1f2,0xa1f3,0x0000,0xa2b1,0x0000, +0x0000,0x0000,0x0000,0x0000,0xa1c5,0xa1f1,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xa1ad,0xa1ef,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xa1d6,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa1c1,0xa1d5,0x0000,0x0000,0xa1c2,0xa1c3,0x0000,0x0000, +0x0000,0x0000,0xa1ec,0xa1ed,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xa1f8,0xa1f9,0x0000,0x0000,0xa1f6,0xa1f7, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xa2c1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xa1d1,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x2300 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xa1d2,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x2400 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa8e7,0xa8e8,0xa8e9,0xa8ea,0xa8eb,0xa8ec,0xa8ed,0xa8ee, +0xa8ef,0xa8f0,0xa8f1,0xa8f2,0xa8f3,0xa8f4,0xa8f5,0x0000, +0x0000,0x0000,0x0000,0x0000,0xa9e7,0xa9e8,0xa9e9,0xa9ea, +0xa9eb,0xa9ec,0xa9ed,0xa9ee,0xa9ef,0xa9f0,0xa9f1,0xa9f2, +0xa9f3,0xa9f4,0xa9f5,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xa9cd,0xa9ce,0xa9cf,0xa9d0, +0xa9d1,0xa9d2,0xa9d3,0xa9d4,0xa9d5,0xa9d6,0xa9d7,0xa9d8, +0xa9d9,0xa9da,0xa9db,0xa9dc,0xa9dd,0xa9de,0xa9df,0xa9e0, +0xa9e1,0xa9e2,0xa9e3,0xa9e4,0xa9e5,0xa9e6,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa8cd,0xa8ce,0xa8cf,0xa8d0,0xa8d1,0xa8d2,0xa8d3,0xa8d4, +0xa8d5,0xa8d6,0xa8d7,0xa8d8,0xa8d9,0xa8da,0xa8db,0xa8dc, +0xa8dd,0xa8de,0xa8df,0xa8e0,0xa8e1,0xa8e2,0xa8e3,0xa8e4, +0xa8e5,0xa8e6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa6a1,0xa6ac,0xa6a2,0xa6ad,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xa6a3,0xa6c8,0xa6c7,0xa6ae, +0xa6a4,0xa6c2,0xa6c1,0xa6af,0xa6a6,0xa6c6,0xa6c5,0xa6b1, +0xa6a5,0xa6c4,0xa6c3,0xa6b0,0xa6a7,0xa6bc,0xa6c9,0xa6ca, +0xa6b7,0xa6cb,0xa6cc,0xa6b2,0xa6a9,0xa6be,0xa6cd,0xa6ce, +0xa6b9,0xa6cf,0xa6d0,0xa6b4,0xa6a8,0xa6d1,0xa6d2,0xa6b8, +0xa6bd,0xa6d3,0xa6d4,0xa6b3,0xa6aa,0xa6d5,0xa6d6,0xa6ba, +0xa6bf,0xa6d7,0xa6d8,0xa6b5,0xa6ab,0xa6d9,0xa6da,0xa6bb, +0xa6db,0xa6dc,0xa6c0,0xa6dd,0xa6de,0xa6df,0xa6e0,0xa6e1, +0xa6e2,0xa6e3,0xa6e4,0xa6b6,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xa2c6,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa1e1,0xa1e0,0x0000,0xa2c3,0xa2c7,0xa2c8,0xa2cb,0xa2ca, +0xa2c9,0xa2cc,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xa1e3,0xa1e2,0x0000,0x0000,0xa2ba,0xa2b9, +0x0000,0x0000,0x0000,0x0000,0xa1e5,0xa1e4,0x0000,0x0000, +0xa2b8,0xa2b7,0x0000,0x0000,0x0000,0x0000,0xa1df,0xa1de, +0xa2c2,0x0000,0x0000,0xa1db,0x0000,0x0000,0xa1dd,0xa1dc, +0xa2c4,0xa2c5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x2600 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0xa1da,0xa1d9,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xa2cf,0xa2ce, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xa2d0,0x0000,0xa2d1,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa1cf,0x0000,0xa1ce,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa2bc,0xa2bd,0x0000,0xa2c0,0xa2bb,0xa2be,0x0000,0xa2bf, +0xa2cd,0xa2db,0xa2dc,0x0000,0xa2dd,0xa2da}; + +const int ucs_a2_uhc_table_min = 0x2000; +const int ucs_a2_uhc_table_max = 0x2000 + (sizeof(ucs_a2_uhc_table)/sizeof(unsigned short)); + +const unsigned short ucs_a3_uhc_table[] = { +/* 0x2f00 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa1a1,0xa1a2,0xa1a3,0xa1a8,0x0000,0x0000,0x0000,0x0000, +0xa1b4,0xa1b5,0xa1b6,0xa1b7,0xa1b8,0xa1b9,0xa1ba,0xa1bb, +0xa1bc,0xa1bd,0x0000,0xa1eb,0xa1b2,0xa1b3,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xaaa1,0xaaa2,0xaaa3,0xaaa4,0xaaa5,0xaaa6,0xaaa7, +0xaaa8,0xaaa9,0xaaaa,0xaaab,0xaaac,0xaaad,0xaaae,0xaaaf, +0xaab0,0xaab1,0xaab2,0xaab3,0xaab4,0xaab5,0xaab6,0xaab7, +0xaab8,0xaab9,0xaaba,0xaabb,0xaabc,0xaabd,0xaabe,0xaabf, +0xaac0,0xaac1,0xaac2,0xaac3,0xaac4,0xaac5,0xaac6,0xaac7, +0xaac8,0xaac9,0xaaca,0xaacb,0xaacc,0xaacd,0xaace,0xaacf, +0xaad0,0xaad1,0xaad2,0xaad3,0xaad4,0xaad5,0xaad6,0xaad7, +0xaad8,0xaad9,0xaada,0xaadb,0xaadc,0xaadd,0xaade,0xaadf, +0xaae0,0xaae1,0xaae2,0xaae3,0xaae4,0xaae5,0xaae6,0xaae7, +0xaae8,0xaae9,0xaaea,0xaaeb,0xaaec,0xaaed,0xaaee,0xaaef, +0xaaf0,0xaaf1,0xaaf2,0xaaf3,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xaba1,0xaba2,0xaba3,0xaba4,0xaba5,0xaba6,0xaba7, +0xaba8,0xaba9,0xabaa,0xabab,0xabac,0xabad,0xabae,0xabaf, +0xabb0,0xabb1,0xabb2,0xabb3,0xabb4,0xabb5,0xabb6,0xabb7, +0xabb8,0xabb9,0xabba,0xabbb,0xabbc,0xabbd,0xabbe,0xabbf, +0xabc0,0xabc1,0xabc2,0xabc3,0xabc4,0xabc5,0xabc6,0xabc7, +0xabc8,0xabc9,0xabca,0xabcb,0xabcc,0xabcd,0xabce,0xabcf, +0xabd0,0xabd1,0xabd2,0xabd3,0xabd4,0xabd5,0xabd6,0xabd7, +0xabd8,0xabd9,0xabda,0xabdb,0xabdc,0xabdd,0xabde,0xabdf, +0xabe0,0xabe1,0xabe2,0xabe3,0xabe4,0xabe5,0xabe6,0xabe7, +0xabe8,0xabe9,0xabea,0xabeb,0xabec,0xabed,0xabee,0xabef, +0xabf0,0xabf1,0xabf2,0xabf3,0xabf4,0xabf5,0xabf6,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x3100 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xa4a1,0xa4a2,0xa4a3,0xa4a4,0xa4a5,0xa4a6,0xa4a7, +0xa4a8,0xa4a9,0xa4aa,0xa4ab,0xa4ac,0xa4ad,0xa4ae,0xa4af, +0xa4b0,0xa4b1,0xa4b2,0xa4b3,0xa4b4,0xa4b5,0xa4b6,0xa4b7, +0xa4b8,0xa4b9,0xa4ba,0xa4bb,0xa4bc,0xa4bd,0xa4be,0xa4bf, +0xa4c0,0xa4c1,0xa4c2,0xa4c3,0xa4c4,0xa4c5,0xa4c6,0xa4c7, +0xa4c8,0xa4c9,0xa4ca,0xa4cb,0xa4cc,0xa4cd,0xa4ce,0xa4cf, +0xa4d0,0xa4d1,0xa4d2,0xa4d3,0xa4d4,0xa4d5,0xa4d6,0xa4d7, +0xa4d8,0xa4d9,0xa4da,0xa4db,0xa4dc,0xa4dd,0xa4de,0xa4df, +0xa4e0,0xa4e1,0xa4e2,0xa4e3,0xa4e4,0xa4e5,0xa4e6,0xa4e7, +0xa4e8,0xa4e9,0xa4ea,0xa4eb,0xa4ec,0xa4ed,0xa4ee,0xa4ef, +0xa4f0,0xa4f1,0xa4f2,0xa4f3,0xa4f4,0xa4f5,0xa4f6,0xa4f7, +0xa4f8,0xa4f9,0xa4fa,0xa4fb,0xa4fc,0xa4fd,0xa4fe,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa9b1,0xa9b2,0xa9b3,0xa9b4,0xa9b5,0xa9b6,0xa9b7,0xa9b8, +0xa9b9,0xa9ba,0xa9bb,0xa9bc,0xa9bd,0xa9be,0xa9bf,0xa9c0, +0xa9c1,0xa9c2,0xa9c3,0xa9c4,0xa9c5,0xa9c6,0xa9c7,0xa9c8, +0xa9c9,0xa9ca,0xa9cb,0xa9cc,0xa2df,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa8b1,0xa8b2,0xa8b3,0xa8b4,0xa8b5,0xa8b6,0xa8b7,0xa8b8, +0xa8b9,0xa8ba,0xa8bb,0xa8bc,0xa8bd,0xa8be,0xa8bf,0xa8c0, +0xa8c1,0xa8c2,0xa8c3,0xa8c4,0xa8c5,0xa8c6,0xa8c7,0xa8c8, +0xa8c9,0xa8ca,0xa8cb,0xa8cc,0x0000,0x0000,0x0000,0xa2de, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x3300 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa7c9,0xa7ca,0xa7cb,0xa7cc,0xa7cd,0x0000,0x0000,0x0000, +0xa7ba,0xa7bb,0xa7dc,0xa7dd,0xa7de,0xa7b6,0xa7b7,0xa7b8, +0xa7d4,0xa7d5,0xa7d6,0xa7d7,0xa7d8,0xa7a1,0xa7a2,0xa7a3, +0xa7a5,0xa7ab,0xa7ac,0xa7ad,0xa7ae,0xa7af,0xa7b0,0xa7b1, +0xa7b2,0xa7b3,0xa7b4,0xa7a7,0xa7a8,0xa7a9,0xa7aa,0xa7bd, +0xa7be,0xa7e5,0xa7e6,0xa7e7,0xa7e8,0xa7e1,0xa7e2,0xa7e3, +0xa7bf,0xa7c0,0xa7c1,0xa7c2,0xa7c3,0xa7c4,0xa7c5,0xa7c6, +0xa7c7,0xa7c8,0xa7ce,0xa7cf,0xa7d0,0xa7d1,0xa7d2,0xa7d3, +0xa7da,0xa7db,0xa2e3,0xa7ec,0xa7a6,0xa7e0,0xa7ef,0xa2e1, +0xa7bc,0xa7ed,0xa7b5,0x0000,0x0000,0x0000,0x0000,0xa7b9, +0xa7ea,0x0000,0x0000,0xa7eb,0x0000,0x0000,0xa7df,0x0000, +0xa2e4,0x0000,0x0000,0xa7e4,0xa7ee,0xa7e9}; + +const int ucs_a3_uhc_table_min = 0x2f00; +const int ucs_a3_uhc_table_max = 0x2f00 + (sizeof(ucs_a3_uhc_table)/sizeof(unsigned short)); + +const unsigned short ucs_i_uhc_table[] = { +/* 0x4d00 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xece9,0xefcb,0x0000,0xf6d2,0x0000,0x0000,0x0000,0xd8b2, +0xeddb,0xdfb2,0xdfbe,0xf9bb,0x0000,0xdcf4,0x0000,0x0000, +0x0000,0xf5e4,0x0000,0x0000,0xf3a6,0xdde0,0xe1a6,0x0000, +0xcef8,0xdcb0,0x0000,0x0000,0x0000,0x0000,0xe3aa,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xf1e9,0x0000,0x0000, +0x0000,0x0000,0xcdfa,0x0000,0x0000,0x0000,0x0000,0x0000, +0xfcaf,0xd3a1,0x0000,0xf1ab,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xe7d1,0xd2ac,0x0000,0xcef9,0x0000,0x0000, +0x0000,0x0000,0x0000,0xf1fd,0x0000,0xdebf,0xfbba,0xf9b9, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xced2,0x0000, +0xe3ab,0xebe0,0x0000,0x0000,0x0000,0xcefa,0xcbf7,0xe5a5, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xcae1,0x0000,0xd4cc,0x0000,0x0000, +0x0000,0x0000,0x0000,0xeae1,0x0000,0x0000,0xdce3,0xdfad, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xcbeb,0x0000, +0x0000,0x0000,0xd5af,0x0000,0x0000,0x0000,0xd6f5,0x0000, +0xe5f8,0x0000,0x0000,0xdec0,0xeca3,0x0000,0xe9cd,0x0000, +0xeaa7,0xe9f6,0xfbbb,0x0000,0xe7e9,0xefcc,0x0000,0x0000, +0xd0e6,0x0000,0x0000,0xdec1,0x0000,0x0000,0xe4ac,0x0000, +0x0000,0xd8cc,0xf9f1,0x0000,0xcedf,0xfaa4,0xe6b2,0x0000, +0xfafb,0x0000,0x0000,0xfabd,0xccc8,0xefcd,0xd5d5,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd3a2,0x0000, +0x0000,0x0000,0xecd1,0x0000,0x0000,0x0000,0x0000,0x0000, +0xe4a7,0xecd2,0x0000,0x0000,0xf6b1,0x0000,0x0000,0xcefb, +0x0000,0x0000,0xd0d1,0xcbbf,0x0000,0xeda4,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xeda8,0xdec2,0xf6e2,0xeddc, +0xdcf5,0xe0b9,0x0000,0x0000,0x0000,0xd4ce,0x0000,0xf4b5, +0x0000,0x0000,0x0000,0xd3db,0xd6b5,0xeca4,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xe4e6,0x0000,0xf1ea,0x0000,0x0000,0x0000,0xcbec,0xcbc0, +0x0000,0x0000,0x0000,0xecf2,0x0000,0x0000,0x0000,0x0000, +/* 0x4f00 */ +0x0000,0xd0ea,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xf9f2,0xeca5,0xd0df,0x0000,0xe7ea,0xd0eb,0xdcd1, +0xdbe9,0xfdcc,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xdbd7, +0x0000,0x0000,0x0000,0x0000,0xdae1,0x0000,0xd6b6,0x0000, +0xe3df,0x0000,0xdec3,0x0000,0xdec4,0xcaa1,0x0000,0x0000, +0x0000,0x0000,0x0000,0xeeec,0x0000,0x0000,0xd3a3,0xeeb7, +0xf8cf,0x0000,0x0000,0x0000,0x0000,0xeac8,0xeeb8,0xf1ac, +0xf1a5,0xe9ce,0x0000,0x0000,0x0000,0xf9bc,0x0000,0x0000, +0x0000,0xe5f9,0xecea,0xddd6,0xedc2,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xf8a5,0x0000,0x0000,0x0000,0x0000,0x0000,0xe5ba, +0xdbd8,0x0000,0x0000,0xcaa2,0x0000,0x0000,0xd1cd,0x0000, +0x0000,0x0000,0xeeed,0x0000,0x0000,0x0000,0xeceb,0xdec5, +0x0000,0xe3e0,0x0000,0xcac9,0xf2e9,0x0000,0xd5ce,0x0000, +0xf6b6,0x0000,0xcec2,0xd6c7,0x0000,0xe3b4,0x0000,0xf1ad, +0x0000,0xeae2,0x0000,0x0000,0x0000,0x0000,0xd7c2,0x0000, +0xf3a7,0x0000,0x0000,0xcdea,0x0000,0xebee,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd9b2,0xfda5, +0x0000,0x0000,0x0000,0x0000,0x0000,0xf6d5,0xd5e2,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xf8b5, +0x0000,0x0000,0xccf5,0xf5b5,0xe4ad,0x0000,0x0000,0x0000, +0x0000,0xe7eb,0xf1d5,0x0000,0x0000,0x0000,0xf0bb,0x0000, +0x0000,0xe9b5,0x0000,0xccc9,0xfad5,0x0000,0x0000,0xe1d4, +0x0000,0x0000,0xd7d6,0x0000,0x0000,0xdcc1,0x0000,0xdec6, +0xfaef,0xe3e1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xe1f3,0xdcf6, +0x0000,0xcefc,0x0000,0xdbc4,0x0000,0xf8f1,0x0000,0x0000, +0xdce4,0x0000,0xe5ef,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x5000 */ +0x0000,0x0000,0xdcb1,0x0000,0x0000,0x0000,0xd5d6,0x0000, +0x0000,0xf3da,0x0000,0xcbc1,0x0000,0xdbc3,0x0000,0x0000, +0x0000,0xd9fa,0xd3ee,0x0000,0x0000,0x0000,0xfab8,0x0000, +0x0000,0xfda6,0xebef,0x0000,0xf4a6,0x0000,0xccca,0xf3a8, +0x0000,0xf3db,0x0000,0xdba7,0xf6b7,0x0000,0xcfe6,0xf0f2, +0xcbda,0x0000,0xe7d2,0xd7c3,0xf6f0,0xe8de,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xe5a6,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xe5e7,0x0000,0x0000,0x0000,0xcaa3, +0xcca7,0xeac9,0x0000,0x0000,0x0000,0x0000,0x0000,0xf8b6, +0x0000,0x0000,0x0000,0x0000,0x0000,0xfaa5,0x0000,0x0000, +0x0000,0x0000,0xf1ae,0x0000,0xefce,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xcbed,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xf6b0,0xefcf,0xe9cf,0x0000, +0xf7de,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xced3,0x0000,0x0000,0x0000,0x0000,0xdcf7,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xdba8,0x0000,0x0000, +0x0000,0xcbf8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xdfa1,0xdde1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xf5ca,0xe9b6,0x0000,0x0000, +0x0000,0x0000,0xe7ec,0xeeee,0x0000,0xf3f0,0x0000,0xdfbf, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xcccb,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xd0c1,0x0000,0x0000, +0x0000,0xf4d2,0xe0ba,0x0000,0x0000,0x0000,0x0000,0xdfc0, +0x0000,0xcee0,0x0000,0x0000,0x0000,0xdcd2,0xfdea,0x0000, +0x0000,0x0000,0xd6f6,0x0000,0x0000,0x0000,0xeaca,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xe8e9,0x0000,0xe3ac, +0x0000,0x0000,0x0000,0x0000,0x0000,0xf3d0,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xcaa4,0x0000,0xdbf8,0x0000,0x0000,0x0000,0xdec7, +0xebf0,0xf1d6,0x0000,0x0000,0xe5e2,0x0000,0xcccc,0x0000, +0x0000,0xcbfb,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xeae3,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xdfc1, +0x0000,0xd6ed,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xe9d0,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xeeb9,0x0000,0x0000,0x0000,0x0000,0xd5e3, +0x0000,0x0000,0xd1d3,0x0000,0xe5f0,0x0000,0x0000,0x0000, +0xe8b4,0xebc3,0x0000,0xeaaa,0xfafc,0xf5f6,0xf0bc,0xfdd4, +0xe0bb,0xcec3,0x0000,0xd0ba,0xf7ba,0xd8f3,0xf7cd,0x0000, +0x0000,0x0000,0xe4ae,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xd4df,0x0000,0x0000,0x0000, +0x0000,0x0000,0xd0e7,0x0000,0x0000,0xecfd,0x0000,0xd2ae, +0xeeef,0xd5d7,0xeae4,0xf8a2,0xcdeb,0xd7bf,0xfbb1,0x0000, +0x0000,0xcdec,0x0000,0x0000,0x0000,0xdcb2,0xd0ec,0xcefd, +0xeef0,0x0000,0x0000,0x0000,0xccc2,0x0000,0x0000,0x0000, +0xd0ed,0x0000,0x0000,0x0000,0x0000,0x0000,0xe5f7,0x0000, +0x0000,0x0000,0xf3fc,0x0000,0x0000,0xeea2,0x0000,0x0000, +0x0000,0x0000,0xd9b3,0x0000,0x0000,0xd8f4,0x0000,0xe9b7, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xceae,0x0000,0x0000,0x0000,0x0000,0xd9a2,0x0000,0x0000, +0x0000,0x0000,0xd8f1,0x0000,0xd4cf,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xe5a7,0xd5d2, +0x0000,0x0000,0x0000,0x0000,0x0000,0xd6a9,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xf4a2,0x0000,0xf1d7,0x0000, +0x0000,0xd5d8,0x0000,0xf0bd,0xd7d0,0xd4d0,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xd7cf,0xebea,0xfdeb,0x0000, +0x0000,0xdbed,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xfcc5,0xcbc2,0x0000,0x0000,0x0000,0x0000,0xfdd5,0x0000, +0xf4c8,0xe8ea,0xf5f3,0x0000,0x0000,0xf9de,0x0000,0x0000, +0xd3ef,0x0000,0x0000,0xecd3,0x0000,0x0000,0xddc2,0xefb7, +0xe7d4,0x0000,0xcaca,0x0000,0x0000,0x0000,0xd9fb,0x0000, +0x0000,0xfafd,0x0000,0x0000,0x0000,0x0000,0x0000,0xd6aa, +0x0000,0x0000,0x0000,0x0000,0x0000,0xf4f8,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xf7f7,0xdcac,0x0000,0x0000, +0x0000,0xd7d7,0xdfa2,0x0000,0x0000,0x0000,0xcebe,0x0000, +0xd3f0,0x0000,0x0000,0x0000,0x0000,0x0000,0xf0a4,0xe1ec, +0xcfe7,0xf3cb,0xeda9,0xcabe,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xf4ef,0x0000,0x0000,0x0000,0xf6ce, +0x0000,0x0000,0xdefb,0xd0bb,0xd5b7,0xeef1,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xf4a8,0x0000,0xdcf8,0x0000, +0x0000,0x0000,0x0000,0xcba7,0x0000,0xdace,0x0000,0x0000, +0x0000,0xe0e6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xeda5,0xeef2,0x0000,0x0000,0x0000,0x0000,0xdcf9, +0x0000,0x0000,0xf9dc,0x0000,0x0000,0xf3dc,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xf8f2,0x0000,0xf4f9, +0x0000,0x0000,0x0000,0xfcf1,0x0000,0x0000,0x0000,0xd0bc, +0xdbf9,0xd7b1,0x0000,0x0000,0x0000,0xcbfc,0x0000,0x0000, +0x0000,0xf0a5,0xcbfd,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xd5f4,0x0000,0x0000,0x0000,0xcded, +0xcaa5,0x0000,0x0000,0xd6ab,0xd0c2,0x0000,0x0000,0x0000, +0x0000,0xf0be,0xd2bd,0xcca4,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xfab6,0x0000, +0x0000,0xcccd,0x0000,0xdafa,0x0000,0xf6cf,0x0000,0xe9b8, +0x0000,0xd8f5,0x0000,0x0000,0x0000,0xccce,0x0000,0x0000, +0x0000,0x0000,0xd7cd,0x0000,0x0000,0xd4d1,0xe9ed,0x0000, +0xcaeb,0xd9e2,0x0000,0xfdb2,0x0000,0xe3ad,0xd6cc,0xd9b4, +0x0000,0x0000,0xe1a7,0xeed3,0xd0c3,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xfdb3,0x0000,0xd5e4,0x0000,0x0000, +0xcfe8,0x0000,0xedc3,0xd0b2,0x0000,0x0000,0xcefe,0xdaa8, +/* 0x5300 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0xf8d0,0x0000,0x0000, +0xfdd6,0x0000,0x0000,0x0000,0x0000,0xf8d1,0x0000,0xf8d2, +0xdcd3,0x0000,0x0000,0x0000,0x0000,0xdde2,0xfbf9,0xddc1, +0x0000,0xe3b5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xeddd,0xcec4,0x0000,0xcba1,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xdde3,0x0000,0x0000,0x0000,0x0000,0xfcdd, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xf9af,0x0000,0x0000,0x0000,0x0000,0x0000,0xd2fb, +0xcfa1,0xe4a8,0x0000,0xf4b6,0xecfe,0x0000,0x0000,0xe3ae, +0xe7ed,0xfdc1,0xdae2,0x0000,0x0000,0xd8b3,0x0000,0x0000, +0x0000,0xdde4,0xf0ef,0xf6f1,0xfaf0,0x0000,0x0000,0xd1f5, +0x0000,0x0000,0xdacf,0x0000,0xdcd4,0x0000,0xdca6,0x0000, +0xefbf,0x0000,0x0000,0x0000,0x0000,0x0000,0xcecf,0x0000, +0xe0d9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd9d6, +0xecd4,0xeacb,0x0000,0x0000,0xcabf,0xd5b0,0x0000,0xcfe9, +0x0000,0x0000,0x0000,0x0000,0x0000,0xf1ed,0x0000,0xcccf, +0x0000,0x0000,0x0000,0x0000,0xe4f8,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xe4ed,0x0000,0x0000,0x0000,0x0000, +0xd7d8,0x0000,0xfda7,0x0000,0x0000,0x0000,0x0000,0xeaab, +0xf6b2,0x0000,0x0000,0x0000,0x0000,0xcff0,0xf9bd,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xe6f4,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xcbdb,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xf3d1,0x0000,0x0000,0x0000,0x0000, +0xe9d1,0xf3a9,0xd0e0,0xe9d2,0x0000,0xdae3,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xe2d2,0x0000,0xf6a2,0xe1f4, +0x0000,0x0000,0x0000,0xdae4,0x0000,0x0000,0x0000,0x0000, +0x0000,0xe7d5,0xf5bf,0xcfa2,0xcdaf,0xcfa3,0x0000,0x0000, +0x0000,0xcdb0,0xf1fe,0xd0a3,0xe1af,0xf8a3,0x0000,0xcaa6, +0xf7bb,0xf2ea,0xdec8,0xe9d3,0x0000,0x0000,0x0000,0x0000, +0xdec9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x5400 */ +0x0000,0x0000,0x0000,0xfdde,0xcac0,0x0000,0x0000,0x0000, +0xf9ea,0xd1ce,0xeed4,0x0000,0xd4d2,0xd9a3,0xfda8,0xd7d9, +0xf7ce,0xfabe,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xcfd6,0x0000,0xd7f0,0x0000,0xebe1, +0xf8c5,0x0000,0x0000,0x0000,0x0000,0x0000,0xdcfa,0x0000, +0x0000,0xddc3,0x0000,0xf9df,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xe7ef,0x0000,0x0000,0x0000,0x0000, +0xfde5,0xf6a3,0x0000,0xd9fc,0xfda9,0x0000,0xe7ee,0x0000, +0x0000,0x0000,0xd5e5,0x0000,0x0000,0x0000,0x0000,0x0000, +0xefd0,0x0000,0xcdb1,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xf7a2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xf1b2,0x0000,0xf1b1,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xcdb2,0x0000,0xdaab,0x0000,0xcaa7,0x0000,0x0000, +0x0000,0x0000,0x0000,0xe3e2,0xfbbc,0xd9a4,0x0000,0x0000, +0xeeba,0x0000,0x0000,0x0000,0x0000,0x0000,0xf8d3,0x0000, +0x0000,0x0000,0x0000,0x0000,0xfbfa,0x0000,0xcfa4,0x0000, +0xdcfb,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xf6e3,0x0000,0x0000,0x0000, +0xedaa,0x0000,0x0000,0xf2a1,0xcee1,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xfaa6,0x0000,0x0000,0x0000,0x0000, +0xf9e0,0x0000,0x0000,0x0000,0x0000,0xecd6,0x0000,0x0000, +0xe4ee,0xf9a1,0x0000,0x0000,0xfbef,0x0000,0x0000,0x0000, +0xf9eb,0xeea3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xeaac,0x0000,0x0000,0x0000,0xcaa8,0x0000,0x0000, +0xf4fa,0x0000,0x0000,0x0000,0x0000,0xcdd6,0xfcf6,0x0000, +0x0000,0x0000,0xf4c9,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xf8d4,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x5500 */ +0x0000,0x0000,0x0000,0x0000,0xf8a6,0x0000,0xdeca,0xf2c6, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd7da,0x0000, +0xd3d0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xd8c5,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xeae6, +0x0000,0xf3dd,0x0000,0x0000,0x0000,0xe4da,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xf6e4,0x0000, +0x0000,0x0000,0x0000,0x0000,0xf6f2,0x0000,0xdfc2,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd9fd, +0x0000,0x0000,0x0000,0xccf6,0x0000,0x0000,0xd3ba,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xe4af,0x0000, +0x0000,0x0000,0x0000,0xf9e1,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xf0a6,0x0000,0x0000,0x0000, +0xcbd3,0x0000,0x0000,0x0000,0xe0bc,0x0000,0xf4ca,0xd4fa, +0x0000,0xfdaa,0xf9e2,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xf4b7,0xfdc2,0xfcb0,0x0000,0xfdec,0xcae2,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xfdbd, +0x0000,0xeae7,0xdfc3,0xd1d2,0xcee2,0x0000,0xd3a4,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xfdab,0x0000,0xdfe0, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xf2c7,0x0000,0x0000,0x0000, +0x0000,0x0000,0xe7f0,0x0000,0xd0ee,0x0000,0x0000,0xf3aa, +0x0000,0x0000,0x0000,0xdecb,0xf6b8,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xe1f5,0xf1b3,0x0000, +/* 0x5600 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xf7a3,0x0000, +0x0000,0xcaa9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xcfa5,0x0000,0x0000,0xdfc4, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xe1b0, +0x0000,0x0000,0xf0bf,0x0000,0xf6a4,0x0000,0xe3b6,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xfac6,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xd0ef,0x0000,0x0000,0xfded,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xddc4,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xfcf7,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xe6bf,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xdead,0x0000,0xfabf,0x0000, +0x0000,0x0000,0x0000,0x0000,0xe5f1,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xedc4,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xd2a5,0x0000,0x0000,0xfdee,0x0000,0x0000, +0x0000,0xf5b6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xe1f6,0xdecc,0x0000,0x0000,0xfcde,0x0000, +0xecd7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xcddd,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xd6b7,0xcdb3,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x5700 */ +0x0000,0x0000,0x0000,0xf8d5,0xe5d8,0x0000,0x0000,0x0000, +0xcfea,0x0000,0x0000,0xcfd0,0x0000,0xeacc,0x0000,0x0000, +0x0000,0x0000,0xeaae,0xeaad,0x0000,0x0000,0xd3f1,0x0000, +0xd3a5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xf7cf, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xeea4,0x0000,0x0000,0x0000,0x0000,0xd0a4,0x0000,0x0000, +0xf2a2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xd0f0,0x0000,0x0000,0x0000,0x0000, +0xf2a3,0x0000,0xf7f8,0x0000,0x0000,0x0000,0x0000,0xd0b3, +0x0000,0x0000,0xdba9,0x0000,0x0000,0xd3bb,0xcaec,0x0000, +0xf1a6,0xcbd5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xf7e7,0x0000,0x0000,0xcdde,0x0000,0xf7a4,0x0000, +0x0000,0x0000,0xf8c0,0x0000,0x0000,0x0000,0xd3dd,0x0000, +0xccd0,0x0000,0x0000,0x0000,0x0000,0xcfa6,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xf6f3,0x0000,0x0000,0x0000, +0x0000,0x0000,0xe1f7,0x0000,0x0000,0x0000,0x0000,0x0000, +0xd3dc,0x0000,0x0000,0xfafe,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xfaa7,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xebd9,0x0000,0xcfa7,0xeaaf,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xe4ef,0x0000,0x0000,0x0000,0xe9b9, +0xf1d8,0x0000,0x0000,0xd8d8,0x0000,0x0000,0xe0f2,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xe6b4, +0xdcfc,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xf3f1,0x0000,0x0000,0x0000,0xe3d0,0x0000,0x0000,0xf2fb, +0x0000,0xdbc6,0xd0f1,0x0000,0xd0f2,0x0000,0x0000,0x0000, +0xcfdc,0x0000,0xd3d1,0x0000,0x0000,0xccb1,0xf7d8,0x0000, +0xcba8,0xebbc,0xe4be,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xf4dc,0x0000, +0x0000,0xdcc2,0x0000,0x0000,0xf0a7,0x0000,0x0000,0xe6c0, +0x0000,0x0000,0xcaed,0x0000,0x0000,0x0000,0x0000,0xe8eb, +0xe5e8,0xdcc3,0x0000,0x0000,0xedde,0xd3f2,0x0000,0x0000, +0x0000,0x0000,0xccf7,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xced4,0xe7ab,0x0000,0x0000,0x0000,0xcbc3, +0x0000,0xe1b1,0x0000,0x0000,0xf7b2,0x0000,0x0000,0xd3f3, +0xd3d2,0x0000,0xf5c0,0x0000,0x0000,0x0000,0xdfdd,0x0000, +0x0000,0xeef3,0xe7f1,0x0000,0xfdb4,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xf2c8,0x0000,0x0000, +0x0000,0xf3d2,0x0000,0x0000,0xeef4,0x0000,0xe2d3,0x0000, +0x0000,0x0000,0x0000,0xccd1,0x0000,0xdfea,0x0000,0x0000, +0x0000,0xe9ba,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xd9d7,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xf5cd,0x0000,0xf1f2,0xfac7, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xd9f8,0xd4c2,0x0000,0x0000,0x0000,0x0000,0xf6e5,0x0000, +0x0000,0x0000,0x0000,0xddc5,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xe7f2,0xeddf,0x0000,0x0000,0xcacb,0x0000, +0x0000,0xdbfa,0x0000,0x0000,0x0000,0xe8b5,0x0000,0xd3a6, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xfdb5,0x0000, +0x0000,0xf9c9,0x0000,0xe4e2,0x0000,0xfbbd,0x0000,0x0000, +0xd7a4,0xcec5,0x0000,0x0000,0x0000,0x0000,0xced5,0xd6e6, +0x0000,0x0000,0x0000,0x0000,0xe5bd,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xdecd,0xecf3,0x0000,0x0000,0xede0, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xecec,0xfbbe,0xdfeb,0x0000,0xe1f8,0x0000,0x0000, +/* 0x5900 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xf9be, +0x0000,0x0000,0x0000,0x0000,0xd0f3,0xe0aa,0xe8e2,0x0000, +0x0000,0xe2d4,0xd2fd,0x0000,0xe5a8,0x0000,0x0000,0x0000, +0x0000,0x0000,0xd9d3,0x0000,0x0000,0x0000,0x0000,0xd3de, +0x0000,0xf4b8,0xf7bc,0xdcfd,0x0000,0xe8ec,0xe4e7,0x0000, +0x0000,0xe3f7,0x0000,0x0000,0x0000,0x0000,0x0000,0xeca8, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xfaf1,0x0000, +0x0000,0x0000,0x0000,0x0000,0xe5f2,0x0000,0x0000,0xd0f4, +0xd2af,0xdce5,0x0000,0x0000,0x0000,0x0000,0xd0a5,0xf1b4, +0xfcb1,0xccf8,0x0000,0x0000,0xddc6,0xfad1,0x0000,0xf7df, +0x0000,0x0000,0xfaa8,0x0000,0x0000,0x0000,0x0000,0x0000, +0xeef5,0x0000,0xdece,0x0000,0x0000,0x0000,0x0000,0xe7f3, +0x0000,0x0000,0xf7ac,0xebc4,0xede1,0xe0ab,0xddc7,0x0000, +0x0000,0x0000,0x0000,0xd2b3,0xd2bf,0x0000,0x0000,0x0000, +0xcacc,0x0000,0x0000,0x0000,0x0000,0xfbbf,0x0000,0x0000, +0x0000,0x0000,0xe5fd,0xdde5,0xd8cd,0x0000,0x0000,0x0000, +0x0000,0x0000,0xecf4,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xd0f5,0x0000,0x0000,0xe8ed,0xd0d2, +0x0000,0xd9d8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xf6e6,0x0000,0x0000, +0xdbaa,0x0000,0x0000,0x0000,0xf7e0,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xd8d9,0x0000,0xf4a3,0x0000,0x0000,0xf4dd,0x0000, +0x0000,0x0000,0x0000,0xefd1,0x0000,0x0000,0xd9b5,0x0000, +0x0000,0xedab,0x0000,0xe3b7,0x0000,0x0000,0x0000,0x0000, +0xeebb,0xcdb4,0x0000,0xe0f3,0xeacd,0x0000,0x0000,0x0000, +0x0000,0xecf5,0xe8ee,0x0000,0xcba9,0xf1af,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xcacd,0x0000, +0xeca9,0x0000,0xf2eb,0x0000,0xfdef,0x0000,0xf9f3,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xe6c1,0x0000,0x0000,0xecd8,0x0000,0x0000,0x0000,0xedac, +/* 0x5a00 */ +0x0000,0xeace,0x0000,0xe8df,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xdecf,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xd2a6,0x0000,0x0000,0xe7f4,0xd1d6,0x0000,0x0000,0xe6c2, +0xe3e3,0x0000,0x0000,0x0000,0x0000,0xe4b0,0x0000,0x0000, +0x0000,0xd8b4,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xf6a5,0x0000, +0x0000,0x0000,0x0000,0x0000,0xf3de,0x0000,0x0000,0x0000, +0x0000,0xd7a5,0x0000,0x0000,0x0000,0x0000,0xf7e8,0x0000, +0x0000,0xe8c6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xfbe6,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xdde6,0x0000,0x0000,0x0000,0xdcfe,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xd8da,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xdaac,0xeab0,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xe3b8,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xcaaa,0xe1f9,0x0000,0xeab1,0x0000,0x0000,0x0000, +0x0000,0xf2ec,0x0000,0x0000,0xfaee,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xeed5,0x0000,0x0000,0x0000,0x0000,0xf9f4,0x0000, +0x0000,0xd2ec,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x5b00 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0xfbfb,0x0000,0x0000, +0x0000,0xfdf0,0x0000,0xe0bd,0xcee3,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xf8c6,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xdeae,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xdfc5,0x0000,0x0000,0xe5be,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xedad,0xfaea,0x0000,0x0000,0xcdee,0xeda6,0x0000,0xedae, +0xf0ed,0x0000,0xdda1,0x0000,0xedaf,0xfcf8,0x0000,0xd8eb, +0x0000,0x0000,0x0000,0xccf9,0xcdb5,0x0000,0x0000,0x0000, +0x0000,0xfaa9,0x0000,0xe1dd,0x0000,0x0000,0x0000,0x0000, +0xe2d5,0xedcf,0x0000,0x0000,0x0000,0xdda2,0x0000,0x0000, +0xf9ca,0x0000,0xeae8,0x0000,0xe5ed,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xd3eb,0x0000,0xe9d4, +0xe1fa,0xe4cc,0x0000,0xe1e4,0xe8c7,0x0000,0x0000,0xcedb, +0x0000,0x0000,0x0000,0xdcd5,0x0000,0xf7b5,0xfcf3,0xf0f3, +0xceaf,0xf1b5,0xefd2,0xe8c8,0xebf1,0x0000,0x0000,0x0000, +0x0000,0x0000,0xcbd4,0xe0be,0xe3f8,0xeae9,0xfcb2,0x0000, +0x0000,0x0000,0x0000,0x0000,0xe0f4,0x0000,0xcfe0,0x0000, +0xeea5,0x0000,0x0000,0xfaaa,0xe6c3,0xe1b2,0xcaab,0x0000, +0xe3e4,0xe9bb,0x0000,0x0000,0x0000,0x0000,0x0000,0xe2d6, +0xf3f2,0x0000,0xeed6,0xeab2,0xd0f6,0xecd9,0xdacb,0xcfa8, +0x0000,0x0000,0x0000,0x0000,0xdda3,0x0000,0x0000,0x0000, +0xd8db,0x0000,0xf9ce,0xe9d5,0xe3d1,0x0000,0x0000,0xd2bc, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd8ac,0xf3cc, +0x0000,0xcdfb,0xf6d6,0x0000,0xe7f5,0xe8ef,0xe3f9,0xd2bb, +0xf3f3,0xe3fb,0x0000,0xded0,0xceb0,0x0000,0xd6f7,0xf1d9, +0x0000,0x0000,0x0000,0x0000,0x0000,0xf5c1,0xdcc4,0x0000, +0xf5bb,0x0000,0xded1,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x5c00 */ +0x0000,0xdce6,0x0000,0x0000,0xded2,0x0000,0x0000,0xede2, +0xeef6,0xeacf,0xf0ee,0xe3fc,0x0000,0xd3df,0xd3f4,0xe1b3, +0x0000,0xe1b4,0x0000,0x0000,0x0000,0x0000,0xf4d3,0x0000, +0x0000,0xdfc6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xe9d6,0x0000,0x0000,0x0000, +0xdbab,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xf6a6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xe3b9,0xebc5,0xf4a9,0xcdb6,0xd2f9,0x0000,0xdaad,0xd2e3, +0xcfd1,0x0000,0x0000,0x0000,0x0000,0xcbdc,0xccfa,0x0000, +0xcfdd,0x0000,0x0000,0xe8a9,0x0000,0xe3bb,0xe3ba,0x0000, +0x0000,0xe0da,0x0000,0x0000,0x0000,0xeef7,0x0000,0x0000, +0x0000,0x0000,0x0000,0xdcb3,0x0000,0x0000,0x0000,0x0000, +0xd3f5,0x0000,0xd7a6,0x0000,0xf6b5,0xd7db,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xe1d5,0x0000,0x0000,0xd4ea, +0x0000,0xdfa3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xfddf,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xd0f7,0xedd4,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xcbaa,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xe4db,0x0000,0xe1fb,0xcba2,0x0000,0x0000,0x0000, +0x0000,0xd3e0,0x0000,0xe4bf,0x0000,0xfbc0,0x0000,0xdabe, +0xe4cd,0x0000,0xd6b9,0x0000,0x0000,0x0000,0xefc0,0x0000, +0xe1fc,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xf6b9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xdfc7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xe4b1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xdce7, +0xdce8,0x0000,0x0000,0x0000,0xfad6,0x0000,0xd3f6,0x0000, +0x0000,0x0000,0x0000,0xf1da,0x0000,0xfaf2,0x0000,0x0000, +/* 0x5d00 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xe2fd, +0x0000,0x0000,0x0000,0x0000,0x0000,0xd5cf,0xd0f8,0x0000, +0x0000,0xcddf,0x0000,0x0000,0xf5cb,0x0000,0xe4f0,0xcbab, +0x0000,0xd7c4,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xe2fe, +0x0000,0xddda,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xdaae,0xcaee,0x0000,0x0000,0x0000, +0xd5b9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xe3a1,0x0000,0x0000,0xe8e3,0x0000,0x0000,0xf3ab, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xcfa9, +0x0000,0x0000,0x0000,0xd3f7,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xd4f1,0x0000,0x0000, +0xcee4,0x0000,0xe8f2,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xe5f5,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xe7ae,0x0000,0xd6ba,0x0000,0xdfec,0xe4c0,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xe8e4,0x0000,0x0000, +0x0000,0x0000,0xd8b5,0x0000,0x0000,0x0000,0xe4dc,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xf4b9,0xf1b6,0x0000, +0x0000,0xe2de,0xe1b5,0x0000,0x0000,0xcdef,0xf1a7,0xcee5, +0xcbdd,0x0000,0x0000,0xd9e3,0x0000,0x0000,0xf3ac,0x0000, +0x0000,0xd0f9,0xecab,0xded3,0xf7e9,0x0000,0x0000,0xf9f5, +0x0000,0x0000,0x0000,0x0000,0x0000,0xe1de,0xcbee,0x0000, +/* 0x5e00 */ +0x0000,0x0000,0xe3bc,0xf8d6,0x0000,0x0000,0xdbee,0x0000, +0x0000,0x0000,0x0000,0x0000,0xfdf1,0x0000,0x0000,0x0000, +0x0000,0xf7b6,0x0000,0x0000,0x0000,0x0000,0xf4de,0x0000, +0x0000,0xf2ed,0x0000,0xdbd9,0x0000,0xf0a8,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xe1fd,0x0000,0x0000, +0x0000,0x0000,0x0000,0xded4,0x0000,0xe0ac,0x0000,0x0000, +0x0000,0x0000,0x0000,0xede3,0x0000,0x0000,0xd3e1,0x0000, +0xdfc8,0x0000,0x0000,0x0000,0x0000,0xd9b6,0x0000,0xfdac, +0xefd3,0x0000,0x0000,0x0000,0xe4c1,0xf8eb,0x0000,0xdbac, +0x0000,0x0000,0x0000,0x0000,0xfcc6,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xd8ad,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xf6ba, +0x0000,0xdbdf,0xd3d3,0xf8c7,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xcace,0xf8c1,0xd2b4,0x0000,0x0000,0xdcb4, +0xfab9,0xcacf,0x0000,0xfcb3,0xeaea,0xeaeb,0xd0fa,0x0000, +0x0000,0x0000,0x0000,0x0000,0xede4,0x0000,0x0000,0xdde7, +0x0000,0x0000,0xdfc9,0x0000,0x0000,0x0000,0x0000,0xdfed, +0x0000,0x0000,0x0000,0x0000,0x0000,0xeebc,0x0000,0xefc1, +0x0000,0x0000,0xccd2,0x0000,0xdda4,0x0000,0x0000,0x0000, +0xdfca,0x0000,0x0000,0x0000,0x0000,0x0000,0xd3f8,0xf1a8, +0x0000,0x0000,0x0000,0xcdb7,0x0000,0xefd4,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xe4dd,0xdfee,0xcbac, +0xe9bc,0x0000,0x0000,0x0000,0x0000,0x0000,0xeaec,0x0000, +0x0000,0x0000,0xdfcb,0x0000,0x0000,0x0000,0x0000,0x0000, +0xf9bf,0xd6af,0xd5c6,0x0000,0x0000,0x0000,0x0000,0x0000, +0xcfaa,0x0000,0x0000,0xcea9,0x0000,0x0000,0xd6f8,0x0000, +0x0000,0x0000,0xf1b7,0xeef8,0x0000,0x0000,0x0000,0xd9d9, +0xf3df,0x0000,0xf8c8,0xcec6,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xd5e6,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xf4e6,0x0000,0x0000,0xe6c5,0xefd5, +0x0000,0x0000,0xcbef,0xfcdf,0x0000,0x0000,0x0000,0x0000, +/* 0x5f00 */ +0x0000,0xdca7,0x0000,0x0000,0xd6e7,0x0000,0x0000,0x0000, +0x0000,0x0000,0xf8c9,0x0000,0x0000,0x0000,0x0000,0xe3d2, +0x0000,0xe3bd,0x0000,0xcfe1,0xf0c0,0xecda,0x0000,0xddd7, +0xfbf0,0x0000,0x0000,0xecac,0x0000,0x0000,0x0000,0xf0a9, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xfad7,0xfbc1, +0x0000,0xd2c0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xe5b0,0x0000,0x0000,0x0000,0xede5,0x0000,0x0000, +0x0000,0x0000,0xcbad,0x0000,0xf9b0,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xf7a5,0x0000,0xcbae,0x0000,0xdaaf,0x0000,0xd8b6,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd3a7,0xfbb2, +0x0000,0xfdc4,0x0000,0xecad,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xfba1,0x0000,0x0000,0x0000,0xe5e9,0xe9ee, +0x0000,0xf3f4,0xf8f3,0xf0c1,0xdeaf,0xf8b0,0x0000,0x0000, +0xf3e0,0xe7af,0x0000,0x0000,0x0000,0x0000,0x0000,0xdbad, +0x0000,0xe6b5,0x0000,0x0000,0xf9a8,0x0000,0x0000,0xddd8, +0xe8d9,0xefd6,0x0000,0x0000,0x0000,0xd3e2,0x0000,0xe2df, +0x0000,0x0000,0xfce0,0xd7c8,0xfdad,0x0000,0x0000,0x0000, +0xdfef,0xccd3,0xd3f9,0x0000,0x0000,0x0000,0x0000,0xd4f0, +0xdbc7,0xded5,0x0000,0x0000,0x0000,0x0000,0xf0f4,0x0000, +0xd5d0,0xe5d9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xfcc7,0xdcd6,0xe2e0,0x0000,0x0000,0x0000,0xdab0,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xf3a3,0x0000,0xd3ec, +0x0000,0xf4cb,0x0000,0x0000,0x0000,0xfdc5,0x0000,0x0000, +0x0000,0x0000,0x0000,0xe3fd,0x0000,0xf9b1,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xd0fb,0xecdb,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xf5bc,0xf2a4, +0xd8ce,0xd8cf,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xf5f7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xf6e1,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xd2b7,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xfbec,0x0000,0xddc8, +/* 0x6000 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xe4e8, +0x0000,0x0000,0xd2c1,0x0000,0x0000,0x0000,0xf8d7,0x0000, +0x0000,0x0000,0x0000,0x0000,0xd6bb,0xded6,0x0000,0x0000, +0xf7bd,0xecae,0x0000,0x0000,0x0000,0xd0e1,0x0000,0xe0f5, +0xeab3,0x0000,0xced6,0x0000,0x0000,0x0000,0x0000,0xcca5, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xecf6,0xe2e1,0xe3be,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xfcc8,0x0000,0x0000, +0xcdf0,0x0000,0xf9f6,0x0000,0x0000,0xdff0,0x0000,0x0000, +0x0000,0xe5bf,0x0000,0x0000,0x0000,0xcebf,0x0000,0x0000, +0x0000,0x0000,0xfce1,0xedb0,0xfdd1,0xf6bb,0x0000,0x0000, +0xf9cf,0xebda,0xcac1,0x0000,0xd2b8,0xcdf1,0x0000,0xe3d3, +0xfde6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xe6ed,0x0000,0x0000, +0x0000,0xe3fa,0x0000,0x0000,0xf0aa,0xf9d0,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xfce2,0x0000,0xf8a7,0x0000, +0x0000,0x0000,0xe1e5,0xeef9,0x0000,0x0000,0x0000,0xe7f6, +0xeaed,0x0000,0x0000,0xfcb4,0xf5c2,0x0000,0x0000,0xd7dc, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xf0f5,0x0000,0xdde8,0xd3ed,0xf5fc,0x0000,0xdabf,0x0000, +0xccfb,0x0000,0x0000,0x0000,0xd3fa,0xf4a4,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xefd7,0x0000,0xd4c3, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xfbe3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xfbed,0x0000,0xe0ad,0x0000,0x0000,0xeaee, +0xfbb3,0xe4c2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xf6e7,0xd2dd,0x0000,0xdfcc,0x0000,0x0000,0xfcc9,0x0000, +0x0000,0xe5a9,0xe0f6,0xf6b3,0x0000,0x0000,0x0000,0x0000, +/* 0x6100 */ +0x0000,0xe1fe,0x0000,0x0000,0x0000,0x0000,0xcbf0,0x0000, +0xeaef,0xeaf0,0x0000,0x0000,0x0000,0xdac0,0xf8b4,0xebf2, +0x0000,0x0000,0x0000,0x0000,0x0000,0xe4c3,0x0000,0x0000, +0x0000,0x0000,0xe9d7,0xe4f1,0x0000,0x0000,0x0000,0xcaef, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xced7, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xfcca,0x0000,0x0000,0x0000,0xf3e1,0x0000,0x0000,0xcbc4, +0x0000,0x0000,0x0000,0x0000,0xe3e5,0x0000,0xcbc5,0xeab4, +0x0000,0x0000,0xe9bd,0x0000,0xd7c9,0x0000,0x0000,0xebdb, +0xedb1,0x0000,0xccc3,0xf7be,0xfccb,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xf8f4,0x0000,0xd9b7,0x0000,0x0000, +0xf3d3,0xf3d4,0x0000,0x0000,0x0000,0xf7e4,0x0000,0xf7d1, +0x0000,0x0000,0xd8b7,0xceb1,0xcac2,0x0000,0x0000,0xfbb4, +0xcbc6,0x0000,0x0000,0xf0f6,0x0000,0x0000,0xd5e7,0x0000, +0xead0,0x0000,0x0000,0x0000,0x0000,0x0000,0xccd4,0xcbaf, +0x0000,0x0000,0x0000,0x0000,0x0000,0xf4aa,0xe9af,0x0000, +0x0000,0xf5c3,0xe9d8,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xdde9,0x0000,0x0000,0x0000,0xf1f3,0x0000, +0xd5fb,0xdebb,0x0000,0x0000,0xf4fb,0x0000,0x0000,0x0000, +0xfdf3,0xfdf2,0xf7a6,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xddc9,0x0000,0x0000,0xd4d3, +0x0000,0xcca8,0x0000,0xdac1,0xccd5,0x0000,0xd9e4,0x0000, +0x0000,0x0000,0xfaca,0x0000,0x0000,0x0000,0xe5e3,0x0000, +0x0000,0x0000,0xd3bc,0x0000,0x0000,0x0000,0xcaf0,0x0000, +0x0000,0x0000,0x0000,0xd0c4,0x0000,0x0000,0x0000,0xcad0, +0xfaab,0xebeb,0xe7f8,0xd9e5,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd1d7,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xf3a4,0x0000,0x0000,0x0000,0xd4fb,0xfce3, +0xfad8,0x0000,0xf3d5,0x0000,0xcfab,0x0000,0x0000,0xebf3, +0xd5fc,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd3d4, +0xcdfc,0x0000,0xd9e6,0x0000,0xe2f9,0xe2a1,0xebd4,0x0000, +0xe0f7,0xe4b2,0xccfc,0x0000,0x0000,0x0000,0xfbe4,0x0000, +0x0000,0x0000,0xf4ab,0x0000,0x0000,0x0000,0x0000,0xd0bd, +0x0000,0xcaf1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xefb8,0x0000,0x0000,0x0000,0xd7c0,0x0000, +0xeefa,0xfdf4,0x0000,0x0000,0xd3e3,0x0000,0xfbc2,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd5e8,0xdbae, +0xe1b6,0xf8b7,0x0000,0x0000,0x0000,0x0000,0x0000,0xe0bf, +0xfbc3,0xddea,0x0000,0xe2a2,0x0000,0xeea6,0x0000,0x0000, +0x0000,0x0000,0x0000,0xf6e8,0x0000,0x0000,0x0000,0x0000, +0xf6f5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xddca,0x0000, +0x0000,0xd0e2,0x0000,0x0000,0x0000,0x0000,0xdda6,0x0000, +0x0000,0xddeb,0x0000,0x0000,0xe4f9,0x0000,0x0000,0xe3af, +0xd0fc,0x0000,0x0000,0x0000,0xf4fc,0x0000,0x0000,0x0000, +0x0000,0xccbc,0xf7ea,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xe5e4,0xdff1,0x0000,0x0000,0xf7e1,0x0000,0xf9f7, +0xefb9,0x0000,0x0000,0xf8d8,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xf9a9,0x0000,0x0000,0x0000,0x0000, +0x0000,0xf8d9,0x0000,0x0000,0x0000,0xeebd,0x0000,0x0000, +0x0000,0xd8c6,0x0000,0x0000,0xe4e3,0xf5ce,0x0000,0x0000, +0x0000,0x0000,0xddd9,0x0000,0x0000,0x0000,0x0000,0xd9e7, +0xd2b9,0xd5c3,0x0000,0x0000,0xdae5,0xdad0,0x0000,0xd1d9, +0xced8,0x0000,0xcbde,0xf4ac,0xdafb,0x0000,0xf6e9,0xe8f3, +0xcfac,0xf0f0,0x0000,0xf4fd,0xdbc8,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xcec0,0xe3d4,0xd1cf,0xf1f5, +0x0000,0xcdf2,0x0000,0xcfeb,0x0000,0x0000,0x0000,0xcdb8, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xe3a6,0xd1da, +/* 0x6300 */ +0x0000,0xf2a5,0x0000,0x0000,0x0000,0x0000,0x0000,0xf2a6, +0x0000,0xe4ce,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xd3fb,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xf1a9,0x0000,0x0000,0x0000,0xf2c9, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xefd8,0xe6c9,0x0000,0xd8b8,0xfaf3,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xf3b5,0x0000,0x0000,0xf8a4,0x0000,0x0000,0xd1f3, +0xe6c8,0x0000,0x0000,0x0000,0x0000,0xf8da,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xdce9, +0xded7,0x0000,0x0000,0x0000,0x0000,0x0000,0xcbdf,0x0000, +0x0000,0x0000,0xcfec,0x0000,0x0000,0x0000,0x0000,0xf4df, +0x0000,0x0000,0xd1f4,0xd2ba,0x0000,0x0000,0x0000,0xdff2, +0x0000,0x0000,0x0000,0xe1b7,0x0000,0x0000,0x0000,0x0000, +0xe2a3,0xd3fc,0x0000,0x0000,0xede6,0x0000,0x0000,0x0000, +0x0000,0x0000,0xdbc9,0x0000,0x0000,0x0000,0xe4fa,0x0000, +0xcfde,0x0000,0x0000,0xced0,0x0000,0x0000,0x0000,0x0000, +0xd5d3,0xf3f5,0xf7ae,0x0000,0x0000,0xefc8,0x0000,0xcdf3, +0xf5cf,0xe5f3,0xf0c2,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xcad1,0x0000,0x0000,0x0000,0xeaf1,0x0000,0xd0a6,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd9da, +0xf0ab,0x0000,0x0000,0x0000,0x0000,0x0000,0xebe7,0x0000, +0x0000,0x0000,0xe5c0,0xfcb5,0x0000,0x0000,0x0000,0x0000, +0x0000,0xe4c4,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xcca9,0xfdc6,0x0000, +0x0000,0x0000,0x0000,0x0000,0xeab5,0x0000,0xe5aa,0xdfba, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x6400 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xe1df,0x0000,0xdad1, +0x0000,0x0000,0x0000,0x0000,0xe1b8,0x0000,0xe8f4,0xd3fd, +0x0000,0x0000,0x0000,0x0000,0xe2a4,0x0000,0x0000,0x0000, +0x0000,0x0000,0xf2ca,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xdae6,0xf7b3,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xfdcd,0x0000,0x0000,0x0000,0xf3b6,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xeed7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xf5c4,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xd8a4,0x0000,0x0000,0x0000,0x0000,0x0000,0xf2a7, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xd9b8,0xd9b9,0xefc9,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xd6ce,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xf7cb,0xdfae,0xe8f5,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xd2b5,0x0000,0x0000,0x0000,0xd3d5,0x0000, +0x0000,0x0000,0x0000,0x0000,0xf4cc,0xdafc,0x0000,0x0000, +0x0000,0x0000,0x0000,0xd9e8,0x0000,0xf7eb,0xf5c9,0x0000, +0xf3bc,0x0000,0xdad2,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xd3b5,0x0000,0x0000,0x0000,0x0000, +0x0000,0xe8b6,0x0000,0x0000,0xd6cf,0xf4ba,0x0000,0xf7c9, +0x0000,0x0000,0xccaa,0x0000,0x0000,0xf0c3,0xccd6,0x0000, +0x0000,0x0000,0xd0d3,0x0000,0xd3bd,0x0000,0x0000,0x0000, +0xdbfb,0x0000,0xcbe0,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xd3e4,0xf6f7,0x0000,0x0000,0xd5ba,0xf3cd,0xcbe1, +0x0000,0x0000,0x0000,0x0000,0xebf4,0x0000,0x0000,0x0000, +0x0000,0x0000,0xf4ad,0x0000,0xfcaa,0x0000,0x0000,0x0000, +0x0000,0x0000,0xf7ec,0x0000,0x0000,0x0000,0xe8f6,0x0000, +0xdae7,0x0000,0x0000,0x0000,0xf7cc,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xe5c1,0x0000,0x0000,0x0000,0x0000,0xe0ee,0x0000,0x0000, +0x0000,0x0000,0x0000,0xd5fd,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xcee6,0xfcab,0xd5bb,0x0000,0x0000,0xf2a8, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xe2a5,0xcdb9, +0xeaf2,0xcbc7,0x0000,0xcdf4,0x0000,0x0000,0xdbaf,0xefd9, +0x0000,0x0000,0x0000,0x0000,0x0000,0xcdba,0x0000,0x0000, +0xfcf9,0x0000,0x0000,0x0000,0x0000,0xdff3,0xcee7,0xdac2, +0x0000,0xcfad,0x0000,0x0000,0x0000,0x0000,0xe7f9,0xf8a8, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xf3e2,0x0000, +0x0000,0x0000,0xcaf2,0xdfa4,0x0000,0x0000,0xd4c4,0x0000, +0x0000,0x0000,0x0000,0x0000,0xccd7,0xe5c2,0x0000,0x0000, +0x0000,0x0000,0xcdbb,0x0000,0xefda,0xeed8,0x0000,0xdda7, +0xe2a6,0x0000,0x0000,0x0000,0x0000,0x0000,0xe0c0,0x0000, +0x0000,0x0000,0xd6b0,0xf8ca,0x0000,0xfcfa,0x0000,0xd9fe, +0x0000,0x0000,0x0000,0x0000,0xdeb0,0x0000,0x0000,0x0000, +0xddec,0xdae8,0x0000,0x0000,0x0000,0x0000,0x0000,0xd4e0, +0x0000,0xd6f9,0x0000,0xcdd7,0xded8,0x0000,0x0000,0xf2f8, +0x0000,0xe4d6,0x0000,0x0000,0xd0c5,0xf4ae,0x0000,0xdda8, +0x0000,0x0000,0x0000,0xedc5,0xf3d6,0x0000,0x0000,0xded9, +0xe3e6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd3a8, +0x0000,0xdbb0,0x0000,0x0000,0xe5da,0xe3bf,0x0000,0x0000, +0x0000,0xdbb1,0x0000,0x0000,0x0000,0xd5e9,0x0000,0x0000, +0x0000,0x0000,0x0000,0xe0c1,0xefdb,0x0000,0x0000,0xf0e9, +0x0000,0x0000,0xd7b2,0x0000,0x0000,0x0000,0x0000,0xd0fd, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xd9e9,0x0000,0x0000,0xd0fe,0x0000,0xeced,0xd3a9,0x0000, +0xf2a9,0xf0c4,0x0000,0x0000,0xe2e2,0xe9ef,0x0000,0x0000, +0x0000,0xf9d1,0x0000,0x0000,0xe9d9,0x0000,0x0000,0x0000, +0x0000,0x0000,0xe8da,0xdac3,0xdac4,0xd4c5,0x0000,0xe7fa, +/* 0x6600 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xcde0,0xe3b0, +0x0000,0xdbb2,0xfbc4,0x0000,0xf3e3,0x0000,0xd9a5,0xfbe7, +0xddcb,0xd0d4,0x0000,0xe6b6,0xe0ae,0xfdda,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xdcb5,0xe0f8, +0xe7b1,0x0000,0x0000,0x0000,0x0000,0xf5f0,0x0000,0xd8dc, +0xedc6,0x0000,0x0000,0x0000,0x0000,0xe1b9,0x0000,0xe3c0, +0xf9c0,0xe9f0,0x0000,0x0000,0xd9db,0x0000,0xf3e4,0x0000, +0x0000,0x0000,0xdcb6,0xe4e9,0x0000,0x0000,0x0000,0x0000, +0x0000,0xf0c5,0xe3c1,0xfccc,0xfccd,0x0000,0x0000,0x0000, +0x0000,0xf2cb,0x0000,0xf2cc,0x0000,0x0000,0x0000,0xe4cf, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xf1db,0x0000,0xfad9,0x0000,0xf1b8,0xfdf5,0xe0f9, +0x0000,0x0000,0x0000,0x0000,0xe7fb,0xfcb7,0xfce4,0xfbc5, +0xe3e7,0xd8b9,0x0000,0xf6f8,0x0000,0x0000,0xdcc5,0xccd8, +0x0000,0x0000,0x0000,0xe0af,0xf4e7,0x0000,0xefdc,0xcffc, +0xefdd,0x0000,0xf2aa,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xfdbe,0x0000,0x0000,0xcaac, +0xfdbb,0xfdc7,0x0000,0x0000,0x0000,0x0000,0xe7b2,0x0000, +0xead1,0xdff4,0x0000,0x0000,0x0000,0x0000,0xd1ec,0xe4de, +0xe5c3,0x0000,0x0000,0x0000,0x0000,0xd9a6,0x0000,0x0000, +0xcdbc,0x0000,0xf3e5,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xedd5,0x0000,0x0000,0xd9ba,0x0000, +0x0000,0x0000,0xede7,0xfbb5,0xf8ec,0x0000,0x0000,0x0000, +0x0000,0xe0e7,0x0000,0xccd9,0x0000,0x0000,0xd4c6,0x0000, +0x0000,0x0000,0x0000,0x0000,0xe7a5,0x0000,0xd5f5,0xd3be, +0x0000,0xfcfb,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xe4f2,0x0000, +0x0000,0xdff5,0x0000,0x0000,0xe8f8,0xf8ed,0x0000,0x0000, +0xcec7,0x0000,0x0000,0x0000,0x0000,0x0000,0xfdf6,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xe8d8,0x0000,0xcdd8,0xe7d6,0xccda,0x0000,0x0000,0xcae3, +0xdff6,0xf0c7,0xf0c6,0x0000,0xd8ba,0x0000,0xf1f4,0xf4f0, +0xf5cc,0x0000,0x0000,0xfce5,0x0000,0x0000,0x0000,0x0000, +0xeac5,0xeaf3,0x0000,0xdddb,0x0000,0xdcd7,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xdefd,0xf2f9,0x0000,0xd5c7, +0x0000,0x0000,0x0000,0xd8d0,0x0000,0xf0c8,0xd1a1,0xd1a2, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd9d4,0xd6e8, +0xd9ca,0x0000,0xdab1,0xd8c7,0xdce2,0xf3ce,0xf5f4,0x0000, +0x0000,0xf1b9,0x0000,0x0000,0xdad3,0x0000,0xf6ea,0x0000, +0x0000,0x0000,0xcff5,0x0000,0x0000,0xfdae,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xcad2,0x0000, +0x0000,0xdfb4,0x0000,0x0000,0x0000,0x0000,0xd7dd,0xfaba, +0xeea7,0xf5bd,0x0000,0xf8f5,0x0000,0x0000,0xede8,0x0000, +0x0000,0x0000,0x0000,0x0000,0xd4e1,0x0000,0xd1a3,0xe1d6, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xf9f8,0x0000,0xdbca, +0xcbf9,0xd4d4,0x0000,0xd9dc,0x0000,0xeebe,0x0000,0xf7ed, +0x0000,0x0000,0x0000,0xd2ee,0x0000,0x0000,0xe1e6,0xf7f9, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xdded, +0x0000,0xe8db,0x0000,0xdbb3,0x0000,0x0000,0x0000,0xd1f7, +0xe0b0,0x0000,0x0000,0xd4e2,0x0000,0xf6d7,0x0000,0xd7f9, +0x0000,0x0000,0xd8dd,0x0000,0xcdfd,0xf2ab,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xcdbd, +0xf8c2,0x0000,0x0000,0xf2ac,0x0000,0x0000,0xcaad,0xcaae, +0xcfae,0x0000,0x0000,0x0000,0x0000,0x0000,0xe3c2,0x0000, +0x0000,0x0000,0x0000,0x0000,0xdcb7,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xdbda, +0xd9bb,0xcaf3,0xf6d3,0xe6f8,0xeaf5,0x0000,0x0000,0x0000, +0x0000,0x0000,0xeaf6,0x0000,0x0000,0xf6f9,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xcfaf,0x0000,0x0000,0xcad3,0x0000,0x0000,0xcaaf, +0xd2b0,0xf1ba,0x0000,0xd7b3,0xe3c3,0xf3fd,0xdeda,0x0000, +0x0000,0x0000,0x0000,0xdedb,0x0000,0x0000,0xefde,0x0000, +/* 0x6800 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xe2e3,0xeefb,0x0000,0x0000,0xdff7,0xd7ca, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xcee8,0xdbdb,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xf1bb,0x0000,0x0000,0x0000,0x0000,0xe9f1, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xfab7,0xd0c6,0x0000,0x0000,0xccab,0xeea8,0x0000,0x0000, +0xcbfa,0xf9f9,0xccfd,0xd3fe,0x0000,0x0000,0x0000,0x0000, +0xe4d0,0x0000,0x0000,0x0000,0x0000,0x0000,0xf2ee,0x0000, +0xd4d5,0xdfcd,0x0000,0xfcb8,0xd1d0,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xf2cd,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xf7d2,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xcad4, +0x0000,0xd5d9,0x0000,0x0000,0x0000,0xd8de,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xcdd9, +0x0000,0x0000,0x0000,0xeea9,0xf6bc,0x0000,0x0000,0xccdb, +0x0000,0x0000,0x0000,0x0000,0x0000,0xf0c9,0x0000,0xfcfc, +0x0000,0xe8c9,0xf4fe,0x0000,0x0000,0x0000,0x0000,0xe7fc, +0xd7de,0x0000,0x0000,0x0000,0x0000,0xdedc,0x0000,0xf0ac, +0xccfe,0xcde1,0x0000,0xe1ba,0x0000,0xdbef,0xdab2,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xd1a5,0xdcb8,0x0000,0x0000, +0x0000,0xd8f6,0x0000,0xd1a4,0x0000,0xcde2,0x0000,0x0000, +0x0000,0x0000,0xdcea,0x0000,0x0000,0xf0f7,0x0000,0xf0ca, +0xd0be,0x0000,0xdddc,0x0000,0x0000,0x0000,0x0000,0xd4d6, +0xd3d6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xedd0, +0xcda1,0x0000,0x0000,0x0000,0x0000,0x0000,0xdfb5,0x0000, +0x0000,0x0000,0xdff8,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xd4a1,0xceb2,0x0000,0x0000,0x0000,0x0000,0x0000, +0xe8ca,0x0000,0x0000,0x0000,0x0000,0xebf5,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xe3d5,0xf5d0,0x0000, +0x0000,0x0000,0xf5a1,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd9a7, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xe5ab,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xe6cb,0x0000,0xf5f1, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xe5c5,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xf9a3,0xe0db,0xf6eb,0x0000,0xcbf1, +0x0000,0xd9ea,0xf5a2,0x0000,0x0000,0x0000,0xd7d1,0x0000, +0xd1f8,0xeaf8,0xeaf9,0xdab3,0x0000,0x0000,0x0000,0x0000, +0xefdf,0x0000,0x0000,0xf1ef,0x0000,0xe5f6,0xeebf,0xe2e4, +0x0000,0x0000,0x0000,0x0000,0x0000,0xd0bf,0x0000,0xfaac, +0xf5d1,0xe7b3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xe9be,0x0000,0x0000, +0x0000,0x0000,0x0000,0xf2ce,0xdbb4,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xfcce,0x0000,0xddee, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xe7b4,0x0000, +0x0000,0x0000,0x0000,0x0000,0xd7b4,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xf7b4,0x0000,0x0000,0x0000,0x0000, +0x0000,0xcdbe,0x0000,0xdae9,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xcfb0,0xf7d9,0xf3e6,0x0000,0x0000, +0xced9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xceaa,0x0000,0xcbc8,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xd0a7,0x0000,0xf0cb,0x0000,0xd0c7, +/* 0x6a00 */ +0x0000,0x0000,0xe4c5,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xdbe0,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xd5da,0x0000,0xd7a7,0x0000,0x0000,0x0000,0xeec0, +0x0000,0xf8f6,0x0000,0x0000,0x0000,0x0000,0xf5d2,0xede9, +0x0000,0xd9bc,0x0000,0xe5c6,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xf5a3,0x0000,0x0000, +0xdad4,0xe2a7,0xfbfc,0x0000,0x0000,0xf1dc,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xcaf4,0x0000,0x0000,0x0000, +0xe8fa,0x0000,0x0000,0xcee9,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xe9f8,0xe2e5,0x0000,0x0000,0x0000,0x0000, +0xd0b9,0xd4f2,0x0000,0x0000,0x0000,0x0000,0x0000,0xd1a6, +0x0000,0xdfce,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xfcf4,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xd3aa,0x0000,0x0000,0x0000,0xccac,0x0000,0x0000,0x0000, +0x0000,0xefe0,0x0000,0x0000,0x0000,0xe5e5,0xd0d5,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xdbfc, +0x0000,0x0000,0x0000,0x0000,0xfce6,0x0000,0x0000,0x0000, +0x0000,0x0000,0xcbfe,0xedea,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xdeb1,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xf9e3,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xd4a2,0xcff6,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xd6d0,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xd5ea,0xf1ee,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xfacb,0x0000, +0x0000,0x0000,0x0000,0xe5a1,0x0000,0x0000,0x0000,0x0000, +/* 0x6b00 */ +0x0000,0x0000,0x0000,0x0000,0xd5b1,0x0000,0x0000,0x0000, +0x0000,0x0000,0xcfed,0x0000,0xedeb,0x0000,0x0000,0x0000, +0x0000,0x0000,0xd5b2,0x0000,0x0000,0x0000,0xd5bc,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xfde2,0xf3ad,0x0000,0xfddb,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xe9b0,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xd1a7,0x0000,0x0000,0xfde3,0xceb3,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xfde4,0xface, +0x0000,0x0000,0x0000,0x0000,0xcab0,0x0000,0xf7a7,0x0000, +0xcfb1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xe6a2, +0x0000,0xfcb6,0xf2ad,0xefe1,0xf3ae,0xdcc6,0xd9eb,0x0000, +0x0000,0x0000,0xe8e0,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xe1a8,0x0000,0x0000,0x0000,0x0000,0xd5f6, +0xcffd,0x0000,0x0000,0xdedd,0x0000,0x0000,0x0000,0xd9d1, +0x0000,0x0000,0x0000,0xe4ea,0xf2cf,0x0000,0xf7bf,0x0000, +0x0000,0xe2e6,0xe2a8,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xe3d6,0x0000, +0xedd1,0x0000,0x0000,0x0000,0x0000,0x0000,0xe9f9,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd6b1,0xdeb2, +0x0000,0x0000,0xe0e8,0x0000,0x0000,0xd3ab,0x0000,0xebdc, +0x0000,0x0000,0xdfaf,0x0000,0xcac3,0x0000,0x0000,0xeefc, +0x0000,0xfdc3,0x0000,0x0000,0x0000,0xebf6,0xcfb2,0x0000, +0x0000,0x0000,0x0000,0xd9ec,0x0000,0xd9bd,0x0000,0xd8df, +0x0000,0x0000,0xd4b8,0xebbe,0xddef,0x0000,0xddf0,0xddf1, +0xddf2,0x0000,0x0000,0xd9be,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xfbc6,0xcfb3,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x6c00 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xeefd,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xe4ab, +0x0000,0xdac5,0x0000,0xd8ec,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xd1a8,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xe2a9,0x0000,0x0000,0xdebc, +0xe7b5,0x0000,0x0000,0x0000,0x0000,0x0000,0xdbf0,0x0000, +0xefe2,0xf1f0,0xcfb4,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xdbf1,0x0000, +0xe0b1,0x0000,0x0000,0x0000,0x0000,0xdfa5,0x0000,0xf9d2, +0x0000,0x0000,0xe7fd,0x0000,0x0000,0xe6a3,0xfbf1,0xcbb0, +0xf2ae,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xcde7,0x0000,0xe8dc,0x0000,0x0000,0xe7d7,0x0000,0x0000, +0xf7c0,0x0000,0xd0e3,0x0000,0x0000,0x0000,0xdaa1,0x0000, +0x0000,0x0000,0xccbd,0x0000,0x0000,0xd1a9,0xddcc,0x0000, +0x0000,0xe3fe,0xd1aa,0xe8aa,0x0000,0xeab6,0xf9fa,0xe6cc, +0xf6d8,0x0000,0x0000,0x0000,0xd4c7,0x0000,0x0000,0x0000, +0xd9cb,0x0000,0xd9d2,0xd3cb,0xd8f7,0xdaa9,0xf5f8,0x0000, +0x0000,0xdede,0xf2af,0xf8a9,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xd8c8,0x0000,0x0000,0xeec1,0x0000, +0x0000,0x0000,0x0000,0xf9c1,0x0000,0x0000,0x0000,0x0000, +0xddf3,0xeafa,0x0000,0xf6bd,0xe1bb,0xcdbf,0xf4d4,0xe6cd, +0x0000,0xfccf,0xfba2,0x0000,0xe0dc,0x0000,0x0000,0x0000, +0x0000,0xf4bb,0xdad5,0x0000,0xf9b2,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xfbf2,0x0000,0xdbf6,0x0000,0xdedf, +0x0000,0x0000,0x0000,0xdbf2,0x0000,0x0000,0x0000,0x0000, +0x0000,0xf8dc,0xf7ee,0xebe8,0x0000,0xd2fa,0x0000,0x0000, +0xf1bc,0x0000,0x0000,0xfada,0x0000,0x0000,0xdaea,0xdac6, +0xf7c1,0x0000,0x0000,0xe7b6,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x6d00 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xe5c7,0xd6ac,0x0000,0x0000,0x0000, +0x0000,0xdcc7,0x0000,0x0000,0x0000,0x0000,0x0000,0xe1a9, +0x0000,0xe2aa,0x0000,0xd5a6,0x0000,0x0000,0xd4d7,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xf2d0,0x0000,0xeafb, +0x0000,0xe0dd,0xfbf3,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xf1bd,0x0000,0x0000,0xe2e7,0xfdd7,0x0000, +0xcec8,0xeab7,0x0000,0xfcc0,0x0000,0xfde7,0xf7ef,0x0000, +0x0000,0xd7b5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xefba,0xf1dd,0x0000,0xdeb3,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xe8cb,0x0000,0x0000,0xf8dd,0x0000, +0x0000,0xfbc7,0xd5c8,0x0000,0xd7df,0x0000,0xdda9,0x0000, +0x0000,0x0000,0x0000,0x0000,0xe9b1,0x0000,0x0000,0xfaad, +0xf6d9,0xfaf4,0x0000,0x0000,0x0000,0x0000,0x0000,0xf8aa, +0x0000,0x0000,0x0000,0x0000,0x0000,0xe6ee,0x0000,0xccdc, +0xe1bc,0xe0ef,0x0000,0x0000,0xe9bf,0xfcfd,0xe6ce,0x0000, +0x0000,0xe1d7,0x0000,0xe6cf,0x0000,0xf4f1,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xe4f3, +0x0000,0x0000,0xe4fb,0x0000,0x0000,0xf9e4,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xefe3,0x0000,0x0000,0xcfee,0xf6be,0xe0b2,0xfcfe,0xd1ab, +0x0000,0x0000,0x0000,0xd7fa,0x0000,0x0000,0x0000,0xfbc8, +0x0000,0xe2d7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xd4a3,0xf0f8,0xd7a8,0x0000,0x0000,0x0000,0xe1e7,0x0000, +0x0000,0xd3bf,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xefe4,0x0000,0xd7c5,0xebe2,0x0000,0x0000,0xfce7,0x0000, +0x0000,0xe4a2,0x0000,0xe2e8,0x0000,0xe6d0,0x0000,0xfbe8, +0xf4e8,0xe5f4,0xf4bc,0xf4d5,0x0000,0x0000,0x0000,0x0000, +/* 0x6e00 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xdfb6, +0x0000,0xfcb9,0xeec2,0xcaf5,0x0000,0x0000,0x0000,0xefe5, +0xcbe2,0xd4a4,0x0000,0xdee0,0xdafd,0xe4c6,0xe8be,0x0000, +0x0000,0x0000,0x0000,0xe0de,0xf6b4,0xead2,0x0000,0xf9fb, +0x0000,0x0000,0xe0c2,0x0000,0xcae4,0x0000,0xe7b7,0x0000, +0xeafd,0x0000,0xd9dd,0x0000,0xdab4,0xeeaa,0xfbe9,0x0000, +0x0000,0x0000,0x0000,0xdbcb,0xdab5,0x0000,0x0000,0x0000, +0x0000,0x0000,0xf1be,0x0000,0x0000,0xd3ac,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xfbc9,0x0000, +0xdfcf,0x0000,0x0000,0xd3c0,0xe3d7,0x0000,0xefe6,0xfcd0, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xe9c0, +0x0000,0x0000,0x0000,0xf5d3,0x0000,0x0000,0xecdc,0xf7b7, +0x0000,0x0000,0xeab8,0xd1f9,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xdcc8,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xeab9,0x0000,0x0000,0x0000,0x0000,0x0000,0xf1de,0x0000, +0x0000,0x0000,0x0000,0x0000,0xd7b6,0xcfb5,0x0000,0xd9a8, +0x0000,0x0000,0xecee,0x0000,0x0000,0xddaa,0x0000,0x0000, +0x0000,0x0000,0xcda2,0xe8ae,0x0000,0x0000,0x0000,0xe1bd, +0x0000,0xf2d1,0x0000,0x0000,0x0000,0x0000,0xe9c1,0x0000, +0x0000,0x0000,0xd2fc,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xdbb5,0x0000,0xf3e7,0xd8fe,0x0000,0x0000, +0x0000,0xfcd1,0x0000,0xedb2,0xf4af,0x0000,0xfba3,0x0000, +0x0000,0xfcc1,0x0000,0xeeab,0xd4a5,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xf4f2, +0x0000,0x0000,0x0000,0x0000,0xeed9,0x0000,0x0000,0x0000, +0xfbca,0x0000,0x0000,0x0000,0x0000,0x0000,0xcde3,0xd8bb, +/* 0x6f00 */ +0x0000,0xe5db,0xf8f7,0x0000,0x0000,0x0000,0xf6d4,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd7a9, +0x0000,0xcbc9,0x0000,0x0000,0xe6d1,0xf0cc,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xd8ae,0x0000,0xf9d3,0xd5fe,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xd8bc,0xf2b0,0x0000,0x0000,0x0000, +0x0000,0xe2ab,0xf3e8,0x0000,0x0000,0x0000,0x0000,0x0000, +0xefc2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xedec, +0x0000,0xe7b8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xdafe,0x0000,0x0000,0xccbe,0x0000,0x0000,0xf2fc, +0xdaeb,0x0000,0xe2d8,0xedd6,0x0000,0x0000,0xd6d1,0xe0b3, +0x0000,0x0000,0xfcd2,0x0000,0xebc8,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xd3c1,0xf0cd,0x0000, +0xcff7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xedd2,0x0000,0xd4d8,0xdcc9,0xd7f1,0x0000, +0x0000,0xdfbb,0x0000,0x0000,0xf3a5,0x0000,0x0000,0x0000, +0xf4cd,0x0000,0x0000,0x0000,0x0000,0xf1bf,0xf8b1,0x0000, +0xe9fa,0x0000,0x0000,0x0000,0xfbcb,0x0000,0x0000,0xcad5, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xf9d4,0xf7ca,0x0000,0x0000,0xd6c8, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xfce8,0xf3bd, +0x0000,0xeefe,0x0000,0xe7fe,0x0000,0x0000,0x0000,0x0000, +0x0000,0xd3c2,0x0000,0x0000,0x0000,0x0000,0xd3b6,0x0000, +0xccad,0xf6fa,0xd6b2,0xd2d8,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xe7d8,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xe3a5,0x0000,0x0000, +0x0000,0x0000,0xe7b9,0x0000,0x0000,0x0000,0x0000,0xf0ad, +0xfbcc,0xeba1,0x0000,0x0000,0xd4a6,0x0000,0x0000,0x0000, +0x0000,0xfbcd,0x0000,0xd5bd,0xf1df,0x0000,0x0000,0xf6fb, +0x0000,0xdeb4,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd5eb,0x0000, +/* 0x7000 */ +0x0000,0xe5c8,0x0000,0x0000,0x0000,0xfba4,0xd4b9,0x0000, +0x0000,0xdee1,0x0000,0xe4a3,0x0000,0x0000,0x0000,0xd7b7, +0x0000,0xf8ee,0x0000,0x0000,0x0000,0xdeb5,0x0000,0x0000, +0xd6d2,0x0000,0xf9d5,0xe7ba,0xebd5,0xd5f7,0xefe7,0xe1be, +0x0000,0x0000,0x0000,0xfaae,0x0000,0x0000,0x0000,0xd6e9, +0xd6ee,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xe7bb, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xeccb, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd5b3,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xceb4,0x0000,0x0000,0x0000, +0xfba5,0xe1ee,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xf7a8,0x0000,0x0000,0x0000,0x0000,0xfbce,0x0000,0x0000, +0x0000,0x0000,0x0000,0xd8bd,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xfbfd,0x0000,0x0000,0x0000,0x0000, +0xfce9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xcfb6,0x0000,0x0000,0x0000,0xedc7,0xeeac,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xccdd,0x0000,0x0000, +0x0000,0x0000,0xf6a7,0x0000,0x0000,0x0000,0xe6fa,0x0000, +0x0000,0x0000,0xf5a4,0x0000,0x0000,0x0000,0x0000,0x0000, +0xfddc,0xedb3,0xcec9,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xefe8,0x0000,0x0000,0xe1bf,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xfadb,0xcbe3,0xf7a9,0x0000,0xfba6, +0x0000,0x0000,0x0000,0xdcb9,0x0000,0x0000,0x0000,0xf1c0, +0xedc8,0xefc3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xd6ad,0x0000,0x0000,0xfdce,0x0000,0x0000,0x0000,0xe8a1, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xfbf4,0xd5a7,0x0000,0x0000,0x0000,0xf1f6,0x0000,0xe6d3, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xccde,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xf8b2,0x0000,0x0000,0x0000,0xdceb,0x0000,0x0000, +/* 0x7100 */ +0x0000,0x0000,0x0000,0x0000,0xfdb6,0x0000,0x0000,0x0000, +0x0000,0xe5ea,0x0000,0x0000,0xf1e0,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xdbcc,0xddcd,0x0000,0x0000,0x0000,0xd4c8,0x0000, +0x0000,0xd9ed,0x0000,0x0000,0x0000,0x0000,0xf5a5,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xe6fb,0x0000,0x0000,0x0000,0x0000,0x0000,0xe6d4,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xfdc8, +0x0000,0xd6a1,0xfdbf,0x0000,0xfcd3,0x0000,0xefa1,0x0000, +0xe7bc,0x0000,0x0000,0x0000,0x0000,0x0000,0xd1ee,0x0000, +0x0000,0xe6d5,0x0000,0x0000,0xe9f2,0x0000,0xdfb0,0x0000, +0x0000,0x0000,0x0000,0x0000,0xd8e0,0xfcba,0xfdaf,0xf0ce, +0x0000,0xdbe1,0x0000,0x0000,0xe5c9,0x0000,0xedb4,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xe0c3,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xe3d8,0x0000,0x0000,0x0000, +0x0000,0xe9fb,0xeaa8,0x0000,0x0000,0x0000,0x0000,0xfdb7, +0x0000,0x0000,0xfba7,0x0000,0xe9c2,0x0000,0x0000,0x0000, +0x0000,0xfdf7,0x0000,0x0000,0x0000,0x0000,0x0000,0xe2d9, +0x0000,0x0000,0xdcec,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xe8a2,0x0000,0x0000,0x0000, +0x0000,0xe6f0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xfdf8,0xfdf9,0x0000,0x0000,0x0000,0xf6bf,0x0000, +0x0000,0xe7a7,0x0000,0xe6d7,0x0000,0x0000,0x0000,0x0000, +0xd4f3,0xd4c9,0x0000,0x0000,0x0000,0x0000,0xd6fa,0x0000, +0xd7f2,0x0000,0xe1c0,0x0000,0xdbe2,0xe6d8,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xe7bd, +0x0000,0x0000,0x0000,0x0000,0x0000,0xf0cf,0xf3be,0xe2ac, +0x0000,0x0000,0x0000,0x0000,0x0000,0xf5b7,0xe0f0,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xfdb8,0xe3e8,0x0000,0xd4a7,0xe8fc, +0xfad2,0x0000,0x0000,0x0000,0x0000,0x0000,0xf8ef,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xd6d3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xd5b4,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xf0d0,0x0000,0xf7f0,0xeeb3,0x0000,0x0000, +0xeaba,0x0000,0xead3,0x0000,0x0000,0xedc9,0xddab,0x0000, +0x0000,0x0000,0xe5ac,0xfda1,0x0000,0xdfd0,0xecb3,0x0000, +0xdfd1,0x0000,0x0000,0x0000,0x0000,0x0000,0xeded,0xf8b8, +0xf7fa,0x0000,0x0000,0x0000,0xf8ab,0x0000,0x0000,0x0000, +0x0000,0x0000,0xf4e0,0x0000,0x0000,0x0000,0x0000,0x0000, +0xd4ba,0xe4b3,0x0000,0xe9da,0x0000,0xdeb6,0x0000,0xd9bf, +0x0000,0xd9c0,0xd6ef,0x0000,0x0000,0x0000,0x0000,0xd9cc, +0x0000,0xdaaa,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xdfe5,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xf7e5,0x0000,0x0000,0x0000,0xccb2,0x0000,0x0000, +0xdff9,0xd7e0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xd4bb,0x0000,0x0000,0x0000,0x0000,0xfdfa, +0x0000,0x0000,0x0000,0x0000,0xccb3,0x0000,0x0000,0xdbf3, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xdfd2,0x0000,0xceca,0x0000,0xeeda,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xe4e4,0x0000, +0xfbcf,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xcfb7, +0x0000,0xeec3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xceea,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xe2ad,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xd7e1,0xfaf5,0x0000,0x0000,0xd5c9,0xf8ac,0x0000,0x0000, +/* 0x7300 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xe7d9,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xf3e9,0x0000, +0x0000,0x0000,0x0000,0xd8ed,0xe3c4,0xf0f1,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xe8e5,0x0000,0x0000, +0x0000,0xe0fa,0xeec4,0xd9de,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xeba2,0xeba3, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xfcc2,0xeabb, +0x0000,0x0000,0x0000,0x0000,0xe8ab,0xdee2,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xedef,0x0000,0xe8a3,0x0000,0x0000,0x0000,0x0000,0xcff1, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xd4bc,0x0000,0xfcea,0x0000,0x0000,0x0000,0x0000,0x0000, +0xe7be,0x0000,0xfcf2,0x0000,0x0000,0xd6b4,0x0000,0x0000, +0xe2ae,0x0000,0xd3b7,0xfacc,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xfadc,0x0000,0xedb5,0xe1e3, +0x0000,0xe8ac,0x0000,0xe8dd,0x0000,0x0000,0xefe9,0x0000, +0x0000,0x0000,0x0000,0x0000,0xf4bd,0x0000,0xcfb8,0xe9db, +0xd1ac,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xdac7, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xebc9, +0x0000,0xe8cc,0x0000,0x0000,0x0000,0xdeb7,0x0000,0x0000, +0x0000,0x0000,0xd6bc,0xd3e5,0x0000,0x0000,0x0000,0x0000, +0x0000,0xfadd,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xdad6,0x0000,0xcab1,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xdac8,0xdfa6,0x0000,0xf9b3,0xf2d2,0x0000,0xcac4, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xcecb,0x0000, +0x0000,0xcdf5,0x0000,0x0000,0x0000,0xfdb0,0xd5a8,0x0000, +0xf1c1,0x0000,0x0000,0xe2e9,0xdcca,0xecb4,0xfac0,0x0000, +0x0000,0xfba8,0xd0a8,0x0000,0x0000,0xdaec,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd9ee, +0x0000,0xe0fb,0x0000,0x0000,0x0000,0xefea,0xfade,0x0000, +/* 0x7400 */ +0x0000,0xe0c4,0x0000,0xcfb9,0x0000,0xd5ca,0xd7e2,0xe2af, +0x0000,0xd7b8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xe8cd,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xf6da,0x0000,0x0000,0x0000,0x0000, +0xefa2,0xe2da,0xf6fc,0x0000,0x0000,0xfbd0,0xd1ad,0x0000, +0xcde4,0x0000,0xd1ae,0xdced,0xe8ce,0x0000,0xf0f9,0xceb5, +0xe6fc,0x0000,0x0000,0xd7fb,0xd0d6,0xddf5,0xf7f1,0x0000, +0xf6fd,0x0000,0xdbf7,0x0000,0x0000,0x0000,0x0000,0xfbea, +0xe9dc,0xd9c1,0x0000,0xf5f2,0xe0c5,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xead4,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xf9c2,0x0000,0xeabc, +0x0000,0xd2c5,0xfbd1,0xe7c0,0xeba5,0x0000,0xdffa,0xe3a2, +0xd7b9,0x0000,0xe9c3,0x0000,0xe8fd,0xe8af,0x0000,0x0000, +0xf2d3,0xfba9,0xd8a5,0x0000,0x0000,0x0000,0x0000,0xd5cb, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd0c8,0x0000, +0x0000,0x0000,0xd1af,0xd7e3,0x0000,0x0000,0x0000,0xe0c6, +0x0000,0xd6a2,0x0000,0xedf0,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xd7f3,0x0000,0x0000,0x0000,0xfcd4,0x0000,0xdad7,0xccdf, +0x0000,0xf2d4,0x0000,0xd1b0,0x0000,0xcce0,0x0000,0xdbfd, +0xf3bf,0x0000,0xf0d1,0x0000,0x0000,0x0000,0x0000,0x0000, +0xfcbb,0x0000,0xe2b0,0x0000,0x0000,0xe6a5,0x0000,0x0000, +0x0000,0xe2db,0x0000,0x0000,0x0000,0xdfde,0x0000,0xe0c7, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xf2ef,0x0000, +0x0000,0x0000,0xcce1,0x0000,0x0000,0x0000,0x0000,0xd6ea, +0x0000,0x0000,0x0000,0x0000,0xe7c2,0x0000,0x0000,0x0000, +0xceb6,0x0000,0xf3c0,0x0000,0xcdfe,0x0000,0x0000,0x0000, +0xfbd2,0x0000,0xf8f8,0xf7fb,0x0000,0x0000,0xe8bf,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xe8b7,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xedb6, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x7500 */ +0x0000,0xdcba,0x0000,0x0000,0xccb4,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xf1f7,0x0000,0x0000,0x0000,0xe8b8,0x0000,0x0000, +0xcaf6,0x0000,0xe4a4,0xf4d6,0x0000,0x0000,0x0000,0xdfe6, +0x0000,0x0000,0x0000,0xdfa7,0x0000,0xdfe7,0xe1c1,0x0000, +0xe9c4,0x0000,0x0000,0xdccb,0xe9c5,0x0000,0x0000,0x0000, +0xefa3,0xeba6,0xcba3,0xe3e9,0x0000,0x0000,0x0000,0xd1fb, +0xefa4,0x0000,0xefeb,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd0b4, +0x0000,0x0000,0x0000,0x0000,0xcda3,0x0000,0x0000,0xe8e6, +0x0000,0xefa5,0x0000,0xd3cc,0xdaed,0x0000,0x0000,0x0000, +0x0000,0xd7ba,0x0000,0xf2d5,0xf5e5,0xd9ef,0x0000,0x0000, +0x0000,0x0000,0xf9b4,0x0000,0x0000,0xd5d4,0xfdcf,0x0000, +0x0000,0x0000,0xdbe3,0x0000,0x0000,0x0000,0x0000,0xf1e1, +0xecb6,0x0000,0x0000,0x0000,0x0000,0xfbfe,0xd3d7,0x0000, +0xd1b1,0x0000,0xcbb1,0x0000,0x0000,0x0000,0x0000,0xd1b2, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xcbb2,0xf1c2, +0x0000,0x0000,0xf4e1,0xf9b5,0x0000,0x0000,0xe1c3,0xe1c2, +0x0000,0xebf7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xdfa8,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xcbca,0x0000,0x0000, +0x0000,0x0000,0x0000,0xe6b9,0x0000,0x0000,0x0000,0x0000, +0x0000,0xf8de,0xf9aa,0xcaf7,0x0000,0xedb7,0x0000,0x0000, +0xd3b8,0xf2d6,0x0000,0x0000,0xd4d9,0xeec5,0xf2f0,0x0000, +0x0000,0x0000,0xcab2,0x0000,0x0000,0xdcbb,0x0000,0xf1f8, +0x0000,0x0000,0x0000,0x0000,0x0000,0xecb7,0x0000,0x0000, +0x0000,0x0000,0xe5ca,0x0000,0xf6c0,0xfddd,0x0000,0x0000, +0xd4e3,0xcce2,0x0000,0xf7d4,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xd7e5,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xd3c3,0x0000,0xd8a6,0x0000,0xf6c1,0x0000,0x0000,0x0000, +0x0000,0x0000,0xddf6,0x0000,0xcdc0,0x0000,0x0000,0x0000, +0xe5dc,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xe5cb,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xe1c4,0x0000,0x0000,0x0000,0x0000,0x0000,0xe8b0, +0xf4b0,0xf3ea,0xdaee,0x0000,0xd7bb,0x0000,0xe2b1,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xd7aa,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xd6fb,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xe4df,0x0000,0xcad6,0x0000, +0x0000,0x0000,0xeba8,0x0000,0x0000,0x0000,0xdbfe,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xf6c2,0x0000,0x0000,0xefbb,0x0000,0x0000,0x0000, +0x0000,0xd4fd,0x0000,0x0000,0xe0c8,0x0000,0x0000,0x0000, +0xe8b9,0x0000,0xefa6,0x0000,0x0000,0x0000,0x0000,0x0000, +0xcda4,0x0000,0x0000,0xd4f4,0xdba1,0xdbdc,0xdbdd,0x0000, +0x0000,0x0000,0x0000,0x0000,0xeedc,0x0000,0xcbcb,0xfcd5, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xceeb,0x0000, +0xcdc1,0x0000,0x0000,0xfbd3,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xf9ab,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xf5d4,0x0000,0x0000,0x0000,0x0000,0xd9a9, +0x0000,0x0000,0xe9dd,0xdbcd,0x0000,0x0000,0xddce,0x0000, +0xe7c3,0x0000,0xeccc,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xf9ec,0x0000,0x0000,0x0000,0xcbcc,0x0000, +0x0000,0x0000,0x0000,0xe0fc,0xd4a8,0x0000,0xedd3,0xd8ef, +0x0000,0xf2d7,0x0000,0xcaf8,0xdaef,0x0000,0x0000,0xd6d4, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd9cd,0x0000, +0x0000,0x0000,0xd8ee,0x0000,0xf2c1,0x0000,0x0000,0x0000, +0xdfd3,0x0000,0x0000,0x0000,0xdaf0,0x0000,0xe2ea,0x0000, +/* 0x7700 */ +0x0000,0xe0fd,0x0000,0x0000,0xd8f8,0x0000,0x0000,0x0000, +0xf7af,0xdab6,0x0000,0xcad7,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xf2d8,0x0000, +0xd8f9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xfadf,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xcfef, +0xd9c2,0x0000,0xf0d2,0x0000,0xe4d1,0x0000,0x0000,0x0000, +0xf3b7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xfae0,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xefec,0x0000,0x0000,0x0000,0x0000, +0x0000,0xe2b2,0x0000,0xd4bd,0x0000,0x0000,0xd9ce,0x0000, +0x0000,0x0000,0x0000,0xf4e2,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xd4a9,0x0000,0x0000,0x0000,0x0000,0xcdc2,0xe7da, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xf2d9,0x0000,0x0000,0x0000,0x0000, +0x0000,0xd9aa,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd8be,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xdcad,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xe2eb,0xd6fc,0x0000,0x0000, +0xcaf9,0x0000,0x0000,0xd4da,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xf4d7,0xcca1,0x0000,0x0000,0xcfba, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xf5b8, +0x0000,0x0000,0x0000,0xd9c3,0xd0e8,0x0000,0x0000,0x0000, +0x0000,0x0000,0xe3c5,0xebf8,0x0000,0xf2b1,0x0000,0x0000, +0x0000,0xcfbb,0x0000,0x0000,0x0000,0xd3ad,0xe8e1,0xceec, +0x0000,0x0000,0x0000,0xe0b4,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x7800 */ +0x0000,0x0000,0xdee3,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xddf7,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xf2b2,0xf3f6,0xf6db, +0x0000,0x0000,0x0000,0x0000,0xd7fe,0x0000,0x0000,0x0000, +0x0000,0x0000,0xf8df,0x0000,0xf7f2,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xd0a9,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xe6da, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xf5a6,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xd7bc,0xcce3,0x0000,0x0000,0xe6db, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xdddd,0x0000,0x0000,0x0000, +0x0000,0xd1b3,0x0000,0x0000,0x0000,0x0000,0x0000,0xefed, +0x0000,0x0000,0x0000,0x0000,0xd6de,0xe4f4,0xe1ef,0x0000, +0x0000,0xddf8,0x0000,0x0000,0x0000,0x0000,0x0000,0xe8cf, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xcae5,0x0000,0x0000,0x0000,0xdca1, +0x0000,0xe0b5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xfcac,0xfcad,0xd8a7,0x0000,0x0000,0x0000, +0x0000,0xedb8,0x0000,0x0000,0x0000,0xdbb6,0x0000,0x0000, +0x0000,0x0000,0xd6f0,0xf3af,0x0000,0x0000,0xcda5,0x0000, +0xdaf1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xd8a8,0x0000,0x0000,0x0000,0xcce4,0x0000,0x0000,0xd1b4, +0x0000,0x0000,0x0000,0x0000,0x0000,0xcad8,0x0000,0x0000, +0x0000,0x0000,0x0000,0xdaf2,0x0000,0x0000,0x0000,0x0000, +/* 0x7900 */ +0x0000,0xf5a7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xf5a8,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xe6a6,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xd5ec,0xd5f8,0xdaf3,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xe3c6,0x0000,0x0000,0x0000,0xdee4,0x0000, +0xdee5,0xd1b5,0x0000,0x0000,0x0000,0x0000,0x0000,0xd1b6, +0xd1b7,0xf2b3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xe9de,0x0000,0x0000,0x0000,0x0000,0x0000,0xf0d3,0xf2b4, +0x0000,0x0000,0xf0d4,0xcbe4,0xfbd4,0xf5e6,0xe3ea,0x0000, +0xdee6,0x0000,0x0000,0x0000,0x0000,0xdfd4,0x0000,0x0000, +0xf8f9,0x0000,0x0000,0x0000,0x0000,0xf0ae,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xd1b8,0x0000,0x0000,0x0000,0x0000,0xd6df, +0x0000,0xd0d7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xfca1,0xefee,0xdcd8, +0x0000,0xe9df,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xe5dd,0xfdfb, +0x0000,0x0000,0xe0c9,0x0000,0x0000,0x0000,0xd6c9,0x0000, +0x0000,0xd4aa,0x0000,0xe5cc,0x0000,0x0000,0x0000,0x0000, +0x0000,0xe9e0,0x0000,0x0000,0x0000,0xd0d8,0xfca2,0xd4be, +0xe2b3,0xdee7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xdcbc,0xd2b6,0xf5d5,0x0000,0x0000,0x0000,0x0000, +0x0000,0xcea1,0xf5a9,0x0000,0x0000,0xddf9,0x0000,0x0000, +0xddfa,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xf0d5, +0x0000,0x0000,0x0000,0x0000,0xf6df,0x0000,0xf2da,0xe4eb, +0x0000,0xf2f1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xecb9,0x0000,0x0000,0x0000,0x0000, +0xfdfc,0x0000,0x0000,0x0000,0x0000,0xe1aa,0x0000,0x0000, +0xcad9,0x0000,0x0000,0xefef,0x0000,0xf5aa,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xecf9,0x0000,0x0000,0xf8ad, +0x0000,0xf2c2,0xf6c3,0x0000,0xd7d2,0x0000,0x0000,0xf9a2, +0xf0d6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xf0fa,0x0000, +0x0000,0xf6e0,0x0000,0x0000,0x0000,0x0000,0xe9f3,0xf2c3, +0x0000,0x0000,0x0000,0xd4ab,0xcab3,0xcda6,0x0000,0xcdc3, +0xcdda,0x0000,0x0000,0x0000,0x0000,0x0000,0xd9cf,0x0000, +0x0000,0xf6c4,0x0000,0x0000,0x0000,0xeedd,0xe7c4,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xe2b4, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xdfe2,0xe7db,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xe8b1,0x0000,0xfcae,0x0000,0x0000,0x0000,0x0000, +0xe5cd,0x0000,0x0000,0x0000,0xfaeb,0x0000,0xcfbc,0x0000, +0x0000,0xcfe2,0xcdf6,0x0000,0x0000,0xeff0,0x0000,0xf4be, +0x0000,0xd4cd,0x0000,0x0000,0xf3b8,0x0000,0x0000,0x0000, +0xe9a1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xf2f2,0xf3eb,0x0000,0xf0d7,0x0000,0x0000, +0xcfd7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xcfdf, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xe8c0,0xe8c1,0x0000,0x0000,0x0000,0xcfe3,0xe9a2, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xd0aa,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xf3c1,0xd0ab,0x0000,0xd4e4, +0x0000,0x0000,0xefbc,0xd8a1,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd9df, +0x0000,0xf3d7,0x0000,0x0000,0x0000,0xdcbd,0x0000,0xcce5, +0xedf1,0x0000,0x0000,0xf1e2,0x0000,0xd4db,0x0000,0x0000, +0x0000,0x0000,0xe2b5,0x0000,0x0000,0xcae6,0x0000,0xd3ae, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xcce6,0x0000, +0x0000,0xf1d3,0xf5e7,0x0000,0x0000,0x0000,0x0000,0xcada, +/* 0x7b00 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xfbee, +0x0000,0xe1c5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xdfe9,0x0000,0xeede,0x0000,0x0000,0xf7c2,0x0000, +0xd8a2,0x0000,0x0000,0x0000,0x0000,0x0000,0xddac,0x0000, +0x0000,0x0000,0x0000,0x0000,0xf0af,0xd6bd,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xe1ab,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xf9b6,0x0000, +0x0000,0xd4f5,0x0000,0xd0c9,0xefa7,0xe2ec,0x0000,0xdbea, +0xcecc,0xf5e8,0xf7d5,0x0000,0xd3cd,0x0000,0xf3fe,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xd0b5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xe0fe,0x0000,0xdffb,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xe6dd,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xe8a4,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xcbcd, +0x0000,0x0000,0x0000,0xefa8,0x0000,0x0000,0x0000,0xeeb4, +0x0000,0x0000,0x0000,0x0000,0xdad8,0xd1b9,0x0000,0xdfa9, +0x0000,0x0000,0xf3b0,0x0000,0x0000,0xccc4,0x0000,0x0000, +0x0000,0xceb7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xefa9,0x0000,0x0000, +0x0000,0xdfd5,0x0000,0x0000,0xedd7,0x0000,0x0000,0x0000, +0xeec6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xefbd,0xfcd6,0x0000,0x0000,0xdbf4,0x0000,0xefaa,0xf8b9, +0x0000,0xf5e9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xe3d9,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xe1c6,0x0000,0x0000,0x0000,0xd4bf,0x0000,0x0000,0x0000, +0x0000,0xdee8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x7c00 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xf0ea, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xf3c2,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd3af,0x0000, +0x0000,0xcadb,0x0000,0x0000,0x0000,0x0000,0x0000,0xfcd7, +0x0000,0x0000,0xedd8,0xe1c7,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xf4d8,0xd6b3,0xddad, +0x0000,0x0000,0x0000,0xd5be,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xf1c3,0xeedf,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xd6eb,0x0000,0x0000,0x0000,0xf4d9,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xd7e6,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xdab7,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xddfb,0x0000,0x0000,0x0000,0x0000, +0x0000,0xddcf,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xd8a3,0x0000,0x0000,0xdad9,0x0000,0xf0d8, +0xefc4,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xe1d8, +0x0000,0x0000,0x0000,0x0000,0x0000,0xf1d4,0x0000,0xedf2, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd5db,0x0000, +0x0000,0xd5dc,0xf3c4,0xcbd7,0x0000,0x0000,0x0000,0x0000, +0x0000,0xe2b6,0x0000,0x0000,0x0000,0x0000,0xeff1,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xfbd5,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd3d8,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xddd0,0xf0d9, +0xcbb3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd5dd, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xcda7,0x0000,0x0000,0xd0ac,0x0000, +0xd1ba,0x0000,0xf1c4,0x0000,0xe5b3,0xfbf5,0xe9e1,0xfde0, +0xfcbc,0x0000,0xdaa2,0xdaa3,0x0000,0xd2a1,0x0000,0x0000, +0xd2ef,0x0000,0x0000,0x0000,0xe2ed,0x0000,0x0000,0xdee9, +0xcedc,0xf2b5,0xd0e4,0xddd1,0x0000,0x0000,0x0000,0x0000, +0xe1c8,0xdbb7,0xdfe3,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xedb9,0xf1c5,0x0000,0xf3cf,0xd7ab, +0xe1ac,0x0000,0x0000,0xe3eb,0x0000,0xeec7,0x0000,0x0000, +0x0000,0xe1c9,0xcafa,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xf0fb,0xfae1,0xf0da,0xcce7,0xdaf4,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xccbf,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xceed,0x0000, +0x0000,0xd5a9,0xfae2,0x0000,0x0000,0x0000,0xd0e5,0x0000, +0xebd6,0x0000,0xecdf,0x0000,0x0000,0x0000,0xdffc,0x0000, +0x0000,0xf7d6,0xdeea,0xcbb4,0x0000,0x0000,0xefbe,0x0000, +0x0000,0xccb5,0x0000,0x0000,0x0000,0x0000,0x0000,0xcfbd, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xeff2,0xe2b7, +0x0000,0x0000,0x0000,0xcce8,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xf0fc,0x0000,0x0000,0x0000, +0xd6e0,0x0000,0xf1c6,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xe2b8,0xebab,0x0000,0x0000, +0x0000,0xcbb5,0xd8d1,0x0000,0xf4ce,0xf3f7,0x0000,0x0000, +0xd7c6,0x0000,0xd1bb,0xf7aa,0x0000,0xedca,0xd7d3,0xd8fa, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xf6c5, +0x0000,0x0000,0xd1cc,0xddfc,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xdffd,0x0000, +0xf9e5,0x0000,0xe0ca,0x0000,0x0000,0xf2fd,0xd3b0,0x0000, +0xf4f3,0xdac9,0x0000,0xe6de,0x0000,0x0000,0x0000,0x0000, +0xf8ba,0xe8d0,0x0000,0x0000,0xd8fb,0x0000,0x0000,0xead5, +0x0000,0x0000,0x0000,0x0000,0xd6a3,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xf6c6,0x0000,0x0000,0x0000,0x0000, +/* 0x7e00 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xf2db,0xe4fc,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xe8b2,0x0000,0x0000, +0x0000,0x0000,0x0000,0xdada,0x0000,0xf2dc,0xfbd6,0xe9b2, +0x0000,0xeead,0x0000,0xfae3,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xdcee,0x0000,0x0000,0xf5ea,0xe6e0, +0x0000,0xf0fd,0x0000,0x0000,0x0000,0x0000,0x0000,0xd7ac, +0x0000,0x0000,0x0000,0x0000,0x0000,0xf5c5,0xeee0,0x0000, +0x0000,0xdbe5,0x0000,0xddde,0x0000,0x0000,0xd9f0,0xe9a3, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xf1f9,0x0000,0xf2c4,0xe0cb,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xe9a4,0x0000, +0x0000,0xe2b9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xe3b1,0xfceb,0xcda8,0x0000,0xccb6,0x0000,0x0000, +0xf0db,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xe6ba,0x0000,0x0000,0xcda9,0x0000,0x0000,0x0000, +0x0000,0x0000,0xf3c3,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xe1d9,0x0000,0x0000,0xefab, +0x0000,0x0000,0x0000,0xe7c5,0x0000,0x0000,0xe0e9,0x0000, +0xf3c5,0x0000,0x0000,0xd4c0,0xd5bf,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x7f00 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xddae,0x0000, +0xf9fc,0x0000,0xccc0,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xe5a2,0x0000,0x0000,0x0000, +0xceb8,0x0000,0x0000,0x0000,0xd8d2,0xf9d6,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xf1aa,0xced1,0x0000,0x0000,0xf6c7,0x0000, +0xdbeb,0x0000,0xdffe,0x0000,0x0000,0xd8e1,0x0000,0xf7f3, +0x0000,0xd7e7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xd4fe,0x0000,0x0000, +0xd1bc,0x0000,0xe5cf,0x0000,0xcbb6,0x0000,0xdab8,0x0000, +0x0000,0x0000,0x0000,0x0000,0xcdc4,0x0000,0x0000,0x0000, +0x0000,0x0000,0xd6be,0x0000,0x0000,0x0000,0xe2ba,0x0000, +0x0000,0x0000,0x0000,0x0000,0xcfd8,0x0000,0x0000,0x0000, +0xe0cc,0xebf9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xfdfd,0x0000,0x0000,0x0000,0x0000,0x0000, +0xd7e8,0xcbd8,0x0000,0x0000,0x0000,0xe9e2,0x0000,0x0000, +0x0000,0xe8ba,0x0000,0x0000,0x0000,0xe3c7,0x0000,0x0000, +0x0000,0x0000,0xeccd,0x0000,0xecce,0x0000,0xd6bf,0x0000, +0x0000,0x0000,0xe3a7,0x0000,0xdfd6,0xfde8,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xeee1, +0xf6a8,0xddfd,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xf8bb,0x0000,0xe8d1,0x0000,0x0000,0x0000,0x0000, +0xf9d7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xceee,0x0000,0x0000,0xeccf,0x0000,0x0000,0x0000, +0xe9a5,0xd6d5,0x0000,0xcdc5,0x0000,0xedba,0xd1bd,0x0000, +0x0000,0xcfbe,0x0000,0x0000,0xecbb,0x0000,0x0000,0x0000, +0xd2b1,0x0000,0x0000,0x0000,0x0000,0xcce9,0x0000,0xd9c4, +0xe9fc,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xd1be,0x0000,0x0000, +0x0000,0x0000,0x0000,0xecbc,0x0000,0x0000,0xe5ad,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xf7b0,0x0000,0xccea, +0x0000,0x0000,0x0000,0xd3c4,0x0000,0x0000,0xd6c0,0x0000, +0x0000,0x0000,0xd6fd,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xe1a1,0x0000, +0xdebd,0x0000,0xf6a9,0x0000,0x0000,0x0000,0xdaa4,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd6a4, +0xf5c6,0x0000,0xe1a2,0xe9c6,0x0000,0x0000,0x0000,0xf2c5, +0x0000,0x0000,0x0000,0x0000,0x0000,0xf4e9,0xd6ec,0xebd3, +0x0000,0x0000,0x0000,0x0000,0xecbd,0xe2dc,0xdeeb,0xf0dc, +0x0000,0xebbf,0x0000,0xd7ce,0xd1bf,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xf5ab,0x0000, +0x0000,0x0000,0x0000,0xf9fd,0x0000,0xcadc,0x0000,0x0000, +0x0000,0xcdc6,0xf2b6,0x0000,0x0000,0xddfe,0x0000,0x0000, +0x0000,0xccb7,0xdbb8,0x0000,0x0000,0x0000,0x0000,0xd0e9, +0x0000,0xcedd,0xebc0,0x0000,0xfda2,0x0000,0x0000,0x0000, +0x0000,0x0000,0xf8cb,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xead6,0xf1b0,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xdbce,0x0000,0xf7c3,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xdbcf,0xcba4,0x0000,0x0000,0xf8e0,0x0000, +0x0000,0xfbd7,0x0000,0x0000,0xebca,0xe0a1,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xcecd,0x0000,0x0000,0xd4dc,0x0000,0x0000,0x0000, +0xfdd8,0x0000,0x0000,0x0000,0x0000,0xd2f6,0x0000,0x0000, +/* 0x8100 */ +0x0000,0x0000,0xf2b7,0x0000,0x0000,0xfaf6,0xf6aa,0xfaf7, +0xd8e6,0x0000,0xf4b1,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xe8d2,0x0000,0xcac5,0xcceb,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xe2ee,0x0000,0x0000,0x0000,0x0000, +0x0000,0xe2bb,0x0000,0xf7ad,0x0000,0x0000,0x0000,0xf8e1, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xf3ec,0x0000,0x0000,0x0000,0x0000,0xdea1,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xe4fd,0x0000,0x0000,0xe3ec,0x0000, +0xddaf,0xddb0,0x0000,0x0000,0xcbb7,0xe8d3,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xe1a3,0xd2e0,0x0000, +0x0000,0x0000,0x0000,0xf0fe,0x0000,0x0000,0x0000,0x0000, +0xe9a6,0xcbf2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xedf3,0xdcd9,0xe0cd,0x0000,0x0000,0x0000,0x0000,0xf7da, +0xdbb9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xccae,0x0000,0xdadb,0x0000,0x0000,0x0000,0x0000,0xcdc7, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xddb1,0x0000,0xd8af,0xe3a3,0x0000,0x0000, +0xceef,0x0000,0x0000,0xf2f3,0x0000,0x0000,0x0000,0x0000, +0xf8b3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xe0ce,0x0000,0xf5fd,0x0000,0x0000, +0x0000,0x0000,0xebec,0x0000,0x0000,0xd3c5,0xfcec,0xd2db, +0xd4eb,0x0000,0xdea2,0x0000,0x0000,0x0000,0xe5e6,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xf0b0,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xd5c4,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xedf4, +0x0000,0x0000,0x0000,0xe3ed,0x0000,0xe8c2,0x0000,0xedf5, +0xd7fc,0x0000,0xedbb,0x0000,0x0000,0xf6ab,0x0000,0x0000, +0x0000,0x0000,0x0000,0xf2b8,0xf6c8,0x0000,0x0000,0x0000, +0x0000,0x0000,0xd3e6,0xf2dd,0xcfbf,0x0000,0xebac,0x0000, +/* 0x8200 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0xcfc0,0x0000,0xe6a8, +0xfde9,0x0000,0xcfc1,0x0000,0xe0df,0xdeec,0x0000,0x0000, +0x0000,0x0000,0xe0a2,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xf4bf,0xe2ef,0x0000,0xd9f1,0xf1c7, +0x0000,0xcbb8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xf9fe,0xdbba,0xdaf5,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xf6ec,0xdadc,0xfae4, +0x0000,0xe0cf,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xddb2,0x0000,0x0000,0x0000,0x0000,0xe6a9,0x0000,0xeff3, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xf3ed,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xebfa,0x0000,0xf9e6,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xcadd,0xd5de, +0x0000,0xcade,0xdfe4,0x0000,0x0000,0x0000,0xe6fd,0x0000, +0xf5ac,0x0000,0x0000,0x0000,0x0000,0x0000,0xe4f5,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xe9e3,0x0000,0xedcb,0xcfe4,0x0000, +0x0000,0x0000,0xd8d3,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xddb3,0xd4ec,0x0000,0x0000,0xf2b9,0x0000,0xdfb7, +0x0000,0x0000,0x0000,0x0000,0x0000,0xcbce,0xfbd8,0x0000, +0x0000,0xd0d9,0x0000,0x0000,0xddd2,0xf7f4,0xe7dc,0xe4a5, +0x0000,0xfca3,0x0000,0xdbbb,0x0000,0x0000,0x0000,0xf2ba, +0xe9fd,0xd0ca,0x0000,0xf5d6,0xd9c5,0xe4b4,0x0000,0xeda7, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xeabd,0xe6fe,0x0000,0xf7c4,0xf5ad,0x0000,0xd9e0, +0x0000,0x0000,0x0000,0xcab4,0x0000,0x0000,0xf8e2,0xcfc2, +0x0000,0xecbe,0x0000,0x0000,0x0000,0xe5b4,0xcdc8,0xeec8, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xe7c8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xcdc9,0xf9b7,0x0000, +/* 0x8300 */ +0x0000,0xf1e8,0xd9f2,0xdbf5,0xcab5,0xd9c6,0x0000,0x0000, +0x0000,0xd8c9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd9ab, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xedbc,0x0000,0x0000,0xd8d4,0x0000,0x0000,0x0000,0xdcda, +0x0000,0xe2bc,0x0000,0x0000,0xfced,0xece0,0xd2fe,0x0000, +0xe9c7,0xe6aa,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xe2f0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xfabb, +0x0000,0xf5ae,0xfbaa,0x0000,0x0000,0x0000,0x0000,0xecfb, +0x0000,0xecbf,0xfcd8,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xd4e5,0x0000,0x0000,0x0000,0xf9c3, +0x0000,0x0000,0x0000,0xeee2,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xd7e9,0xedf6,0x0000,0x0000,0x0000,0xdeed,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xccec,0x0000, +0xe3ee,0x0000,0x0000,0x0000,0x0000,0x0000,0xe8d4,0x0000, +0x0000,0x0000,0xfaf8,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xddb4,0xe4b5,0xd8b0,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xd8d5,0x0000,0x0000, +0x0000,0xf4ea,0x0000,0x0000,0x0000,0xceb9,0x0000,0x0000, +0x0000,0xd6e1,0xcfd2,0x0000,0xd0b6,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xcea2,0x0000,0x0000,0xf3ee,0x0000, +0x0000,0x0000,0x0000,0x0000,0xf3f8,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xdccc,0x0000,0xd0cb,0x0000,0x0000,0x0000,0xfca4, +0xcdca,0xd7d4,0xdea3,0x0000,0xe4e0,0x0000,0x0000,0x0000, +0x0000,0xeec9,0x0000,0x0000,0x0000,0xe2dd,0x0000,0x0000, +/* 0x8400 */ +0x0000,0x0000,0x0000,0xf5fe,0xd4ac,0x0000,0x0000,0x0000, +0x0000,0x0000,0xd5d1,0x0000,0xd8f0,0xf8c3,0xead7,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xf5d7,0x0000,0x0000,0xd8bf,0x0000,0x0000,0x0000, +0x0000,0xfdc0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xebad,0x0000,0x0000,0x0000,0x0000,0xd5aa,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xe7a8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xeeca, +0x0000,0x0000,0x0000,0xcae7,0x0000,0x0000,0x0000,0x0000, +0x0000,0xf8e3,0x0000,0xd4dd,0x0000,0x0000,0xead8,0x0000, +0x0000,0x0000,0x0000,0xfbd9,0xedf7,0x0000,0x0000,0xe5b5, +0x0000,0x0000,0x0000,0x0000,0x0000,0xd0ad,0x0000,0x0000, +0x0000,0x0000,0xf1f1,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xe2bd,0x0000,0x0000,0x0000,0xe3c8,0x0000,0x0000,0x0000, +0x0000,0xd9d5,0x0000,0x0000,0xdfaa,0x0000,0x0000,0x0000, +0x0000,0xdbbc,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xf8e4,0x0000,0x0000,0x0000,0x0000,0x0000, +0xf1fa,0x0000,0x0000,0xe5b6,0xf3ef,0x0000,0x0000,0xfbda, +0xe1e0,0x0000,0xd9ac,0x0000,0xf5eb,0x0000,0xe0b6,0x0000, +0x0000,0xe9c8,0x0000,0xcbcf,0x0000,0xe3c9,0x0000,0x0000, +0x0000,0xdeee,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xe2be,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xdcef,0x0000,0xd6a5,0x0000, +0x0000,0x0000,0x0000,0x0000,0xe2f1,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xd6fe,0x0000,0x0000,0x0000, +/* 0x8500 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xd9a1,0x0000,0xd8c0,0xdcdb,0x0000,0x0000,0xedbd, +0xdfb8,0x0000,0xeaa5,0x0000,0x0000,0x0000,0xd7ad,0x0000, +0x0000,0xf3f9,0x0000,0xedf8,0x0000,0xf5c7,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xe1ca,0xebe3,0x0000,0xf2de, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xf8cc,0x0000,0xead9, +0x0000,0xd3c6,0x0000,0xdbe6,0x0000,0x0000,0x0000,0x0000, +0x0000,0xf5af,0x0000,0x0000,0x0000,0x0000,0xcef0,0x0000, +0x0000,0x0000,0x0000,0xe9fe,0x0000,0x0000,0x0000,0x0000, +0x0000,0xfbb6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xe2f2,0x0000,0x0000,0x0000,0x0000, +0xcff2,0xf7b9,0xd9f3,0x0000,0x0000,0xe1cb,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xdadd,0x0000,0x0000,0xdab9, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xebfb, +0x0000,0xcbb9,0x0000,0x0000,0xedf9,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xe0e0,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xf4c0,0x0000, +0xfdbc,0xdfb1,0xe3ef,0x0000,0x0000,0x0000,0x0000,0xe0a3, +0xfdb9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xf0b1,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xcdcb,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xedbe,0x0000,0x0000,0x0000,0xd5c0,0xe3f0,0xedfa, +0x0000,0x0000,0x0000,0x0000,0x0000,0xe9e4,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xd5ed,0xe7dd,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xd4f6,0xe5b7,0x0000,0x0000, +0x0000,0xdbe7,0xe2bf,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xeecb, +0x0000,0x0000,0xd7f4,0xf0dd,0x0000,0x0000,0x0000,0xceab, +/* 0x8600 */ +0x0000,0x0000,0xe7de,0x0000,0x0000,0x0000,0xd6d6,0xe1cc, +0x0000,0x0000,0xe8b3,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xe5ee,0xdca2, +0x0000,0x0000,0xe0d0,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xd5b5,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd5a1, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xfbdb,0x0000, +0xf9cb,0x0000,0x0000,0x0000,0xcbf3,0xf4a5,0x0000,0x0000, +0x0000,0x0000,0x0000,0xfac8,0xd6d7,0x0000,0xe9e5,0xfbdc, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xfdd0, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xfbf6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xdaa5,0x0000,0xdbbd,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xece2,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xcdf7,0xf0de,0x0000,0x0000,0x0000, +0x0000,0xf6c9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xdeef, +0x0000,0x0000,0x0000,0xd3b1,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xfcee,0x0000,0x0000,0x0000, +0x0000,0xe8c3,0x0000,0xf1c8,0x0000,0x0000,0x0000,0xcef1, +0x0000,0x0000,0x0000,0x0000,0xf9ed,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xf2f4,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xe4b6,0x0000, +0xf5b9,0x0000,0xdcf0,0xe3f1,0x0000,0x0000,0x0000,0x0000, +0xe8a5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xf2bb,0x0000,0xdea4,0x0000,0xdacc,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xcae9,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xe3da,0x0000,0xfcd9, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xeada, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xf9c4,0x0000, +0xe3a4,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xfbdd,0x0000,0xefca,0x0000, +0xe8c4,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xd5cc,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xebd7,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd9ad, +0x0000,0x0000,0xfbab,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xd3d9,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xd5a2,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xf6de,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xdaf6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xe0d1,0x0000,0x0000,0xe9a8, +0x0000,0x0000,0xf5f9,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xfaaf,0x0000,0xebfc,0x0000,0x0000,0xe0ea,0x0000, +/* 0x8800 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0xe3b2,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd5c5, +0x0000,0x0000,0xf1e3,0xd5ee,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xcdcc,0x0000,0x0000,0x0000,0x0000,0xedd9,0x0000, +0x0000,0x0000,0x0000,0xd8c1,0x0000,0x0000,0x0000,0x0000, +0xfaec,0x0000,0x0000,0x0000,0x0000,0x0000,0xf1eb,0x0000, +0x0000,0x0000,0x0000,0x0000,0xfabc,0xe6e2,0x0000,0x0000, +0x0000,0x0000,0xfae5,0xe2fa,0x0000,0x0000,0x0000,0xcab6, +0x0000,0xe4b7,0x0000,0xeadb,0x0000,0xf5fa,0x0000,0x0000, +0x0000,0xfbac,0xcfc3,0xebfd,0x0000,0x0000,0x0000,0x0000, +0xf8fa,0x0000,0x0000,0xdfb9,0x0000,0x0000,0x0000,0x0000, +0xe1f1,0x0000,0xd2a4,0x0000,0x0000,0x0000,0x0000,0xf5fb, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd0da,0xd0db, +0x0000,0xeabe,0xd9b1,0x0000,0x0000,0x0000,0x0000,0x0000, +0xcab7,0x0000,0x0000,0xd3e7,0x0000,0xf8e5,0x0000,0x0000, +0x0000,0x0000,0xd3b2,0x0000,0x0000,0x0000,0xe2c0,0xf2df, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xcde5,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xf9ac,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xcdcd,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xeeae,0xd6ae,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd7ea, +0x0000,0x0000,0x0000,0x0000,0xe7e0,0xebae,0x0000,0x0000, +0x0000,0xcfd9,0x0000,0x0000,0xdccd,0xedfb,0x0000,0xdef0, +0x0000,0xd7eb,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xdea5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xdfd7,0xdbd0,0xdbd1,0x0000,0x0000, +0xd5a3,0x0000,0x0000,0x0000,0x0000,0xf0b2,0x0000,0x0000, +/* 0x8900 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xdcdc, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xcae8,0x0000,0xf8e6,0xdcce,0x0000,0x0000,0x0000,0x0000, +0xeadc,0xdbd2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xe9b3,0x0000,0x0000, +0x0000,0x0000,0xf7db,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xe3a8,0x0000, +0xd7ae,0x0000,0x0000,0xe0e1,0x0000,0x0000,0x0000,0x0000, +0x0000,0xcbba,0x0000,0x0000,0xe5d1,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd0dc, +0x0000,0x0000,0x0000,0x0000,0xd5c1,0x0000,0x0000,0x0000, +0x0000,0x0000,0xd8ca,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xe3a9,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xe0a4, +0x0000,0xe9a9,0x0000,0xd3c7,0x0000,0x0000,0xdcdd,0xf8ae, +0x0000,0x0000,0x0000,0xccb8,0x0000,0x0000,0x0000,0xd0ae, +0x0000,0x0000,0x0000,0xd8f2,0x0000,0x0000,0xe3ca,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xccaf,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xd4ad,0xf6d1,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xd0cc,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xcac6,0x0000,0x0000,0xd5c2,0x0000,0x0000, +0xceba,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xcac7,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xfab0,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xdfd8,0x0000,0x0000,0x0000, +0xf5ba,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xe5eb,0x0000,0xeff4,0xddb5,0x0000,0x0000,0x0000,0x0000, +0xcdaa,0x0000,0xe3f2,0x0000,0xfbf7,0x0000,0xf7d0,0x0000, +0x0000,0x0000,0x0000,0xfdba,0x0000,0x0000,0xfde1,0xf6fe, +0xd1c0,0x0000,0x0000,0xe8c5,0x0000,0xe4b8,0x0000,0xe1e8, +0x0000,0x0000,0x0000,0xccc1,0x0000,0xd2ed,0x0000,0x0000, +0x0000,0x0000,0xdbbe,0x0000,0x0000,0xe0e2,0x0000,0x0000, +0x0000,0xfac9,0x0000,0x0000,0xe1cd,0x0000,0xcab8,0x0000, +0x0000,0x0000,0xf2e0,0xf1c9,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xdef1,0x0000,0x0000,0x0000,0xf0df,0xf8c4,0x0000,0x0000, +0x0000,0x0000,0x0000,0xeecc,0x0000,0x0000,0xdef2,0x0000, +0xe7c9,0x0000,0xe2f3,0xe7e1,0x0000,0x0000,0xe3cb,0x0000, +0x0000,0xe3cc,0x0000,0x0000,0x0000,0xcff8,0xefac,0x0000, +0xfdfe,0xfca5,0xfab1,0xdfd9,0x0000,0xe0d2,0x0000,0x0000, +0x0000,0xf4da,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xf1ca,0x0000,0xcea3, +0x0000,0x0000,0x0000,0x0000,0xf2bc,0xece3,0x0000,0x0000, +0x0000,0x0000,0x0000,0xe0a5,0x0000,0xf7ab,0x0000,0x0000, +0xebaf,0x0000,0x0000,0x0000,0x0000,0x0000,0xe5de,0x0000, +0xe1a4,0xcdab,0x0000,0xd9f4,0xe8a6,0xcdce,0xe1e9,0x0000, +0xfcef,0x0000,0xe0e3,0x0000,0x0000,0x0000,0x0000,0x0000, +0xe2c1,0x0000,0xcea4,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xdea6,0x0000,0x0000,0xebfe,0x0000,0xebdd,0xf0e0, +0x0000,0x0000,0xf4db,0x0000,0xe2f4,0x0000,0x0000,0xd3c8, +0x0000,0x0000,0x0000,0xf4eb,0x0000,0xeeb5,0x0000,0xf5d8, +0x0000,0x0000,0xd5df,0x0000,0x0000,0x0000,0xd6e5,0x0000, +0x0000,0x0000,0x0000,0xebb0,0xf4e3,0x0000,0x0000,0x0000, +0x0000,0xe3cd,0x0000,0x0000,0x0000,0x0000,0xf4f4,0xfab2, +0x0000,0x0000,0xeff5,0xcadf,0x0000,0xebb1,0xedbf,0x0000, +0x0000,0xfdc9,0x0000,0x0000,0x0000,0x0000,0xe4a6,0xf9a4, +0xf0b3,0x0000,0xe5ec,0x0000,0x0000,0x0000,0xd1e7,0x0000, +0xd9c7,0xe4d7,0xeadd,0x0000,0xd4f7,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xdaba,0x0000, +0xdacd,0x0000,0x0000,0x0000,0xf9cc,0x0000,0xe1da,0xdbbf, +0x0000,0xccc5,0xecd0,0xcbbb,0x0000,0xdef3,0x0000,0x0000, +0xe9aa,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xd9c8,0x0000,0x0000,0xeee3,0xd7bd,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xcfc4,0x0000,0x0000,0x0000,0x0000, +0x0000,0xd0cd,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xfca6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xf1fb,0x0000,0x0000,0x0000,0x0000,0xfdd2,0xd1c1, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xe3db,0x0000,0xd3c9,0x0000,0xdccf,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xcced,0x0000, +0x0000,0x0000,0x0000,0x0000,0xdea7,0x0000,0x0000,0xe6bb, +0xeca1,0x0000,0x0000,0x0000,0xccb9,0x0000,0x0000,0xfbde, +0x0000,0x0000,0x0000,0x0000,0x0000,0xe7e2,0x0000,0x0000, +0xd4c1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xdca8,0x0000,0x0000,0x0000,0x0000,0x0000, +0xe2c2,0x0000,0xf3d8,0xe5d3,0x0000,0x0000,0xf3d9,0x0000, +0x0000,0x0000,0xf3c6,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x8c00 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xcddb, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xcdac, +0x0000,0xfcc3,0x0000,0x0000,0x0000,0x0000,0xd4e7,0x0000, +0xd1c2,0x0000,0xf9a5,0x0000,0xe8d5,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xe3ce,0x0000,0x0000, +0x0000,0x0000,0xd4ca,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xdfda,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xfbdf,0xe7e3,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xf8fb,0xe3cf,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xf5b0,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xd8e7,0x0000,0xd9c9,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xf8af,0xeff6,0x0000, +0xddb6,0xeeaf,0xcdf8,0x0000,0x0000,0x0000,0x0000,0xdeb8, +0xfca7,0xf7fc,0xf7b1,0xcebb,0xf4a1,0x0000,0x0000,0xeecd, +0xe1ae,0x0000,0x0000,0xecc3,0xcffe,0x0000,0xf8bf,0xd8e2, +0xd3e8,0x0000,0x0000,0xdea8,0xf4e4,0xecc2,0x0000,0xd9f5, +0xf9c5,0xddd3,0xd6f1,0xecfc,0xfcf0,0x0000,0x0000,0xedc0, +0xcab9,0x0000,0xeee4,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xf2e1,0x0000,0xdeb9,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xd6f2,0x0000,0xdef4,0x0000,0xdfdb,0x0000, +0xdbd3,0x0000,0xfae7,0xd8e3,0xf4c1,0x0000,0xddb7,0x0000, +0x0000,0x0000,0xf2f5,0x0000,0x0000,0xd4ae,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xd6f3,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xddb8,0xcfc5,0xdfdf,0x0000,0x0000, +/* 0x8d00 */ +0x0000,0x0000,0x0000,0x0000,0xf2be,0xf6a1,0x0000,0xebcb, +0xf1fc,0x0000,0xf3c7,0x0000,0x0000,0xe0eb,0x0000,0x0000, +0x0000,0x0000,0x0000,0xedfc,0x0000,0x0000,0xe1db,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xeee5,0x0000,0xdef5,0x0000, +0x0000,0x0000,0x0000,0xfad3,0x0000,0x0000,0x0000,0x0000, +0xf1cb,0x0000,0x0000,0xd0af,0xddb9,0x0000,0x0000,0xd1c3, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xf5b1,0x0000,0x0000, +0x0000,0x0000,0xeac6,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xf0e1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xf6ac,0x0000,0x0000,0x0000,0x0000, +0xf5d9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xf0eb,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xddba,0x0000,0x0000,0x0000,0xf2bf,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xf7c5,0x0000, +0x0000,0x0000,0x0000,0xdba2,0xf2f6,0x0000,0x0000,0xcaba, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xf7f5,0x0000,0xcbe5,0x0000,0x0000, +0x0000,0xeee6,0x0000,0xe0d3,0x0000,0x0000,0x0000,0x0000, +0xcea5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd6d8, +0x0000,0x0000,0x0000,0xd4af,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x8e00 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xe9c9,0x0000,0x0000,0x0000,0x0000,0xd3ce, +0xf4c2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xcbe6,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xf1a1,0x0000,0x0000,0x0000,0x0000,0x0000, +0xebb2,0x0000,0x0000,0x0000,0x0000,0xf1a2,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xebb3,0x0000,0xf0b4,0x0000,0x0000,0xcbf4, +0xd4b0,0xf3b2,0xfbb7,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xf5ec,0x0000,0x0000,0x0000,0x0000,0x0000,0xeee7, +0xf4b2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xf5ed,0x0000,0xcff3,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xf0e2,0x0000,0x0000,0x0000,0x0000,0x0000,0xeece, +0x0000,0x0000,0xf1cc,0x0000,0x0000,0xe5b8,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xd7f5,0xe3f3,0xcfe5,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xcfc6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xf3b3,0xe4d8,0xcff9,0xcfda,0x0000,0x0000, +0x0000,0x0000,0xfacd,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xe6e3, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xf2e2,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xf5ee,0x0000,0x0000,0xcabb,0x0000,0x0000,0xe3dc,0x0000, +/* 0x8f00 */ +0x0000,0x0000,0x0000,0xcef2,0x0000,0xd6d9,0x0000,0x0000, +0x0000,0xeeb0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xf4e5,0xd8c2,0xdcd0,0xccee,0x0000,0x0000, +0x0000,0x0000,0x0000,0xd5e0,0xf6ca,0xfdca,0xd8d6,0xf4cf, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd6a6,0xdcbe, +0x0000,0xdbd4,0xd7c7,0x0000,0x0000,0x0000,0x0000,0xf2fe, +0x0000,0x0000,0x0000,0xf1cd,0x0000,0x0000,0x0000,0x0000, +0xe2c3,0xdcde,0x0000,0xdcdf,0x0000,0x0000,0xefad,0xe6ab, +0x0000,0x0000,0x0000,0x0000,0xf9dd,0xeabf,0x0000,0x0000, +0x0000,0xefae,0x0000,0x0000,0x0000,0xf4d0,0xcef3,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xe6ac,0x0000,0xcede, +0x0000,0x0000,0xd5f9,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xe3f4,0xcdd0,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xd5b8,0x0000,0x0000,0xf7fd,0x0000, +0xdca9,0x0000,0x0000,0x0000,0x0000,0xdef6,0x0000,0xdcaa, +0xf2e3,0xe9b4,0xd2dc,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xe9e6,0x0000,0x0000,0xe3f6,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xe7ca,0x0000, +0x0000,0xd0ce,0x0000,0x0000,0xdaf7,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xcabc,0x0000, +0x0000,0x0000,0xeee8,0xdade,0x0000,0xf2f7,0x0000,0x0000, +0xe2fb,0x0000,0xcca6,0x0000,0x0000,0x0000,0x0000,0xdabb, +0x0000,0xeee9,0x0000,0x0000,0x0000,0xf5da,0x0000,0x0000, +0xf7dc,0xe1ea,0xcec1,0xd4b1,0x0000,0xfdb1,0xe6bd,0x0000, +0xfbad,0x0000,0x0000,0xf8e7,0x0000,0xe1ce,0x0000,0xf7e2, +0xf5ef,0xcfc7,0x0000,0x0000,0xd4b2,0xccef,0x0000,0xd4e8, +0x0000,0xeecf,0xf7d7,0x0000,0x0000,0xe0a6,0xd6c1,0xe1dc, +0xf0e3,0xf1e4,0xdcf1,0xd6a7,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xf4f5,0x0000, +0x0000,0xf1ce,0xf2e4,0x0000,0x0000,0xd0b0,0x0000,0x0000, +0xecef,0x0000,0x0000,0x0000,0xf9ba,0x0000,0xebb5,0x0000, +0x0000,0xd4ed,0xe2c4,0x0000,0x0000,0x0000,0x0000,0xe9e7, +0x0000,0x0000,0xebb4,0xeaa1,0x0000,0xf8bc,0xcea6,0x0000, +0xf9c6,0xfcda,0x0000,0xd4b3,0xd3b9,0xeade,0x0000,0x0000, +0x0000,0xe9ab,0x0000,0x0000,0xe1e1,0xd3cf,0xf4f6,0x0000, +0xeac0,0xe1cf,0x0000,0xccba,0x0000,0x0000,0x0000,0x0000, +0x0000,0xeeea,0x0000,0x0000,0x0000,0xf0e4,0xf3b4,0xd4ee, +0x0000,0x0000,0xf2c0,0x0000,0x0000,0xf1e5,0x0000,0xf4c3, +0xe0d4,0x0000,0xebb6,0x0000,0xd7a1,0xcbe8,0x0000,0xf9ad, +0xe9ad,0xd8e4,0xfab3,0xe2c5,0xfcbd,0x0000,0x0000,0xecc4, +0xd8b1,0x0000,0xdcab,0x0000,0x0000,0x0000,0x0000,0xd5a4, +0x0000,0xebe9,0x0000,0x0000,0x0000,0xe8bb,0x0000,0x0000, +0x0000,0xd8d7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xfbae,0xd1e1,0x0000,0x0000,0xdbc0,0x0000, +0xf5be,0x0000,0xdef7,0x0000,0x0000,0x0000,0x0000,0xcafb, +0xf7c6,0xcfc8,0x0000,0x0000,0x0000,0xe1d0,0x0000,0x0000, +0xeed0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xe9f4,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xcef4,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd5cd,0x0000, +0x0000,0xcfdb,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xddbb,0x0000,0x0000,0x0000,0x0000,0xceac,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xe9e8,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xd4b4,0x0000,0x0000, +/* 0x9100 */ +0x0000,0x0000,0xe4c7,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xf5db,0x0000,0x0000,0xfac1,0x0000,0x0000, +0x0000,0xdea9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd4f8, +0x0000,0x0000,0x0000,0x0000,0x0000,0xeff7,0x0000,0x0000, +0x0000,0x0000,0xd3b3,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xebb7,0xeff8,0xf5dc,0xedcc,0xdbd5,0xf1cf,0x0000, +0x0000,0x0000,0xf1d0,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xf5b2,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xd9ae,0xd5ac,0x0000,0xe2c6,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xfda3,0x0000,0xfbe5, +0xdfab,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xe2f5, +0x0000,0xf6ad,0x0000,0xf5b3,0x0000,0xf0b5,0x0000,0x0000, +0x0000,0x0000,0xe1a5,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xf5dd,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xeca2,0xedfd,0x0000,0xf5b4,0xfbb8, +0x0000,0xdba3,0x0000,0x0000,0xd6ca,0xcbd9,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xe5d4,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xf3fa, +0x0000,0xebb8,0x0000,0xe0b7,0xd7ec,0xf1ec,0xe5af,0xd5e1, +0xd7ed,0xd1d1,0x0000,0x0000,0x0000,0x0000,0x0000,0xe1f2, +0xeff9,0x0000,0x0000,0x0000,0xddbc,0xf6dc,0x0000,0x0000, +0x0000,0x0000,0x0000,0xf0e5,0x0000,0x0000,0x0000,0xf4c4, +0x0000,0x0000,0xe9e9,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xf3fb,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x9200 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xd4ef,0x0000,0x0000, +0xcca2,0xf7fe,0xdfbc,0x0000,0x0000,0x0000,0x0000,0xebcd, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd0b7,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xd6c2,0x0000,0x0000,0x0000, +0x0000,0x0000,0xe8ad,0x0000,0x0000,0x0000,0x0000,0xefaf, +0xcba5,0x0000,0x0000,0x0000,0x0000,0xcbe9,0x0000,0x0000, +0x0000,0xfae8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xccc6, +0x0000,0x0000,0x0000,0xe6e7,0x0000,0x0000,0xeac7,0x0000, +0x0000,0x0000,0xdba4,0x0000,0xcfc9,0xe2fc,0xeffa,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xebde,0x0000,0x0000,0xf5c8,0x0000,0xd4de,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xe0d5,0x0000,0xefb0,0x0000,0x0000,0xe2c7,0x0000, +0xd9af,0x0000,0x0000,0x0000,0xf9e7,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xe7e5,0x0000,0x0000,0xcfca,0xe1d1, +0x0000,0xe2c8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xeffb,0x0000,0x0000,0xfaf9, +0x0000,0x0000,0xdcf2,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xe0a7,0x0000,0x0000,0x0000, +0x0000,0x0000,0xf8e8,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xcbea,0x0000,0x0000,0x0000,0xcbbc,0x0000,0x0000,0x0000, +/* 0x9300 */ +0x0000,0x0000,0x0000,0x0000,0xd6e2,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xf5de,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xf5df,0x0000,0xeeb6,0x0000,0x0000,0x0000,0xe2f6,0xd3ca, +0xeffc,0xd1c4,0xefb1,0x0000,0xd1c5,0x0000,0xd0de,0x0000, +0xd9e1,0x0000,0x0000,0xe0b8,0x0000,0x0000,0xcdd1,0xf3b9, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xe7cc,0x0000,0xd6a8,0xcea7,0x0000,0xd4b5,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xe4c8,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xd3b4,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xebb9,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xcbf5,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xf6dd,0x0000,0xf1a3,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xccc7,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xe9ca,0x0000,0xe1f0,0x0000, +0x0000,0x0000,0xf5e0,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xfbaf,0x0000,0x0000,0x0000,0xcbd1, +0x0000,0x0000,0x0000,0x0000,0xfbe0,0xf2e5,0x0000,0x0000, +0xecf0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xf0ec,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xeeeb,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xe9cb,0x0000, +0x0000,0xccf0,0x0000,0x0000,0xd7af,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xf3a1,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x9400 */ +0x0000,0x0000,0x0000,0x0000,0xfcf5,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xf1a4,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xe0d6,0x0000,0x0000, +0x0000,0x0000,0x0000,0xefb2,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xf4d1,0x0000,0x0000, +0xf7a1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xf1d1,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xcafc,0xcafd,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xcece,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xf3c8,0x0000,0xf3ba, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x9500 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xedfe, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xdaa6,0x0000,0x0000,0xe0ec,0x0000,0x0000,0x0000,0x0000, +0x0000,0xf8cd,0x0000,0xcbd2,0x0000,0x0000,0x0000,0xebce, +0x0000,0xf9d8,0xf9d9,0xcae0,0xdaca,0x0000,0x0000,0x0000, +0xcba6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xcac8,0xf9ee,0xdbec,0x0000,0x0000, +0xd0b1,0x0000,0x0000,0x0000,0x0000,0xd5ef,0x0000,0x0000, +0x0000,0xe6f3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xe7a2,0xe4d9,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xe4e1, +0x0000,0x0000,0xfcc4,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xf9ef,0xcff4,0xf7e6,0x0000, +0x0000,0x0000,0x0000,0x0000,0xcebc,0x0000,0x0000,0x0000, +0x0000,0xf4c5,0xdca3,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x9600 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xddbd,0x0000,0x0000,0x0000, +0x0000,0xf4c6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xf8a1,0x0000,0x0000,0x0000,0xe8d6,0x0000, +0x0000,0x0000,0xdbc1,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xf0e6,0x0000,0x0000,0x0000,0xe4b9, +0xf6ed,0x0000,0xf9ae,0x0000,0xddbe,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xd7b0,0xd8e8,0xcbbd,0x0000,0x0000, +0xf9da,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xf8ce,0xf9f0,0xe0ed,0xe3b3,0xf4b3, +0x0000,0x0000,0xeac2,0xf2e6,0xf0b6,0x0000,0x0000,0x0000, +0x0000,0x0000,0xdbd6,0x0000,0x0000,0x0000,0x0000,0x0000, +0xebe4,0x0000,0x0000,0xf2e7,0x0000,0xd7d5,0xd4b6,0xf9e8, +0xd7c1,0x0000,0x0000,0x0000,0x0000,0xe5d5,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xe9ea,0xd7cc,0x0000, +0x0000,0x0000,0xd3e9,0xe2c9,0x0000,0xfcdb,0xcdad,0x0000, +0x0000,0x0000,0x0000,0x0000,0xccb0,0xeaa2,0x0000,0x0000, +0xe4f6,0xd0c0,0x0000,0xf0b7,0xeea1,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xd7f6,0x0000,0x0000,0x0000,0xe2ca, +0xe2cb,0x0000,0xfacf,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xebdf,0x0000,0x0000,0x0000,0x0000,0x0000,0xd6cb, +0x0000,0x0000,0x0000,0xf4b4,0x0000,0x0000,0x0000,0x0000, +0xedcd,0xe4d2,0x0000,0x0000,0xeaa9,0xe4ba,0xf3a2,0xcdd2, +0x0000,0xf6cb,0x0000,0xf1e6,0xedc1,0xe8bc,0xeed1,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xf0e7,0xe2cc,0x0000, +0x0000,0xe4aa,0x0000,0xf5e1,0xedda,0x0000,0x0000,0x0000, +0x0000,0x0000,0xd7ee,0xd1f1,0x0000,0x0000,0x0000,0x0000, +0xe9eb,0xe9ec,0xe0e4,0x0000,0x0000,0x0000,0x0000,0xdaa7, +0xddd4,0x0000,0xeaa3,0x0000,0x0000,0x0000,0xd6c3,0xd6f4, +0x0000,0xdadf,0x0000,0xefb3,0x0000,0x0000,0x0000,0x0000, +0xe2cd,0x0000,0x0000,0x0000,0x0000,0x0000,0xeffd,0xf2e8, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xefc5,0x0000,0xe7e7,0x0000,0x0000,0xd7fd,0x0000, +0x0000,0xe7ce,0x0000,0x0000,0xdfdc,0x0000,0xf9c7,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd9f6, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xdfac,0x0000,0xd6da,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xdca4,0x0000,0x0000,0x0000,0xf0b8,0x0000,0x0000, +0x0000,0x0000,0xd5fa,0x0000,0xe4f7,0x0000,0x0000,0x0000, +0xd6c4,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xf4ec,0x0000,0x0000,0x0000,0x0000,0xeffe,0x0000, +0x0000,0x0000,0x0000,0x0000,0xf0a1,0x0000,0xdeaa,0x0000, +0x0000,0xdabc,0xd8fc,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xfad4,0x0000,0x0000,0x0000,0xece5,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xfca8,0x0000,0x0000,0xece6, +0x0000,0x0000,0xd8cb,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xfbb9,0x0000,0xe4d3,0x0000,0xcdf9, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xcfd3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xcaea,0x0000,0x0000,0xcfd4,0x0000,0xf8bd,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xf4c7,0x0000, +0x0000,0x0000,0x0000,0xeadf,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xf9db,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xd4b7,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xebe5,0x0000,0x0000,0xe1d2,0x0000, +0x0000,0x0000,0x0000,0xeaa4,0x0000,0x0000,0x0000,0xfac2, +0xfbe1,0xfaed,0xf0a2,0xccf1,0x0000,0xfaa3,0xe2f7,0x0000, +0xe2ce,0x0000,0xe9f5,0x0000,0xe1eb,0x0000,0x0000,0x0000, +0xe7e8,0xe8d7,0xdaf8,0xd4cb,0x0000,0x0000,0x0000,0xf7f6, +0xd6c5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xd4e9,0x0000,0x0000, +0xfafa,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xccf2,0xf7dd,0x0000,0xdeba,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xcea8,0x0000, +0x0000,0x0000,0x0000,0x0000,0xf0b9,0xe4fe,0xe4c9,0x0000, +0x0000,0x0000,0x0000,0x0000,0xe4d4,0x0000,0x0000,0x0000, +0xeac3,0x0000,0xefb4,0x0000,0x0000,0x0000,0xd7be,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xfbe2,0x0000,0xcdd3, +0x0000,0x0000,0x0000,0xefb5,0x0000,0x0000,0x0000,0xfae9, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xf9a6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xdfbd, +0x0000,0xf7c7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xf8fd,0x0000,0x0000,0xf8fc, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xdeab,0xdbe8,0x0000,0x0000,0xe3dd, +0x0000,0xe1e2,0xd1c6,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xf6d0,0xebe6,0xdaf9, +0x0000,0x0000,0x0000,0x0000,0xecc7,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xdef8,0xf8e9,0xe3de,0x0000, +/* 0x9900 */ +0x0000,0x0000,0x0000,0xcef5,0x0000,0x0000,0x0000,0x0000, +0x0000,0xfac3,0xe5d7,0x0000,0xecc8,0x0000,0x0000,0x0000, +0xf3c9,0x0000,0x0000,0xe4bb,0x0000,0x0000,0x0000,0x0000, +0xe6ae,0x0000,0x0000,0x0000,0x0000,0x0000,0xefb6,0x0000, +0xdcbf,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xcebd,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xd8c3,0x0000,0x0000, +0x0000,0xd0cf,0x0000,0xcffa,0xf3ca,0xe0d7,0x0000,0x0000, +0x0000,0xd1c7,0xe9ae,0x0000,0xe8bd,0x0000,0x0000,0xfac4, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xe2cf,0x0000, +0x0000,0xfac5,0x0000,0x0000,0x0000,0xf9b8,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xdce0,0x0000,0x0000, +0xfbb0,0x0000,0x0000,0x0000,0xd8a9,0xe5df,0xf9a7,0x0000, +0x0000,0xf6ee,0x0000,0xf6cc,0xe2f8,0x0000,0x0000,0x0000, +0x0000,0xecf1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xdae0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xf1d2,0xd2cc,0xcfcb,0x0000,0x0000,0xcabd,0x0000,0x0000, +0x0000,0xddbf,0x0000,0x0000,0x0000,0xf6ef,0x0000,0xdef9, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xfab4,0x0000,0x0000, +0x0000,0xd5ad,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xf1e7, +/* 0x9a00 */ +0x0000,0xdebe,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xdcc0,0x0000,0x0000,0x0000,0x0000,0x0000,0xd1c8,0xd1c9, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xf8be,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xcbf6,0x0000,0x0000,0x0000,0x0000, +0xd4f9,0x0000,0x0000,0x0000,0x0000,0x0000,0xf5e2,0xe1d3, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xd8e9,0x0000,0x0000,0xf8fe,0x0000,0xcfcc,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xfda4,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xcef6,0x0000,0xfad0, +0x0000,0x0000,0xccf3,0xe6be,0x0000,0x0000,0x0000,0xf6ae, +0x0000,0x0000,0xd5f0,0x0000,0x0000,0xd1ca,0x0000,0x0000, +0x0000,0xfcbe,0xd5f1,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xcde9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xfab5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xe2d0,0xf4f7,0x0000,0x0000,0x0000, +0xcdd4,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xe7a3,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xdba5,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x9b00 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xe2d1,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd7a2, +0x0000,0x0000,0xf7e3,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xeaa6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xd0a1,0x0000,0x0000,0x0000, +0x0000,0xceda,0xfbeb,0xdba6,0xdbde,0xd8e5,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xeae0, +0x0000,0x0000,0x0000,0x0000,0xd8aa,0x0000,0x0000,0x0000, +0x0000,0x0000,0xe5e0,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd6db, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xefc6,0x0000, +0x0000,0xf8ea,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xe4d5, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xcef7,0x0000,0x0000,0xe0d8,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xd7ef,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xf4ed,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xcde6,0x0000,0x0000,0x0000, +0xccf4,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x9c00 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xf5e3,0x0000,0x0000, +0xe4ca,0x0000,0xdce1,0x0000,0x0000,0xf9c8,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xfcbf,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xe8a7,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xd8c4,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xcbbe, +0x0000,0xdcae,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xd7f7, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xf0e8,0x0000,0xddc0, +0x0000,0xcfcd,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xdcf3,0xd9b0,0x0000,0xe6e9,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x9d00 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xe4bc,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xeac4,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xe4ec,0x0000, +0xe4e5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xfbf8,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xccbb,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xe4bd,0x0000,0x0000, +0xcddc,0xd9f7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xdddf,0x0000,0x0000,0x0000, +0x0000,0x0000,0xedce,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0xd9d0,0x0000,0x0000,0x0000,0x0000,0x0000,0xe5a3, +0x0000,0x0000,0x0000,0x0000,0xf9cd,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xcdae,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xcfce, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xf6af,0x0000,0x0000,0x0000,0x0000,0x0000, +0xfdd3,0xebed,0xd6dc,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x9e00 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xe5a4,0x0000,0x0000,0x0000,0xd5b6,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xd6dd,0x0000,0x0000, +0x0000,0xf9e9,0x0000,0x0000,0x0000,0xe7a4,0x0000,0xd6e3, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xd1cb,0xd6e4,0x0000,0x0000,0x0000,0xd5f2, +0x0000,0x0000,0x0000,0x0000,0x0000,0xdefa,0x0000,0xd7f8, +0x0000,0x0000,0x0000,0x0000,0x0000,0xd8ea,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xcfd5,0xd8fd,0x0000,0x0000, +0x0000,0x0000,0x0000,0xd8ab,0x0000,0x0000,0xfdcb,0x0000, +0x0000,0x0000,0x0000,0xfcdc,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xe0a8,0xd5f3,0x0000, +0x0000,0xfdd9,0x0000,0x0000,0xcca3,0x0000,0x0000,0x0000, +0xd9f9,0x0000,0x0000,0xd3ea,0xf5f5,0x0000,0xefc7,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xd3da,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xdabd,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +/* 0x9f00 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xe8a8, +0xdcaf,0x0000,0x0000,0x0000,0x0000,0x0000,0xf0a3,0x0000, +0x0000,0x0000,0x0000,0xcdd5,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xe0a9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0xdeac,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0xf0ba,0xeeb1,0x0000,0x0000,0xeeb2,0x0000, +0x0000,0x0000,0xf6cd,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xeed2, +0x0000,0xd6c6,0x0000,0x0000,0x0000,0x0000,0x0000,0xe0e5, +0x0000,0x0000,0xf3bb,0x0000,0xe5e1,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xe4cb, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0xd7a3,0x0000,0x0000, +0xdbc2,0x0000,0x0000,0x0000,0x0000,0xcafe,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0xcfcf}; + +const int ucs_i_uhc_table_min = 0x4d00; +const int ucs_i_uhc_table_max = 0x4d00 + (sizeof(ucs_i_uhc_table)/sizeof(unsigned short)); + +const unsigned short ucs_s_uhc_table[] = { +/* 0xab00 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xb0a1,0xb0a2,0x8141,0x8142,0xb0a3,0x8143,0x8144,0xb0a4, +0xb0a5,0xb0a6,0xb0a7,0x8145,0x8146,0x8147,0x8148,0x8149, +0xb0a8,0xb0a9,0xb0aa,0xb0ab,0xb0ac,0xb0ad,0xb0ae,0xb0af, +0x814a,0xb0b0,0xb0b1,0xb0b2,0xb0b3,0xb0b4,0x814b,0x814c, +0xb0b5,0x814d,0x814e,0x814f,0xb0b6,0x8150,0x8151,0x8152, +0x8153,0x8154,0x8155,0x8156,0xb0b7,0xb0b8,0x8157,0xb0b9, +0xb0ba,0xb0bb,0x8158,0x8159,0x815a,0x8161,0x8162,0x8163, +0xb0bc,0xb0bd,0x8164,0x8165,0xb0be,0x8166,0x8167,0x8168, +0xb0bf,0x8169,0x816a,0x816b,0x816c,0x816d,0x816e,0x816f, +0x8170,0x8171,0x8172,0xb0c0,0x8173,0xb0c1,0x8174,0x8175, +0x8176,0x8177,0x8178,0x8179,0xb0c2,0x817a,0x8181,0x8182, +0xb0c3,0x8183,0x8184,0x8185,0xb0c4,0x8186,0x8187,0x8188, +0x8189,0x818a,0x818b,0x818c,0x818d,0x818e,0x818f,0x8190, +0x8191,0x8192,0x8193,0x8194,0x8195,0x8196,0x8197,0x8198, +0xb0c5,0xb0c6,0x8199,0x819a,0xb0c7,0x819b,0x819c,0xb0c8, +0xb0c9,0x819d,0xb0ca,0x819e,0x819f,0x81a0,0x81a1,0x81a2, +0xb0cb,0xb0cc,0x81a3,0xb0cd,0xb0ce,0xb0cf,0xb0d0,0x81a4, +0x81a5,0xb0d1,0xb0d2,0xb0d3,0xb0d4,0x81a6,0x81a7,0x81a8, +0xb0d5,0x81a9,0x81aa,0x81ab,0xb0d6,0x81ac,0x81ad,0x81ae, +0x81af,0x81b0,0x81b1,0x81b2,0xb0d7,0xb0d8,0x81b3,0xb0d9, +0xb0da,0xb0db,0x81b4,0x81b5,0x81b6,0x81b7,0x81b8,0x81b9, +0xb0dc,0xb0dd,0xb0de,0x81ba,0xb0df,0x81bb,0x81bc,0xb0e0, +0xb0e1,0x81bd,0x81be,0x81bf,0x81c0,0x81c1,0x81c2,0x81c3, +0xb0e2,0xb0e3,0x81c4,0xb0e4,0xb0e5,0xb0e6,0x81c5,0x81c6, +0x81c7,0xb0e7,0x81c8,0x81c9,0xb0e8,0x81ca,0x81cb,0x81cc, +0xb0e9,0x81cd,0x81ce,0x81cf,0xb0ea,0x81d0,0x81d1,0x81d2, +0x81d3,0x81d4,0x81d5,0x81d6,0x81d7,0xb0eb,0x81d8,0xb0ec, +0x81d9,0x81da,0x81db,0x81dc,0x81dd,0x81de,0x81df,0x81e0, +0xb0ed,0xb0ee,0x81e1,0x81e2,0xb0ef,0x81e3,0x81e4,0xb0f0, +0xb0f1,0x81e5,0xb0f2,0x81e6,0xb0f3,0x81e7,0x81e8,0xb0f4, +0xb0f5,0xb0f6,0x81e9,0xb0f7,0x81ea,0xb0f8,0xb0f9,0x81eb, +0x81ec,0x81ed,0x81ee,0x81ef,0xb0fa,0xb0fb,0x81f0,0x81f1, +/* 0xad00 */ +0xb0fc,0x81f2,0x81f3,0x81f4,0xb0fd,0x81f5,0xb0fe,0x81f6, +0x81f7,0x81f8,0x81f9,0x81fa,0xb1a1,0xb1a2,0x81fb,0xb1a3, +0x81fc,0xb1a4,0x81fd,0x81fe,0x8241,0x8242,0x8243,0x8244, +0xb1a5,0x8245,0x8246,0x8247,0xb1a6,0x8248,0x8249,0x824a, +0xb1a7,0x824b,0x824c,0x824d,0x824e,0x824f,0x8250,0x8251, +0x8252,0xb1a8,0x8253,0x8254,0xb1a9,0xb1aa,0x8255,0x8256, +0x8257,0x8258,0x8259,0x825a,0xb1ab,0xb1ac,0x8261,0x8262, +0xb1ad,0x8263,0x8264,0x8265,0xb1ae,0x8266,0x8267,0x8268, +0x8269,0x826a,0x826b,0x826c,0xb1af,0xb1b0,0x826d,0xb1b1, +0x826e,0xb1b2,0x826f,0x8270,0x8271,0x8272,0x8273,0x8274, +0xb1b3,0x8275,0x8276,0x8277,0xb1b4,0x8278,0x8279,0x827a, +0xb1b5,0x8281,0x8282,0x8283,0x8284,0x8285,0x8286,0x8287, +0x8288,0xb1b6,0x8289,0xb1b7,0x828a,0x828b,0x828c,0x828d, +0x828e,0x828f,0x8290,0x8291,0xb1b8,0xb1b9,0x8292,0x8293, +0xb1ba,0x8294,0x8295,0xb1bb,0xb1bc,0xb1bd,0xb1be,0x8296, +0x8297,0x8298,0x8299,0xb1bf,0xb1c0,0xb1c1,0x829a,0xb1c2, +0x829b,0xb1c3,0xb1c4,0x829c,0x829d,0x829e,0x829f,0x82a0, +0xb1c5,0xb1c6,0x82a1,0x82a2,0xb1c7,0x82a3,0x82a4,0x82a5, +0xb1c8,0x82a6,0x82a7,0x82a8,0x82a9,0x82aa,0x82ab,0x82ac, +0x82ad,0x82ae,0x82af,0x82b0,0xb1c9,0xb1ca,0x82b1,0x82b2, +0x82b3,0x82b4,0x82b5,0x82b6,0xb1cb,0x82b7,0x82b8,0x82b9, +0x82ba,0x82bb,0x82bc,0x82bd,0x82be,0x82bf,0x82c0,0x82c1, +0x82c2,0x82c3,0x82c4,0x82c5,0x82c6,0x82c7,0x82c8,0xb1cc, +0x82c9,0x82ca,0x82cb,0x82cc,0x82cd,0x82ce,0x82cf,0x82d0, +0xb1cd,0xb1ce,0x82d1,0x82d2,0xb1cf,0x82d3,0x82d4,0x82d5, +0xb1d0,0x82d6,0x82d7,0x82d8,0x82d9,0x82da,0x82db,0x82dc, +0xb1d1,0xb1d2,0x82dd,0xb1d3,0x82de,0x82df,0x82e0,0x82e1, +0x82e2,0x82e3,0x82e4,0x82e5,0xb1d4,0x82e6,0x82e7,0x82e8, +0xb1d5,0x82e9,0x82ea,0x82eb,0xb1d6,0x82ec,0x82ed,0x82ee, +0x82ef,0x82f0,0x82f1,0x82f2,0x82f3,0x82f4,0x82f5,0x82f6, +0x82f7,0x82f8,0x82f9,0x82fa,0x82fb,0x82fc,0x82fd,0x82fe, +0xb1d7,0xb1d8,0x8341,0x8342,0xb1d9,0x8343,0x8344,0xb1da, +/* 0xae00 */ +0xb1db,0xb1dc,0x8345,0x8346,0x8347,0x8348,0x8349,0x834a, +0xb1dd,0xb1de,0x834b,0xb1df,0x834c,0xb1e0,0x834d,0x834e, +0x834f,0x8350,0x8351,0x8352,0xb1e1,0x8353,0x8354,0x8355, +0x8356,0x8357,0x8358,0x8359,0x835a,0x8361,0x8362,0x8363, +0x8364,0x8365,0x8366,0x8367,0x8368,0x8369,0x836a,0x836b, +0x836c,0x836d,0x836e,0x836f,0x8370,0x8371,0x8372,0x8373, +0xb1e2,0xb1e3,0x8374,0x8375,0xb1e4,0x8376,0x8377,0xb1e5, +0xb1e6,0x8378,0xb1e7,0x8379,0x837a,0x8381,0x8382,0x8383, +0xb1e8,0xb1e9,0x8384,0xb1ea,0x8385,0xb1eb,0xb1ec,0x8386, +0x8387,0x8388,0xb1ed,0x8389,0xb1ee,0xb1ef,0xb1f0,0x838a, +0xb1f1,0x838b,0x838c,0x838d,0xb1f2,0x838e,0xb1f3,0x838f, +0x8390,0x8391,0x8392,0x8393,0xb1f4,0xb1f5,0x8394,0xb1f6, +0xb1f7,0xb1f8,0x8395,0x8396,0x8397,0xb1f9,0x8398,0x8399, +0xb1fa,0xb1fb,0x839a,0x839b,0xb1fc,0x839c,0x839d,0x839e, +0xb1fd,0x839f,0x83a0,0x83a1,0x83a2,0x83a3,0x83a4,0x83a5, +0xb1fe,0xb2a1,0x83a6,0xb2a2,0xb2a3,0xb2a4,0x83a7,0x83a8, +0x83a9,0x83aa,0x83ab,0x83ac,0xb2a5,0xb2a6,0x83ad,0x83ae, +0x83af,0x83b0,0x83b1,0x83b2,0xb2a7,0x83b3,0x83b4,0x83b5, +0x83b6,0x83b7,0x83b8,0x83b9,0x83ba,0x83bb,0x83bc,0x83bd, +0x83be,0x83bf,0x83c0,0x83c1,0x83c2,0x83c3,0x83c4,0x83c5, +0x83c6,0x83c7,0x83c8,0x83c9,0x83ca,0x83cb,0x83cc,0x83cd, +0x83ce,0x83cf,0x83d0,0x83d1,0x83d2,0x83d3,0x83d4,0x83d5, +0x83d6,0x83d7,0x83d8,0x83d9,0x83da,0x83db,0x83dc,0x83dd, +0x83de,0x83df,0x83e0,0x83e1,0xb2a8,0xb2a9,0xb2aa,0x83e2, +0xb2ab,0x83e3,0x83e4,0x83e5,0xb2ac,0x83e6,0x83e7,0x83e8, +0x83e9,0x83ea,0x83eb,0x83ec,0xb2ad,0xb2ae,0x83ed,0xb2af, +0xb2b0,0xb2b1,0x83ee,0x83ef,0x83f0,0x83f1,0x83f2,0x83f3, +0xb2b2,0xb2b3,0x83f4,0x83f5,0xb2b4,0x83f6,0x83f7,0x83f8, +0x83f9,0x83fa,0x83fb,0x83fc,0x83fd,0x83fe,0x8441,0x8442, +0xb2b5,0x8443,0x8444,0xb2b6,0x8445,0xb2b7,0x8446,0x8447, +0x8448,0x8449,0x844a,0x844b,0xb2b8,0x844c,0x844d,0x844e, +0xb2b9,0x844f,0x8450,0x8451,0xb2ba,0x8452,0x8453,0x8454, +/* 0xaf00 */ +0x8455,0x8456,0x8457,0x8458,0x8459,0x845a,0x8461,0xb2bb, +0xb2bc,0x8462,0x8463,0x8464,0x8465,0xb2bd,0x8466,0x8467, +0xb2be,0x8468,0x8469,0x846a,0x846b,0x846c,0x846d,0x846e, +0x846f,0x8470,0x8471,0x8472,0x8473,0x8474,0x8475,0x8476, +0x8477,0x8478,0x8479,0x847a,0x8481,0x8482,0x8483,0x8484, +0x8485,0x8486,0x8487,0x8488,0xb2bf,0xb2c0,0x8489,0x848a, +0xb2c1,0x848b,0xb2c2,0x848c,0xb2c3,0x848d,0x848e,0x848f, +0x8490,0x8491,0x8492,0x8493,0xb2c4,0xb2c5,0x8494,0xb2c6, +0x8495,0xb2c7,0xb2c8,0xb2c9,0x8496,0x8497,0x8498,0x8499, +0xb2ca,0xb2cb,0x849a,0x849b,0x849c,0x849d,0x849e,0x849f, +0xb2cc,0x84a0,0x84a1,0x84a2,0x84a3,0x84a4,0x84a5,0x84a6, +0x84a7,0x84a8,0x84a9,0x84aa,0xb2cd,0xb2ce,0x84ab,0x84ac, +0x84ad,0x84ae,0x84af,0x84b0,0xb2cf,0xb2d0,0x84b1,0x84b2, +0x84b3,0x84b4,0x84b5,0x84b6,0x84b7,0x84b8,0x84b9,0x84ba, +0x84bb,0x84bc,0x84bd,0x84be,0x84bf,0x84c0,0x84c1,0x84c2, +0x84c3,0xb2d1,0x84c4,0x84c5,0x84c6,0x84c7,0x84c8,0x84c9, +0xb2d2,0x84ca,0x84cb,0x84cc,0xb2d3,0x84cd,0x84ce,0x84cf, +0xb2d4,0x84d0,0x84d1,0x84d2,0x84d3,0x84d4,0x84d5,0x84d6, +0xb2d5,0xb2d6,0x84d7,0x84d8,0x84d9,0xb2d7,0x84da,0x84db, +0x84dc,0x84dd,0x84de,0x84df,0xb2d8,0x84e0,0x84e1,0x84e2, +0x84e3,0x84e4,0x84e5,0x84e6,0x84e7,0x84e8,0x84e9,0x84ea, +0x84eb,0x84ec,0x84ed,0x84ee,0x84ef,0x84f0,0x84f1,0x84f2, +0x84f3,0x84f4,0x84f5,0x84f6,0x84f7,0x84f8,0x84f9,0x84fa, +0xb2d9,0xb2da,0x84fb,0x84fc,0xb2db,0x84fd,0x84fe,0x8541, +0xb2dc,0x8542,0x8543,0x8544,0x8545,0x8546,0x8547,0xb2dd, +0xb2de,0xb2df,0x8548,0xb2e0,0x8549,0xb2e1,0xb2e2,0x854a, +0x854b,0x854c,0x854d,0x854e,0xb2e3,0x854f,0x8550,0x8551, +0x8552,0x8553,0x8554,0x8555,0xb2e4,0x8556,0x8557,0x8558, +0x8559,0x855a,0x8561,0x8562,0x8563,0x8564,0x8565,0x8566, +0xb2e5,0xb2e6,0x8567,0x8568,0x8569,0x856a,0x856b,0x856c, +0xb2e7,0xb2e8,0x856d,0x856e,0xb2e9,0x856f,0x8570,0x8571, +0xb2ea,0x8572,0x8573,0x8574,0x8575,0x8576,0x8577,0x8578, +/* 0xb000 */ +0xb2eb,0xb2ec,0x8579,0x857a,0xb2ed,0x8581,0x8582,0x8583, +0x8584,0x8585,0x8586,0x8587,0xb2ee,0x8588,0x8589,0x858a, +0xb2ef,0x858b,0x858c,0x858d,0xb2f0,0x858e,0x858f,0x8590, +0x8591,0x8592,0x8593,0x8594,0xb2f1,0xb2f2,0x8595,0x8596, +0x8597,0x8598,0x8599,0x859a,0x859b,0x859c,0x859d,0x859e, +0xb2f3,0x859f,0x85a0,0x85a1,0x85a2,0x85a3,0x85a4,0x85a5, +0x85a6,0x85a7,0x85a8,0x85a9,0x85aa,0x85ab,0x85ac,0x85ad, +0x85ae,0x85af,0x85b0,0x85b1,0x85b2,0x85b3,0x85b4,0x85b5, +0x85b6,0x85b7,0x85b8,0x85b9,0xb2f4,0xb2f5,0x85ba,0x85bb, +0xb2f6,0x85bc,0xb2f7,0x85bd,0xb2f8,0x85be,0xb2f9,0x85bf, +0x85c0,0x85c1,0x85c2,0xb2fa,0xb2fb,0xb2fc,0x85c3,0xb2fd, +0x85c4,0xb2fe,0x85c5,0x85c6,0x85c7,0xb3a1,0x85c8,0x85c9, +0x85ca,0x85cb,0x85cc,0x85cd,0x85ce,0x85cf,0x85d0,0x85d1, +0x85d2,0x85d3,0x85d4,0x85d5,0x85d6,0x85d7,0x85d8,0x85d9, +0x85da,0x85db,0x85dc,0x85dd,0x85de,0x85df,0x85e0,0x85e1, +0x85e2,0x85e3,0x85e4,0x85e5,0xb3a2,0xb3a3,0x85e6,0x85e7, +0xb3a4,0x85e8,0x85e9,0x85ea,0xb3a5,0x85eb,0x85ec,0x85ed, +0x85ee,0x85ef,0x85f0,0x85f1,0xb3a6,0xb3a7,0x85f2,0xb3a8, +0x85f3,0xb3a9,0x85f4,0x85f5,0x85f6,0x85f7,0x85f8,0x85f9, +0xb3aa,0xb3ab,0xb3ac,0x85fa,0xb3ad,0x85fb,0x85fc,0xb3ae, +0xb3af,0xb3b0,0xb3b1,0x85fd,0x85fe,0x8641,0x8642,0x8643, +0xb3b2,0xb3b3,0x8644,0xb3b4,0xb3b5,0xb3b6,0xb3b7,0xb3b8, +0x8645,0xb3b9,0x8646,0xb3ba,0xb3bb,0xb3bc,0x8647,0x8648, +0xb3bd,0x8649,0x864a,0x864b,0xb3be,0x864c,0x864d,0x864e, +0x864f,0x8650,0x8651,0x8652,0xb3bf,0xb3c0,0x8653,0xb3c1, +0xb3c2,0xb3c3,0x8654,0x8655,0x8656,0x8657,0x8658,0x8659, +0xb3c4,0xb3c5,0x865a,0x8661,0xb3c6,0x8662,0x8663,0x8664, +0xb3c7,0x8665,0x8666,0x8667,0x8668,0x8669,0x866a,0x866b, +0xb3c8,0x866c,0x866d,0x866e,0x866f,0xb3c9,0x8670,0x8671, +0x8672,0x8673,0x8674,0x8675,0x8676,0x8677,0x8678,0x8679, +0x867a,0x8681,0x8682,0x8683,0x8684,0x8685,0x8686,0x8687, +0x8688,0x8689,0x868a,0x868b,0x868c,0x868d,0x868e,0x868f, +/* 0xb100 */ +0x8690,0x8691,0x8692,0x8693,0x8694,0x8695,0x8696,0x8697, +0xb3ca,0xb3cb,0x8698,0xb3cc,0xb3cd,0x8699,0x869a,0x869b, +0xb3ce,0x869c,0xb3cf,0xb3d0,0x869d,0x869e,0x869f,0x86a0, +0xb3d1,0xb3d2,0x86a1,0xb3d3,0xb3d4,0xb3d5,0x86a2,0x86a3, +0x86a4,0x86a5,0x86a6,0xb3d6,0xb3d7,0xb3d8,0x86a7,0x86a8, +0xb3d9,0x86a9,0x86aa,0x86ab,0xb3da,0x86ac,0x86ad,0x86ae, +0x86af,0x86b0,0x86b1,0x86b2,0xb3db,0xb3dc,0x86b3,0xb3dd, +0xb3de,0xb3df,0x86b4,0x86b5,0x86b6,0x86b7,0x86b8,0x86b9, +0xb3e0,0xb3e1,0x86ba,0x86bb,0xb3e2,0x86bc,0x86bd,0x86be, +0xb3e3,0x86bf,0x86c0,0x86c1,0x86c2,0x86c3,0x86c4,0x86c5, +0xb3e4,0xb3e5,0x86c6,0x86c7,0xb3e6,0xb3e7,0x86c8,0x86c9, +0xb3e8,0x86ca,0x86cb,0x86cc,0xb3e9,0x86cd,0x86ce,0x86cf, +0xb3ea,0x86d0,0x86d1,0x86d2,0x86d3,0x86d4,0x86d5,0x86d6, +0x86d7,0x86d8,0x86d9,0x86da,0x86db,0x86dc,0x86dd,0x86de, +0x86df,0x86e0,0x86e1,0x86e2,0x86e3,0x86e4,0x86e5,0x86e6, +0xb3eb,0xb3ec,0x86e7,0x86e8,0xb3ed,0x86e9,0x86ea,0x86eb, +0xb3ee,0x86ec,0xb3ef,0x86ed,0x86ee,0x86ef,0x86f0,0x86f1, +0xb3f0,0xb3f1,0x86f2,0xb3f2,0x86f3,0xb3f3,0x86f4,0x86f5, +0x86f6,0x86f7,0xb3f4,0xb3f5,0xb3f6,0x86f8,0x86f9,0x86fa, +0xb3f7,0x86fb,0x86fc,0x86fd,0xb3f8,0x86fe,0x8741,0x8742, +0x8743,0x8744,0x8745,0x8746,0x8747,0x8748,0x8749,0x874a, +0xb3f9,0x874b,0x874c,0x874d,0x874e,0x874f,0x8750,0x8751, +0x8752,0x8753,0x8754,0x8755,0x8756,0x8757,0x8758,0x8759, +0x875a,0x8761,0x8762,0x8763,0x8764,0x8765,0x8766,0x8767, +0x8768,0x8769,0x876a,0x876b,0x876c,0x876d,0x876e,0x876f, +0x8770,0x8771,0x8772,0x8773,0xb3fa,0x8774,0x8775,0x8776, +0xb3fb,0x8777,0x8778,0x8779,0xb3fc,0x877a,0x8781,0x8782, +0x8783,0x8784,0x8785,0x8786,0xb3fd,0xb3fe,0x8787,0xb4a1, +0x8788,0x8789,0x878a,0x878b,0x878c,0x878d,0x878e,0x878f, +0xb4a2,0xb4a3,0x8790,0x8791,0xb4a4,0x8792,0x8793,0x8794, +0xb4a5,0x8795,0x8796,0x8797,0x8798,0x8799,0x879a,0x879b, +0x879c,0xb4a6,0x879d,0xb4a7,0x879e,0xb4a8,0x879f,0x87a0, +/* 0xb200 */ +0x87a1,0x87a2,0x87a3,0x87a4,0xb4a9,0xb4aa,0x87a5,0x87a6, +0xb4ab,0x87a7,0x87a8,0xb4ac,0xb4ad,0x87a9,0x87aa,0x87ab, +0x87ac,0x87ad,0x87ae,0x87af,0xb4ae,0xb4af,0x87b0,0xb4b0, +0x87b1,0xb4b1,0x87b2,0x87b3,0x87b4,0x87b5,0x87b6,0x87b7, +0xb4b2,0x87b8,0x87b9,0x87ba,0x87bb,0x87bc,0x87bd,0x87be, +0x87bf,0x87c0,0x87c1,0x87c2,0x87c3,0x87c4,0x87c5,0x87c6, +0x87c7,0x87c8,0x87c9,0x87ca,0xb4b3,0x87cb,0x87cc,0x87cd, +0x87ce,0x87cf,0x87d0,0x87d1,0xb4b4,0x87d2,0x87d3,0x87d4, +0x87d5,0x87d6,0x87d7,0x87d8,0x87d9,0x87da,0x87db,0x87dc, +0x87dd,0x87de,0x87df,0x87e0,0x87e1,0x87e2,0x87e3,0x87e4, +0x87e5,0x87e6,0x87e7,0x87e8,0x87e9,0x87ea,0x87eb,0x87ec, +0xb4b5,0x87ed,0x87ee,0x87ef,0xb4b6,0x87f0,0x87f1,0x87f2, +0xb4b7,0x87f3,0x87f4,0x87f5,0x87f6,0x87f7,0x87f8,0x87f9, +0xb4b8,0xb4b9,0x87fa,0x87fb,0x87fc,0x87fd,0x87fe,0x8841, +0x8842,0x8843,0x8844,0x8845,0xb4ba,0xb4bb,0x8846,0x8847, +0x8848,0x8849,0x884a,0x884b,0xb4bc,0x884c,0x884d,0x884e, +0x884f,0x8850,0x8851,0x8852,0xb4bd,0xb4be,0x8853,0x8854, +0x8855,0xb4bf,0x8856,0x8857,0x8858,0x8859,0x885a,0x8861, +0xb4c0,0xb4c1,0x8862,0x8863,0xb4c2,0x8864,0x8865,0x8866, +0xb4c3,0xb4c4,0xb4c5,0x8867,0x8868,0x8869,0x886a,0x886b, +0xb4c6,0xb4c7,0x886c,0xb4c8,0x886d,0xb4c9,0xb4ca,0x886e, +0x886f,0x8870,0xb4cb,0x8871,0xb4cc,0x8872,0x8873,0x8874, +0xb4cd,0x8875,0x8876,0x8877,0xb4ce,0x8878,0x8879,0x887a, +0x8881,0x8882,0x8883,0x8884,0x8885,0x8886,0x8887,0x8888, +0x8889,0x888a,0x888b,0x888c,0x888d,0x888e,0x888f,0x8890, +0xb4cf,0xb4d0,0x8891,0x8892,0xb4d1,0x8893,0x8894,0x8895, +0xb4d2,0x8896,0xb4d3,0x8897,0x8898,0x8899,0x889a,0x889b, +0xb4d4,0xb4d5,0x889c,0xb4d6,0x889d,0xb4d7,0x889e,0x889f, +0x88a0,0x88a1,0xb4d8,0x88a2,0xb4d9,0xb4da,0xb4db,0x88a3, +0xb4dc,0x88a4,0x88a5,0xb4dd,0xb4de,0xb4df,0xb4e0,0xb4e1, +0x88a6,0x88a7,0x88a8,0xb4e2,0xb4e3,0xb4e4,0x88a9,0xb4e5, +0xb4e6,0xb4e7,0xb4e8,0xb4e9,0x88aa,0x88ab,0x88ac,0xb4ea, +/* 0xb300 */ +0xb4eb,0xb4ec,0x88ad,0x88ae,0xb4ed,0x88af,0x88b0,0x88b1, +0xb4ee,0x88b2,0x88b3,0x88b4,0x88b5,0x88b6,0x88b7,0x88b8, +0xb4ef,0xb4f0,0x88b9,0xb4f1,0xb4f2,0xb4f3,0x88ba,0x88bb, +0x88bc,0x88bd,0x88be,0x88bf,0xb4f4,0x88c0,0x88c1,0x88c2, +0x88c3,0x88c4,0x88c5,0x88c6,0x88c7,0x88c8,0x88c9,0x88ca, +0x88cb,0x88cc,0x88cd,0x88ce,0x88cf,0x88d0,0x88d1,0x88d2, +0x88d3,0x88d4,0x88d5,0x88d6,0x88d7,0x88d8,0x88d9,0x88da, +0x88db,0x88dc,0x88dd,0x88de,0x88df,0x88e0,0x88e1,0x88e2, +0x88e3,0x88e4,0x88e5,0x88e6,0x88e7,0x88e8,0x88e9,0x88ea, +0x88eb,0x88ec,0x88ed,0x88ee,0x88ef,0x88f0,0x88f1,0x88f2, +0x88f3,0x88f4,0x88f5,0x88f6,0xb4f5,0xb4f6,0xb4f7,0x88f7, +0xb4f8,0x88f8,0x88f9,0xb4f9,0xb4fa,0x88fa,0xb4fb,0xb4fc, +0x88fb,0x88fc,0x88fd,0x88fe,0xb4fd,0xb4fe,0x8941,0xb5a1, +0x8942,0xb5a2,0x8943,0xb5a3,0x8944,0x8945,0xb5a4,0x8946, +0xb5a5,0xb5a6,0x8947,0x8948,0xb5a7,0x8949,0x894a,0x894b, +0xb5a8,0x894c,0x894d,0x894e,0x894f,0x8950,0x8951,0x8952, +0xb5a9,0xb5aa,0x8953,0xb5ab,0xb5ac,0xb5ad,0x8954,0x8955, +0x8956,0x8957,0x8958,0x8959,0xb5ae,0x895a,0x8961,0x8962, +0xb5af,0x8963,0x8964,0x8965,0xb5b0,0x8966,0x8967,0x8968, +0x8969,0x896a,0x896b,0x896c,0x896d,0x896e,0x896f,0x8970, +0xb5b1,0xb5b2,0x8971,0x8972,0x8973,0x8974,0x8975,0x8976, +0xb5b3,0x8977,0x8978,0x8979,0xb5b4,0x897a,0x8981,0x8982, +0x8983,0x8984,0x8985,0x8986,0x8987,0x8988,0x8989,0x898a, +0x898b,0x898c,0x898d,0x898e,0x898f,0x8990,0x8991,0x8992, +0x8993,0x8994,0x8995,0x8996,0xb5b5,0xb5b6,0x8997,0x8998, +0xb5b7,0x8999,0x899a,0xb5b8,0xb5b9,0x899b,0xb5ba,0x899c, +0xb5bb,0x899d,0x899e,0x899f,0xb5bc,0xb5bd,0x89a0,0xb5be, +0x89a1,0xb5bf,0x89a2,0xb5c0,0x89a3,0xb5c1,0x89a4,0x89a5, +0xb5c2,0x89a6,0x89a7,0x89a8,0xb5c3,0x89a9,0x89aa,0x89ab, +0xb5c4,0x89ac,0x89ad,0x89ae,0x89af,0x89b0,0x89b1,0x89b2, +0x89b3,0x89b4,0x89b5,0x89b6,0x89b7,0x89b8,0x89b9,0x89ba, +0x89bb,0x89bc,0x89bd,0x89be,0xb5c5,0x89bf,0x89c0,0x89c1, +/* 0xb400 */ +0x89c2,0x89c3,0x89c4,0x89c5,0x89c6,0x89c7,0x89c8,0x89c9, +0x89ca,0x89cb,0x89cc,0x89cd,0x89ce,0x89cf,0x89d0,0x89d1, +0xb5c6,0x89d2,0x89d3,0x89d4,0x89d5,0x89d6,0x89d7,0x89d8, +0xb5c7,0x89d9,0x89da,0x89db,0xb5c8,0x89dc,0x89dd,0x89de, +0xb5c9,0x89df,0x89e0,0x89e1,0x89e2,0x89e3,0x89e4,0x89e5, +0xb5ca,0xb5cb,0x89e6,0xb5cc,0x89e7,0x89e8,0x89e9,0x89ea, +0x89eb,0x89ec,0x89ed,0x89ee,0xb5cd,0x89ef,0x89f0,0x89f1, +0x89f2,0x89f3,0x89f4,0x89f5,0x89f6,0x89f7,0x89f8,0x89f9, +0x89fa,0x89fb,0x89fc,0x89fd,0x89fe,0x8a41,0x8a42,0x8a43, +0x8a44,0x8a45,0x8a46,0x8a47,0x8a48,0x8a49,0x8a4a,0x8a4b, +0xb5ce,0xb5cf,0x8a4c,0x8a4d,0xb5d0,0x8a4e,0x8a4f,0x8a50, +0xb5d1,0x8a51,0x8a52,0x8a53,0x8a54,0x8a55,0x8a56,0x8a57, +0xb5d2,0xb5d3,0x8a58,0xb5d4,0x8a59,0xb5d5,0x8a5a,0x8a61, +0x8a62,0x8a63,0x8a64,0x8a65,0xb5d6,0x8a66,0x8a67,0x8a68, +0x8a69,0x8a6a,0x8a6b,0x8a6c,0x8a6d,0x8a6e,0x8a6f,0x8a70, +0x8a71,0x8a72,0x8a73,0x8a74,0x8a75,0x8a76,0x8a77,0x8a78, +0xb5d7,0x8a79,0x8a7a,0x8a81,0x8a82,0x8a83,0x8a84,0x8a85, +0xb5d8,0x8a86,0x8a87,0x8a88,0x8a89,0x8a8a,0x8a8b,0x8a8c, +0x8a8d,0x8a8e,0x8a8f,0x8a90,0x8a91,0x8a92,0x8a93,0x8a94, +0x8a95,0x8a96,0x8a97,0x8a98,0x8a99,0xb5d9,0x8a9a,0x8a9b, +0x8a9c,0x8a9d,0x8a9e,0x8a9f,0xb5da,0x8aa0,0x8aa1,0x8aa2, +0xb5db,0x8aa3,0x8aa4,0x8aa5,0xb5dc,0x8aa6,0x8aa7,0x8aa8, +0x8aa9,0x8aaa,0x8aab,0x8aac,0x8aad,0xb5dd,0x8aae,0xb5de, +0x8aaf,0xb5df,0x8ab0,0x8ab1,0x8ab2,0x8ab3,0x8ab4,0x8ab5, +0xb5e0,0x8ab6,0x8ab7,0x8ab8,0xb5e1,0x8ab9,0x8aba,0x8abb, +0xb5e2,0x8abc,0x8abd,0x8abe,0x8abf,0x8ac0,0x8ac1,0x8ac2, +0xb5e3,0x8ac3,0x8ac4,0x8ac5,0x8ac6,0xb5e4,0x8ac7,0x8ac8, +0x8ac9,0x8aca,0x8acb,0x8acc,0xb5e5,0xb5e6,0x8acd,0x8ace, +0xb5e7,0x8acf,0x8ad0,0xb5e8,0xb5e9,0x8ad1,0xb5ea,0x8ad2, +0x8ad3,0x8ad4,0x8ad5,0x8ad6,0xb5eb,0xb5ec,0x8ad7,0xb5ed, +0x8ad8,0xb5ee,0x8ad9,0x8ada,0x8adb,0x8adc,0x8add,0x8ade, +0xb5ef,0x8adf,0x8ae0,0x8ae1,0x8ae2,0x8ae3,0x8ae4,0x8ae5, +/* 0xb500 */ +0x8ae6,0x8ae7,0x8ae8,0x8ae9,0x8aea,0x8aeb,0x8aec,0x8aed, +0x8aee,0x8aef,0x8af0,0x8af1,0x8af2,0x8af3,0x8af4,0x8af5, +0x8af6,0x8af7,0x8af8,0x8af9,0xb5f0,0xb5f1,0x8afa,0x8afb, +0xb5f2,0x8afc,0x8afd,0xb5f3,0xb5f4,0x8afe,0x8b41,0x8b42, +0x8b43,0x8b44,0x8b45,0x8b46,0xb5f5,0xb5f6,0x8b47,0xb5f7, +0xb5f8,0xb5f9,0xb5fa,0x8b48,0x8b49,0x8b4a,0x8b4b,0x8b4c, +0xb5fb,0xb5fc,0x8b4d,0x8b4e,0xb5fd,0x8b4f,0x8b50,0x8b51, +0xb5fe,0x8b52,0x8b53,0x8b54,0x8b55,0x8b56,0x8b57,0x8b58, +0xb6a1,0xb6a2,0x8b59,0xb6a3,0xb6a4,0xb6a5,0x8b5a,0x8b61, +0x8b62,0x8b63,0x8b64,0xb6a6,0xb6a7,0xb6a8,0x8b65,0x8b66, +0xb6a9,0x8b67,0x8b68,0x8b69,0xb6aa,0x8b6a,0x8b6b,0x8b6c, +0x8b6d,0x8b6e,0x8b6f,0x8b70,0xb6ab,0xb6ac,0x8b71,0xb6ad, +0xb6ae,0xb6af,0x8b72,0x8b73,0x8b74,0x8b75,0x8b76,0x8b77, +0x8b78,0x8b79,0x8b7a,0x8b81,0x8b82,0x8b83,0x8b84,0x8b85, +0x8b86,0x8b87,0x8b88,0x8b89,0x8b8a,0x8b8b,0x8b8c,0x8b8d, +0x8b8e,0x8b8f,0x8b90,0x8b91,0x8b92,0x8b93,0x8b94,0x8b95, +0x8b96,0x8b97,0x8b98,0x8b99,0x8b9a,0x8b9b,0x8b9c,0x8b9d, +0x8b9e,0x8b9f,0x8ba0,0x8ba1,0x8ba2,0x8ba3,0x8ba4,0x8ba5, +0x8ba6,0x8ba7,0x8ba8,0x8ba9,0x8baa,0x8bab,0x8bac,0x8bad, +0x8bae,0x8baf,0x8bb0,0x8bb1,0x8bb2,0x8bb3,0x8bb4,0x8bb5, +0xb6b0,0xb6b1,0x8bb6,0x8bb7,0xb6b2,0x8bb8,0x8bb9,0x8bba, +0xb6b3,0x8bbb,0xb6b4,0xb6b5,0x8bbc,0x8bbd,0x8bbe,0x8bbf, +0xb6b6,0xb6b7,0x8bc0,0xb6b8,0xb6b9,0xb6ba,0x8bc1,0x8bc2, +0x8bc3,0x8bc4,0x8bc5,0xb6bb,0xb6bc,0xb6bd,0x8bc6,0x8bc7, +0xb6be,0x8bc8,0x8bc9,0x8bca,0xb6bf,0x8bcb,0x8bcc,0x8bcd, +0x8bce,0x8bcf,0x8bd0,0x8bd1,0xb6c0,0xb6c1,0x8bd2,0xb6c2, +0xb6c3,0xb6c4,0x8bd3,0x8bd4,0x8bd5,0x8bd6,0x8bd7,0x8bd8, +0xb6c5,0x8bd9,0x8bda,0x8bdb,0x8bdc,0x8bdd,0x8bde,0x8bdf, +0x8be0,0x8be1,0x8be2,0x8be3,0x8be4,0x8be5,0x8be6,0x8be7, +0x8be8,0x8be9,0x8bea,0x8beb,0xb6c6,0x8bec,0x8bed,0x8bee, +0x8bef,0x8bf0,0x8bf1,0x8bf2,0x8bf3,0x8bf4,0x8bf5,0x8bf6, +0x8bf7,0x8bf8,0x8bf9,0x8bfa,0x8bfb,0x8bfc,0x8bfd,0x8bfe, +/* 0xb600 */ +0x8c41,0x8c42,0x8c43,0x8c44,0x8c45,0x8c46,0x8c47,0x8c48, +0x8c49,0x8c4a,0x8c4b,0x8c4c,0x8c4d,0x8c4e,0x8c4f,0x8c50, +0xb6c7,0xb6c8,0x8c51,0x8c52,0xb6c9,0x8c53,0x8c54,0x8c55, +0xb6ca,0x8c56,0x8c57,0x8c58,0x8c59,0x8c5a,0x8c61,0x8c62, +0x8c63,0x8c64,0x8c65,0x8c66,0x8c67,0xb6cb,0x8c68,0x8c69, +0x8c6a,0x8c6b,0x8c6c,0x8c6d,0xb6cc,0x8c6e,0x8c6f,0x8c70, +0x8c71,0x8c72,0x8c73,0x8c74,0xb6cd,0x8c75,0x8c76,0x8c77, +0x8c78,0x8c79,0x8c7a,0x8c81,0x8c82,0x8c83,0x8c84,0x8c85, +0x8c86,0x8c87,0x8c88,0x8c89,0x8c8a,0x8c8b,0x8c8c,0x8c8d, +0xb6ce,0x8c8e,0x8c8f,0x8c90,0x8c91,0x8c92,0x8c93,0x8c94, +0x8c95,0x8c96,0x8c97,0x8c98,0x8c99,0x8c9a,0x8c9b,0x8c9c, +0x8c9d,0x8c9e,0x8c9f,0x8ca0,0x8ca1,0x8ca2,0x8ca3,0x8ca4, +0x8ca5,0x8ca6,0x8ca7,0x8ca8,0xb6cf,0x8ca9,0x8caa,0x8cab, +0xb6d0,0x8cac,0x8cad,0x8cae,0x8caf,0x8cb0,0x8cb1,0x8cb2, +0x8cb3,0x8cb4,0x8cb5,0x8cb6,0x8cb7,0x8cb8,0x8cb9,0x8cba, +0x8cbb,0x8cbc,0x8cbd,0x8cbe,0x8cbf,0x8cc0,0x8cc1,0x8cc2, +0x8cc3,0x8cc4,0x8cc5,0x8cc6,0x8cc7,0x8cc8,0x8cc9,0x8cca, +0x8ccb,0x8ccc,0x8ccd,0x8cce,0x8ccf,0x8cd0,0x8cd1,0x8cd2, +0x8cd3,0x8cd4,0x8cd5,0x8cd6,0x8cd7,0x8cd8,0x8cd9,0x8cda, +0x8cdb,0x8cdc,0x8cdd,0x8cde,0xb6d1,0xb6d2,0x8cdf,0x8ce0, +0xb6d3,0x8ce1,0x8ce2,0x8ce3,0xb6d4,0x8ce4,0x8ce5,0x8ce6, +0x8ce7,0x8ce8,0x8ce9,0xb6d5,0xb6d6,0x8cea,0x8ceb,0x8cec, +0x8ced,0xb6d7,0x8cee,0x8cef,0x8cf0,0x8cf1,0x8cf2,0x8cf3, +0x8cf4,0x8cf5,0x8cf6,0x8cf7,0x8cf8,0x8cf9,0x8cfa,0x8cfb, +0x8cfc,0x8cfd,0x8cfe,0x8d41,0x8d42,0x8d43,0x8d44,0x8d45, +0x8d46,0x8d47,0x8d48,0x8d49,0x8d4a,0x8d4b,0x8d4c,0x8d4d, +0x8d4e,0x8d4f,0x8d50,0x8d51,0xb6d8,0x8d52,0x8d53,0x8d54, +0x8d55,0x8d56,0x8d57,0x8d58,0x8d59,0x8d5a,0x8d61,0x8d62, +0x8d63,0x8d64,0x8d65,0x8d66,0x8d67,0x8d68,0x8d69,0x8d6a, +0x8d6b,0x8d6c,0x8d6d,0x8d6e,0x8d6f,0x8d70,0x8d71,0x8d72, +0xb6d9,0x8d73,0x8d74,0x8d75,0xb6da,0x8d76,0x8d77,0x8d78, +0xb6db,0x8d79,0x8d7a,0x8d81,0x8d82,0x8d83,0x8d84,0x8d85, +/* 0xb700 */ +0xb6dc,0xb6dd,0x8d86,0x8d87,0x8d88,0xb6de,0x8d89,0x8d8a, +0x8d8b,0x8d8c,0x8d8d,0x8d8e,0x8d8f,0x8d90,0x8d91,0x8d92, +0x8d93,0x8d94,0x8d95,0x8d96,0x8d97,0x8d98,0x8d99,0x8d9a, +0x8d9b,0x8d9c,0x8d9d,0x8d9e,0x8d9f,0x8da0,0x8da1,0x8da2, +0x8da3,0x8da4,0x8da5,0x8da6,0x8da7,0x8da8,0x8da9,0x8daa, +0xb6df,0xb6e0,0x8dab,0x8dac,0xb6e1,0x8dad,0x8dae,0xb6e2, +0xb6e3,0x8daf,0x8db0,0x8db1,0x8db2,0x8db3,0x8db4,0x8db5, +0xb6e4,0xb6e5,0x8db6,0xb6e6,0x8db7,0x8db8,0x8db9,0x8dba, +0x8dbb,0x8dbc,0x8dbd,0x8dbe,0xb6e7,0x8dbf,0x8dc0,0x8dc1, +0xb6e8,0x8dc2,0x8dc3,0x8dc4,0xb6e9,0x8dc5,0x8dc6,0x8dc7, +0x8dc8,0x8dc9,0x8dca,0x8dcb,0xb6ea,0xb6eb,0x8dcc,0x8dcd, +0x8dce,0x8dcf,0x8dd0,0x8dd1,0x8dd2,0x8dd3,0x8dd4,0x8dd5, +0xb6ec,0x8dd6,0x8dd7,0x8dd8,0xb6ed,0x8dd9,0x8dda,0x8ddb, +0xb6ee,0x8ddc,0x8ddd,0x8dde,0x8ddf,0x8de0,0x8de1,0x8de2, +0xb6ef,0xb6f0,0x8de3,0xb6f1,0x8de4,0xb6f2,0x8de5,0x8de6, +0x8de7,0x8de8,0x8de9,0x8dea,0xb6f3,0xb6f4,0x8deb,0x8dec, +0xb6f5,0x8ded,0x8dee,0x8def,0xb6f6,0x8df0,0x8df1,0x8df2, +0x8df3,0x8df4,0x8df5,0x8df6,0xb6f7,0xb6f8,0x8df7,0xb6f9, +0xb6fa,0xb6fb,0xb6fc,0x8df8,0x8df9,0x8dfa,0xb6fd,0xb6fe, +0xb7a1,0xb7a2,0x8dfb,0x8dfc,0xb7a3,0x8dfd,0x8dfe,0x8e41, +0xb7a4,0x8e42,0x8e43,0x8e44,0x8e45,0x8e46,0x8e47,0x8e48, +0xb7a5,0xb7a6,0x8e49,0xb7a7,0xb7a8,0xb7a9,0x8e4a,0x8e4b, +0x8e4c,0x8e4d,0x8e4e,0x8e4f,0xb7aa,0xb7ab,0x8e50,0x8e51, +0xb7ac,0x8e52,0x8e53,0x8e54,0x8e55,0x8e56,0x8e57,0x8e58, +0x8e59,0x8e5a,0x8e61,0x8e62,0x8e63,0x8e64,0x8e65,0xb7ad, +0x8e66,0xb7ae,0x8e67,0x8e68,0x8e69,0x8e6a,0x8e6b,0x8e6c, +0x8e6d,0x8e6e,0x8e6f,0x8e70,0x8e71,0x8e72,0x8e73,0x8e74, +0x8e75,0x8e76,0x8e77,0x8e78,0x8e79,0x8e7a,0x8e81,0x8e82, +0x8e83,0x8e84,0x8e85,0x8e86,0x8e87,0x8e88,0x8e89,0x8e8a, +0x8e8b,0x8e8c,0x8e8d,0x8e8e,0xb7af,0xb7b0,0x8e8f,0x8e90, +0xb7b1,0x8e91,0x8e92,0x8e93,0xb7b2,0x8e94,0x8e95,0x8e96, +0x8e97,0x8e98,0x8e99,0x8e9a,0xb7b3,0xb7b4,0x8e9b,0xb7b5, +/* 0xb800 */ +0xb7b6,0xb7b7,0x8e9c,0x8e9d,0x8e9e,0x8e9f,0x8ea0,0xb7b8, +0xb7b9,0xb7ba,0x8ea1,0x8ea2,0xb7bb,0x8ea3,0x8ea4,0x8ea5, +0xb7bc,0x8ea6,0x8ea7,0x8ea8,0x8ea9,0x8eaa,0x8eab,0x8eac, +0xb7bd,0xb7be,0x8ead,0xb7bf,0x8eae,0xb7c0,0x8eaf,0x8eb0, +0x8eb1,0x8eb2,0x8eb3,0x8eb4,0xb7c1,0xb7c2,0x8eb5,0x8eb6, +0xb7c3,0x8eb7,0x8eb8,0x8eb9,0xb7c4,0x8eba,0x8ebb,0x8ebc, +0x8ebd,0x8ebe,0x8ebf,0x8ec0,0xb7c5,0xb7c6,0x8ec1,0xb7c7, +0xb7c8,0xb7c9,0x8ec2,0x8ec3,0x8ec4,0x8ec5,0x8ec6,0x8ec7, +0xb7ca,0x8ec8,0x8ec9,0x8eca,0xb7cb,0x8ecb,0x8ecc,0x8ecd, +0x8ece,0x8ecf,0x8ed0,0x8ed1,0x8ed2,0x8ed3,0x8ed4,0x8ed5, +0x8ed6,0xb7cc,0x8ed7,0xb7cd,0x8ed8,0x8ed9,0x8eda,0x8edb, +0x8edc,0x8edd,0x8ede,0x8edf,0xb7ce,0xb7cf,0x8ee0,0x8ee1, +0xb7d0,0x8ee2,0x8ee3,0x8ee4,0xb7d1,0x8ee5,0x8ee6,0x8ee7, +0x8ee8,0x8ee9,0x8eea,0x8eeb,0xb7d2,0xb7d3,0x8eec,0xb7d4, +0x8eed,0xb7d5,0x8eee,0x8eef,0x8ef0,0x8ef1,0x8ef2,0x8ef3, +0xb7d6,0x8ef4,0x8ef5,0x8ef6,0xb7d7,0x8ef7,0x8ef8,0x8ef9, +0x8efa,0x8efb,0x8efc,0x8efd,0x8efe,0x8f41,0x8f42,0x8f43, +0x8f44,0x8f45,0x8f46,0x8f47,0x8f48,0xb7d8,0x8f49,0x8f4a, +0x8f4b,0x8f4c,0x8f4d,0x8f4e,0x8f4f,0x8f50,0x8f51,0x8f52, +0x8f53,0x8f54,0x8f55,0x8f56,0x8f57,0x8f58,0x8f59,0x8f5a, +0x8f61,0x8f62,0x8f63,0x8f64,0x8f65,0x8f66,0x8f67,0x8f68, +0xb7d9,0x8f69,0x8f6a,0x8f6b,0x8f6c,0x8f6d,0x8f6e,0x8f6f, +0xb7da,0x8f70,0x8f71,0x8f72,0xb7db,0x8f73,0x8f74,0x8f75, +0xb7dc,0x8f76,0x8f77,0x8f78,0x8f79,0x8f7a,0x8f81,0x8f82, +0xb7dd,0xb7de,0x8f83,0xb7df,0x8f84,0xb7e0,0x8f85,0x8f86, +0x8f87,0x8f88,0x8f89,0x8f8a,0xb7e1,0x8f8b,0x8f8c,0x8f8d, +0xb7e2,0x8f8e,0x8f8f,0x8f90,0xb7e3,0x8f91,0x8f92,0x8f93, +0x8f94,0x8f95,0x8f96,0x8f97,0x8f98,0xb7e4,0x8f99,0xb7e5, +0x8f9a,0xb7e6,0x8f9b,0x8f9c,0x8f9d,0x8f9e,0x8f9f,0x8fa0, +0xb7e7,0xb7e8,0x8fa1,0x8fa2,0xb7e9,0x8fa3,0x8fa4,0x8fa5, +0xb7ea,0x8fa6,0x8fa7,0x8fa8,0x8fa9,0x8faa,0x8fab,0x8fac, +0xb7eb,0xb7ec,0x8fad,0xb7ed,0x8fae,0xb7ee,0x8faf,0x8fb0, +/* 0xb900 */ +0x8fb1,0x8fb2,0x8fb3,0x8fb4,0xb7ef,0x8fb5,0x8fb6,0x8fb7, +0x8fb8,0x8fb9,0x8fba,0x8fbb,0x8fbc,0x8fbd,0x8fbe,0x8fbf, +0x8fc0,0x8fc1,0x8fc2,0x8fc3,0x8fc4,0x8fc5,0x8fc6,0x8fc7, +0xb7f0,0x8fc8,0x8fc9,0x8fca,0x8fcb,0x8fcc,0x8fcd,0x8fce, +0xb7f1,0x8fcf,0x8fd0,0x8fd1,0x8fd2,0x8fd3,0x8fd4,0x8fd5, +0x8fd6,0x8fd7,0x8fd8,0x8fd9,0x8fda,0x8fdb,0x8fdc,0x8fdd, +0x8fde,0x8fdf,0x8fe0,0x8fe1,0x8fe2,0x8fe3,0x8fe4,0x8fe5, +0x8fe6,0x8fe7,0x8fe8,0x8fe9,0xb7f2,0xb7f3,0x8fea,0x8feb, +0xb7f4,0x8fec,0x8fed,0x8fee,0xb7f5,0x8fef,0x8ff0,0x8ff1, +0x8ff2,0x8ff3,0x8ff4,0x8ff5,0xb7f6,0x8ff6,0x8ff7,0xb7f7, +0x8ff8,0xb7f8,0x8ff9,0x8ffa,0x8ffb,0x8ffc,0x8ffd,0x8ffe, +0xb7f9,0xb7fa,0x9041,0x9042,0xb7fb,0x9043,0x9044,0x9045, +0xb7fc,0x9046,0x9047,0x9048,0x9049,0x904a,0x904b,0x904c, +0xb7fd,0xb7fe,0x904d,0xb8a1,0x904e,0xb8a2,0x904f,0x9050, +0x9051,0x9052,0x9053,0x9054,0xb8a3,0xb8a4,0x9055,0x9056, +0xb8a5,0x9057,0x9058,0x9059,0xb8a6,0x905a,0x9061,0x9062, +0x9063,0x9064,0x9065,0x9066,0xb8a7,0xb8a8,0x9067,0xb8a9, +0x9068,0xb8aa,0xb8ab,0x9069,0x906a,0xb8ac,0xb8ad,0x906b, +0x906c,0x906d,0x906e,0x906f,0x9070,0x9071,0x9072,0x9073, +0x9074,0x9075,0x9076,0x9077,0x9078,0x9079,0x907a,0x9081, +0x9082,0x9083,0x9084,0x9085,0x9086,0x9087,0x9088,0x9089, +0x908a,0x908b,0x908c,0x908d,0xb8ae,0xb8af,0x908e,0x908f, +0xb8b0,0x9090,0x9091,0x9092,0xb8b1,0x9093,0x9094,0x9095, +0x9096,0x9097,0x9098,0x9099,0xb8b2,0xb8b3,0x909a,0xb8b4, +0x909b,0xb8b5,0x909c,0x909d,0x909e,0x909f,0x90a0,0x90a1, +0xb8b6,0xb8b7,0x90a2,0x90a3,0xb8b8,0x90a4,0xb8b9,0xb8ba, +0xb8bb,0xb8bc,0xb8bd,0x90a5,0x90a6,0x90a7,0x90a8,0x90a9, +0xb8be,0xb8bf,0x90aa,0xb8c0,0x90ab,0xb8c1,0xb8c2,0x90ac, +0x90ad,0xb8c3,0x90ae,0xb8c4,0xb8c5,0xb8c6,0x90af,0x90b0, +0xb8c7,0x90b1,0x90b2,0x90b3,0xb8c8,0x90b4,0x90b5,0x90b6, +0x90b7,0x90b8,0x90b9,0x90ba,0xb8c9,0xb8ca,0x90bb,0xb8cb, +0xb8cc,0xb8cd,0xb8ce,0x90bc,0x90bd,0x90be,0x90bf,0x90c0, +/* 0xba00 */ +0xb8cf,0xb8d0,0x90c1,0x90c2,0x90c3,0x90c4,0x90c5,0x90c6, +0xb8d1,0x90c7,0x90c8,0x90c9,0x90ca,0x90cb,0x90cc,0x90cd, +0x90ce,0x90cf,0x90d0,0x90d1,0x90d2,0xb8d2,0x90d3,0x90d4, +0x90d5,0x90d6,0x90d7,0x90d8,0x90d9,0x90da,0x90db,0x90dc, +0x90dd,0x90de,0x90df,0x90e0,0x90e1,0x90e2,0x90e3,0x90e4, +0x90e5,0x90e6,0x90e7,0x90e8,0x90e9,0x90ea,0x90eb,0x90ec, +0x90ed,0x90ee,0x90ef,0x90f0,0x90f1,0x90f2,0x90f3,0x90f4, +0xb8d3,0xb8d4,0x90f5,0x90f6,0xb8d5,0x90f7,0x90f8,0x90f9, +0xb8d6,0x90fa,0xb8d7,0x90fb,0x90fc,0x90fd,0x90fe,0x9141, +0xb8d8,0xb8d9,0x9142,0xb8da,0x9143,0xb8db,0xb8dc,0x9144, +0x9145,0x9146,0x9147,0xb8dd,0xb8de,0xb8df,0x9148,0x9149, +0xb8e0,0x914a,0x914b,0x914c,0xb8e1,0x914d,0x914e,0x914f, +0x9150,0x9151,0x9152,0x9153,0xb8e2,0xb8e3,0x9154,0xb8e4, +0xb8e5,0xb8e6,0x9155,0x9156,0x9157,0x9158,0x9159,0x915a, +0xb8e7,0xb8e8,0x9161,0x9162,0xb8e9,0x9163,0x9164,0x9165, +0xb8ea,0x9166,0x9167,0x9168,0x9169,0x916a,0x916b,0x916c, +0x916d,0x916e,0x916f,0xb8eb,0xb8ec,0xb8ed,0x9170,0xb8ee, +0x9171,0x9172,0x9173,0x9174,0xb8ef,0x9175,0x9176,0x9177, +0x9178,0x9179,0x917a,0x9181,0x9182,0x9183,0x9184,0x9185, +0x9186,0x9187,0x9188,0x9189,0x918a,0x918b,0x918c,0x918d, +0x918e,0x918f,0x9190,0x9191,0x9192,0x9193,0x9194,0x9195, +0xb8f0,0xb8f1,0x9196,0xb8f2,0xb8f3,0x9197,0x9198,0x9199, +0xb8f4,0x919a,0xb8f5,0x919b,0x919c,0x919d,0x919e,0x919f, +0xb8f6,0xb8f7,0x91a0,0xb8f8,0x91a1,0xb8f9,0x91a2,0x91a3, +0x91a4,0x91a5,0x91a6,0x91a7,0xb8fa,0x91a8,0x91a9,0x91aa, +0xb8fb,0x91ab,0x91ac,0x91ad,0x91ae,0x91af,0x91b0,0x91b1, +0x91b2,0x91b3,0x91b4,0x91b5,0x91b6,0x91b7,0x91b8,0x91b9, +0xb8fc,0xb8fd,0x91ba,0x91bb,0x91bc,0x91bd,0x91be,0x91bf, +0x91c0,0x91c1,0x91c2,0x91c3,0x91c4,0x91c5,0x91c6,0x91c7, +0x91c8,0x91c9,0x91ca,0x91cb,0x91cc,0x91cd,0x91ce,0x91cf, +0x91d0,0x91d1,0x91d2,0x91d3,0x91d4,0x91d5,0x91d6,0x91d7, +0x91d8,0x91d9,0x91da,0x91db,0xb8fe,0x91dc,0x91dd,0x91de, +/* 0xbb00 */ +0xb9a1,0x91df,0x91e0,0x91e1,0xb9a2,0x91e2,0x91e3,0x91e4, +0x91e5,0x91e6,0x91e7,0x91e8,0x91e9,0xb9a3,0x91ea,0xb9a4, +0x91eb,0xb9a5,0x91ec,0x91ed,0x91ee,0x91ef,0x91f0,0x91f1, +0xb9a6,0x91f2,0x91f3,0x91f4,0xb9a7,0x91f5,0x91f6,0x91f7, +0xb9a8,0x91f8,0x91f9,0x91fa,0x91fb,0x91fc,0x91fd,0x91fe, +0x9241,0xb9a9,0x9242,0xb9aa,0x9243,0x9244,0x9245,0x9246, +0x9247,0x9248,0x9249,0x924a,0xb9ab,0xb9ac,0xb9ad,0x924b, +0xb9ae,0x924c,0x924d,0xb9af,0xb9b0,0xb9b1,0xb9b2,0x924e, +0x924f,0x9250,0x9251,0x9252,0xb9b3,0xb9b4,0x9253,0xb9b5, +0x9254,0xb9b6,0x9255,0x9256,0x9257,0xb9b7,0x9258,0xb9b8, +0xb9b9,0x9259,0x925a,0x9261,0xb9ba,0x9262,0x9263,0x9264, +0xb9bb,0x9265,0x9266,0x9267,0x9268,0x9269,0x926a,0x926b, +0x926c,0xb9bc,0x926d,0xb9bd,0x926e,0x926f,0x9270,0x9271, +0x9272,0x9273,0x9274,0x9275,0xb9be,0x9276,0x9277,0x9278, +0x9279,0x927a,0x9281,0x9282,0x9283,0x9284,0x9285,0x9286, +0x9287,0x9288,0x9289,0x928a,0x928b,0x928c,0x928d,0x928e, +0x928f,0x9290,0x9291,0x9292,0x9293,0x9294,0x9295,0x9296, +0xb9bf,0x9297,0x9298,0x9299,0xb9c0,0x929a,0x929b,0x929c, +0xb9c1,0x929d,0x929e,0x929f,0x92a0,0x92a1,0x92a2,0x92a3, +0x92a4,0x92a5,0x92a6,0x92a7,0x92a8,0x92a9,0x92aa,0x92ab, +0x92ac,0x92ad,0x92ae,0x92af,0xb9c2,0x92b0,0x92b1,0x92b2, +0xb9c3,0x92b3,0x92b4,0x92b5,0xb9c4,0x92b6,0x92b7,0x92b8, +0x92b9,0x92ba,0x92bb,0x92bc,0xb9c5,0x92bd,0x92be,0xb9c6, +0x92bf,0x92c0,0x92c1,0x92c2,0x92c3,0x92c4,0x92c5,0x92c6, +0xb9c7,0x92c7,0x92c8,0x92c9,0xb9c8,0x92ca,0x92cb,0x92cc, +0xb9c9,0x92cd,0x92ce,0x92cf,0x92d0,0x92d1,0x92d2,0x92d3, +0xb9ca,0x92d4,0x92d5,0xb9cb,0x92d6,0x92d7,0x92d8,0x92d9, +0x92da,0x92db,0x92dc,0x92dd,0x92de,0x92df,0x92e0,0x92e1, +0x92e2,0x92e3,0x92e4,0x92e5,0x92e6,0x92e7,0x92e8,0x92e9, +0x92ea,0x92eb,0x92ec,0x92ed,0x92ee,0x92ef,0x92f0,0x92f1, +0x92f2,0x92f3,0x92f4,0x92f5,0x92f6,0x92f7,0x92f8,0x92f9, +0xb9cc,0xb9cd,0x92fa,0x92fb,0xb9ce,0x92fc,0x92fd,0xb9cf, +/* 0xbc00 */ +0xb9d0,0x92fe,0xb9d1,0x9341,0x9342,0x9343,0x9344,0x9345, +0xb9d2,0xb9d3,0x9346,0xb9d4,0xb9d5,0xb9d6,0x9347,0xb9d7, +0x9348,0xb9d8,0x9349,0x934a,0xb9d9,0xb9da,0xb9db,0xb9dc, +0xb9dd,0x934b,0x934c,0xb9de,0xb9df,0xb9e0,0xb9e1,0xb9e2, +0x934d,0x934e,0x934f,0x9350,0xb9e3,0xb9e4,0x9351,0xb9e5, +0x9352,0xb9e6,0x9353,0x9354,0x9355,0xb9e7,0x9356,0x9357, +0xb9e8,0xb9e9,0x9358,0x9359,0xb9ea,0x935a,0x9361,0x9362, +0xb9eb,0x9363,0x9364,0x9365,0x9366,0x9367,0x9368,0x9369, +0xb9ec,0xb9ed,0x936a,0xb9ee,0xb9ef,0xb9f0,0x936b,0x936c, +0x936d,0xb9f1,0x936e,0x936f,0xb9f2,0xb9f3,0x9370,0x9371, +0xb9f4,0x9372,0x9373,0x9374,0x9375,0x9376,0x9377,0x9378, +0x9379,0x937a,0x9381,0x9382,0x9383,0xb9f5,0x9384,0x9385, +0x9386,0x9387,0x9388,0x9389,0x938a,0x938b,0x938c,0x938d, +0x938e,0x938f,0x9390,0x9391,0x9392,0x9393,0x9394,0x9395, +0x9396,0x9397,0x9398,0x9399,0x939a,0x939b,0x939c,0x939d, +0x939e,0x939f,0x93a0,0x93a1,0x93a2,0x93a3,0x93a4,0x93a5, +0x93a6,0x93a7,0x93a8,0x93a9,0xb9f6,0xb9f7,0x93aa,0x93ab, +0xb9f8,0x93ac,0x93ad,0xb9f9,0xb9fa,0x93ae,0xb9fb,0x93af, +0x93b0,0x93b1,0x93b2,0x93b3,0xb9fc,0xb9fd,0x93b4,0xb9fe, +0x93b5,0xbaa1,0xbaa2,0x93b6,0x93b7,0x93b8,0x93b9,0x93ba, +0xbaa3,0xbaa4,0x93bb,0x93bc,0xbaa5,0x93bd,0x93be,0xbaa6, +0xbaa7,0x93bf,0x93c0,0x93c1,0x93c2,0x93c3,0x93c4,0x93c5, +0xbaa8,0xbaa9,0x93c6,0xbaaa,0xbaab,0xbaac,0x93c7,0x93c8, +0x93c9,0x93ca,0x93cb,0x93cc,0xbaad,0xbaae,0x93cd,0x93ce, +0xbaaf,0x93cf,0x93d0,0x93d1,0xbab0,0x93d2,0x93d3,0x93d4, +0x93d5,0x93d6,0x93d7,0x93d8,0x93d9,0xbab1,0x93da,0xbab2, +0xbab3,0xbab4,0x93db,0x93dc,0x93dd,0xbab5,0x93de,0x93df, +0xbab6,0x93e0,0x93e1,0x93e2,0xbab7,0x93e3,0x93e4,0x93e5, +0x93e6,0x93e7,0x93e8,0x93e9,0x93ea,0x93eb,0x93ec,0x93ed, +0x93ee,0x93ef,0x93f0,0x93f1,0x93f2,0x93f3,0x93f4,0x93f5, +0x93f6,0x93f7,0x93f8,0x93f9,0xbab8,0xbab9,0xbaba,0x93fa, +0xbabb,0x93fb,0x93fc,0x93fd,0xbabc,0x93fe,0x9441,0x9442, +/* 0xbd00 */ +0x9443,0x9444,0x9445,0x9446,0xbabd,0xbabe,0x9447,0xbabf, +0x9448,0xbac0,0x9449,0x944a,0x944b,0x944c,0x944d,0x944e, +0xbac1,0x944f,0x9450,0x9451,0xbac2,0x9452,0x9453,0x9454, +0x9455,0x9456,0x9457,0x9458,0x9459,0x945a,0x9461,0x9462, +0x9463,0x9464,0x9465,0x9466,0xbac3,0x9467,0x9468,0x9469, +0x946a,0x946b,0x946c,0x946d,0xbac4,0x946e,0x946f,0x9470, +0x9471,0x9472,0x9473,0x9474,0x9475,0x9476,0x9477,0x9478, +0x9479,0x947a,0x9481,0x9482,0x9483,0x9484,0x9485,0x9486, +0xbac5,0x9487,0x9488,0x9489,0x948a,0x948b,0x948c,0x948d, +0xbac6,0xbac7,0x948e,0x948f,0xbac8,0x9490,0x9491,0x9492, +0xbac9,0x9493,0x9494,0x9495,0x9496,0x9497,0x9498,0x9499, +0xbaca,0xbacb,0x949a,0x949b,0x949c,0x949d,0x949e,0x949f, +0x94a0,0x94a1,0x94a2,0x94a3,0xbacc,0x94a4,0x94a5,0x94a6, +0xbacd,0x94a7,0x94a8,0x94a9,0x94aa,0x94ab,0x94ac,0x94ad, +0x94ae,0x94af,0x94b0,0x94b1,0x94b2,0x94b3,0x94b4,0x94b5, +0x94b6,0x94b7,0x94b8,0x94b9,0x94ba,0x94bb,0x94bc,0x94bd, +0xbace,0xbacf,0x94be,0x94bf,0xbad0,0x94c0,0x94c1,0xbad1, +0xbad2,0xbad3,0xbad4,0x94c2,0x94c3,0x94c4,0x94c5,0x94c6, +0xbad5,0xbad6,0x94c7,0xbad7,0x94c8,0xbad8,0x94c9,0x94ca, +0x94cb,0xbad9,0xbada,0x94cc,0xbadb,0x94cd,0x94ce,0x94cf, +0x94d0,0x94d1,0x94d2,0x94d3,0xbadc,0x94d4,0x94d5,0x94d6, +0x94d7,0x94d8,0x94d9,0x94da,0x94db,0x94dc,0x94dd,0x94de, +0xbadd,0x94df,0x94e0,0x94e1,0x94e2,0x94e3,0x94e4,0x94e5, +0xbade,0x94e6,0x94e7,0x94e8,0x94e9,0x94ea,0x94eb,0x94ec, +0x94ed,0x94ee,0x94ef,0x94f0,0x94f1,0x94f2,0x94f3,0x94f4, +0x94f5,0x94f6,0x94f7,0x94f8,0x94f9,0x94fa,0x94fb,0x94fc, +0x94fd,0x94fe,0x9541,0x9542,0xbadf,0xbae0,0x9543,0x9544, +0xbae1,0x9545,0x9546,0x9547,0xbae2,0x9548,0x9549,0x954a, +0x954b,0x954c,0x954d,0x954e,0x954f,0x9550,0x9551,0x9552, +0x9553,0xbae3,0x9554,0x9555,0x9556,0x9557,0x9558,0x9559, +0xbae4,0x955a,0x9561,0x9562,0xbae5,0x9563,0x9564,0x9565, +0xbae6,0x9566,0x9567,0x9568,0x9569,0x956a,0x956b,0x956c, +/* 0xbe00 */ +0xbae7,0x956d,0x956e,0xbae8,0x956f,0xbae9,0x9570,0x9571, +0x9572,0x9573,0x9574,0x9575,0xbaea,0xbaeb,0x9576,0x9577, +0xbaec,0x9578,0x9579,0x957a,0xbaed,0x9581,0x9582,0x9583, +0x9584,0x9585,0x9586,0x9587,0xbaee,0xbaef,0x9588,0xbaf0, +0x9589,0x958a,0x958b,0x958c,0x958d,0x958e,0x958f,0x9590, +0x9591,0x9592,0x9593,0x9594,0x9595,0x9596,0x9597,0x9598, +0x9599,0x959a,0x959b,0x959c,0x959d,0x959e,0x959f,0x95a0, +0x95a1,0x95a2,0x95a3,0x95a4,0x95a5,0x95a6,0x95a7,0x95a8, +0x95a9,0x95aa,0x95ab,0x95ac,0xbaf1,0xbaf2,0x95ad,0x95ae, +0xbaf3,0x95af,0x95b0,0x95b1,0xbaf4,0x95b2,0xbaf5,0x95b3, +0x95b4,0x95b5,0x95b6,0x95b7,0xbaf6,0xbaf7,0x95b8,0xbaf8, +0x95b9,0xbaf9,0xbafa,0xbafb,0x95ba,0x95bb,0x95bc,0x95bd, +0xbafc,0xbafd,0x95be,0x95bf,0xbafe,0x95c0,0x95c1,0x95c2, +0xbba1,0x95c3,0xbba2,0x95c4,0x95c5,0x95c6,0x95c7,0x95c8, +0xbba3,0xbba4,0x95c9,0xbba5,0xbba6,0xbba7,0x95ca,0x95cb, +0x95cc,0x95cd,0x95ce,0xbba8,0xbba9,0xbbaa,0x95cf,0x95d0, +0xbbab,0x95d1,0x95d2,0x95d3,0xbbac,0x95d4,0x95d5,0x95d6, +0x95d7,0x95d8,0x95d9,0x95da,0xbbad,0xbbae,0x95db,0xbbaf, +0xbbb0,0xbbb1,0x95dc,0x95dd,0x95de,0x95df,0x95e0,0x95e1, +0xbbb2,0xbbb3,0x95e2,0x95e3,0x95e4,0x95e5,0x95e6,0x95e7, +0x95e8,0x95e9,0x95ea,0x95eb,0x95ec,0x95ed,0x95ee,0x95ef, +0xbbb4,0x95f0,0x95f1,0x95f2,0x95f3,0x95f4,0x95f5,0x95f6, +0x95f7,0x95f8,0x95f9,0x95fa,0x95fb,0x95fc,0x95fd,0x95fe, +0x9641,0x9642,0x9643,0x9644,0x9645,0x9646,0x9647,0x9648, +0x9649,0x964a,0x964b,0x964c,0x964d,0x964e,0x964f,0x9650, +0x9651,0x9652,0x9653,0x9654,0x9655,0x9656,0x9657,0x9658, +0xbbb5,0xbbb6,0x9659,0x965a,0xbbb7,0x9661,0x9662,0xbbb8, +0xbbb9,0x9663,0x9664,0x9665,0x9666,0x9667,0x9668,0x9669, +0xbbba,0x966a,0x966b,0xbbbb,0xbbbc,0xbbbd,0x966c,0x966d, +0x966e,0x966f,0x9670,0x9671,0xbbbe,0x9672,0x9673,0x9674, +0x9675,0x9676,0x9677,0x9678,0x9679,0x967a,0x9681,0x9682, +0x9683,0x9684,0x9685,0x9686,0x9687,0x9688,0x9689,0x968a, +/* 0xbf00 */ +0x968b,0xbbbf,0x968c,0x968d,0x968e,0x968f,0x9690,0x9691, +0xbbc0,0xbbc1,0x9692,0x9693,0x9694,0x9695,0x9696,0x9697, +0x9698,0x9699,0x969a,0x969b,0x969c,0x969d,0x969e,0x969f, +0xbbc2,0xbbc3,0x96a0,0xbbc4,0xbbc5,0xbbc6,0x96a1,0x96a2, +0x96a3,0x96a4,0x96a5,0x96a6,0x96a7,0x96a8,0x96a9,0x96aa, +0x96ab,0x96ac,0x96ad,0x96ae,0x96af,0x96b0,0x96b1,0x96b2, +0x96b3,0x96b4,0x96b5,0x96b6,0x96b7,0x96b8,0x96b9,0x96ba, +0x96bb,0x96bc,0x96bd,0x96be,0x96bf,0x96c0,0x96c1,0x96c2, +0xbbc7,0xbbc8,0x96c3,0x96c4,0xbbc9,0x96c5,0x96c6,0x96c7, +0xbbca,0x96c8,0x96c9,0x96ca,0x96cb,0x96cc,0x96cd,0x96ce, +0xbbcb,0xbbcc,0x96cf,0x96d0,0x96d1,0xbbcd,0x96d2,0x96d3, +0x96d4,0x96d5,0x96d6,0x96d7,0x96d8,0x96d9,0x96da,0x96db, +0x96dc,0x96dd,0x96de,0x96df,0x96e0,0x96e1,0x96e2,0x96e3, +0x96e4,0x96e5,0x96e6,0x96e7,0x96e8,0x96e9,0x96ea,0x96eb, +0x96ec,0x96ed,0x96ee,0x96ef,0x96f0,0x96f1,0x96f2,0x96f3, +0x96f4,0x96f5,0x96f6,0x96f7,0x96f8,0x96f9,0x96fa,0x96fb, +0x96fc,0x96fd,0x96fe,0x9741,0x9742,0x9743,0x9744,0x9745, +0x9746,0x9747,0x9748,0x9749,0x974a,0x974b,0x974c,0x974d, +0x974e,0x974f,0x9750,0x9751,0xbbce,0x9752,0x9753,0x9754, +0x9755,0x9756,0x9757,0x9758,0x9759,0x975a,0x9761,0x9762, +0x9763,0x9764,0x9765,0x9766,0x9767,0x9768,0x9769,0x976a, +0x976b,0x976c,0x976d,0x976e,0x976f,0x9770,0x9771,0x9772, +0xbbcf,0x9773,0x9774,0x9775,0x9776,0x9777,0x9778,0x9779, +0x977a,0x9781,0x9782,0x9783,0x9784,0x9785,0x9786,0x9787, +0x9788,0x9789,0x978a,0x978b,0x978c,0xbbd0,0x978d,0x978e, +0x978f,0x9790,0x9791,0x9792,0xbbd1,0xbbd2,0x9793,0x9794, +0xbbd3,0x9795,0x9796,0x9797,0xbbd4,0x9798,0x9799,0x979a, +0x979b,0x979c,0x979d,0x979e,0xbbd5,0x979f,0x97a0,0xbbd6, +0x97a1,0xbbd7,0x97a2,0x97a3,0x97a4,0x97a5,0x97a6,0x97a7, +0x97a8,0x97a9,0x97aa,0x97ab,0x97ac,0x97ad,0x97ae,0x97af, +0x97b0,0x97b1,0x97b2,0x97b3,0x97b4,0x97b5,0x97b6,0x97b7, +0x97b8,0x97b9,0x97ba,0x97bb,0x97bc,0x97bd,0x97be,0x97bf, +/* 0xc000 */ +0x97c0,0x97c1,0x97c2,0x97c3,0x97c4,0x97c5,0x97c6,0x97c7, +0x97c8,0x97c9,0x97ca,0x97cb,0x97cc,0x97cd,0x97ce,0x97cf, +0x97d0,0x97d1,0x97d2,0x97d3,0x97d4,0x97d5,0x97d6,0x97d7, +0x97d8,0x97d9,0x97da,0x97db,0x97dc,0x97dd,0x97de,0x97df, +0x97e0,0x97e1,0x97e2,0x97e3,0x97e4,0x97e5,0x97e6,0x97e7, +0x97e8,0x97e9,0x97ea,0x97eb,0x97ec,0x97ed,0x97ee,0x97ef, +0x97f0,0x97f1,0x97f2,0x97f3,0x97f4,0x97f5,0x97f6,0x97f7, +0x97f8,0x97f9,0x97fa,0x97fb,0xbbd8,0x97fc,0x97fd,0x97fe, +0x9841,0x9842,0x9843,0x9844,0x9845,0x9846,0x9847,0x9848, +0x9849,0x984a,0x984b,0x984c,0x984d,0x984e,0x984f,0x9850, +0x9851,0xbbd9,0x9852,0x9853,0x9854,0x9855,0x9856,0x9857, +0xbbda,0x9858,0x9859,0x985a,0xbbdb,0x9861,0x9862,0x9863, +0xbbdc,0x9864,0x9865,0x9866,0x9867,0x9868,0x9869,0x986a, +0xbbdd,0xbbde,0x986b,0x986c,0x986d,0x986e,0x986f,0x9870, +0x9871,0x9872,0x9873,0x9874,0x9875,0x9876,0x9877,0x9878, +0x9879,0x987a,0x9881,0x9882,0x9883,0x9884,0x9885,0x9886, +0x9887,0x9888,0x9889,0x988a,0x988b,0x988c,0x988d,0x988e, +0x988f,0x9890,0x9891,0x9892,0x9893,0x9894,0x9895,0x9896, +0xbbdf,0xbbe0,0x9897,0x9898,0xbbe1,0x9899,0x989a,0x989b, +0xbbe2,0x989c,0x989d,0x989e,0x989f,0x98a0,0x98a1,0x98a2, +0xbbe3,0xbbe4,0x98a3,0xbbe5,0x98a4,0xbbe6,0x98a5,0x98a6, +0x98a7,0x98a8,0x98a9,0x98aa,0xbbe7,0xbbe8,0x98ab,0xbbe9, +0xbbea,0x98ac,0x98ad,0xbbeb,0xbbec,0xbbed,0xbbee,0x98ae, +0x98af,0x98b0,0x98b1,0x98b2,0xbbef,0xbbf0,0x98b3,0xbbf1, +0xbbf2,0xbbf3,0x98b4,0x98b5,0x98b6,0xbbf4,0x98b7,0x98b8, +0xbbf5,0xbbf6,0x98b9,0x98ba,0xbbf7,0x98bb,0x98bc,0x98bd, +0xbbf8,0x98be,0x98bf,0x98c0,0x98c1,0x98c2,0x98c3,0x98c4, +0xbbf9,0xbbfa,0x98c5,0xbbfb,0xbbfc,0xbbfd,0x98c6,0x98c7, +0x98c8,0x98c9,0x98ca,0x98cb,0xbbfe,0xbca1,0x98cc,0x98cd, +0xbca2,0x98ce,0x98cf,0x98d0,0xbca3,0x98d1,0x98d2,0x98d3, +0x98d4,0x98d5,0x98d6,0x98d7,0xbca4,0xbca5,0x98d8,0xbca6, +0x98d9,0xbca7,0x98da,0x98db,0x98dc,0x98dd,0x98de,0x98df, +/* 0xc100 */ +0xbca8,0x98e0,0x98e1,0x98e2,0xbca9,0x98e3,0x98e4,0x98e5, +0xbcaa,0x98e6,0x98e7,0x98e8,0x98e9,0x98ea,0x98eb,0x98ec, +0xbcab,0x98ed,0x98ee,0x98ef,0x98f0,0xbcac,0x98f1,0x98f2, +0x98f3,0x98f4,0x98f5,0x98f6,0xbcad,0xbcae,0xbcaf,0xbcb0, +0xbcb1,0x98f7,0x98f8,0xbcb2,0xbcb3,0x98f9,0xbcb4,0xbcb5, +0x98fa,0x98fb,0x98fc,0x98fd,0xbcb6,0xbcb7,0x98fe,0xbcb8, +0xbcb9,0xbcba,0x9941,0x9942,0x9943,0x9944,0xbcbb,0x9945, +0xbcbc,0xbcbd,0x9946,0x9947,0xbcbe,0x9948,0x9949,0x994a, +0xbcbf,0x994b,0x994c,0x994d,0x994e,0x994f,0x9950,0x9951, +0xbcc0,0xbcc1,0x9952,0xbcc2,0xbcc3,0xbcc4,0x9953,0x9954, +0x9955,0x9956,0x9957,0x9958,0xbcc5,0xbcc6,0x9959,0x995a, +0xbcc7,0x9961,0x9962,0x9963,0xbcc8,0x9964,0x9965,0x9966, +0x9967,0x9968,0x9969,0x996a,0xbcc9,0xbcca,0x996b,0xbccb, +0xbccc,0xbccd,0x996c,0x996d,0x996e,0x996f,0x9970,0x9971, +0xbcce,0x9972,0x9973,0x9974,0xbccf,0x9975,0x9976,0x9977, +0xbcd0,0x9978,0x9979,0x997a,0x9981,0x9982,0x9983,0x9984, +0x9985,0x9986,0x9987,0x9988,0x9989,0xbcd1,0x998a,0x998b, +0x998c,0x998d,0x998e,0x998f,0xbcd2,0xbcd3,0xbcd4,0x9990, +0xbcd5,0x9991,0x9992,0x9993,0xbcd6,0x9994,0xbcd7,0x9995, +0x9996,0x9997,0x9998,0x9999,0xbcd8,0xbcd9,0x999a,0xbcda, +0x999b,0xbcdb,0x999c,0x999d,0x999e,0xbcdc,0x999f,0x99a0, +0xbcdd,0xbcde,0x99a1,0x99a2,0xbcdf,0x99a3,0x99a4,0x99a5, +0xbce0,0x99a6,0x99a7,0x99a8,0x99a9,0x99aa,0x99ab,0x99ac, +0x99ad,0x99ae,0x99af,0x99b0,0x99b1,0xbce1,0x99b2,0x99b3, +0x99b4,0x99b5,0x99b6,0x99b7,0xbce2,0x99b8,0x99b9,0x99ba, +0xbce3,0x99bb,0x99bc,0x99bd,0xbce4,0x99be,0x99bf,0x99c0, +0x99c1,0x99c2,0x99c3,0x99c4,0xbce5,0x99c5,0x99c6,0xbce6, +0xbce7,0x99c7,0x99c8,0x99c9,0x99ca,0x99cb,0x99cc,0x99cd, +0xbce8,0x99ce,0x99cf,0x99d0,0xbce9,0x99d1,0x99d2,0x99d3, +0xbcea,0x99d4,0x99d5,0x99d6,0x99d7,0x99d8,0x99d9,0x99da, +0xbceb,0xbcec,0x99db,0xbced,0x99dc,0x99dd,0x99de,0x99df, +0x99e0,0x99e1,0x99e2,0x99e3,0xbcee,0xbcef,0x99e4,0x99e5, +/* 0xc200 */ +0xbcf0,0x99e6,0x99e7,0x99e8,0xbcf1,0x99e9,0x99ea,0x99eb, +0x99ec,0x99ed,0x99ee,0x99ef,0xbcf2,0xbcf3,0x99f0,0xbcf4, +0x99f1,0xbcf5,0x99f2,0x99f3,0x99f4,0x99f5,0x99f6,0x99f7, +0xbcf6,0xbcf7,0x99f8,0x99f9,0xbcf8,0x99fa,0x99fb,0xbcf9, +0xbcfa,0x99fc,0x99fd,0x99fe,0x9a41,0x9a42,0x9a43,0x9a44, +0xbcfb,0xbcfc,0x9a45,0xbcfd,0x9a46,0xbcfe,0x9a47,0xbda1, +0x9a48,0xbda2,0xbda3,0x9a49,0xbda4,0x9a4a,0x9a4b,0x9a4c, +0x9a4d,0x9a4e,0x9a4f,0x9a50,0x9a51,0x9a52,0x9a53,0x9a54, +0x9a55,0x9a56,0x9a57,0x9a58,0x9a59,0x9a5a,0x9a61,0x9a62, +0xbda5,0x9a63,0x9a64,0x9a65,0x9a66,0x9a67,0x9a68,0x9a69, +0xbda6,0xbda7,0x9a6a,0x9a6b,0xbda8,0x9a6c,0x9a6d,0x9a6e, +0xbda9,0x9a6f,0x9a70,0x9a71,0x9a72,0x9a73,0x9a74,0x9a75, +0xbdaa,0x9a76,0x9a77,0x9a78,0x9a79,0xbdab,0x9a7a,0x9a81, +0x9a82,0x9a83,0x9a84,0x9a85,0xbdac,0xbdad,0x9a86,0x9a87, +0xbdae,0x9a88,0x9a89,0x9a8a,0xbdaf,0x9a8b,0x9a8c,0x9a8d, +0x9a8e,0x9a8f,0x9a90,0x9a91,0xbdb0,0xbdb1,0x9a92,0xbdb2, +0x9a93,0xbdb3,0x9a94,0x9a95,0x9a96,0x9a97,0x9a98,0x9a99, +0xbdb4,0xbdb5,0x9a9a,0x9a9b,0x9a9c,0x9a9d,0x9a9e,0x9a9f, +0xbdb6,0x9aa0,0x9aa1,0x9aa2,0x9aa3,0x9aa4,0x9aa5,0x9aa6, +0xbdb7,0x9aa7,0x9aa8,0xbdb8,0x9aa9,0xbdb9,0x9aaa,0x9aab, +0x9aac,0x9aad,0x9aae,0x9aaf,0xbdba,0xbdbb,0x9ab0,0x9ab1, +0xbdbc,0x9ab2,0x9ab3,0x9ab4,0xbdbd,0xbdbe,0x9ab5,0x9ab6, +0x9ab7,0x9ab8,0x9ab9,0x9aba,0xbdbf,0xbdc0,0x9abb,0xbdc1, +0x9abc,0xbdc2,0x9abd,0x9abe,0x9abf,0x9ac0,0x9ac1,0x9ac2, +0x9ac3,0x9ac4,0x9ac5,0x9ac6,0x9ac7,0x9ac8,0x9ac9,0x9aca, +0x9acb,0x9acc,0x9acd,0x9ace,0x9acf,0x9ad0,0x9ad1,0x9ad2, +0x9ad3,0x9ad4,0x9ad5,0x9ad6,0x9ad7,0x9ad8,0x9ad9,0x9ada, +0x9adb,0x9adc,0x9add,0x9ade,0xbdc3,0xbdc4,0x9adf,0x9ae0, +0xbdc5,0x9ae1,0x9ae2,0xbdc6,0xbdc7,0x9ae3,0x9ae4,0x9ae5, +0x9ae6,0x9ae7,0x9ae8,0xbdc8,0xbdc9,0xbdca,0x9ae9,0xbdcb, +0x9aea,0xbdcc,0x9aeb,0x9aec,0x9aed,0x9aee,0xbdcd,0x9aef, +0xbdce,0xbdcf,0x9af0,0xbdd0,0xbdd1,0x9af1,0x9af2,0x9af3, +/* 0xc300 */ +0xbdd2,0x9af4,0x9af5,0x9af6,0x9af7,0x9af8,0x9af9,0x9afa, +0xbdd3,0xbdd4,0x9afb,0x9afc,0xbdd5,0xbdd6,0x9afd,0x9afe, +0x9b41,0x9b42,0x9b43,0xbdd7,0xbdd8,0xbdd9,0x9b44,0x9b45, +0xbdda,0x9b46,0x9b47,0x9b48,0xbddb,0x9b49,0x9b4a,0x9b4b, +0x9b4c,0x9b4d,0x9b4e,0x9b4f,0xbddc,0xbddd,0x9b50,0x9b51, +0xbdde,0xbddf,0x9b52,0x9b53,0x9b54,0x9b55,0x9b56,0x9b57, +0x9b58,0x9b59,0x9b5a,0x9b61,0x9b62,0x9b63,0x9b64,0x9b65, +0x9b66,0x9b67,0x9b68,0x9b69,0x9b6a,0x9b6b,0x9b6c,0x9b6d, +0x9b6e,0x9b6f,0x9b70,0x9b71,0x9b72,0xbde0,0x9b73,0x9b74, +0x9b75,0x9b76,0x9b77,0x9b78,0x9b79,0x9b7a,0x9b81,0x9b82, +0x9b83,0x9b84,0x9b85,0x9b86,0x9b87,0x9b88,0x9b89,0x9b8a, +0x9b8b,0x9b8c,0x9b8d,0x9b8e,0x9b8f,0x9b90,0x9b91,0x9b92, +0x9b93,0x9b94,0x9b95,0x9b96,0x9b97,0x9b98,0x9b99,0x9b9a, +0xbde1,0xbde2,0x9b9b,0x9b9c,0xbde3,0x9b9d,0x9b9e,0x9b9f, +0xbde4,0x9ba0,0xbde5,0x9ba1,0x9ba2,0x9ba3,0x9ba4,0x9ba5, +0xbde6,0xbde7,0x9ba6,0x9ba7,0xbde8,0xbde9,0x9ba8,0x9ba9, +0x9baa,0x9bab,0x9bac,0x9bad,0xbdea,0x9bae,0x9baf,0x9bb0, +0xbdeb,0x9bb1,0x9bb2,0x9bb3,0xbdec,0x9bb4,0x9bb5,0x9bb6, +0x9bb7,0x9bb8,0x9bb9,0x9bba,0x9bbb,0x9bbc,0x9bbd,0x9bbe, +0x9bbf,0x9bc0,0x9bc1,0x9bc2,0x9bc3,0x9bc4,0x9bc5,0x9bc6, +0x9bc7,0x9bc8,0x9bc9,0x9bca,0x9bcb,0x9bcc,0x9bcd,0x9bce, +0x9bcf,0x9bd0,0x9bd1,0x9bd2,0x9bd3,0x9bd4,0x9bd5,0x9bd6, +0x9bd7,0x9bd8,0x9bd9,0x9bda,0x9bdb,0x9bdc,0x9bdd,0x9bde, +0x9bdf,0x9be0,0x9be1,0x9be2,0x9be3,0x9be4,0x9be5,0x9be6, +0xbded,0x9be7,0x9be8,0x9be9,0x9bea,0x9beb,0x9bec,0x9bed, +0x9bee,0x9bef,0x9bf0,0x9bf1,0x9bf2,0x9bf3,0x9bf4,0x9bf5, +0x9bf6,0x9bf7,0x9bf8,0x9bf9,0x9bfa,0x9bfb,0x9bfc,0x9bfd, +0xbdee,0xbdef,0x9bfe,0x9c41,0xbdf0,0x9c42,0x9c43,0xbdf1, +0xbdf2,0x9c44,0xbdf3,0x9c45,0x9c46,0x9c47,0x9c48,0x9c49, +0xbdf4,0xbdf5,0x9c4a,0x9c4b,0x9c4c,0xbdf6,0x9c4d,0x9c4e, +0x9c4f,0x9c50,0x9c51,0x9c52,0xbdf7,0xbdf8,0x9c53,0x9c54, +0xbdf9,0x9c55,0x9c56,0x9c57,0x9c58,0x9c59,0x9c5a,0x9c61, +/* 0xc400 */ +0x9c62,0x9c63,0x9c64,0x9c65,0x9c66,0x9c67,0x9c68,0x9c69, +0xbdfa,0x9c6a,0x9c6b,0x9c6c,0x9c6d,0x9c6e,0x9c6f,0x9c70, +0xbdfb,0x9c71,0x9c72,0x9c73,0x9c74,0x9c75,0x9c76,0x9c77, +0x9c78,0x9c79,0x9c7a,0x9c81,0x9c82,0x9c83,0x9c84,0x9c85, +0x9c86,0x9c87,0x9c88,0x9c89,0xbdfc,0x9c8a,0x9c8b,0x9c8c, +0x9c8d,0x9c8e,0x9c8f,0x9c90,0xbdfd,0x9c91,0x9c92,0x9c93, +0xbdfe,0x9c94,0x9c95,0x9c96,0xbea1,0x9c97,0x9c98,0x9c99, +0x9c9a,0x9c9b,0x9c9c,0x9c9d,0xbea2,0xbea3,0x9c9e,0x9c9f, +0x9ca0,0x9ca1,0x9ca2,0x9ca3,0x9ca4,0x9ca5,0x9ca6,0x9ca7, +0xbea4,0x9ca8,0x9ca9,0x9caa,0x9cab,0x9cac,0x9cad,0x9cae, +0x9caf,0x9cb0,0x9cb1,0x9cb2,0x9cb3,0x9cb4,0x9cb5,0x9cb6, +0x9cb7,0x9cb8,0x9cb9,0x9cba,0x9cbb,0x9cbc,0x9cbd,0x9cbe, +0x9cbf,0x9cc0,0x9cc1,0x9cc2,0xbea5,0xbea6,0x9cc3,0x9cc4, +0xbea7,0x9cc5,0x9cc6,0x9cc7,0xbea8,0x9cc8,0x9cc9,0x9cca, +0x9ccb,0x9ccc,0x9ccd,0x9cce,0xbea9,0xbeaa,0x9ccf,0x9cd0, +0x9cd1,0xbeab,0x9cd2,0x9cd3,0x9cd4,0x9cd5,0x9cd6,0x9cd7, +0xbeac,0x9cd8,0x9cd9,0x9cda,0x9cdb,0x9cdc,0x9cdd,0x9cde, +0x9cdf,0x9ce0,0x9ce1,0x9ce2,0x9ce3,0x9ce4,0x9ce5,0x9ce6, +0x9ce7,0x9ce8,0x9ce9,0x9cea,0xbead,0x9ceb,0x9cec,0x9ced, +0x9cee,0x9cef,0x9cf0,0x9cf1,0xbeae,0x9cf2,0x9cf3,0x9cf4, +0x9cf5,0x9cf6,0x9cf7,0x9cf8,0x9cf9,0x9cfa,0x9cfb,0x9cfc, +0x9cfd,0x9cfe,0x9d41,0x9d42,0x9d43,0x9d44,0x9d45,0x9d46, +0x9d47,0x9d48,0x9d49,0x9d4a,0x9d4b,0x9d4c,0x9d4d,0x9d4e, +0xbeaf,0x9d4f,0x9d50,0x9d51,0xbeb0,0x9d52,0x9d53,0x9d54, +0x9d55,0x9d56,0x9d57,0x9d58,0x9d59,0x9d5a,0x9d61,0x9d62, +0x9d63,0x9d64,0x9d65,0x9d66,0x9d67,0x9d68,0x9d69,0x9d6a, +0x9d6b,0x9d6c,0x9d6d,0x9d6e,0x9d6f,0x9d70,0x9d71,0x9d72, +0x9d73,0x9d74,0x9d75,0x9d76,0x9d77,0x9d78,0x9d79,0x9d7a, +0x9d81,0x9d82,0x9d83,0x9d84,0x9d85,0x9d86,0x9d87,0x9d88, +0x9d89,0xbeb1,0x9d8a,0x9d8b,0x9d8c,0x9d8d,0x9d8e,0x9d8f, +0xbeb2,0xbeb3,0x9d90,0x9d91,0xbeb4,0x9d92,0x9d93,0x9d94, +0xbeb5,0x9d95,0xbeb6,0x9d96,0x9d97,0x9d98,0x9d99,0xbeb7, +/* 0xc500 */ +0xbeb8,0xbeb9,0x9d9a,0x9d9b,0x9d9c,0x9d9d,0x9d9e,0x9d9f, +0x9da0,0x9da1,0x9da2,0x9da3,0xbeba,0x9da4,0x9da5,0x9da6, +0xbebb,0x9da7,0x9da8,0x9da9,0xbebc,0x9daa,0x9dab,0x9dac, +0x9dad,0x9dae,0x9daf,0x9db0,0xbebd,0x9db1,0x9db2,0x9db3, +0x9db4,0x9db5,0x9db6,0x9db7,0x9db8,0x9db9,0x9dba,0x9dbb, +0xbebe,0xbebf,0x9dbc,0x9dbd,0xbec0,0x9dbe,0x9dbf,0x9dc0, +0xbec1,0x9dc1,0x9dc2,0x9dc3,0x9dc4,0x9dc5,0x9dc6,0x9dc7, +0xbec2,0xbec3,0x9dc8,0xbec4,0x9dc9,0xbec5,0x9dca,0x9dcb, +0x9dcc,0x9dcd,0x9dce,0x9dcf,0xbec6,0xbec7,0x9dd0,0x9dd1, +0xbec8,0xbec9,0xbeca,0x9dd2,0xbecb,0xbecc,0xbecd,0x9dd3, +0x9dd4,0x9dd5,0x9dd6,0xbece,0xbecf,0xbed0,0x9dd7,0xbed1, +0xbed2,0xbed3,0x9dd8,0x9dd9,0x9dda,0xbed4,0xbed5,0x9ddb, +0xbed6,0xbed7,0x9ddc,0x9ddd,0xbed8,0x9dde,0x9ddf,0x9de0, +0xbed9,0x9de1,0x9de2,0x9de3,0x9de4,0x9de5,0x9de6,0x9de7, +0xbeda,0xbedb,0x9de8,0xbedc,0xbedd,0xbede,0x9de9,0x9dea, +0x9deb,0x9dec,0x9ded,0x9dee,0xbedf,0xbee0,0x9def,0x9df0, +0xbee1,0x9df1,0x9df2,0x9df3,0xbee2,0x9df4,0x9df5,0xbee3, +0x9df6,0x9df7,0x9df8,0x9df9,0xbee4,0xbee5,0x9dfa,0xbee6, +0x9dfb,0xbee7,0x9dfc,0x9dfd,0x9dfe,0xbee8,0x9e41,0xbee9, +0xbeea,0x9e42,0x9e43,0x9e44,0xbeeb,0x9e45,0x9e46,0x9e47, +0xbeec,0x9e48,0x9e49,0x9e4a,0x9e4b,0x9e4c,0x9e4d,0x9e4e, +0x9e4f,0xbeed,0x9e50,0x9e51,0x9e52,0x9e53,0x9e54,0x9e55, +0x9e56,0x9e57,0x9e58,0x9e59,0xbeee,0xbeef,0x9e5a,0x9e61, +0xbef0,0xbef1,0x9e62,0xbef2,0xbef3,0xbef4,0xbef5,0x9e63, +0x9e64,0x9e65,0x9e66,0x9e67,0xbef6,0xbef7,0xbef8,0xbef9, +0xbefa,0xbefb,0xbefc,0x9e68,0xbefd,0x9e69,0xbefe,0x9e6a, +0xbfa1,0xbfa2,0x9e6b,0x9e6c,0xbfa3,0x9e6d,0x9e6e,0x9e6f, +0xbfa4,0x9e70,0x9e71,0x9e72,0x9e73,0x9e74,0x9e75,0x9e76, +0xbfa5,0xbfa6,0x9e77,0xbfa7,0x9e78,0xbfa8,0x9e79,0x9e7a, +0x9e81,0x9e82,0x9e83,0x9e84,0xbfa9,0xbfaa,0xbfab,0x9e85, +0xbfac,0x9e86,0x9e87,0x9e88,0xbfad,0x9e89,0xbfae,0xbfaf, +0x9e8a,0x9e8b,0x9e8c,0x9e8d,0xbfb0,0xbfb1,0xbfb2,0xbfb3, +/* 0xc600 */ +0xbfb4,0xbfb5,0x9e8e,0x9e8f,0x9e90,0xbfb6,0xbfb7,0xbfb8, +0xbfb9,0x9e91,0x9e92,0x9e93,0xbfba,0x9e94,0x9e95,0x9e96, +0xbfbb,0x9e97,0x9e98,0x9e99,0x9e9a,0x9e9b,0x9e9c,0x9e9d, +0xbfbc,0xbfbd,0x9e9e,0xbfbe,0xbfbf,0x9e9f,0x9ea0,0x9ea1, +0x9ea2,0x9ea3,0x9ea4,0x9ea5,0xbfc0,0xbfc1,0x9ea6,0x9ea7, +0xbfc2,0x9ea8,0x9ea9,0x9eaa,0xbfc3,0xbfc4,0xbfc5,0x9eab, +0xbfc6,0x9eac,0x9ead,0xbfc7,0xbfc8,0xbfc9,0x9eae,0xbfca, +0x9eaf,0xbfcb,0x9eb0,0xbfcc,0x9eb1,0x9eb2,0x9eb3,0x9eb4, +0xbfcd,0xbfce,0x9eb5,0x9eb6,0xbfcf,0x9eb7,0x9eb8,0x9eb9, +0xbfd0,0x9eba,0x9ebb,0x9ebc,0x9ebd,0x9ebe,0x9ebf,0x9ec0, +0xbfd1,0xbfd2,0x9ec1,0xbfd3,0xbfd4,0xbfd5,0x9ec2,0x9ec3, +0x9ec4,0x9ec5,0x9ec6,0x9ec7,0xbfd6,0xbfd7,0x9ec8,0x9ec9, +0xbfd8,0x9eca,0x9ecb,0x9ecc,0x9ecd,0x9ece,0x9ecf,0x9ed0, +0x9ed1,0x9ed2,0x9ed3,0x9ed4,0xbfd9,0x9ed5,0x9ed6,0xbfda, +0x9ed7,0xbfdb,0x9ed8,0x9ed9,0x9eda,0x9edb,0x9edc,0x9edd, +0xbfdc,0xbfdd,0x9ede,0x9edf,0xbfde,0x9ee0,0x9ee1,0x9ee2, +0xbfdf,0x9ee3,0x9ee4,0x9ee5,0x9ee6,0x9ee7,0x9ee8,0x9ee9, +0xbfe0,0xbfe1,0x9eea,0xbfe2,0x9eeb,0xbfe3,0x9eec,0x9eed, +0x9eee,0x9eef,0x9ef0,0x9ef1,0xbfe4,0xbfe5,0x9ef2,0x9ef3, +0xbfe6,0x9ef4,0x9ef5,0x9ef6,0xbfe7,0x9ef7,0x9ef8,0x9ef9, +0x9efa,0x9efb,0x9efc,0x9efd,0xbfe8,0xbfe9,0x9efe,0xbfea, +0x9f41,0xbfeb,0x9f42,0x9f43,0x9f44,0x9f45,0x9f46,0x9f47, +0xbfec,0xbfed,0x9f48,0x9f49,0xbfee,0x9f4a,0x9f4b,0x9f4c, +0xbfef,0xbff0,0xbff1,0x9f4d,0x9f4e,0x9f4f,0x9f50,0x9f51, +0xbff2,0xbff3,0x9f52,0xbff4,0x9f53,0xbff5,0x9f54,0x9f55, +0x9f56,0x9f57,0x9f58,0x9f59,0xbff6,0xbff7,0x9f5a,0x9f61, +0xbff8,0x9f62,0x9f63,0x9f64,0xbff9,0x9f65,0x9f66,0x9f67, +0x9f68,0x9f69,0x9f6a,0x9f6b,0xbffa,0xbffb,0x9f6c,0x9f6d, +0xbffc,0xbffd,0x9f6e,0x9f6f,0x9f70,0x9f71,0x9f72,0x9f73, +0xbffe,0xc0a1,0x9f74,0x9f75,0xc0a2,0x9f76,0x9f77,0x9f78, +0xc0a3,0x9f79,0x9f7a,0x9f81,0x9f82,0x9f83,0x9f84,0x9f85, +0xc0a4,0xc0a5,0x9f86,0x9f87,0x9f88,0xc0a6,0x9f89,0x9f8a, +/* 0xc700 */ +0x9f8b,0x9f8c,0x9f8d,0x9f8e,0xc0a7,0xc0a8,0x9f8f,0x9f90, +0xc0a9,0x9f91,0x9f92,0x9f93,0xc0aa,0x9f94,0x9f95,0x9f96, +0x9f97,0x9f98,0x9f99,0x9f9a,0xc0ab,0xc0ac,0x9f9b,0xc0ad, +0x9f9c,0xc0ae,0x9f9d,0x9f9e,0x9f9f,0x9fa0,0x9fa1,0x9fa2, +0xc0af,0xc0b0,0x9fa3,0x9fa4,0xc0b1,0x9fa5,0x9fa6,0x9fa7, +0xc0b2,0x9fa8,0x9fa9,0x9faa,0x9fab,0x9fac,0x9fad,0x9fae, +0xc0b3,0xc0b4,0x9faf,0xc0b5,0x9fb0,0xc0b6,0x9fb1,0xc0b7, +0x9fb2,0x9fb3,0x9fb4,0x9fb5,0xc0b8,0xc0b9,0x9fb6,0x9fb7, +0xc0ba,0x9fb8,0x9fb9,0x9fba,0xc0bb,0x9fbb,0x9fbc,0x9fbd, +0x9fbe,0x9fbf,0xc0bc,0x9fc0,0xc0bd,0xc0be,0x9fc1,0xc0bf, +0x9fc2,0xc0c0,0xc0c1,0xc0c2,0xc0c3,0xc0c4,0xc0c5,0xc0c6, +0xc0c7,0x9fc3,0x9fc4,0x9fc5,0xc0c8,0x9fc6,0x9fc7,0x9fc8, +0xc0c9,0x9fc9,0x9fca,0x9fcb,0x9fcc,0x9fcd,0x9fce,0x9fcf, +0xc0ca,0x9fd0,0x9fd1,0xc0cb,0x9fd2,0x9fd3,0x9fd4,0x9fd5, +0x9fd6,0x9fd7,0x9fd8,0x9fd9,0xc0cc,0xc0cd,0x9fda,0x9fdb, +0xc0ce,0x9fdc,0x9fdd,0x9fde,0xc0cf,0xc0d0,0xc0d1,0x9fdf, +0x9fe0,0x9fe1,0x9fe2,0xc0d2,0xc0d3,0xc0d4,0x9fe3,0xc0d5, +0xc0d6,0xc0d7,0xc0d8,0x9fe4,0x9fe5,0x9fe6,0xc0d9,0x9fe7, +0xc0da,0xc0db,0x9fe8,0x9fe9,0xc0dc,0x9fea,0xc0dd,0xc0de, +0xc0df,0x9feb,0xc0e0,0x9fec,0x9fed,0x9fee,0x9fef,0x9ff0, +0xc0e1,0xc0e2,0x9ff1,0xc0e3,0xc0e4,0xc0e5,0xc0e6,0x9ff2, +0x9ff3,0x9ff4,0x9ff5,0x9ff6,0xc0e7,0xc0e8,0x9ff7,0x9ff8, +0xc0e9,0x9ff9,0x9ffa,0x9ffb,0xc0ea,0x9ffc,0x9ffd,0x9ffe, +0xa041,0xa042,0xa043,0xa044,0xc0eb,0xc0ec,0xa045,0xc0ed, +0xc0ee,0xc0ef,0xa046,0xa047,0xa048,0xa049,0xa04a,0xa04b, +0xc0f0,0xc0f1,0xa04c,0xa04d,0xc0f2,0xa04e,0xc0f3,0xa04f, +0xc0f4,0xa050,0xa051,0xa052,0xa053,0xa054,0xa055,0xa056, +0xc0f5,0xa057,0xa058,0xa059,0xa05a,0xc0f6,0xa061,0xa062, +0xa063,0xa064,0xa065,0xa066,0xc0f7,0xa067,0xa068,0xa069, +0xc0f8,0xa06a,0xa06b,0xa06c,0xc0f9,0xa06d,0xa06e,0xa06f, +0xa070,0xa071,0xa072,0xa073,0xa074,0xa075,0xa076,0xa077, +0xa078,0xa079,0xa07a,0xa081,0xa082,0xa083,0xa084,0xa085, +/* 0xc800 */ +0xc0fa,0xc0fb,0xa086,0xa087,0xc0fc,0xa088,0xa089,0xa08a, +0xc0fd,0xa08b,0xc0fe,0xa08c,0xa08d,0xa08e,0xa08f,0xa090, +0xc1a1,0xc1a2,0xa091,0xc1a3,0xa092,0xc1a4,0xc1a5,0xa093, +0xa094,0xa095,0xa096,0xa097,0xc1a6,0xc1a7,0xa098,0xa099, +0xc1a8,0xa09a,0xa09b,0xa09c,0xc1a9,0xa09d,0xa09e,0xa09f, +0xa0a0,0xa0a1,0xa0a2,0xa0a3,0xc1aa,0xc1ab,0xa0a4,0xc1ac, +0xa0a5,0xc1ad,0xa0a6,0xa0a7,0xa0a8,0xa0a9,0xa0aa,0xa0ab, +0xc1ae,0xa0ac,0xa0ad,0xa0ae,0xc1af,0xa0af,0xa0b0,0xa0b1, +0xc1b0,0xa0b2,0xa0b3,0xa0b4,0xa0b5,0xa0b6,0xa0b7,0xa0b8, +0xc1b1,0xc1b2,0xa0b9,0xa0ba,0xc1b3,0xc1b4,0xa0bb,0xa0bc, +0xa0bd,0xa0be,0xa0bf,0xa0c0,0xc1b5,0xa0c1,0xa0c2,0xa0c3, +0xa0c4,0xa0c5,0xa0c6,0xa0c7,0xa0c8,0xa0c9,0xa0ca,0xa0cb, +0xa0cc,0xa0cd,0xa0ce,0xa0cf,0xa0d0,0xa0d1,0xa0d2,0xa0d3, +0xa0d4,0xa0d5,0xa0d6,0xa0d7,0xa0d8,0xa0d9,0xa0da,0xa0db, +0xc1b6,0xc1b7,0xa0dc,0xa0dd,0xc1b8,0xa0de,0xa0df,0xa0e0, +0xc1b9,0xa0e1,0xc1ba,0xa0e2,0xa0e3,0xa0e4,0xa0e5,0xa0e6, +0xc1bb,0xc1bc,0xa0e7,0xc1bd,0xa0e8,0xc1be,0xc1bf,0xc1c0, +0xa0e9,0xa0ea,0xa0eb,0xc1c1,0xc1c2,0xc1c3,0xa0ec,0xa0ed, +0xa0ee,0xa0ef,0xa0f0,0xa0f1,0xc1c4,0xa0f2,0xa0f3,0xa0f4, +0xa0f5,0xa0f6,0xa0f7,0xa0f8,0xa0f9,0xc1c5,0xa0fa,0xc1c6, +0xa0fb,0xc1c7,0xa0fc,0xa0fd,0xa0fe,0xa141,0xa142,0xa143, +0xc1c8,0xa144,0xa145,0xa146,0xa147,0xa148,0xa149,0xa14a, +0xa14b,0xa14c,0xa14d,0xa14e,0xa14f,0xa150,0xa151,0xa152, +0xa153,0xa154,0xa155,0xa156,0xc1c9,0xc1ca,0xa157,0xa158, +0xa159,0xa15a,0xa161,0xa162,0xc1cb,0xa163,0xa164,0xa165, +0xc1cc,0xa166,0xa167,0xa168,0xc1cd,0xa169,0xa16a,0xa16b, +0xa16c,0xa16d,0xa16e,0xa16f,0xc1ce,0xc1cf,0xa170,0xc1d0, +0xa171,0xc1d1,0xa172,0xa173,0xa174,0xa175,0xa176,0xa177, +0xc1d2,0xc1d3,0xa178,0xa179,0xc1d4,0xa17a,0xa181,0xa182, +0xa183,0xa184,0xa185,0xa186,0xa187,0xa188,0xa189,0xa18a, +0xa18b,0xa18c,0xa18d,0xa18e,0xa18f,0xc1d5,0xa190,0xa191, +0xa192,0xa193,0xa194,0xa195,0xc1d6,0xc1d7,0xa196,0xa197, +/* 0xc900 */ +0xc1d8,0xa198,0xa199,0xa19a,0xc1d9,0xc1da,0xc1db,0xa19b, +0xa19c,0xa19d,0xa19e,0xa19f,0xc1dc,0xc1dd,0xa1a0,0xc1de, +0xa241,0xc1df,0xa242,0xa243,0xa244,0xa245,0xa246,0xa247, +0xc1e0,0xa248,0xa249,0xa24a,0xa24b,0xa24c,0xa24d,0xa24e, +0xa24f,0xa250,0xa251,0xa252,0xa253,0xa254,0xa255,0xa256, +0xa257,0xa258,0xa259,0xa25a,0xc1e1,0xa261,0xa262,0xa263, +0xa264,0xa265,0xa266,0xa267,0xc1e2,0xa268,0xa269,0xa26a, +0xa26b,0xa26c,0xa26d,0xa26e,0xa26f,0xa270,0xa271,0xa272, +0xa273,0xa274,0xa275,0xa276,0xa277,0xa278,0xa279,0xa27a, +0xa281,0xa282,0xa283,0xa284,0xa285,0xa286,0xa287,0xa288, +0xc1e3,0xc1e4,0xa289,0xa28a,0xc1e5,0xa28b,0xa28c,0xa28d, +0xc1e6,0xa28e,0xa28f,0xa290,0xa291,0xa292,0xa293,0xa294, +0xc1e7,0xc1e8,0xa295,0xc1e9,0xa296,0xa297,0xa298,0xa299, +0xa29a,0xa29b,0xa29c,0xa29d,0xc1ea,0xa29e,0xa29f,0xa2a0, +0xc1eb,0xa341,0xa342,0xa343,0xc1ec,0xa344,0xa345,0xa346, +0xa347,0xa348,0xa349,0xa34a,0xc1ed,0xa34b,0xa34c,0xa34d, +0xa34e,0xa34f,0xa350,0xa351,0xa352,0xa353,0xa354,0xa355, +0xc1ee,0xc1ef,0xa356,0xa357,0xc1f0,0xa358,0xa359,0xa35a, +0xc1f1,0xa361,0xa362,0xa363,0xa364,0xa365,0xa366,0xa367, +0xc1f2,0xc1f3,0xa368,0xc1f4,0xa369,0xc1f5,0xa36a,0xa36b, +0xa36c,0xa36d,0xa36e,0xa36f,0xa370,0xa371,0xa372,0xa373, +0xa374,0xa375,0xa376,0xa377,0xa378,0xa379,0xa37a,0xa381, +0xa382,0xa383,0xa384,0xa385,0xa386,0xa387,0xa388,0xa389, +0xa38a,0xa38b,0xa38c,0xa38d,0xa38e,0xa38f,0xa390,0xa391, +0xc1f6,0xc1f7,0xa392,0xa393,0xc1f8,0xa394,0xa395,0xc1f9, +0xc1fa,0xa396,0xc1fb,0xa397,0xa398,0xa399,0xa39a,0xa39b, +0xc1fc,0xc1fd,0xa39c,0xc1fe,0xa39d,0xc2a1,0xc2a2,0xa39e, +0xa39f,0xc2a3,0xc2a4,0xa3a0,0xc2a5,0xc2a6,0xa441,0xa442, +0xc2a7,0xa443,0xc2a8,0xa444,0xc2a9,0xa445,0xa446,0xc2aa, +0xa447,0xa448,0xa449,0xa44a,0xc2ab,0xc2ac,0xa44b,0xc2ad, +0xc2ae,0xc2af,0xa44c,0xa44d,0xa44e,0xa44f,0xa450,0xa451, +0xc2b0,0xc2b1,0xa452,0xa453,0xc2b2,0xa454,0xa455,0xa456, +/* 0xca00 */ +0xc2b3,0xa457,0xa458,0xa459,0xa45a,0xa461,0xa462,0xa463, +0xc2b4,0xc2b5,0xa464,0xc2b6,0xc2b7,0xc2b8,0xa465,0xa466, +0xa467,0xa468,0xa469,0xa46a,0xc2b9,0xa46b,0xa46c,0xa46d, +0xc2ba,0xa46e,0xa46f,0xa470,0xa471,0xa472,0xa473,0xa474, +0xa475,0xa476,0xa477,0xa478,0xa479,0xa47a,0xa481,0xa482, +0xa483,0xc2bb,0xa484,0xa485,0xa486,0xa487,0xa488,0xa489, +0xa48a,0xa48b,0xa48c,0xa48d,0xa48e,0xa48f,0xa490,0xa491, +0xa492,0xa493,0xa494,0xa495,0xa496,0xa497,0xa498,0xa499, +0xa49a,0xa49b,0xa49c,0xa49d,0xa49e,0xa49f,0xa4a0,0xa541, +0xa542,0xa543,0xa544,0xa545,0xc2bc,0xc2bd,0xa546,0xa547, +0xc2be,0xa548,0xa549,0xa54a,0xc2bf,0xa54b,0xa54c,0xa54d, +0xa54e,0xa54f,0xa550,0xa551,0xc2c0,0xc2c1,0xa552,0xc2c2, +0xc2c3,0xc2c4,0xa553,0xa554,0xa555,0xa556,0xa557,0xa558, +0xc2c5,0xa559,0xa55a,0xa561,0xa562,0xa563,0xa564,0xa565, +0xa566,0xa567,0xa568,0xa569,0xa56a,0xa56b,0xa56c,0xa56d, +0xa56e,0xa56f,0xa570,0xa571,0xa572,0xc2c6,0xa573,0xa574, +0xa575,0xa576,0xa577,0xa578,0xc2c7,0xa579,0xa57a,0xa581, +0xa582,0xa583,0xa584,0xa585,0xa586,0xa587,0xa588,0xa589, +0xa58a,0xa58b,0xa58c,0xa58d,0xa58e,0xa58f,0xa590,0xa591, +0xc2c8,0xa592,0xa593,0xa594,0xa595,0xa596,0xa597,0xa598, +0xa599,0xa59a,0xa59b,0xa59c,0xa59d,0xa59e,0xa59f,0xa5a0, +0xa641,0xa642,0xa643,0xa644,0xa645,0xa646,0xa647,0xa648, +0xa649,0xa64a,0xa64b,0xa64c,0xa64d,0xa64e,0xa64f,0xa650, +0xa651,0xa652,0xa653,0xa654,0xc2c9,0xc2ca,0xa655,0xa656, +0xc2cb,0xa657,0xa658,0xa659,0xc2cc,0xa65a,0xa661,0xa662, +0xa663,0xa664,0xa665,0xa666,0xc2cd,0xc2ce,0xa667,0xc2cf, +0xa668,0xc2d0,0xa669,0xc2d1,0xa66a,0xa66b,0xa66c,0xa66d, +0xc2d2,0xc2d3,0xa66e,0xa66f,0xa670,0xa671,0xa672,0xa673, +0xc2d4,0xa674,0xa675,0xa676,0xa677,0xa678,0xa679,0xa67a, +0xa681,0xa682,0xa683,0xa684,0xc2d5,0xa685,0xa686,0xa687, +0xa688,0xa689,0xa68a,0xa68b,0xc2d6,0xa68c,0xa68d,0xa68e, +0xa68f,0xa690,0xa691,0xa692,0xa693,0xa694,0xa695,0xa696, +/* 0xcb00 */ +0xa697,0xa698,0xa699,0xa69a,0xa69b,0xa69c,0xa69d,0xa69e, +0xc2d7,0xa69f,0xa6a0,0xa741,0xa742,0xa743,0xa744,0xa745, +0xc2d8,0xa746,0xa747,0xa748,0xc2d9,0xa749,0xa74a,0xa74b, +0xc2da,0xa74c,0xa74d,0xa74e,0xa74f,0xa750,0xa751,0xa752, +0xc2db,0xc2dc,0xa753,0xa754,0xa755,0xa756,0xa757,0xa758, +0xa759,0xa75a,0xa761,0xa762,0xa763,0xa764,0xa765,0xa766, +0xa767,0xa768,0xa769,0xa76a,0xa76b,0xa76c,0xa76d,0xa76e, +0xa76f,0xa770,0xa771,0xa772,0xa773,0xa774,0xa775,0xa776, +0xa777,0xc2dd,0xa778,0xa779,0xa77a,0xa781,0xa782,0xa783, +0xc2de,0xc2df,0xa784,0xa785,0xc2e0,0xa786,0xa787,0xa788, +0xc2e1,0xa789,0xa78a,0xa78b,0xa78c,0xa78d,0xa78e,0xa78f, +0xc2e2,0xc2e3,0xa790,0xa791,0xa792,0xc2e4,0xa793,0xa794, +0xa795,0xa796,0xa797,0xa798,0xc2e5,0xa799,0xa79a,0xa79b, +0xa79c,0xa79d,0xa79e,0xa79f,0xa7a0,0xa841,0xa842,0xa843, +0xa844,0xa845,0xa846,0xa847,0xa848,0xa849,0xa84a,0xa84b, +0xc2e6,0xc2e7,0xa84c,0xa84d,0xa84e,0xa84f,0xa850,0xa851, +0xa852,0xa853,0xa854,0xa855,0xa856,0xa857,0xa858,0xa859, +0xa85a,0xa861,0xa862,0xa863,0xa864,0xa865,0xa866,0xa867, +0xa868,0xa869,0xa86a,0xa86b,0xa86c,0xa86d,0xa86e,0xa86f, +0xa870,0xa871,0xa872,0xa873,0xc2e8,0xa874,0xa875,0xa876, +0xa877,0xa878,0xa879,0xa87a,0xa881,0xa882,0xa883,0xa884, +0xa885,0xa886,0xa887,0xa888,0xa889,0xa88a,0xa88b,0xa88c, +0xa88d,0xa88e,0xa88f,0xa890,0xa891,0xa892,0xa893,0xa894, +0xc2e9,0xa895,0xa896,0xa897,0xa898,0xa899,0xa89a,0xa89b, +0xa89c,0xa89d,0xa89e,0xa89f,0xa8a0,0xa941,0xa942,0xa943, +0xa944,0xa945,0xa946,0xa947,0xa948,0xa949,0xa94a,0xa94b, +0xa94c,0xa94d,0xa94e,0xa94f,0xc2ea,0xa950,0xa951,0xa952, +0xa953,0xa954,0xa955,0xa956,0xa957,0xa958,0xa959,0xa95a, +0xa961,0xa962,0xa963,0xa964,0xc2eb,0xa965,0xa966,0xc2ec, +0xa967,0xc2ed,0xa968,0xa969,0xa96a,0xa96b,0xa96c,0xa96d, +0xa96e,0xa96f,0xa970,0xa971,0xa972,0xa973,0xa974,0xa975, +0xa976,0xa977,0xa978,0xa979,0xa97a,0xa981,0xa982,0xa983, +/* 0xcc00 */ +0xa984,0xa985,0xa986,0xa987,0xa988,0xa989,0xa98a,0xa98b, +0xa98c,0xa98d,0xa98e,0xa98f,0xc2ee,0xc2ef,0xa990,0xa991, +0xc2f0,0xa992,0xa993,0xa994,0xc2f1,0xa995,0xa996,0xa997, +0xa998,0xa999,0xa99a,0xa99b,0xc2f2,0xc2f3,0xa99c,0xa99d, +0xa99e,0xc2f4,0xc2f5,0xa99f,0xa9a0,0xaa41,0xaa42,0xc2f6, +0xc2f7,0xc2f8,0xaa43,0xaa44,0xc2f9,0xaa45,0xc2fa,0xaa46, +0xc2fb,0xaa47,0xaa48,0xaa49,0xaa4a,0xaa4b,0xaa4c,0xaa4d, +0xc2fc,0xc2fd,0xaa4e,0xc2fe,0xc3a1,0xc3a2,0xc3a3,0xaa4f, +0xaa50,0xaa51,0xaa52,0xaa53,0xc3a4,0xc3a5,0xaa54,0xaa55, +0xc3a6,0xaa56,0xaa57,0xaa58,0xc3a7,0xaa59,0xaa5a,0xaa61, +0xaa62,0xaa63,0xaa64,0xaa65,0xc3a8,0xc3a9,0xaa66,0xc3aa, +0xc3ab,0xc3ac,0xaa67,0xaa68,0xaa69,0xaa6a,0xaa6b,0xaa6c, +0xc3ad,0xaa6d,0xaa6e,0xaa6f,0xc3ae,0xaa70,0xc3af,0xaa71, +0xc3b0,0xaa72,0xaa73,0xaa74,0xaa75,0xaa76,0xaa77,0xaa78, +0xc3b1,0xaa79,0xaa7a,0xaa81,0xaa82,0xc3b2,0xaa83,0xaa84, +0xaa85,0xaa86,0xaa87,0xaa88,0xaa89,0xaa8a,0xaa8b,0xaa8c, +0xaa8d,0xaa8e,0xaa8f,0xaa90,0xaa91,0xaa92,0xaa93,0xaa94, +0xaa95,0xaa96,0xaa97,0xaa98,0xaa99,0xaa9a,0xaa9b,0xaa9c, +0xaa9d,0xaa9e,0xaa9f,0xaaa0,0xab41,0xab42,0xab43,0xab44, +0xc3b3,0xc3b4,0xab45,0xab46,0xc3b5,0xab47,0xab48,0xab49, +0xc3b6,0xab4a,0xab4b,0xab4c,0xab4d,0xab4e,0xab4f,0xab50, +0xc3b7,0xc3b8,0xab51,0xc3b9,0xc3ba,0xc3bb,0xab52,0xab53, +0xab54,0xab55,0xab56,0xab57,0xc3bc,0xc3bd,0xab58,0xab59, +0xc3be,0xab5a,0xab61,0xab62,0xc3bf,0xab63,0xab64,0xab65, +0xab66,0xab67,0xab68,0xab69,0xc3c0,0xc3c1,0xab6a,0xc3c2, +0xab6b,0xc3c3,0xab6c,0xab6d,0xab6e,0xab6f,0xab70,0xab71, +0xc3c4,0xab72,0xab73,0xab74,0xc3c5,0xab75,0xab76,0xab77, +0xab78,0xab79,0xab7a,0xab81,0xab82,0xab83,0xab84,0xab85, +0xab86,0xab87,0xab88,0xab89,0xc3c6,0xab8a,0xab8b,0xab8c, +0xab8d,0xab8e,0xab8f,0xab90,0xc3c7,0xab91,0xab92,0xab93, +0xc3c8,0xab94,0xab95,0xab96,0xab97,0xab98,0xab99,0xab9a, +0xab9b,0xab9c,0xab9d,0xab9e,0xab9f,0xaba0,0xac41,0xac42, +/* 0xcd00 */ +0xac43,0xc3c9,0xac44,0xac45,0xac46,0xac47,0xac48,0xac49, +0xc3ca,0xc3cb,0xac4a,0xac4b,0xc3cc,0xac4c,0xac4d,0xac4e, +0xc3cd,0xac4f,0xac50,0xac51,0xac52,0xac53,0xac54,0xac55, +0xc3ce,0xc3cf,0xac56,0xc3d0,0xac57,0xc3d1,0xac58,0xac59, +0xac5a,0xac61,0xac62,0xac63,0xc3d2,0xac64,0xac65,0xac66, +0xc3d3,0xac67,0xac68,0xac69,0xc3d4,0xac6a,0xac6b,0xac6c, +0xac6d,0xac6e,0xac6f,0xac70,0xac71,0xac72,0xac73,0xac74, +0xac75,0xc3d5,0xac76,0xac77,0xac78,0xac79,0xac7a,0xac81, +0xac82,0xac83,0xac84,0xac85,0xac86,0xac87,0xac88,0xac89, +0xac8a,0xac8b,0xac8c,0xac8d,0xac8e,0xac8f,0xac90,0xac91, +0xac92,0xac93,0xac94,0xac95,0xac96,0xac97,0xac98,0xac99, +0xac9a,0xac9b,0xac9c,0xac9d,0xc3d6,0xac9e,0xac9f,0xaca0, +0xc3d7,0xad41,0xad42,0xad43,0xc3d8,0xad44,0xad45,0xad46, +0xad47,0xad48,0xad49,0xad4a,0xc3d9,0xc3da,0xad4b,0xc3db, +0xad4c,0xc3dc,0xad4d,0xad4e,0xad4f,0xad50,0xad51,0xad52, +0xc3dd,0xad53,0xad54,0xad55,0xad56,0xad57,0xad58,0xad59, +0xad5a,0xad61,0xad62,0xad63,0xad64,0xad65,0xad66,0xad67, +0xc3de,0xad68,0xad69,0xad6a,0xad6b,0xad6c,0xad6d,0xad6e, +0xad6f,0xad70,0xad71,0xad72,0xc3df,0xc3e0,0xad73,0xad74, +0xc3e1,0xad75,0xad76,0xad77,0xc3e2,0xad78,0xad79,0xad7a, +0xad81,0xad82,0xad83,0xad84,0xc3e3,0xc3e4,0xad85,0xc3e5, +0xad86,0xc3e6,0xad87,0xad88,0xad89,0xad8a,0xad8b,0xad8c, +0xc3e7,0xad8d,0xad8e,0xad8f,0xad90,0xad91,0xad92,0xad93, +0xad94,0xad95,0xad96,0xad97,0xad98,0xad99,0xad9a,0xad9b, +0xad9c,0xad9d,0xad9e,0xad9f,0xc3e8,0xada0,0xae41,0xae42, +0xae43,0xae44,0xae45,0xae46,0xc3e9,0xae47,0xae48,0xae49, +0xc3ea,0xae4a,0xae4b,0xae4c,0xae4d,0xae4e,0xae4f,0xae50, +0xae51,0xae52,0xae53,0xae54,0xae55,0xae56,0xae57,0xae58, +0xae59,0xae5a,0xae61,0xae62,0xae63,0xae64,0xae65,0xae66, +0xc3eb,0xae67,0xae68,0xae69,0xc3ec,0xae6a,0xae6b,0xae6c, +0xc3ed,0xae6d,0xae6e,0xae6f,0xae70,0xae71,0xae72,0xae73, +0xc3ee,0xc3ef,0xae74,0xc3f0,0xae75,0xc3f1,0xae76,0xae77, +/* 0xce00 */ +0xae78,0xae79,0xae7a,0xae81,0xc3f2,0xae82,0xae83,0xae84, +0xc3f3,0xae85,0xae86,0xae87,0xc3f4,0xae88,0xae89,0xae8a, +0xae8b,0xae8c,0xae8d,0xae8e,0xc3f5,0xae8f,0xae90,0xae91, +0xae92,0xc3f6,0xae93,0xae94,0xae95,0xae96,0xae97,0xae98, +0xc3f7,0xc3f8,0xae99,0xae9a,0xc3f9,0xae9b,0xae9c,0xae9d, +0xc3fa,0xae9e,0xae9f,0xaea0,0xaf41,0xaf42,0xaf43,0xaf44, +0xc3fb,0xc3fc,0xaf45,0xc3fd,0xaf46,0xc3fe,0xaf47,0xaf48, +0xaf49,0xaf4a,0xaf4b,0xaf4c,0xaf4d,0xaf4e,0xaf4f,0xaf50, +0xaf51,0xaf52,0xaf53,0xaf54,0xaf55,0xaf56,0xaf57,0xaf58, +0xaf59,0xaf5a,0xaf61,0xaf62,0xaf63,0xaf64,0xaf65,0xaf66, +0xaf67,0xaf68,0xaf69,0xaf6a,0xaf6b,0xaf6c,0xaf6d,0xaf6e, +0xc4a1,0xc4a2,0xaf6f,0xaf70,0xc4a3,0xaf71,0xaf72,0xc4a4, +0xc4a5,0xc4a6,0xaf73,0xaf74,0xaf75,0xaf76,0xaf77,0xaf78, +0xc4a7,0xc4a8,0xaf79,0xc4a9,0xaf7a,0xc4aa,0xaf81,0xaf82, +0xaf83,0xaf84,0xaf85,0xaf86,0xc4ab,0xc4ac,0xaf87,0xaf88, +0xc4ad,0xaf89,0xaf8a,0xaf8b,0xc4ae,0xaf8c,0xaf8d,0xaf8e, +0xaf8f,0xaf90,0xaf91,0xaf92,0xc4af,0xc4b0,0xaf93,0xc4b1, +0xaf94,0xc4b2,0xaf95,0xaf96,0xaf97,0xaf98,0xaf99,0xaf9a, +0xc4b3,0xc4b4,0xaf9b,0xaf9c,0xc4b5,0xaf9d,0xaf9e,0xaf9f, +0xc4b6,0xafa0,0xb041,0xb042,0xb043,0xb044,0xb045,0xb046, +0xc4b7,0xc4b8,0xb047,0xc4b9,0xc4ba,0xc4bb,0xb048,0xb049, +0xb04a,0xb04b,0xb04c,0xb04d,0xc4bc,0xc4bd,0xb04e,0xb04f, +0xb050,0xb051,0xb052,0xb053,0xb054,0xb055,0xb056,0xb057, +0xb058,0xb059,0xb05a,0xb061,0xb062,0xb063,0xb064,0xb065, +0xb066,0xc4be,0xb067,0xb068,0xb069,0xb06a,0xb06b,0xb06c, +0xb06d,0xb06e,0xb06f,0xb070,0xb071,0xb072,0xb073,0xb074, +0xb075,0xb076,0xb077,0xb078,0xb079,0xb07a,0xb081,0xb082, +0xb083,0xb084,0xb085,0xb086,0xb087,0xb088,0xb089,0xb08a, +0xb08b,0xb08c,0xb08d,0xb08e,0xc4bf,0xc4c0,0xb08f,0xb090, +0xc4c1,0xb091,0xb092,0xc4c2,0xc4c3,0xb093,0xb094,0xb095, +0xb096,0xb097,0xb098,0xb099,0xc4c4,0xc4c5,0xb09a,0xc4c6, +0xc4c7,0xc4c8,0xb09b,0xb09c,0xb09d,0xb09e,0xb09f,0xb0a0, +/* 0xcf00 */ +0xc4c9,0xc4ca,0xb141,0xb142,0xc4cb,0xb143,0xb144,0xb145, +0xc4cc,0xb146,0xb147,0xb148,0xb149,0xb14a,0xb14b,0xb14c, +0xc4cd,0xc4ce,0xb14d,0xc4cf,0xb14e,0xc4d0,0xb14f,0xb150, +0xb151,0xb152,0xb153,0xb154,0xc4d1,0xb155,0xb156,0xb157, +0xc4d2,0xb158,0xb159,0xb15a,0xc4d3,0xb161,0xb162,0xb163, +0xb164,0xb165,0xb166,0xb167,0xc4d4,0xc4d5,0xb168,0xc4d6, +0xc4d7,0xc4d8,0xb169,0xb16a,0xb16b,0xb16c,0xb16d,0xb16e, +0xc4d9,0xb16f,0xb170,0xb171,0xb172,0xb173,0xb174,0xb175, +0xb176,0xb177,0xb178,0xb179,0xb17a,0xb181,0xb182,0xb183, +0xb184,0xb185,0xb186,0xb187,0xb188,0xb189,0xb18a,0xb18b, +0xb18c,0xb18d,0xb18e,0xb18f,0xc4da,0xc4db,0xb190,0xb191, +0xc4dc,0xb192,0xb193,0xb194,0xc4dd,0xb195,0xb196,0xb197, +0xb198,0xb199,0xb19a,0xb19b,0xc4de,0xc4df,0xb19c,0xc4e0, +0xb19d,0xc4e1,0xb19e,0xb19f,0xb1a0,0xb241,0xb242,0xb243, +0xc4e2,0xc4e3,0xb244,0xb245,0xc4e4,0xb246,0xb247,0xb248, +0xc4e5,0xb249,0xb24a,0xb24b,0xb24c,0xb24d,0xb24e,0xb24f, +0xc4e6,0xb250,0xb251,0xb252,0xb253,0xc4e7,0xb254,0xb255, +0xb256,0xb257,0xb258,0xb259,0xc4e8,0xb25a,0xb261,0xb262, +0xb263,0xb264,0xb265,0xb266,0xb267,0xb268,0xb269,0xb26a, +0xb26b,0xb26c,0xb26d,0xb26e,0xb26f,0xb270,0xb271,0xb272, +0xb273,0xc4e9,0xb274,0xb275,0xb276,0xb277,0xb278,0xb279, +0xc4ea,0xb27a,0xb281,0xb282,0xb283,0xb284,0xb285,0xb286, +0xc4eb,0xb287,0xb288,0xb289,0xb28a,0xb28b,0xb28c,0xb28d, +0xb28e,0xb28f,0xb290,0xb291,0xb292,0xb293,0xb294,0xb295, +0xb296,0xb297,0xb298,0xb299,0xc4ec,0xb29a,0xb29b,0xb29c, +0xb29d,0xb29e,0xb29f,0xb2a0,0xb341,0xb342,0xb343,0xb344, +0xb345,0xb346,0xb347,0xb348,0xb349,0xb34a,0xb34b,0xb34c, +0xb34d,0xb34e,0xb34f,0xb350,0xb351,0xb352,0xb353,0xb354, +0xc4ed,0xc4ee,0xb355,0xb356,0xc4ef,0xb357,0xb358,0xb359, +0xc4f0,0xb35a,0xb361,0xb362,0xb363,0xb364,0xb365,0xb366, +0xc4f1,0xc4f2,0xb367,0xc4f3,0xb368,0xc4f4,0xb369,0xb36a, +0xb36b,0xb36c,0xb36d,0xb36e,0xc4f5,0xb36f,0xb370,0xb371, +/* 0xd000 */ +0xc4f6,0xb372,0xb373,0xb374,0xc4f7,0xb375,0xb376,0xb377, +0xb378,0xb379,0xb37a,0xb381,0xb382,0xb383,0xb384,0xb385, +0xb386,0xc4f8,0xb387,0xb388,0xb389,0xb38a,0xb38b,0xb38c, +0xc4f9,0xb38d,0xb38e,0xb38f,0xb390,0xb391,0xb392,0xb393, +0xb394,0xb395,0xb396,0xb397,0xb398,0xb399,0xb39a,0xb39b, +0xb39c,0xb39d,0xb39e,0xb39f,0xb3a0,0xc4fa,0xb441,0xb442, +0xb443,0xb444,0xb445,0xb446,0xc4fb,0xc4fc,0xb447,0xb448, +0xc4fd,0xb449,0xb44a,0xb44b,0xc4fe,0xb44c,0xb44d,0xb44e, +0xb44f,0xb450,0xb451,0xb452,0xc5a1,0xc5a2,0xb453,0xc5a3, +0xb454,0xc5a4,0xb455,0xb456,0xb457,0xb458,0xb459,0xb45a, +0xc5a5,0xb461,0xb462,0xb463,0xc5a6,0xb464,0xb465,0xb466, +0xc5a7,0xb467,0xb468,0xb469,0xb46a,0xb46b,0xb46c,0xb46d, +0xc5a8,0xb46e,0xb46f,0xb470,0xb471,0xb472,0xb473,0xb474, +0xb475,0xb476,0xb477,0xb478,0xc5a9,0xc5aa,0xb479,0xb47a, +0xc5ab,0xb481,0xb482,0xb483,0xc5ac,0xb484,0xb485,0xb486, +0xb487,0xb488,0xb489,0xb48a,0xc5ad,0xc5ae,0xb48b,0xb48c, +0xb48d,0xc5af,0xb48e,0xb48f,0xb490,0xb491,0xb492,0xb493, +0xb494,0xb495,0xb496,0xb497,0xb498,0xb499,0xb49a,0xb49b, +0xb49c,0xb49d,0xb49e,0xb49f,0xb4a0,0xb541,0xb542,0xb543, +0xb544,0xb545,0xb546,0xb547,0xb548,0xb549,0xb54a,0xb54b, +0xb54c,0xb54d,0xb54e,0xb54f,0xc5b0,0xc5b1,0xb550,0xb551, +0xc5b2,0xb552,0xb553,0xb554,0xc5b3,0xb555,0xb556,0xb557, +0xb558,0xb559,0xb55a,0xb561,0xc5b4,0xc5b5,0xb562,0xc5b6, +0xb563,0xc5b7,0xb564,0xb565,0xb566,0xb567,0xb568,0xb569, +0xc5b8,0xc5b9,0xb56a,0xb56b,0xc5ba,0xb56c,0xb56d,0xb56e, +0xc5bb,0xc5bc,0xb56f,0xb570,0xb571,0xb572,0xb573,0xb574, +0xc5bd,0xc5be,0xb575,0xc5bf,0xc5c0,0xc5c1,0xb576,0xb577, +0xb578,0xb579,0xb57a,0xb581,0xc5c2,0xc5c3,0xb582,0xb583, +0xc5c4,0xb584,0xb585,0xb586,0xc5c5,0xb587,0xb588,0xb589, +0xb58a,0xb58b,0xb58c,0xb58d,0xc5c6,0xc5c7,0xb58e,0xc5c8, +0xc5c9,0xc5ca,0xb58f,0xb590,0xb591,0xb592,0xb593,0xb594, +0xc5cb,0xb595,0xb596,0xb597,0xb598,0xb599,0xb59a,0xb59b, +/* 0xd100 */ +0xb59c,0xb59d,0xb59e,0xb59f,0xb5a0,0xb641,0xb642,0xb643, +0xb644,0xb645,0xb646,0xb647,0xb648,0xc5cc,0xb649,0xb64a, +0xb64b,0xb64c,0xb64d,0xb64e,0xb64f,0xb650,0xb651,0xb652, +0xb653,0xb654,0xb655,0xb656,0xb657,0xb658,0xb659,0xb65a, +0xb661,0xb662,0xb663,0xb664,0xb665,0xb666,0xb667,0xb668, +0xb669,0xb66a,0xb66b,0xb66c,0xb66d,0xb66e,0xb66f,0xb670, +0xc5cd,0xc5ce,0xb671,0xb672,0xc5cf,0xb673,0xb674,0xb675, +0xc5d0,0xb676,0xc5d1,0xb677,0xb678,0xb679,0xb67a,0xb681, +0xc5d2,0xc5d3,0xb682,0xc5d4,0xc5d5,0xc5d6,0xb683,0xb684, +0xb685,0xb686,0xb687,0xb688,0xc5d7,0xc5d8,0xb689,0xb68a, +0xc5d9,0xb68b,0xb68c,0xb68d,0xc5da,0xb68e,0xb68f,0xb690, +0xb691,0xb692,0xb693,0xb694,0xc5db,0xc5dc,0xb695,0xc5dd, +0xb696,0xc5de,0xb697,0xb698,0xb699,0xb69a,0xb69b,0xb69c, +0xc5df,0xb69d,0xb69e,0xb69f,0xc5e0,0xb6a0,0xb741,0xb742, +0xb743,0xb744,0xb745,0xb746,0xb747,0xb748,0xb749,0xb74a, +0xb74b,0xb74c,0xb74d,0xb74e,0xc5e1,0xb74f,0xb750,0xb751, +0xb752,0xb753,0xb754,0xb755,0xc5e2,0xb756,0xb757,0xb758, +0xc5e3,0xb759,0xb75a,0xb761,0xb762,0xb763,0xb764,0xb765, +0xb766,0xb767,0xb768,0xb769,0xb76a,0xb76b,0xb76c,0xb76d, +0xb76e,0xb76f,0xb770,0xb771,0xb772,0xb773,0xb774,0xb775, +0xc5e4,0xc5e5,0xb776,0xb777,0xc5e6,0xb778,0xb779,0xb77a, +0xc5e7,0xb781,0xb782,0xb783,0xb784,0xb785,0xb786,0xb787, +0xc5e8,0xc5e9,0xb788,0xc5ea,0xb789,0xc5eb,0xb78a,0xb78b, +0xb78c,0xb78d,0xc5ec,0xb78e,0xc5ed,0xb78f,0xb790,0xb791, +0xc5ee,0xb792,0xb793,0xb794,0xb795,0xb796,0xb797,0xb798, +0xb799,0xb79a,0xb79b,0xb79c,0xb79d,0xb79e,0xb79f,0xb7a0, +0xb841,0xb842,0xb843,0xb844,0xb845,0xb846,0xb847,0xb848, +0xc5ef,0xb849,0xb84a,0xb84b,0xb84c,0xb84d,0xb84e,0xb84f, +0xb850,0xb851,0xb852,0xb853,0xb854,0xb855,0xb856,0xb857, +0xb858,0xb859,0xb85a,0xb861,0xb862,0xb863,0xb864,0xb865, +0xb866,0xb867,0xb868,0xb869,0xc5f0,0xb86a,0xb86b,0xb86c, +0xc5f1,0xb86d,0xb86e,0xb86f,0xb870,0xb871,0xb872,0xb873, +/* 0xd200 */ +0xb874,0xb875,0xb876,0xb877,0xb878,0xb879,0xb87a,0xc5f2, +0xb881,0xc5f3,0xb882,0xb883,0xb884,0xb885,0xb886,0xb887, +0xc5f4,0xb888,0xb889,0xb88a,0xb88b,0xb88c,0xb88d,0xb88e, +0xb88f,0xb890,0xb891,0xb892,0xb893,0xb894,0xb895,0xb896, +0xb897,0xb898,0xb899,0xb89a,0xb89b,0xb89c,0xb89d,0xb89e, +0xb89f,0xb8a0,0xb941,0xb942,0xc5f5,0xc5f6,0xb943,0xb944, +0xc5f7,0xb945,0xb946,0xb947,0xc5f8,0xb948,0xb949,0xb94a, +0xb94b,0xb94c,0xb94d,0xb94e,0xc5f9,0xc5fa,0xb94f,0xc5fb, +0xb950,0xc5fc,0xb951,0xb952,0xb953,0xb954,0xb955,0xb956, +0xc5fd,0xb957,0xb958,0xb959,0xb95a,0xb961,0xb962,0xb963, +0xb964,0xb965,0xb966,0xb967,0xb968,0xb969,0xb96a,0xb96b, +0xb96c,0xb96d,0xb96e,0xb96f,0xc5fe,0xb970,0xb971,0xb972, +0xb973,0xb974,0xb975,0xb976,0xc6a1,0xb977,0xb978,0xb979, +0xb97a,0xb981,0xb982,0xb983,0xb984,0xb985,0xb986,0xb987, +0xb988,0xb989,0xb98a,0xb98b,0xb98c,0xb98d,0xb98e,0xb98f, +0xb990,0xb991,0xb992,0xb993,0xb994,0xb995,0xb996,0xb997, +0xc6a2,0xc6a3,0xb998,0xb999,0xc6a4,0xb99a,0xb99b,0xb99c, +0xc6a5,0xb99d,0xb99e,0xb99f,0xb9a0,0xba41,0xba42,0xba43, +0xc6a6,0xc6a7,0xba44,0xba45,0xba46,0xc6a8,0xba47,0xba48, +0xba49,0xba4a,0xba4b,0xba4c,0xc6a9,0xba4d,0xba4e,0xba4f, +0xc6aa,0xba50,0xba51,0xba52,0xc6ab,0xba53,0xba54,0xba55, +0xba56,0xba57,0xba58,0xba59,0xc6ac,0xba5a,0xba61,0xba62, +0xba63,0xc6ad,0xba64,0xba65,0xba66,0xba67,0xba68,0xba69, +0xc6ae,0xc6af,0xba6a,0xba6b,0xc6b0,0xba6c,0xba6d,0xc6b1, +0xc6b2,0xba6e,0xc6b3,0xba6f,0xba70,0xba71,0xba72,0xba73, +0xc6b4,0xc6b5,0xba74,0xc6b6,0xba75,0xba76,0xba77,0xba78, +0xba79,0xba7a,0xba81,0xba82,0xc6b7,0xba83,0xba84,0xba85, +0xc6b8,0xba86,0xba87,0xba88,0xc6b9,0xba89,0xba8a,0xba8b, +0xba8c,0xba8d,0xba8e,0xba8f,0xc6ba,0xc6bb,0xba90,0xba91, +0xba92,0xba93,0xba94,0xba95,0xba96,0xba97,0xba98,0xba99, +0xc6bc,0xc6bd,0xba9a,0xba9b,0xc6be,0xba9c,0xba9d,0xba9e, +0xc6bf,0xba9f,0xbaa0,0xbb41,0xbb42,0xbb43,0xbb44,0xbb45, +/* 0xd300 */ +0xc6c0,0xc6c1,0xbb46,0xc6c2,0xbb47,0xc6c3,0xbb48,0xbb49, +0xbb4a,0xbb4b,0xbb4c,0xbb4d,0xc6c4,0xc6c5,0xc6c6,0xbb4e, +0xc6c7,0xbb4f,0xbb50,0xbb51,0xc6c8,0xbb52,0xc6c9,0xbb53, +0xbb54,0xbb55,0xbb56,0xbb57,0xc6ca,0xc6cb,0xbb58,0xc6cc, +0xc6cd,0xc6ce,0xbb59,0xbb5a,0xbb61,0xc6cf,0xbb62,0xbb63, +0xc6d0,0xc6d1,0xbb64,0xbb65,0xc6d2,0xbb66,0xbb67,0xbb68, +0xc6d3,0xbb69,0xbb6a,0xbb6b,0xbb6c,0xbb6d,0xbb6e,0xbb6f, +0xc6d4,0xc6d5,0xbb70,0xc6d6,0xc6d7,0xc6d8,0xbb71,0xbb72, +0xbb73,0xbb74,0xbb75,0xbb76,0xc6d9,0xc6da,0xbb77,0xbb78, +0xbb79,0xbb7a,0xbb81,0xbb82,0xbb83,0xbb84,0xbb85,0xbb86, +0xbb87,0xbb88,0xbb89,0xbb8a,0xbb8b,0xbb8c,0xbb8d,0xbb8e, +0xbb8f,0xbb90,0xbb91,0xbb92,0xbb93,0xbb94,0xbb95,0xbb96, +0xbb97,0xbb98,0xbb99,0xbb9a,0xbb9b,0xbb9c,0xbb9d,0xbb9e, +0xbb9f,0xbba0,0xbc41,0xbc42,0xbc43,0xbc44,0xbc45,0xbc46, +0xbc47,0xbc48,0xbc49,0xbc4a,0xbc4b,0xbc4c,0xbc4d,0xbc4e, +0xbc4f,0xbc50,0xbc51,0xbc52,0xc6db,0xc6dc,0xbc53,0xbc54, +0xc6dd,0xbc55,0xbc56,0xbc57,0xc6de,0xbc58,0xbc59,0xbc5a, +0xbc61,0xbc62,0xbc63,0xbc64,0xc6df,0xc6e0,0xbc65,0xc6e1, +0xc6e2,0xc6e3,0xbc66,0xbc67,0xbc68,0xbc69,0xbc6a,0xbc6b, +0xc6e4,0xc6e5,0xbc6c,0xbc6d,0xc6e6,0xbc6e,0xbc6f,0xbc70, +0xc6e7,0xbc71,0xbc72,0xbc73,0xbc74,0xbc75,0xbc76,0xbc77, +0xc6e8,0xc6e9,0xbc78,0xc6ea,0xbc79,0xc6eb,0xbc7a,0xbc81, +0xbc82,0xbc83,0xbc84,0xbc85,0xc6ec,0xbc86,0xbc87,0xbc88, +0xc6ed,0xbc89,0xbc8a,0xbc8b,0xc6ee,0xbc8c,0xbc8d,0xbc8e, +0xbc8f,0xbc90,0xbc91,0xbc92,0xc6ef,0xc6f0,0xbc93,0xbc94, +0xc6f1,0xc6f2,0xbc95,0xbc96,0xbc97,0xbc98,0xbc99,0xbc9a, +0xc6f3,0xbc9b,0xbc9c,0xbc9d,0xbc9e,0xbc9f,0xbca0,0xbd41, +0xc6f4,0xbd42,0xbd43,0xbd44,0xbd45,0xbd46,0xbd47,0xbd48, +0xbd49,0xc6f5,0xbd4a,0xc6f6,0xbd4b,0xbd4c,0xbd4d,0xbd4e, +0xbd4f,0xbd50,0xbd51,0xbd52,0xc6f7,0xc6f8,0xbd53,0xbd54, +0xc6f9,0xbd55,0xbd56,0xbd57,0xc6fa,0xbd58,0xbd59,0xbd5a, +0xbd61,0xbd62,0xbd63,0xbd64,0xc6fb,0xc6fc,0xbd65,0xc6fd, +/* 0xd400 */ +0xbd66,0xc6fe,0xbd67,0xbd68,0xbd69,0xbd6a,0xbd6b,0xbd6c, +0xc7a1,0xbd6d,0xbd6e,0xbd6f,0xbd70,0xbd71,0xbd72,0xbd73, +0xbd74,0xbd75,0xbd76,0xbd77,0xbd78,0xbd79,0xbd7a,0xbd81, +0xbd82,0xbd83,0xbd84,0xbd85,0xbd86,0xc7a2,0xbd87,0xbd88, +0xbd89,0xbd8a,0xbd8b,0xbd8c,0xbd8d,0xbd8e,0xbd8f,0xbd90, +0xbd91,0xbd92,0xbd93,0xbd94,0xbd95,0xbd96,0xbd97,0xbd98, +0xbd99,0xbd9a,0xbd9b,0xbd9c,0xbd9d,0xbd9e,0xbd9f,0xbda0, +0xbe41,0xbe42,0xbe43,0xbe44,0xbe45,0xbe46,0xbe47,0xbe48, +0xc7a3,0xbe49,0xbe4a,0xbe4b,0xc7a4,0xbe4c,0xbe4d,0xbe4e, +0xbe4f,0xbe50,0xbe51,0xbe52,0xbe53,0xbe54,0xbe55,0xbe56, +0xbe57,0xbe58,0xbe59,0xbe5a,0xbe61,0xbe62,0xbe63,0xbe64, +0xbe65,0xbe66,0xbe67,0xbe68,0xc7a5,0xbe69,0xbe6a,0xbe6b, +0xc7a6,0xbe6c,0xbe6d,0xbe6e,0xc7a7,0xbe6f,0xbe70,0xbe71, +0xbe72,0xbe73,0xbe74,0xbe75,0xbe76,0xc7a8,0xbe77,0xc7a9, +0xbe78,0xbe79,0xbe7a,0xbe81,0xbe82,0xbe83,0xbe84,0xbe85, +0xc7aa,0xc7ab,0xbe86,0xbe87,0xc7ac,0xbe88,0xbe89,0xc7ad, +0xc7ae,0xbe8a,0xc7af,0xbe8b,0xbe8c,0xbe8d,0xbe8e,0xbe8f, +0xc7b0,0xc7b1,0xbe90,0xc7b2,0xbe91,0xc7b3,0xbe92,0xbe93, +0xbe94,0xbe95,0xbe96,0xbe97,0xc7b4,0xbe98,0xbe99,0xbe9a, +0xbe9b,0xbe9c,0xbe9d,0xbe9e,0xbe9f,0xbea0,0xbf41,0xbf42, +0xbf43,0xbf44,0xbf45,0xbf46,0xbf47,0xbf48,0xbf49,0xbf4a, +0xbf4b,0xc7b5,0xbf4c,0xbf4d,0xbf4e,0xbf4f,0xbf50,0xbf51, +0xbf52,0xbf53,0xbf54,0xbf55,0xbf56,0xbf57,0xbf58,0xbf59, +0xbf5a,0xbf61,0xbf62,0xbf63,0xbf64,0xbf65,0xbf66,0xbf67, +0xbf68,0xbf69,0xbf6a,0xbf6b,0xbf6c,0xbf6d,0xbf6e,0xbf6f, +0xbf70,0xbf71,0xbf72,0xbf73,0xc7b6,0xbf74,0xbf75,0xbf76, +0xc7b7,0xbf77,0xbf78,0xbf79,0xc7b8,0xbf7a,0xbf81,0xbf82, +0xbf83,0xbf84,0xbf85,0xbf86,0xc7b9,0xbf87,0xbf88,0xc7ba, +0xbf89,0xbf8a,0xbf8b,0xbf8c,0xbf8d,0xbf8e,0xbf8f,0xbf90, +0xc7bb,0xbf91,0xbf92,0xbf93,0xc7bc,0xbf94,0xbf95,0xbf96, +0xc7bd,0xbf97,0xbf98,0xbf99,0xbf9a,0xbf9b,0xbf9c,0xbf9d, +0xc7be,0xbf9e,0xbf9f,0xc7bf,0xbfa0,0xc7c0,0xc041,0xc042, +/* 0xd500 */ +0xc043,0xc044,0xc045,0xc046,0xc7c1,0xc047,0xc048,0xc049, +0xc7c2,0xc04a,0xc04b,0xc04c,0xc7c3,0xc04d,0xc04e,0xc04f, +0xc050,0xc051,0xc052,0xc053,0xc7c4,0xc7c5,0xc054,0xc7c6, +0xc055,0xc056,0xc057,0xc058,0xc059,0xc05a,0xc061,0xc062, +0xc063,0xc064,0xc065,0xc066,0xc067,0xc068,0xc069,0xc06a, +0xc06b,0xc06c,0xc06d,0xc06e,0xc06f,0xc070,0xc071,0xc072, +0xc073,0xc074,0xc075,0xc076,0xc077,0xc078,0xc079,0xc07a, +0xc081,0xc082,0xc083,0xc084,0xc7c7,0xc7c8,0xc085,0xc086, +0xc7c9,0xc087,0xc088,0xc089,0xc7ca,0xc08a,0xc08b,0xc08c, +0xc08d,0xc08e,0xc08f,0xc090,0xc7cb,0xc7cc,0xc091,0xc7cd, +0xc092,0xc7ce,0xc093,0xc094,0xc095,0xc096,0xc097,0xc098, +0xc7cf,0xc7d0,0xc099,0xc09a,0xc7d1,0xc09b,0xc09c,0xc09d, +0xc7d2,0xc09e,0xc09f,0xc0a0,0xc141,0xc7d3,0xc142,0xc143, +0xc7d4,0xc7d5,0xc144,0xc7d6,0xc145,0xc7d7,0xc146,0xc147, +0xc148,0xc149,0xc14a,0xc14b,0xc7d8,0xc7d9,0xc14c,0xc14d, +0xc7da,0xc14e,0xc14f,0xc150,0xc7db,0xc151,0xc152,0xc153, +0xc154,0xc155,0xc156,0xc157,0xc7dc,0xc7dd,0xc158,0xc7de, +0xc7df,0xc7e0,0xc159,0xc15a,0xc161,0xc162,0xc163,0xc164, +0xc7e1,0xc165,0xc166,0xc167,0xc168,0xc169,0xc16a,0xc16b, +0xc16c,0xc16d,0xc16e,0xc16f,0xc170,0xc171,0xc172,0xc173, +0xc174,0xc175,0xc176,0xc177,0xc178,0xc7e2,0xc179,0xc17a, +0xc181,0xc182,0xc183,0xc184,0xc185,0xc186,0xc187,0xc188, +0xc189,0xc18a,0xc18b,0xc18c,0xc18d,0xc18e,0xc18f,0xc190, +0xc191,0xc192,0xc193,0xc194,0xc195,0xc196,0xc197,0xc198, +0xc199,0xc19a,0xc19b,0xc19c,0xc19d,0xc19e,0xc19f,0xc1a0, +0xc7e3,0xc7e4,0xc241,0xc242,0xc7e5,0xc243,0xc244,0xc245, +0xc7e6,0xc246,0xc7e7,0xc247,0xc248,0xc249,0xc24a,0xc24b, +0xc7e8,0xc7e9,0xc24c,0xc7ea,0xc24d,0xc7eb,0xc24e,0xc24f, +0xc250,0xc251,0xc252,0xc253,0xc7ec,0xc7ed,0xc254,0xc255, +0xc7ee,0xc256,0xc257,0xc258,0xc7ef,0xc259,0xc25a,0xc261, +0xc262,0xc263,0xc264,0xc265,0xc7f0,0xc7f1,0xc266,0xc7f2, +0xc267,0xc7f3,0xc268,0xc269,0xc26a,0xc26b,0xc26c,0xc26d, +/* 0xd600 */ +0xc7f4,0xc7f5,0xc26e,0xc26f,0xc7f6,0xc270,0xc271,0xc272, +0xc7f7,0xc273,0xc274,0xc275,0xc276,0xc277,0xc278,0xc279, +0xc7f8,0xc7f9,0xc27a,0xc7fa,0xc7fb,0xc7fc,0xc281,0xc282, +0xc283,0xc284,0xc285,0xc286,0xc7fd,0xc287,0xc288,0xc289, +0xc7fe,0xc28a,0xc28b,0xc28c,0xc8a1,0xc28d,0xc28e,0xc28f, +0xc290,0xc291,0xc292,0xc293,0xc294,0xc8a2,0xc295,0xc296, +0xc297,0xc298,0xc299,0xc29a,0xc29b,0xc29c,0xc29d,0xc29e, +0xc8a3,0xc8a4,0xc29f,0xc2a0,0xc8a5,0xc341,0xc342,0xc343, +0xc8a6,0xc344,0xc345,0xc346,0xc347,0xc8a7,0xc348,0xc349, +0xc8a8,0xc8a9,0xc34a,0xc8aa,0xc34b,0xc8ab,0xc34c,0xc34d, +0xc34e,0xc8ac,0xc34f,0xc350,0xc8ad,0xc8ae,0xc351,0xc352, +0xc8af,0xc353,0xc354,0xc355,0xc8b0,0xc356,0xc357,0xc358, +0xc359,0xc35a,0xc361,0xc362,0xc363,0xc364,0xc365,0xc8b1, +0xc366,0xc8b2,0xc367,0xc368,0xc369,0xc36a,0xc36b,0xc36c, +0xc8b3,0xc8b4,0xc36d,0xc36e,0xc8b5,0xc36f,0xc370,0xc371, +0xc372,0xc373,0xc374,0xc375,0xc376,0xc377,0xc378,0xc379, +0xc37a,0xc381,0xc382,0xc8b6,0xc383,0xc8b7,0xc384,0xc385, +0xc386,0xc387,0xc388,0xc389,0xc8b8,0xc8b9,0xc38a,0xc38b, +0xc8ba,0xc38c,0xc38d,0xc38e,0xc8bb,0xc38f,0xc390,0xc391, +0xc392,0xc393,0xc394,0xc395,0xc396,0xc8bc,0xc397,0xc8bd, +0xc398,0xc8be,0xc399,0xc39a,0xc39b,0xc39c,0xc39d,0xc39e, +0xc8bf,0xc39f,0xc3a0,0xc441,0xc8c0,0xc442,0xc443,0xc444, +0xc8c1,0xc445,0xc446,0xc447,0xc448,0xc449,0xc44a,0xc44b, +0xc44c,0xc8c2,0xc44d,0xc8c3,0xc44e,0xc44f,0xc450,0xc451, +0xc452,0xc453,0xc454,0xc455,0xc8c4,0xc8c5,0xc456,0xc457, +0xc8c6,0xc458,0xc459,0xc45a,0xc8c7,0xc461,0xc462,0xc463, +0xc464,0xc8c8,0xc465,0xc466,0xc8c9,0xc467,0xc468,0xc8ca, +0xc469,0xc8cb,0xc46a,0xc46b,0xc46c,0xc46d,0xc46e,0xc46f, +0xc8cc,0xc470,0xc471,0xc472,0xc8cd,0xc473,0xc474,0xc475, +0xc8ce,0xc476,0xc477,0xc478,0xc479,0xc47a,0xc481,0xc482, +0xc8cf,0xc483,0xc484,0xc485,0xc486,0xc8d0,0xc487,0xc488, +0xc489,0xc48a,0xc48b,0xc48c,0xc8d1,0xc8d2,0xc48d,0xc48e, +/* 0xd700 */ +0xc8d3,0xc48f,0xc490,0xc491,0xc8d4,0xc492,0xc493,0xc494, +0xc495,0xc496,0xc497,0xc498,0xc499,0xc49a,0xc49b,0xc49c, +0xc49d,0xc8d5,0xc49e,0xc49f,0xc4a0,0xc541,0xc542,0xc543, +0xc8d6,0xc8d7,0xc544,0xc545,0xc8d8,0xc546,0xc547,0xc548, +0xc8d9,0xc549,0xc54a,0xc54b,0xc54c,0xc54d,0xc54e,0xc54f, +0xc8da,0xc8db,0xc550,0xc8dc,0xc551,0xc8dd,0xc552,0xc553, +0xc554,0xc555,0xc556,0xc557,0xc8de,0xc8df,0xc558,0xc559, +0xc8e0,0xc55a,0xc561,0xc562,0xc8e1,0xc563,0xc564,0xc565, +0xc566,0xc567,0xc568,0xc569,0xc8e2,0xc56a,0xc56b,0xc8e3, +0xc56c,0xc8e4,0xc56d,0xc56e,0xc56f,0xc570,0xc571,0xc572, +0xc8e5,0xc8e6,0xc573,0xc574,0xc8e7,0xc575,0xc8e8,0xc8e9, +0xc8ea,0xc8eb,0xc576,0xc577,0xc578,0xc579,0xc57a,0xc581, +0xc8ec,0xc8ed,0xc582,0xc8ee,0xc583,0xc8ef,0xc584,0xc585, +0xc586,0xc8f0,0xc587,0xc588,0xc8f1,0xc589,0xc58a,0xc58b, +0xc8f2,0xc58c,0xc58d,0xc58e,0xc8f3,0xc58f,0xc590,0xc591, +0xc592,0xc593,0xc594,0xc595,0xc8f4,0xc8f5,0xc596,0xc597, +0xc598,0xc8f6,0xc599,0xc59a,0xc59b,0xc59c,0xc59d,0xc59e, +0xc8f7,0xc8f8,0xc59f,0xc5a0,0xc8f9,0xc641,0xc642,0xc643, +0xc8fa,0xc644,0xc645,0xc646,0xc647,0xc648,0xc649,0xc64a, +0xc8fb,0xc8fc,0xc64b,0xc8fd,0xc64c,0xc8fe,0xc64d,0xc64e, +0xc64f,0xc650,0xc651,0xc652}; + + +const int ucs_s_uhc_table_min = 0xab00; +const int ucs_s_uhc_table_max = 0xab00 + (sizeof(ucs_s_uhc_table)/sizeof(unsigned short)); + +const unsigned short ucs_r1_uhc_table[] = { +/* 0xf800 */ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xcbd0,0xcbd6,0xcbe7,0xcdcf,0xcde8,0xcead,0xcffb,0xd0a2, +0xd0b8,0xd0d0,0xd0dd,0xd1d4,0xd1d5,0xd1d8,0xd1db,0xd1dc, +0xd1dd,0xd1de,0xd1df,0xd1e0,0xd1e2,0xd1e3,0xd1e4,0xd1e5, +0xd1e6,0xd1e8,0xd1e9,0xd1ea,0xd1eb,0xd1ed,0xd1ef,0xd1f0, +0xd1f2,0xd1f6,0xd1fa,0xd1fc,0xd1fd,0xd1fe,0xd2a2,0xd2a3, +0xd2a7,0xd2a8,0xd2a9,0xd2aa,0xd2ab,0xd2ad,0xd2b2,0xd2be, +0xd2c2,0xd2c3,0xd2c4,0xd2c6,0xd2c7,0xd2c8,0xd2c9,0xd2ca, +0xd2cb,0xd2cd,0xd2ce,0xd2cf,0xd2d0,0xd2d1,0xd2d2,0xd2d3, +0xd2d4,0xd2d5,0xd2d6,0xd2d7,0xd2d9,0xd2da,0xd2de,0xd2df, +0xd2e1,0xd2e2,0xd2e4,0xd2e5,0xd2e6,0xd2e7,0xd2e8,0xd2e9, +0xd2ea,0xd2eb,0xd2f0,0xd2f1,0xd2f2,0xd2f3,0xd2f4,0xd2f5, +0xd2f7,0xd2f8,0xd4e6,0xd4fc,0xd5a5,0xd5ab,0xd5ae,0xd6b8, +0xd6cd,0xd7cb,0xd7e4,0xdbc5,0xdbe4,0xdca5,0xdda5,0xddd5, +0xddf4,0xdefc,0xdefe,0xdfb3,0xdfe1,0xdfe8,0xe0f1,0xe1ad, +0xe1ed,0xe3f5,0xe4a1,0xe4a9,0xe5ae,0xe5b1,0xe5b2,0xe5b9, +0xe5bb,0xe5bc,0xe5c4,0xe5ce,0xe5d0,0xe5d2,0xe5d6,0xe5fa, +0xe5fb,0xe5fc,0xe5fe,0xe6a1,0xe6a4,0xe6a7,0xe6ad,0xe6af, +0xe6b0,0xe6b1,0xe6b3,0xe6b7,0xe6b8,0xe6bc,0xe6c4,0xe6c6, +0xe6c7,0xe6ca,0xe6d2,0xe6d6,0xe6d9,0xe6dc,0xe6df,0xe6e1, +0xe6e4,0xe6e5,0xe6e6,0xe6e8,0xe6ea,0xe6eb,0xe6ec,0xe6ef, +0xe6f1,0xe6f2,0xe6f5,0xe6f6,0xe6f7,0xe6f9,0xe7a1,0xe7a6, +0xe7a9,0xe7aa,0xe7ac,0xe7ad,0xe7b0,0xe7bf,0xe7c1,0xe7c6, +0xe7c7,0xe7cb,0xe7cd,0xe7cf,0xe7d0,0xe7d3,0xe7df,0xe7e4, +0xe7e6,0xe7f7,0xe8e7,0xe8e8,0xe8f0,0xe8f1,0xe8f7,0xe8f9, +0xe8fb,0xe8fe,0xe9a7,0xe9ac,0xe9cc,0xe9f7,0xeac1,0xeae5, +0xeaf4,0xeaf7,0xeafc,0xeafe,0xeba4,0xeba7,0xeba9,0xebaa, +0xebba,0xebbb,0xebbd,0xebc1,0xebc2,0xebc6,0xebc7,0xebcc, +0xebcf,0xebd0,0xebd1,0xebd2,0xebd8,0xeca6,0xeca7,0xecaa, +0xecaf,0xecb0,0xecb1,0xecb2,0xecb5,0xecb8,0xecba,0xecc0, +0xecc1,0xecc5,0xecc6,0xecc9,0xecca,0xecd5,0xecdd,0xecde, +0xece1,0xece4,0xece7,0xece8,0xecf7,0xecf8,0xecfa,0xeda1, +0xeda2,0xeda3,0xedee,0xeedb,0xf2bd,0xf2fa,0xf3b1,0xf4a7, +0xf4ee,0xf6f4,0xf6f6,0xf7b8,0xf7c8,0xf7d3,0xf8db,0xf8f0, +0xfaa1,0xfaa2,0xfae6,0xfca9}; + +const int ucs_r1_uhc_table_min = 0xf800; +const int ucs_r1_uhc_table_max = 0xf800 + (sizeof(ucs_r1_uhc_table)/sizeof(unsigned short)); + +const unsigned short ucs_r2_uhc_table[] = { +/* 0xff00 */ +0x0000,0xa3a1,0xa3a2,0xa3a3,0xa3a4,0xa3a5,0xa3a6,0xa3a7, +0xa3a8,0xa3a9,0xa3aa,0xa3ab,0xa3ac,0xa3ad,0xa3ae,0xa3af, +0xa3b0,0xa3b1,0xa3b2,0xa3b3,0xa3b4,0xa3b5,0xa3b6,0xa3b7, +0xa3b8,0xa3b9,0xa3ba,0xa3bb,0xa3bc,0xa3bd,0xa3be,0xa3bf, +0xa3c0,0xa3c1,0xa3c2,0xa3c3,0xa3c4,0xa3c5,0xa3c6,0xa3c7, +0xa3c8,0xa3c9,0xa3ca,0xa3cb,0xa3cc,0xa3cd,0xa3ce,0xa3cf, +0xa3d0,0xa3d1,0xa3d2,0xa3d3,0xa3d4,0xa3d5,0xa3d6,0xa3d7, +0xa3d8,0xa3d9,0xa3da,0xa3db,0xa1ac,0xa3dd,0xa3de,0xa3df, +0xa3e0,0xa3e1,0xa3e2,0xa3e3,0xa3e4,0xa3e5,0xa3e6,0xa3e7, +0xa3e8,0xa3e9,0xa3ea,0xa3eb,0xa3ec,0xa3ed,0xa3ee,0xa3ef, +0xa3f0,0xa3f1,0xa3f2,0xa3f3,0xa3f4,0xa3f5,0xa3f6,0xa3f7, +0xa3f8,0xa3f9,0xa3fa,0xa3fb,0xa3fc,0xa3fd,0xa2a6,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xa1cb,0xa1cc,0xa1fe,0xa3fe,0x0000,0xa1cd,0xa3dc}; + +const int ucs_r2_uhc_table_min = 0xff00; +const int ucs_r2_uhc_table_max = 0xff00 + (sizeof (ucs_r2_uhc_table) / sizeof (unsigned short)); + +#else + +extern const unsigned short uhc1_ucs_table[]; +extern const unsigned short uhc2_ucs_table[]; +extern const unsigned short uhc3_ucs_table[]; +extern const unsigned short ucs_a1_uhc_table[]; +extern const unsigned short ucs_a2_uhc_table[]; +extern const unsigned short ucs_a3_uhc_table[]; +extern const unsigned short ucs_i_uhc_table[]; +extern const unsigned short ucs_s_uhc_table[]; +extern const unsigned short ucs_r1_uhc_table[]; +extern const unsigned short ucs_r2_uhc_table[]; + +extern const int uhc1_ucs_table_size; +extern const int uhc2_ucs_table_size; +extern const int uhc3_ucs_table_size; +extern const int ucs_a1_uhc_table_min; +extern const int ucs_a1_uhc_table_max; +extern const int ucs_a2_uhc_table_min; +extern const int ucs_a2_uhc_table_max; +extern const int ucs_a3_uhc_table_min; +extern const int ucs_a3_uhc_table_max; +extern const int ucs_i_uhc_table_min; +extern const int ucs_i_uhc_table_max; +extern const int ucs_s_uhc_table_min; +extern const int ucs_s_uhc_table_max; +extern const int ucs_r1_uhc_table_min; +extern const int ucs_r1_uhc_table_max; +extern const int ucs_r2_uhc_table_min; +extern const int ucs_r2_uhc_table_max; + + + + +#endif + + + +#endif /* UNICODE_TABLE_UHC_H */ diff --git a/ext/mbstring/libmbfl/mbfl/Makefile.am b/ext/mbstring/libmbfl/mbfl/Makefile.am new file mode 100644 index 0000000..6774d88 --- /dev/null +++ b/ext/mbstring/libmbfl/mbfl/Makefile.am @@ -0,0 +1,48 @@ +EXTRA_DIST=mk_eaw_tbl.awk +lib_LTLIBRARIES=libmbfl.la +libmbfl_la_SOURCES=mbfilter.c \ + mbfl_string.c \ + mbfl_language.c \ + mbfl_encoding.c \ + mbfl_convert.c \ + mbfl_ident.c \ + mbfl_memory_device.c \ + mbfl_allocators.c \ + mbfl_filter_output.c \ + mbfilter_pass.c \ + mbfilter_wchar.c \ + mbfilter_8bit.c \ + eaw_table.h +libmbfl_filters_la=../filters/libmbfl_filters.la +libmbfl_nls_la=../nls/libmbfl_nls.la +libmbfl_la_LIBADD=$(libmbfl_filters_la) $(libmbfl_nls_la) +libmbfl_la_LDFLAGS=-version-info $(SHLIB_VERSION) +libmbfl_includedir=$(includedir)/mbfl +libmbfl_include_HEADERS=mbfilter.h \ + mbfl_consts.h \ + mbfl_encoding.h \ + mbfl_language.h \ + mbfl_string.h \ + mbfl_convert.h \ + mbfl_ident.h \ + mbfl_memory_device.h \ + mbfl_allocators.h \ + mbfl_defs.h \ + mbfl_filter_output.h \ + mbfilter_pass.h \ + mbfilter_wchar.h \ + mbfilter_8bit.h + +mbfilter.c: eaw_table.h + +eaw_table.h: mk_eaw_tbl.awk + $(AWK) -v TABLE_NAME=mbfl_eaw_table -f mk_eaw_tbl.awk EastAsianWidth.txt > $@ + +EastAsianWidth.txt: + $(FETCH_VIA_FTP) ftp://ftp.unicode.org/Public/UNIDATA/EastAsianWidth.txt + +$(libmbfl_filters_la): + $(MAKE) -C `dirname $(libmbfl_filters_la)` + +$(libmbfl_nls_la): + $(MAKE) -C `dirname $(libmbfl_nls_la)` diff --git a/ext/mbstring/libmbfl/mbfl/eaw_table.h b/ext/mbstring/libmbfl/mbfl/eaw_table.h new file mode 100644 index 0000000..af310ea --- /dev/null +++ b/ext/mbstring/libmbfl/mbfl/eaw_table.h @@ -0,0 +1,44 @@ +static const struct { + int begin; + int end; +} mbfl_eaw_table[] = { + { 0x1100, 0x115f }, + { 0x11a3, 0x11a7 }, + { 0x11fa, 0x11ff }, + { 0x2329, 0x232a }, + { 0x2e80, 0x2e99 }, + { 0x2e9b, 0x2ef3 }, + { 0x2f00, 0x2fd5 }, + { 0x2ff0, 0x2ffb }, + { 0x3000, 0x303e }, + { 0x3041, 0x3096 }, + { 0x3099, 0x30ff }, + { 0x3105, 0x312d }, + { 0x3131, 0x318e }, + { 0x3190, 0x31ba }, + { 0x31c0, 0x31e3 }, + { 0x31f0, 0x321e }, + { 0x3220, 0x3247 }, + { 0x3250, 0x32fe }, + { 0x3300, 0x4dbf }, + { 0x4e00, 0xa48c }, + { 0xa490, 0xa4c6 }, + { 0xa960, 0xa97c }, + { 0xac00, 0xd7a3 }, + { 0xd7b0, 0xd7c6 }, + { 0xd7cb, 0xd7fb }, + { 0xf900, 0xfaff }, + { 0xfe10, 0xfe19 }, + { 0xfe30, 0xfe52 }, + { 0xfe54, 0xfe66 }, + { 0xfe68, 0xfe6b }, + { 0xff01, 0xff60 }, + { 0xffe0, 0xffe6 }, + { 0x1b000, 0x1b001 }, + { 0x1f200, 0x1f202 }, + { 0x1f210, 0x1f23a }, + { 0x1f240, 0x1f248 }, + { 0x1f250, 0x1f251 }, + { 0x20000, 0x2fffd }, + { 0x30000, 0x3fffd } +}; diff --git a/ext/mbstring/libmbfl/mbfl/mbfilter.c b/ext/mbstring/libmbfl/mbfl/mbfilter.c new file mode 100644 index 0000000..b3759f9 --- /dev/null +++ b/ext/mbstring/libmbfl/mbfl/mbfilter.c @@ -0,0 +1,3112 @@ +/* + * charset=UTF-8 + * vim600: encoding=utf-8 + */ + +/* + * "streamable kanji code filter and converter" + * + * Copyright (c) 1998,1999,2000,2001 HappySize, Inc. All rights reserved. + * + * This software is released under the GNU Lesser General Public License. + * (Version 2.1, February 1999) + * Please read the following detail of the licence (in japanese). + * + * 雿輻刻迂隢暹∩辣 + * + * 柴賬艾扼U舀芸隡蝷整潦萸扎箝怒阡箝整芸隡蝷整 + * 潦萸扎箝胯雿璅拇喃質雿璅拇∠桀怒柴賬艾扼U恍 + * 嫘艾格貝押靽璅拙押∼怨雿踴整芸隡蝷整潦萸 + * 箝臭誑銝急閮∩辣怠艾柴賬艾扼U雿輻具隞扼胯芥璅拙 + * 摰X怨迂隢整整雿鈭箝具隞乩格∩辣怠艾柴賬艾扼U雿輻 + * 具胯扼整 + * + * 柴賬艾扼UGNU Lesser General Public License (Version 2.1, February + * 1999)怎內∩辣找蝙具具具艾格嫘怨迂隢整整GNU Lesser + * General Public License皞芥雿輻具怒胯芸隡蝷整潦萸扎箝賊 + * 怒閮梯姥敺敹閬整 + * + * GNU Lesser General Public License桀冽臭誑銝柴艾扼潦詻敺扼 + * 整GNU Lesser General Public License具胯整兵ibrary General + * Public License典潦啜艾柴扼 + * http://www.gnu.org/ --- GNU艾扼萸扎 + * http://www.gnu.org/copyleft/lesser.html --- 押扎颯喋寞 + * 柴押扎颯喋嫘桀摰嫘芥嫘摰芥嫘怒臭蝙具閮梯姥整 + * + * 芥敶蝷整沁NU准詻扼胯具桃孵桅V蝷箏整臭蜓撘萸柴 + * 胯整 + * + * 靽閮澆摰嫖 + * + * 柴賬艾扼U胯敺雿餅賬餅扯賬扎具格具西身閮 + * 箝艾整靽閮潦柴扼胯整柴賬艾扼U胯 + * 柴整整桃嗆扳靘艾具啜柴賬艾扼U格冽扼芥孵 + * 桃怠氬具具雿桐閮澆摰嫘蝷箝暺怎內艾 + * 游扼艾桐閮潦舐∪嫘扼柴賬艾扼U雿輻具蝯芥雿 + * 具芥蝯怒艾湔乓舫乓怠頨思芸瑕拿鞎∠銝格摰 + * 潦踴格憭晞胯桐桀具艾格摰喋怒扎艾胯格摰喋桀航賣扼雿輻刻 + * 敶蝷整舐洵銝怒西郎艾游扼艾敶蝷整胯格摰喋株 + * 唾憛怒銵整株摰臭桀具艾柴賊V整舀賊U怎∼靽閮潦 + * 憟蝝餉摰怠芸整 + * + * 雿璅抵桅蝯∪喃蝙冽∩辣怒扎艾桀 + * + * 102-0073 + * 曹漪賢隞啣箔畾萄1-13-5交砍唳蝚砌4F + * 芸隡蝷整潦萸扎 + * Phone: 03-3512-3655, Fax: 03-3512-3656 + * Email: sales@happysize.co.jp + * Web: http://happysize.com/ + * + * + * + * 研 <sgk@happysize.co.jp> + * + * 撅交韭 + * + * 1998/11/10 sgk implementation in C++ + * 1999/4/25 sgk C扳詻芥 + * 1999/4/26 sgk 亙怒踴摰鋆瞍W喋潦典芥怒踴餈賢 + * 1999/6/?? Unicode萸潦 + * 1999/6/22 sgk 押扎颯喋嫘LGPL怠氬 + * + */ + +/* + * Unicode support + * + * Portions copyright (c) 1999,2000,2001 by the PHP3 internationalization team. + * All rights reserved. + * + */ + + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include <stddef.h> + +#ifdef HAVE_STRING_H +#include <string.h> +#endif + +#ifdef HAVE_STRINGS_H +#include <strings.h> +#endif + +#ifdef HAVE_STDDEF_H +#include <stddef.h> +#endif + +#include "mbfilter.h" +#include "mbfl_filter_output.h" +#include "mbfilter_pass.h" +#include "filters/mbfilter_tl_jisx0201_jisx0208.h" + +#include "eaw_table.h" + +/* hex character table "0123456789ABCDEF" */ +static char mbfl_hexchar_table[] = { + 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x41,0x42,0x43,0x44,0x45,0x46 +}; + + + +/* + * encoding filter + */ +#define CK(statement) do { if ((statement) < 0) return (-1); } while (0) + + +/* + * buffering converter + */ +mbfl_buffer_converter * +mbfl_buffer_converter_new( + enum mbfl_no_encoding from, + enum mbfl_no_encoding to, + int buf_initsz) +{ + const mbfl_encoding *_from = mbfl_no2encoding(from); + const mbfl_encoding *_to = mbfl_no2encoding(to); + + return mbfl_buffer_converter_new2(_from ? _from: &mbfl_encoding_pass, _to ? _to: &mbfl_encoding_pass, buf_initsz); +} + +mbfl_buffer_converter * +mbfl_buffer_converter_new2( + const mbfl_encoding *from, + const mbfl_encoding *to, + int buf_initsz) +{ + mbfl_buffer_converter *convd; + + /* allocate */ + convd = (mbfl_buffer_converter*)mbfl_malloc(sizeof (mbfl_buffer_converter)); + if (convd == NULL) { + return NULL; + } + + /* initialize */ + convd->from = from; + convd->to = to; + + /* create convert filter */ + convd->filter1 = NULL; + convd->filter2 = NULL; + if (mbfl_convert_filter_get_vtbl(convd->from->no_encoding, convd->to->no_encoding) != NULL) { + convd->filter1 = mbfl_convert_filter_new(convd->from->no_encoding, convd->to->no_encoding, mbfl_memory_device_output, NULL, &convd->device); + } else { + convd->filter2 = mbfl_convert_filter_new(mbfl_no_encoding_wchar, convd->to->no_encoding, mbfl_memory_device_output, NULL, &convd->device); + if (convd->filter2 != NULL) { + convd->filter1 = mbfl_convert_filter_new(convd->from->no_encoding, + mbfl_no_encoding_wchar, + (int (*)(int, void*))convd->filter2->filter_function, + (int (*)(void*))convd->filter2->filter_flush, + convd->filter2); + if (convd->filter1 == NULL) { + mbfl_convert_filter_delete(convd->filter2); + } + } + } + if (convd->filter1 == NULL) { + return NULL; + } + + mbfl_memory_device_init(&convd->device, buf_initsz, buf_initsz/4); + + return convd; +} + + +void +mbfl_buffer_converter_delete(mbfl_buffer_converter *convd) +{ + if (convd != NULL) { + if (convd->filter1) { + mbfl_convert_filter_delete(convd->filter1); + } + if (convd->filter2) { + mbfl_convert_filter_delete(convd->filter2); + } + mbfl_memory_device_clear(&convd->device); + mbfl_free((void*)convd); + } +} + +void +mbfl_buffer_converter_reset(mbfl_buffer_converter *convd) +{ + mbfl_memory_device_reset(&convd->device); +} + +int +mbfl_buffer_converter_illegal_mode(mbfl_buffer_converter *convd, int mode) +{ + if (convd != NULL) { + if (convd->filter2 != NULL) { + convd->filter2->illegal_mode = mode; + } else if (convd->filter1 != NULL) { + convd->filter1->illegal_mode = mode; + } else { + return 0; + } + } + + return 1; +} + +int +mbfl_buffer_converter_illegal_substchar(mbfl_buffer_converter *convd, int substchar) +{ + if (convd != NULL) { + if (convd->filter2 != NULL) { + convd->filter2->illegal_substchar = substchar; + } else if (convd->filter1 != NULL) { + convd->filter1->illegal_substchar = substchar; + } else { + return 0; + } + } + + return 1; +} + +int +mbfl_buffer_converter_strncat(mbfl_buffer_converter *convd, const unsigned char *p, int n) +{ + mbfl_convert_filter *filter; + int (*filter_function)(int c, mbfl_convert_filter *filter); + + if (convd != NULL && p != NULL) { + filter = convd->filter1; + if (filter != NULL) { + filter_function = filter->filter_function; + while (n > 0) { + if ((*filter_function)(*p++, filter) < 0) { + break; + } + n--; + } + } + } + + return n; +} + +int +mbfl_buffer_converter_feed(mbfl_buffer_converter *convd, mbfl_string *string) +{ + return mbfl_buffer_converter_feed2(convd, string, NULL); +} + +int +mbfl_buffer_converter_feed2(mbfl_buffer_converter *convd, mbfl_string *string, int *loc) +{ + int n; + unsigned char *p; + mbfl_convert_filter *filter; + int (*filter_function)(int c, mbfl_convert_filter *filter); + + if (convd == NULL || string == NULL) { + return -1; + } + mbfl_memory_device_realloc(&convd->device, convd->device.pos + string->len, string->len/4); + /* feed data */ + n = string->len; + p = string->val; + + filter = convd->filter1; + if (filter != NULL) { + filter_function = filter->filter_function; + while (n > 0) { + if ((*filter_function)(*p++, filter) < 0) { + if (loc) { + *loc = p - string->val; + } + return -1; + } + n--; + } + } + if (loc) { + *loc = p - string->val; + } + return 0; +} + + +int +mbfl_buffer_converter_flush(mbfl_buffer_converter *convd) +{ + if (convd == NULL) { + return -1; + } + + if (convd->filter1 != NULL) { + mbfl_convert_filter_flush(convd->filter1); + } + if (convd->filter2 != NULL) { + mbfl_convert_filter_flush(convd->filter2); + } + + return 0; +} + +mbfl_string * +mbfl_buffer_converter_getbuffer(mbfl_buffer_converter *convd, mbfl_string *result) +{ + if (convd != NULL && result != NULL && convd->device.buffer != NULL) { + result->no_encoding = convd->to->no_encoding; + result->val = convd->device.buffer; + result->len = convd->device.pos; + } else { + result = NULL; + } + + return result; +} + +mbfl_string * +mbfl_buffer_converter_result(mbfl_buffer_converter *convd, mbfl_string *result) +{ + if (convd == NULL || result == NULL) { + return NULL; + } + result->no_encoding = convd->to->no_encoding; + return mbfl_memory_device_result(&convd->device, result); +} + +mbfl_string * +mbfl_buffer_converter_feed_result(mbfl_buffer_converter *convd, mbfl_string *string, + mbfl_string *result) +{ + if (convd == NULL || string == NULL || result == NULL) { + return NULL; + } + mbfl_buffer_converter_feed(convd, string); + if (convd->filter1 != NULL) { + mbfl_convert_filter_flush(convd->filter1); + } + if (convd->filter2 != NULL) { + mbfl_convert_filter_flush(convd->filter2); + } + result->no_encoding = convd->to->no_encoding; + return mbfl_memory_device_result(&convd->device, result); +} + +int mbfl_buffer_illegalchars(mbfl_buffer_converter *convd) +{ + int num_illegalchars = 0; + + if (convd == NULL) { + return 0; + } + + if (convd->filter1 != NULL) { + num_illegalchars += convd->filter1->num_illegalchar; + } + + if (convd->filter2 != NULL) { + num_illegalchars += convd->filter2->num_illegalchar; + } + + return (num_illegalchars); +} + +/* + * encoding detector + */ +mbfl_encoding_detector * +mbfl_encoding_detector_new(enum mbfl_no_encoding *elist, int elistsz, int strict) +{ + mbfl_encoding_detector *identd; + + int i, num; + mbfl_identify_filter *filter; + + if (elist == NULL || elistsz <= 0) { + return NULL; + } + + /* allocate */ + identd = (mbfl_encoding_detector*)mbfl_malloc(sizeof(mbfl_encoding_detector)); + if (identd == NULL) { + return NULL; + } + identd->filter_list = (mbfl_identify_filter **)mbfl_calloc(elistsz, sizeof(mbfl_identify_filter *)); + if (identd->filter_list == NULL) { + mbfl_free(identd); + return NULL; + } + + /* create filters */ + i = 0; + num = 0; + while (i < elistsz) { + filter = mbfl_identify_filter_new(elist[i]); + if (filter != NULL) { + identd->filter_list[num] = filter; + num++; + } + i++; + } + identd->filter_list_size = num; + + /* set strict flag */ + identd->strict = strict; + + return identd; +} + +mbfl_encoding_detector * +mbfl_encoding_detector_new2(const mbfl_encoding **elist, int elistsz, int strict) +{ + mbfl_encoding_detector *identd; + + int i, num; + mbfl_identify_filter *filter; + + if (elist == NULL || elistsz <= 0) { + return NULL; + } + + /* allocate */ + identd = (mbfl_encoding_detector*)mbfl_malloc(sizeof(mbfl_encoding_detector)); + if (identd == NULL) { + return NULL; + } + identd->filter_list = (mbfl_identify_filter **)mbfl_calloc(elistsz, sizeof(mbfl_identify_filter *)); + if (identd->filter_list == NULL) { + mbfl_free(identd); + return NULL; + } + + /* create filters */ + i = 0; + num = 0; + while (i < elistsz) { + filter = mbfl_identify_filter_new2(elist[i]); + if (filter != NULL) { + identd->filter_list[num] = filter; + num++; + } + i++; + } + identd->filter_list_size = num; + + /* set strict flag */ + identd->strict = strict; + + return identd; +} + + +void +mbfl_encoding_detector_delete(mbfl_encoding_detector *identd) +{ + int i; + + if (identd != NULL) { + if (identd->filter_list != NULL) { + i = identd->filter_list_size; + while (i > 0) { + i--; + mbfl_identify_filter_delete(identd->filter_list[i]); + } + mbfl_free((void *)identd->filter_list); + } + mbfl_free((void *)identd); + } +} + +int +mbfl_encoding_detector_feed(mbfl_encoding_detector *identd, mbfl_string *string) +{ + int i, n, num, bad, res; + unsigned char *p; + mbfl_identify_filter *filter; + + res = 0; + /* feed data */ + if (identd != NULL && string != NULL && string->val != NULL) { + num = identd->filter_list_size; + n = string->len; + p = string->val; + bad = 0; + while (n > 0) { + for (i = 0; i < num; i++) { + filter = identd->filter_list[i]; + if (!filter->flag) { + (*filter->filter_function)(*p, filter); + if (filter->flag) { + bad++; + } + } + } + if ((num - 1) <= bad) { + res = 1; + break; + } + p++; + n--; + } + } + + return res; +} + +const mbfl_encoding *mbfl_encoding_detector_judge2(mbfl_encoding_detector *identd) +{ + mbfl_identify_filter *filter; + const mbfl_encoding *encoding = NULL; + int n; + + /* judge */ + if (identd != NULL) { + n = identd->filter_list_size - 1; + while (n >= 0) { + filter = identd->filter_list[n]; + if (!filter->flag) { + if (!identd->strict || !filter->status) { + encoding = filter->encoding; + } + } + n--; + } + + /* fallback judge */ + if (!encoding) { + n = identd->filter_list_size - 1; + while (n >= 0) { + filter = identd->filter_list[n]; + if (!filter->flag) { + encoding = filter->encoding; + } + n--; + } + } + } + + return encoding; +} + +enum mbfl_no_encoding mbfl_encoding_detector_judge(mbfl_encoding_detector *identd) +{ + const mbfl_encoding *encoding = mbfl_encoding_detector_judge2(identd); + return !encoding ? mbfl_no_encoding_invalid: encoding->no_encoding; +} + + +/* + * encoding converter + */ +mbfl_string * +mbfl_convert_encoding( + mbfl_string *string, + mbfl_string *result, + enum mbfl_no_encoding toenc) +{ + int n; + unsigned char *p; + const mbfl_encoding *encoding; + mbfl_memory_device device; + mbfl_convert_filter *filter1; + mbfl_convert_filter *filter2; + + /* initialize */ + encoding = mbfl_no2encoding(toenc); + if (encoding == NULL || string == NULL || result == NULL) { + return NULL; + } + + filter1 = NULL; + filter2 = NULL; + if (mbfl_convert_filter_get_vtbl(string->no_encoding, toenc) != NULL) { + filter1 = mbfl_convert_filter_new(string->no_encoding, toenc, mbfl_memory_device_output, 0, &device); + } else { + filter2 = mbfl_convert_filter_new(mbfl_no_encoding_wchar, toenc, mbfl_memory_device_output, 0, &device); + if (filter2 != NULL) { + filter1 = mbfl_convert_filter_new(string->no_encoding, mbfl_no_encoding_wchar, (int (*)(int, void*))filter2->filter_function, NULL, filter2); + if (filter1 == NULL) { + mbfl_convert_filter_delete(filter2); + } + } + } + if (filter1 == NULL) { + return NULL; + } + + if (filter2 != NULL) { + filter2->illegal_mode = MBFL_OUTPUTFILTER_ILLEGAL_MODE_CHAR; + filter2->illegal_substchar = 0x3f; /* '?' */ + } + + mbfl_memory_device_init(&device, string->len, (string->len >> 2) + 8); + + /* feed data */ + n = string->len; + p = string->val; + if (p != NULL) { + while (n > 0) { + if ((*filter1->filter_function)(*p++, filter1) < 0) { + break; + } + n--; + } + } + + mbfl_convert_filter_flush(filter1); + mbfl_convert_filter_delete(filter1); + if (filter2 != NULL) { + mbfl_convert_filter_flush(filter2); + mbfl_convert_filter_delete(filter2); + } + + return mbfl_memory_device_result(&device, result); +} + + +/* + * identify encoding + */ +const mbfl_encoding * +mbfl_identify_encoding(mbfl_string *string, enum mbfl_no_encoding *elist, int elistsz, int strict) +{ + int i, n, num, bad; + unsigned char *p; + mbfl_identify_filter *flist, *filter; + const mbfl_encoding *encoding; + + /* flist is an array of mbfl_identify_filter instances */ + flist = (mbfl_identify_filter *)mbfl_calloc(elistsz, sizeof(mbfl_identify_filter)); + if (flist == NULL) { + return NULL; + } + + num = 0; + if (elist != NULL) { + for (i = 0; i < elistsz; i++) { + if (!mbfl_identify_filter_init(&flist[num], elist[i])) { + num++; + } + } + } + + /* feed data */ + n = string->len; + p = string->val; + + if (p != NULL) { + bad = 0; + while (n > 0) { + for (i = 0; i < num; i++) { + filter = &flist[i]; + if (!filter->flag) { + (*filter->filter_function)(*p, filter); + if (filter->flag) { + bad++; + } + } + } + if ((num - 1) <= bad && !strict) { + break; + } + p++; + n--; + } + } + + /* judge */ + encoding = NULL; + + for (i = 0; i < num; i++) { + filter = &flist[i]; + if (!filter->flag) { + if (strict && filter->status) { + continue; + } + encoding = filter->encoding; + break; + } + } + + /* fall-back judge */ + if (!encoding) { + for (i = 0; i < num; i++) { + filter = &flist[i]; + if (!filter->flag && (!strict || !filter->status)) { + encoding = filter->encoding; + break; + } + } + } + + /* cleanup */ + /* dtors should be called in reverse order */ + i = num; while (--i >= 0) { + mbfl_identify_filter_cleanup(&flist[i]); + } + + mbfl_free((void *)flist); + + return encoding; +} + +const mbfl_encoding * +mbfl_identify_encoding2(mbfl_string *string, const mbfl_encoding **elist, int elistsz, int strict) +{ + int i, n, num, bad; + unsigned char *p; + mbfl_identify_filter *flist, *filter; + const mbfl_encoding *encoding; + + /* flist is an array of mbfl_identify_filter instances */ + flist = (mbfl_identify_filter *)mbfl_calloc(elistsz, sizeof(mbfl_identify_filter)); + if (flist == NULL) { + return NULL; + } + + num = 0; + if (elist != NULL) { + for (i = 0; i < elistsz; i++) { + if (!mbfl_identify_filter_init2(&flist[num], elist[i])) { + num++; + } + } + } + + /* feed data */ + n = string->len; + p = string->val; + + if (p != NULL) { + bad = 0; + while (n > 0) { + for (i = 0; i < num; i++) { + filter = &flist[i]; + if (!filter->flag) { + (*filter->filter_function)(*p, filter); + if (filter->flag) { + bad++; + } + } + } + if ((num - 1) <= bad && !strict) { + break; + } + p++; + n--; + } + } + + /* judge */ + encoding = NULL; + + for (i = 0; i < num; i++) { + filter = &flist[i]; + if (!filter->flag) { + if (strict && filter->status) { + continue; + } + encoding = filter->encoding; + break; + } + } + + /* fall-back judge */ + if (!encoding) { + for (i = 0; i < num; i++) { + filter = &flist[i]; + if (!filter->flag && (!strict || !filter->status)) { + encoding = filter->encoding; + break; + } + } + } + + /* cleanup */ + /* dtors should be called in reverse order */ + i = num; while (--i >= 0) { + mbfl_identify_filter_cleanup(&flist[i]); + } + + mbfl_free((void *)flist); + + return encoding; +} + +/* + * strlen + */ +static int +filter_count_output(int c, void *data) +{ + (*(int *)data)++; + return c; +} + +int +mbfl_strlen(mbfl_string *string) +{ + int len, n, m, k; + unsigned char *p; + const unsigned char *mbtab; + const mbfl_encoding *encoding; + + encoding = mbfl_no2encoding(string->no_encoding); + if (encoding == NULL || string == NULL) { + return -1; + } + + len = 0; + if (encoding->flag & MBFL_ENCTYPE_SBCS) { + len = string->len; + } else if (encoding->flag & (MBFL_ENCTYPE_WCS2BE | MBFL_ENCTYPE_WCS2LE)) { + len = string->len/2; + } else if (encoding->flag & (MBFL_ENCTYPE_WCS4BE | MBFL_ENCTYPE_WCS4LE)) { + len = string->len/4; + } else if (encoding->mblen_table != NULL) { + mbtab = encoding->mblen_table; + n = 0; + p = string->val; + k = string->len; + /* count */ + if (p != NULL) { + while (n < k) { + m = mbtab[*p]; + n += m; + p += m; + len++; + }; + } + } else { + /* wchar filter */ + mbfl_convert_filter *filter = mbfl_convert_filter_new( + string->no_encoding, + mbfl_no_encoding_wchar, + filter_count_output, 0, &len); + if (filter == NULL) { + return -1; + } + /* count */ + n = string->len; + p = string->val; + if (p != NULL) { + while (n > 0) { + (*filter->filter_function)(*p++, filter); + n--; + } + } + mbfl_convert_filter_delete(filter); + } + + return len; +} + + +/* + * strpos + */ +struct collector_strpos_data { + mbfl_convert_filter *next_filter; + mbfl_wchar_device needle; + int needle_len; + int start; + int output; + int found_pos; + int needle_pos; + int matched_pos; +}; + +static int +collector_strpos(int c, void* data) +{ + int *p, *h, *m, n; + struct collector_strpos_data *pc = (struct collector_strpos_data*)data; + + if (pc->output >= pc->start) { + if (c == (int)pc->needle.buffer[pc->needle_pos]) { + if (pc->needle_pos == 0) { + pc->found_pos = pc->output; /* found position */ + } + pc->needle_pos++; /* needle pointer */ + if (pc->needle_pos >= pc->needle_len) { + pc->matched_pos = pc->found_pos; /* matched position */ + pc->needle_pos--; + goto retry; + } + } else if (pc->needle_pos != 0) { +retry: + h = (int *)pc->needle.buffer; + h++; + for (;;) { + pc->found_pos++; + p = h; + m = (int *)pc->needle.buffer; + n = pc->needle_pos - 1; + while (n > 0 && *p == *m) { + n--; + p++; + m++; + } + if (n <= 0) { + if (*m != c) { + pc->needle_pos = 0; + } + break; + } else { + h++; + pc->needle_pos--; + } + } + } + } + + pc->output++; + return c; +} + +/* + * oddlen + */ +int +mbfl_oddlen(mbfl_string *string) +{ + int len, n, m, k; + unsigned char *p; + const unsigned char *mbtab; + const mbfl_encoding *encoding; + + + if (string == NULL) { + return -1; + } + encoding = mbfl_no2encoding(string->no_encoding); + if (encoding == NULL) { + return -1; + } + + len = 0; + if (encoding->flag & MBFL_ENCTYPE_SBCS) { + return 0; + } else if (encoding->flag & (MBFL_ENCTYPE_WCS2BE | MBFL_ENCTYPE_WCS2LE)) { + return len % 2; + } else if (encoding->flag & (MBFL_ENCTYPE_WCS4BE | MBFL_ENCTYPE_WCS4LE)) { + return len % 4; + } else if (encoding->mblen_table != NULL) { + mbtab = encoding->mblen_table; + n = 0; + p = string->val; + k = string->len; + /* count */ + if (p != NULL) { + while (n < k) { + m = mbtab[*p]; + n += m; + p += m; + }; + } + return n-k; + } else { + /* how can i do ? */ + return 0; + } + /* NOT REACHED */ +} + +int +mbfl_strpos( + mbfl_string *haystack, + mbfl_string *needle, + int offset, + int reverse) +{ + int result; + mbfl_string _haystack_u8, _needle_u8; + const mbfl_string *haystack_u8, *needle_u8; + const unsigned char *u8_tbl; + + if (haystack == NULL || haystack->val == NULL || needle == NULL || needle->val == NULL) { + return -8; + } + + { + const mbfl_encoding *u8_enc; + u8_enc = mbfl_no2encoding(mbfl_no_encoding_utf8); + if (u8_enc == NULL || u8_enc->mblen_table == NULL) { + return -8; + } + u8_tbl = u8_enc->mblen_table; + } + + if (haystack->no_encoding != mbfl_no_encoding_utf8) { + mbfl_string_init(&_haystack_u8); + haystack_u8 = mbfl_convert_encoding(haystack, &_haystack_u8, mbfl_no_encoding_utf8); + if (haystack_u8 == NULL) { + result = -4; + goto out; + } + } else { + haystack_u8 = haystack; + } + + if (needle->no_encoding != mbfl_no_encoding_utf8) { + mbfl_string_init(&_needle_u8); + needle_u8 = mbfl_convert_encoding(needle, &_needle_u8, mbfl_no_encoding_utf8); + if (needle_u8 == NULL) { + result = -4; + goto out; + } + } else { + needle_u8 = needle; + } + + if (needle_u8->len < 1) { + result = -8; + goto out; + } + + result = -1; + if (haystack_u8->len < needle_u8->len) { + goto out; + } + + if (!reverse) { + unsigned int jtbl[1 << (sizeof(unsigned char) * 8)]; + unsigned int needle_u8_len = needle_u8->len; + unsigned int i; + const unsigned char *p, *q, *e; + const unsigned char *haystack_u8_val = haystack_u8->val, + *needle_u8_val = needle_u8->val; + for (i = 0; i < sizeof(jtbl) / sizeof(*jtbl); ++i) { + jtbl[i] = needle_u8_len + 1; + } + for (i = 0; i < needle_u8_len - 1; ++i) { + jtbl[needle_u8_val[i]] = needle_u8_len - i; + } + e = haystack_u8_val + haystack_u8->len; + p = haystack_u8_val; + while (--offset >= 0) { + if (p >= e) { + result = -16; + goto out; + } + p += u8_tbl[*p]; + } + p += needle_u8_len; + if (p > e) { + goto out; + } + while (p <= e) { + const unsigned char *pv = p; + q = needle_u8_val + needle_u8_len; + for (;;) { + if (q == needle_u8_val) { + result = 0; + while (p > haystack_u8_val) { + unsigned char c = *--p; + if (c < 0x80) { + ++result; + } else if ((c & 0xc0) != 0x80) { + ++result; + } + } + goto out; + } + if (*--q != *--p) { + break; + } + } + p += jtbl[*p]; + if (p <= pv) { + p = pv + 1; + } + } + } else { + unsigned int jtbl[1 << (sizeof(unsigned char) * 8)]; + unsigned int needle_u8_len = needle_u8->len, needle_len = 0; + unsigned int i; + const unsigned char *p, *e, *q, *qe; + const unsigned char *haystack_u8_val = haystack_u8->val, + *needle_u8_val = needle_u8->val; + for (i = 0; i < sizeof(jtbl) / sizeof(*jtbl); ++i) { + jtbl[i] = needle_u8_len; + } + for (i = needle_u8_len - 1; i > 0; --i) { + unsigned char c = needle_u8_val[i]; + jtbl[c] = i; + if (c < 0x80) { + ++needle_len; + } else if ((c & 0xc0) != 0x80) { + ++needle_len; + } + } + { + unsigned char c = needle_u8_val[0]; + if (c < 0x80) { + ++needle_len; + } else if ((c & 0xc0) != 0x80) { + ++needle_len; + } + } + e = haystack_u8_val; + p = e + haystack_u8->len; + qe = needle_u8_val + needle_u8_len; + if (offset < 0) { + if (-offset > needle_len) { + offset += needle_len; + while (offset < 0) { + unsigned char c; + if (p <= e) { + result = -16; + goto out; + } + c = *(--p); + if (c < 0x80) { + ++offset; + } else if ((c & 0xc0) != 0x80) { + ++offset; + } + } + } + } else { + const unsigned char *ee = haystack_u8_val + haystack_u8->len; + while (--offset >= 0) { + if (e >= ee) { + result = -16; + goto out; + } + e += u8_tbl[*e]; + } + } + if (p < e + needle_u8_len) { + goto out; + } + p -= needle_u8_len; + while (p >= e) { + const unsigned char *pv = p; + q = needle_u8_val; + for (;;) { + if (q == qe) { + result = 0; + p -= needle_u8_len; + while (p > haystack_u8_val) { + unsigned char c = *--p; + if (c < 0x80) { + ++result; + } else if ((c & 0xc0) != 0x80) { + ++result; + } + } + goto out; + } + if (*q != *p) { + break; + } + ++p, ++q; + } + p -= jtbl[*p]; + if (p >= pv) { + p = pv - 1; + } + } + } +out: + if (haystack_u8 == &_haystack_u8) { + mbfl_string_clear(&_haystack_u8); + } + if (needle_u8 == &_needle_u8) { + mbfl_string_clear(&_needle_u8); + } + return result; +} + +/* + * substr_count + */ + +int +mbfl_substr_count( + mbfl_string *haystack, + mbfl_string *needle + ) +{ + int n, result = 0; + unsigned char *p; + mbfl_convert_filter *filter; + struct collector_strpos_data pc; + + if (haystack == NULL || needle == NULL) { + return -8; + } + /* needle is converted into wchar */ + mbfl_wchar_device_init(&pc.needle); + filter = mbfl_convert_filter_new( + needle->no_encoding, + mbfl_no_encoding_wchar, + mbfl_wchar_device_output, 0, &pc.needle); + if (filter == NULL) { + return -4; + } + p = needle->val; + n = needle->len; + if (p != NULL) { + while (n > 0) { + if ((*filter->filter_function)(*p++, filter) < 0) { + break; + } + n--; + } + } + mbfl_convert_filter_flush(filter); + mbfl_convert_filter_delete(filter); + pc.needle_len = pc.needle.pos; + if (pc.needle.buffer == NULL) { + return -4; + } + if (pc.needle_len <= 0) { + mbfl_wchar_device_clear(&pc.needle); + return -2; + } + /* initialize filter and collector data */ + filter = mbfl_convert_filter_new( + haystack->no_encoding, + mbfl_no_encoding_wchar, + collector_strpos, 0, &pc); + if (filter == NULL) { + mbfl_wchar_device_clear(&pc.needle); + return -4; + } + pc.start = 0; + pc.output = 0; + pc.needle_pos = 0; + pc.found_pos = 0; + pc.matched_pos = -1; + + /* feed data */ + p = haystack->val; + n = haystack->len; + if (p != NULL) { + while (n > 0) { + if ((*filter->filter_function)(*p++, filter) < 0) { + pc.matched_pos = -4; + break; + } + if (pc.matched_pos >= 0) { + ++result; + pc.matched_pos = -1; + pc.needle_pos = 0; + } + n--; + } + } + mbfl_convert_filter_flush(filter); + mbfl_convert_filter_delete(filter); + mbfl_wchar_device_clear(&pc.needle); + + return result; +} + +/* + * substr + */ +struct collector_substr_data { + mbfl_convert_filter *next_filter; + int start; + int stop; + int output; +}; + +static int +collector_substr(int c, void* data) +{ + struct collector_substr_data *pc = (struct collector_substr_data*)data; + + if (pc->output >= pc->stop) { + return -1; + } + + if (pc->output >= pc->start) { + (*pc->next_filter->filter_function)(c, pc->next_filter); + } + + pc->output++; + + return c; +} + +mbfl_string * +mbfl_substr( + mbfl_string *string, + mbfl_string *result, + int from, + int length) +{ + const mbfl_encoding *encoding; + int n, m, k, len, start, end; + unsigned char *p, *w; + const unsigned char *mbtab; + + encoding = mbfl_no2encoding(string->no_encoding); + if (encoding == NULL || string == NULL || result == NULL) { + return NULL; + } + mbfl_string_init(result); + result->no_language = string->no_language; + result->no_encoding = string->no_encoding; + + if ((encoding->flag & (MBFL_ENCTYPE_SBCS | MBFL_ENCTYPE_WCS2BE | MBFL_ENCTYPE_WCS2LE | MBFL_ENCTYPE_WCS4BE | MBFL_ENCTYPE_WCS4LE)) || + encoding->mblen_table != NULL) { + len = string->len; + start = from; + end = from + length; + if (encoding->flag & (MBFL_ENCTYPE_WCS2BE | MBFL_ENCTYPE_WCS2LE)) { + start *= 2; + end = start + length*2; + } else if (encoding->flag & (MBFL_ENCTYPE_WCS4BE | MBFL_ENCTYPE_WCS4LE)) { + start *= 4; + end = start + length*4; + } else if (encoding->mblen_table != NULL) { + mbtab = encoding->mblen_table; + start = 0; + end = 0; + n = 0; + k = 0; + p = string->val; + if (p != NULL) { + /* search start position */ + while (k <= from) { + start = n; + if (n >= len) { + break; + } + m = mbtab[*p]; + n += m; + p += m; + k++; + } + /* detect end position */ + k = 0; + end = start; + while (k < length) { + end = n; + if (n >= len) { + break; + } + m = mbtab[*p]; + n += m; + p += m; + k++; + } + } + } + + if (start > len) { + start = len; + } + if (start < 0) { + start = 0; + } + if (end > len) { + end = len; + } + if (end < 0) { + end = 0; + } + if (start > end) { + start = end; + } + + /* allocate memory and copy */ + n = end - start; + result->len = 0; + result->val = w = (unsigned char*)mbfl_malloc((n + 8)*sizeof(unsigned char)); + if (w != NULL) { + p = string->val; + if (p != NULL) { + p += start; + result->len = n; + while (n > 0) { + *w++ = *p++; + n--; + } + } + *w++ = '\0'; + *w++ = '\0'; + *w++ = '\0'; + *w = '\0'; + } else { + result = NULL; + } + } else { + mbfl_memory_device device; + struct collector_substr_data pc; + mbfl_convert_filter *decoder; + mbfl_convert_filter *encoder; + + mbfl_memory_device_init(&device, length + 1, 0); + mbfl_string_init(result); + result->no_language = string->no_language; + result->no_encoding = string->no_encoding; + /* output code filter */ + decoder = mbfl_convert_filter_new( + mbfl_no_encoding_wchar, + string->no_encoding, + mbfl_memory_device_output, 0, &device); + /* wchar filter */ + encoder = mbfl_convert_filter_new( + string->no_encoding, + mbfl_no_encoding_wchar, + collector_substr, 0, &pc); + if (decoder == NULL || encoder == NULL) { + mbfl_convert_filter_delete(encoder); + mbfl_convert_filter_delete(decoder); + return NULL; + } + pc.next_filter = decoder; + pc.start = from; + pc.stop = from + length; + pc.output = 0; + + /* feed data */ + p = string->val; + n = string->len; + if (p != NULL) { + while (n > 0) { + if ((*encoder->filter_function)(*p++, encoder) < 0) { + break; + } + n--; + } + } + + mbfl_convert_filter_flush(encoder); + mbfl_convert_filter_flush(decoder); + result = mbfl_memory_device_result(&device, result); + mbfl_convert_filter_delete(encoder); + mbfl_convert_filter_delete(decoder); + } + + return result; +} + +/* + * strcut + */ +mbfl_string * +mbfl_strcut( + mbfl_string *string, + mbfl_string *result, + int from, + int length) +{ + const mbfl_encoding *encoding; + mbfl_memory_device device; + + /* validate the parameters */ + if (string == NULL || string->val == NULL || result == NULL) { + return NULL; + } + + if (from < 0 || length < 0) { + return NULL; + } + + if (from >= string->len) { + from = string->len; + } + + encoding = mbfl_no2encoding(string->no_encoding); + if (encoding == NULL) { + return NULL; + } + + mbfl_string_init(result); + result->no_language = string->no_language; + result->no_encoding = string->no_encoding; + + if ((encoding->flag & (MBFL_ENCTYPE_SBCS + | MBFL_ENCTYPE_WCS2BE + | MBFL_ENCTYPE_WCS2LE + | MBFL_ENCTYPE_WCS4BE + | MBFL_ENCTYPE_WCS4LE)) + || encoding->mblen_table != NULL) { + const unsigned char *start = NULL; + const unsigned char *end = NULL; + unsigned char *w; + unsigned int sz; + + if (encoding->flag & (MBFL_ENCTYPE_WCS2BE | MBFL_ENCTYPE_WCS2LE)) { + from &= -2; + + if (from + length >= string->len) { + length = string->len - from; + } + + start = string->val + from; + end = start + (length & -2); + } else if (encoding->flag & (MBFL_ENCTYPE_WCS4BE | MBFL_ENCTYPE_WCS4LE)) { + from &= -4; + + if (from + length >= string->len) { + length = string->len - from; + } + + start = string->val + from; + end = start + (length & -4); + } else if ((encoding->flag & MBFL_ENCTYPE_SBCS)) { + if (from + length >= string->len) { + length = string->len - from; + } + + start = string->val + from; + end = start + length; + } else if (encoding->mblen_table != NULL) { + const unsigned char *mbtab = encoding->mblen_table; + const unsigned char *p, *q; + int m; + + /* search start position */ + for (m = 0, p = string->val, q = p + from; + p < q; p += (m = mbtab[*p])); + + if (p > q) { + p -= m; + } + + start = p; + + /* search end position */ + if ((start - string->val) + length >= (int)string->len) { + end = string->val + string->len; + } else { + for (q = p + length; p < q; p += (m = mbtab[*p])); + + if (p > q) { + p -= m; + } + end = p; + } + } else { + /* never reached */ + return NULL; + } + + /* allocate memory and copy string */ + sz = end - start; + if ((w = (unsigned char*)mbfl_calloc(sz + 8, + sizeof(unsigned char))) == NULL) { + return NULL; + } + + memcpy(w, start, sz); + w[sz] = '\0'; + w[sz + 1] = '\0'; + w[sz + 2] = '\0'; + w[sz + 3] = '\0'; + + result->val = w; + result->len = sz; + } else { + mbfl_convert_filter *encoder = NULL; + mbfl_convert_filter *decoder = NULL; + const unsigned char *p, *q, *r; + struct { + mbfl_convert_filter encoder; + mbfl_convert_filter decoder; + const unsigned char *p; + int pos; + } bk, _bk; + + /* output code filter */ + if (!(decoder = mbfl_convert_filter_new( + mbfl_no_encoding_wchar, + string->no_encoding, + mbfl_memory_device_output, 0, &device))) { + return NULL; + } + + /* wchar filter */ + if (!(encoder = mbfl_convert_filter_new( + string->no_encoding, + mbfl_no_encoding_wchar, + mbfl_filter_output_null, + NULL, NULL))) { + mbfl_convert_filter_delete(decoder); + return NULL; + } + + mbfl_memory_device_init(&device, length + 8, 0); + + p = string->val; + + /* search start position */ + for (q = string->val + from; p < q; p++) { + (*encoder->filter_function)(*p, encoder); + } + + /* switch the drain direction */ + encoder->output_function = (int(*)(int,void *))decoder->filter_function; + encoder->flush_function = (int(*)(void *))decoder->filter_flush; + encoder->data = decoder; + + q = string->val + string->len; + + /* save the encoder, decoder state and the pointer */ + mbfl_convert_filter_copy(decoder, &_bk.decoder); + mbfl_convert_filter_copy(encoder, &_bk.encoder); + _bk.p = p; + _bk.pos = device.pos; + + if (length > q - p) { + length = q - p; + } + + if (length >= 20) { + /* output a little shorter than "length" */ + /* XXX: the constant "20" was determined purely on the heuristics. */ + for (r = p + length - 20; p < r; p++) { + (*encoder->filter_function)(*p, encoder); + } + + /* if the offset of the resulting string exceeds the length, + * then restore the state */ + if (device.pos > length) { + p = _bk.p; + device.pos = _bk.pos; + decoder->filter_dtor(decoder); + encoder->filter_dtor(encoder); + mbfl_convert_filter_copy(&_bk.decoder, decoder); + mbfl_convert_filter_copy(&_bk.encoder, encoder); + bk = _bk; + } else { + /* save the encoder, decoder state and the pointer */ + mbfl_convert_filter_copy(decoder, &bk.decoder); + mbfl_convert_filter_copy(encoder, &bk.encoder); + bk.p = p; + bk.pos = device.pos; + + /* flush the stream */ + (*encoder->filter_flush)(encoder); + + /* if the offset of the resulting string exceeds the length, + * then restore the state */ + if (device.pos > length) { + bk.decoder.filter_dtor(&bk.decoder); + bk.encoder.filter_dtor(&bk.encoder); + + p = _bk.p; + device.pos = _bk.pos; + decoder->filter_dtor(decoder); + encoder->filter_dtor(encoder); + mbfl_convert_filter_copy(&_bk.decoder, decoder); + mbfl_convert_filter_copy(&_bk.encoder, encoder); + bk = _bk; + } else { + _bk.decoder.filter_dtor(&_bk.decoder); + _bk.encoder.filter_dtor(&_bk.encoder); + + p = bk.p; + device.pos = bk.pos; + decoder->filter_dtor(decoder); + encoder->filter_dtor(encoder); + mbfl_convert_filter_copy(&bk.decoder, decoder); + mbfl_convert_filter_copy(&bk.encoder, encoder); + } + } + } else { + bk = _bk; + } + + /* detect end position */ + while (p < q) { + (*encoder->filter_function)(*p, encoder); + + if (device.pos > length) { + /* restore filter */ + p = bk.p; + device.pos = bk.pos; + decoder->filter_dtor(decoder); + encoder->filter_dtor(encoder); + mbfl_convert_filter_copy(&bk.decoder, decoder); + mbfl_convert_filter_copy(&bk.encoder, encoder); + break; + } + + p++; + + /* backup current state */ + mbfl_convert_filter_copy(decoder, &_bk.decoder); + mbfl_convert_filter_copy(encoder, &_bk.encoder); + _bk.pos = device.pos; + _bk.p = p; + + (*encoder->filter_flush)(encoder); + + if (device.pos > length) { + _bk.decoder.filter_dtor(&_bk.decoder); + _bk.encoder.filter_dtor(&_bk.encoder); + + /* restore filter */ + p = bk.p; + device.pos = bk.pos; + decoder->filter_dtor(decoder); + encoder->filter_dtor(encoder); + mbfl_convert_filter_copy(&bk.decoder, decoder); + mbfl_convert_filter_copy(&bk.encoder, encoder); + break; + } + + bk.decoder.filter_dtor(&bk.decoder); + bk.encoder.filter_dtor(&bk.encoder); + + p = _bk.p; + device.pos = _bk.pos; + decoder->filter_dtor(decoder); + encoder->filter_dtor(encoder); + mbfl_convert_filter_copy(&_bk.decoder, decoder); + mbfl_convert_filter_copy(&_bk.encoder, encoder); + + bk = _bk; + } + + (*encoder->filter_flush)(encoder); + + bk.decoder.filter_dtor(&bk.decoder); + bk.encoder.filter_dtor(&bk.encoder); + + result = mbfl_memory_device_result(&device, result); + + mbfl_convert_filter_delete(encoder); + mbfl_convert_filter_delete(decoder); + } + + return result; +} + + +/* + * strwidth + */ +static int is_fullwidth(int c) +{ + int i; + + if (c < mbfl_eaw_table[0].begin) { + return 0; + } + + for (i = 0; i < sizeof(mbfl_eaw_table) / sizeof(mbfl_eaw_table[0]); i++) { + if (mbfl_eaw_table[i].begin <= c && c <= mbfl_eaw_table[i].end) { + return 1; + } + } + + return 0; +} + +static int +filter_count_width(int c, void* data) +{ + (*(int *)data) += (is_fullwidth(c) ? 2: 1); + return c; +} + +int +mbfl_strwidth(mbfl_string *string) +{ + int len, n; + unsigned char *p; + mbfl_convert_filter *filter; + + len = 0; + if (string->len > 0 && string->val != NULL) { + /* wchar filter */ + filter = mbfl_convert_filter_new( + string->no_encoding, + mbfl_no_encoding_wchar, + filter_count_width, 0, &len); + if (filter == NULL) { + mbfl_convert_filter_delete(filter); + return -1; + } + + /* feed data */ + p = string->val; + n = string->len; + while (n > 0) { + (*filter->filter_function)(*p++, filter); + n--; + } + + mbfl_convert_filter_flush(filter); + mbfl_convert_filter_delete(filter); + } + + return len; +} + + +/* + * strimwidth + */ +struct collector_strimwidth_data { + mbfl_convert_filter *decoder; + mbfl_convert_filter *decoder_backup; + mbfl_memory_device device; + int from; + int width; + int outwidth; + int outchar; + int status; + int endpos; +}; + +static int +collector_strimwidth(int c, void* data) +{ + struct collector_strimwidth_data *pc = (struct collector_strimwidth_data*)data; + + switch (pc->status) { + case 10: + (*pc->decoder->filter_function)(c, pc->decoder); + break; + default: + if (pc->outchar >= pc->from) { + pc->outwidth += (is_fullwidth(c) ? 2: 1); + + if (pc->outwidth > pc->width) { + if (pc->status == 0) { + pc->endpos = pc->device.pos; + mbfl_convert_filter_copy(pc->decoder, pc->decoder_backup); + } + pc->status++; + (*pc->decoder->filter_function)(c, pc->decoder); + c = -1; + } else { + (*pc->decoder->filter_function)(c, pc->decoder); + } + } + pc->outchar++; + break; + } + + return c; +} + +mbfl_string * +mbfl_strimwidth( + mbfl_string *string, + mbfl_string *marker, + mbfl_string *result, + int from, + int width) +{ + struct collector_strimwidth_data pc; + mbfl_convert_filter *encoder; + int n, mkwidth; + unsigned char *p; + + if (string == NULL || result == NULL) { + return NULL; + } + mbfl_string_init(result); + result->no_language = string->no_language; + result->no_encoding = string->no_encoding; + mbfl_memory_device_init(&pc.device, width, 0); + + /* output code filter */ + pc.decoder = mbfl_convert_filter_new( + mbfl_no_encoding_wchar, + string->no_encoding, + mbfl_memory_device_output, 0, &pc.device); + pc.decoder_backup = mbfl_convert_filter_new( + mbfl_no_encoding_wchar, + string->no_encoding, + mbfl_memory_device_output, 0, &pc.device); + /* wchar filter */ + encoder = mbfl_convert_filter_new( + string->no_encoding, + mbfl_no_encoding_wchar, + collector_strimwidth, 0, &pc); + if (pc.decoder == NULL || pc.decoder_backup == NULL || encoder == NULL) { + mbfl_convert_filter_delete(encoder); + mbfl_convert_filter_delete(pc.decoder); + mbfl_convert_filter_delete(pc.decoder_backup); + return NULL; + } + mkwidth = 0; + if (marker) { + mkwidth = mbfl_strwidth(marker); + } + pc.from = from; + pc.width = width - mkwidth; + pc.outwidth = 0; + pc.outchar = 0; + pc.status = 0; + pc.endpos = 0; + + /* feed data */ + p = string->val; + n = string->len; + if (p != NULL) { + while (n > 0) { + n--; + if ((*encoder->filter_function)(*p++, encoder) < 0) { + break; + } + } + mbfl_convert_filter_flush(encoder); + if (pc.status != 0 && mkwidth > 0) { + pc.width += mkwidth; + while (n > 0) { + if ((*encoder->filter_function)(*p++, encoder) < 0) { + break; + } + n--; + } + mbfl_convert_filter_flush(encoder); + if (pc.status != 1) { + pc.status = 10; + pc.device.pos = pc.endpos; + mbfl_convert_filter_copy(pc.decoder_backup, pc.decoder); + mbfl_convert_filter_reset(encoder, marker->no_encoding, mbfl_no_encoding_wchar); + p = marker->val; + n = marker->len; + while (n > 0) { + if ((*encoder->filter_function)(*p++, encoder) < 0) { + break; + } + n--; + } + mbfl_convert_filter_flush(encoder); + } + } else if (pc.status != 0) { + pc.device.pos = pc.endpos; + mbfl_convert_filter_copy(pc.decoder_backup, pc.decoder); + } + mbfl_convert_filter_flush(pc.decoder); + } + result = mbfl_memory_device_result(&pc.device, result); + mbfl_convert_filter_delete(encoder); + mbfl_convert_filter_delete(pc.decoder); + mbfl_convert_filter_delete(pc.decoder_backup); + + return result; +} + +mbfl_string * +mbfl_ja_jp_hantozen( + mbfl_string *string, + mbfl_string *result, + int mode) +{ + int n; + unsigned char *p; + const mbfl_encoding *encoding; + mbfl_memory_device device; + mbfl_convert_filter *decoder = NULL; + mbfl_convert_filter *encoder = NULL; + mbfl_convert_filter *tl_filter = NULL; + mbfl_convert_filter *next_filter = NULL; + mbfl_filt_tl_jisx0201_jisx0208_param *param = NULL; + + /* validate parameters */ + if (string == NULL || result == NULL) { + return NULL; + } + + encoding = mbfl_no2encoding(string->no_encoding); + if (encoding == NULL) { + return NULL; + } + + mbfl_memory_device_init(&device, string->len, 0); + mbfl_string_init(result); + + result->no_language = string->no_language; + result->no_encoding = string->no_encoding; + + decoder = mbfl_convert_filter_new( + mbfl_no_encoding_wchar, + string->no_encoding, + mbfl_memory_device_output, 0, &device); + if (decoder == NULL) { + goto out; + } + next_filter = decoder; + + param = + (mbfl_filt_tl_jisx0201_jisx0208_param *)mbfl_malloc(sizeof(mbfl_filt_tl_jisx0201_jisx0208_param)); + if (param == NULL) { + goto out; + } + + param->mode = mode; + + tl_filter = mbfl_convert_filter_new2( + &vtbl_tl_jisx0201_jisx0208, + (int(*)(int, void*))next_filter->filter_function, + (int(*)(void*))next_filter->filter_flush, + next_filter); + if (tl_filter == NULL) { + mbfl_free(param); + goto out; + } + + tl_filter->opaque = param; + next_filter = tl_filter; + + encoder = mbfl_convert_filter_new( + string->no_encoding, + mbfl_no_encoding_wchar, + (int(*)(int, void*))next_filter->filter_function, + (int(*)(void*))next_filter->filter_flush, + next_filter); + if (encoder == NULL) { + goto out; + } + + /* feed data */ + p = string->val; + n = string->len; + if (p != NULL) { + while (n > 0) { + if ((*encoder->filter_function)(*p++, encoder) < 0) { + break; + } + n--; + } + } + + mbfl_convert_filter_flush(encoder); + result = mbfl_memory_device_result(&device, result); +out: + if (tl_filter != NULL) { + if (tl_filter->opaque != NULL) { + mbfl_free(tl_filter->opaque); + } + mbfl_convert_filter_delete(tl_filter); + } + + if (decoder != NULL) { + mbfl_convert_filter_delete(decoder); + } + + if (encoder != NULL) { + mbfl_convert_filter_delete(encoder); + } + + return result; +} + + +/* + * MIME header encode + */ +struct mime_header_encoder_data { + mbfl_convert_filter *conv1_filter; + mbfl_convert_filter *block_filter; + mbfl_convert_filter *conv2_filter; + mbfl_convert_filter *conv2_filter_backup; + mbfl_convert_filter *encod_filter; + mbfl_convert_filter *encod_filter_backup; + mbfl_memory_device outdev; + mbfl_memory_device tmpdev; + int status1; + int status2; + int prevpos; + int linehead; + int firstindent; + int encnamelen; + int lwsplen; + char encname[128]; + char lwsp[16]; +}; + +static int +mime_header_encoder_block_collector(int c, void *data) +{ + int n; + struct mime_header_encoder_data *pe = (struct mime_header_encoder_data *)data; + + switch (pe->status2) { + case 1: /* encoded word */ + pe->prevpos = pe->outdev.pos; + mbfl_convert_filter_copy(pe->conv2_filter, pe->conv2_filter_backup); + mbfl_convert_filter_copy(pe->encod_filter, pe->encod_filter_backup); + (*pe->conv2_filter->filter_function)(c, pe->conv2_filter); + (*pe->conv2_filter->filter_flush)(pe->conv2_filter); + (*pe->encod_filter->filter_flush)(pe->encod_filter); + n = pe->outdev.pos - pe->linehead + pe->firstindent; + pe->outdev.pos = pe->prevpos; + mbfl_convert_filter_copy(pe->conv2_filter_backup, pe->conv2_filter); + mbfl_convert_filter_copy(pe->encod_filter_backup, pe->encod_filter); + if (n >= 74) { + (*pe->conv2_filter->filter_flush)(pe->conv2_filter); + (*pe->encod_filter->filter_flush)(pe->encod_filter); + mbfl_memory_device_strncat(&pe->outdev, "\x3f\x3d", 2); /* ?= */ + mbfl_memory_device_strncat(&pe->outdev, pe->lwsp, pe->lwsplen); + pe->linehead = pe->outdev.pos; + pe->firstindent = 0; + mbfl_memory_device_strncat(&pe->outdev, pe->encname, pe->encnamelen); + c = (*pe->conv2_filter->filter_function)(c, pe->conv2_filter); + } else { + c = (*pe->conv2_filter->filter_function)(c, pe->conv2_filter); + } + break; + + default: + mbfl_memory_device_strncat(&pe->outdev, pe->encname, pe->encnamelen); + c = (*pe->conv2_filter->filter_function)(c, pe->conv2_filter); + pe->status2 = 1; + break; + } + + return c; +} + +static int +mime_header_encoder_collector(int c, void *data) +{ + static int qp_table[256] = { + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 0x00 */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 0x00 */ + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */ + 0, 0, 0, 0, 0, 0, 0 ,0, 0, 0, 0, 0, 0, 1, 0, 1, /* 0x10 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, /* 0x50 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, /* 0x70 */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 0x80 */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 0x90 */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 0xA0 */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 0xB0 */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 0xC0 */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 0xD0 */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 0xE0 */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 /* 0xF0 */ + }; + + int n; + struct mime_header_encoder_data *pe = (struct mime_header_encoder_data *)data; + + switch (pe->status1) { + case 11: /* encoded word */ + (*pe->block_filter->filter_function)(c, pe->block_filter); + break; + + default: /* ASCII */ + if (c <= 0x00ff && !qp_table[(c & 0xff)]) { /* ordinary characters */ + mbfl_memory_device_output(c, &pe->tmpdev); + pe->status1 = 1; + } else if (pe->status1 == 0 && c == 0x20) { /* repeat SPACE */ + mbfl_memory_device_output(c, &pe->tmpdev); + } else { + if (pe->tmpdev.pos < 74 && c == 0x20) { + n = pe->outdev.pos - pe->linehead + pe->tmpdev.pos + pe->firstindent; + if (n > 74) { + mbfl_memory_device_strncat(&pe->outdev, pe->lwsp, pe->lwsplen); /* LWSP */ + pe->linehead = pe->outdev.pos; + pe->firstindent = 0; + } else if (pe->outdev.pos > 0) { + mbfl_memory_device_output(0x20, &pe->outdev); + } + mbfl_memory_device_devcat(&pe->outdev, &pe->tmpdev); + mbfl_memory_device_reset(&pe->tmpdev); + pe->status1 = 0; + } else { + n = pe->outdev.pos - pe->linehead + pe->encnamelen + pe->firstindent; + if (n > 60) { + mbfl_memory_device_strncat(&pe->outdev, pe->lwsp, pe->lwsplen); /* LWSP */ + pe->linehead = pe->outdev.pos; + pe->firstindent = 0; + } else if (pe->outdev.pos > 0) { + mbfl_memory_device_output(0x20, &pe->outdev); + } + mbfl_convert_filter_devcat(pe->block_filter, &pe->tmpdev); + mbfl_memory_device_reset(&pe->tmpdev); + (*pe->block_filter->filter_function)(c, pe->block_filter); + pe->status1 = 11; + } + } + break; + } + + return c; +} + +mbfl_string * +mime_header_encoder_result(struct mime_header_encoder_data *pe, mbfl_string *result) +{ + if (pe->status1 >= 10) { + (*pe->conv2_filter->filter_flush)(pe->conv2_filter); + (*pe->encod_filter->filter_flush)(pe->encod_filter); + mbfl_memory_device_strncat(&pe->outdev, "\x3f\x3d", 2); /* ?= */ + } else if (pe->tmpdev.pos > 0) { + if (pe->outdev.pos > 0) { + if ((pe->outdev.pos - pe->linehead + pe->tmpdev.pos) > 74) { + mbfl_memory_device_strncat(&pe->outdev, pe->lwsp, pe->lwsplen); + } else { + mbfl_memory_device_output(0x20, &pe->outdev); + } + } + mbfl_memory_device_devcat(&pe->outdev, &pe->tmpdev); + } + mbfl_memory_device_reset(&pe->tmpdev); + pe->prevpos = 0; + pe->linehead = 0; + pe->status1 = 0; + pe->status2 = 0; + + return mbfl_memory_device_result(&pe->outdev, result); +} + +struct mime_header_encoder_data* +mime_header_encoder_new( + enum mbfl_no_encoding incode, + enum mbfl_no_encoding outcode, + enum mbfl_no_encoding transenc) +{ + int n; + const char *s; + const mbfl_encoding *outencoding; + struct mime_header_encoder_data *pe; + + /* get output encoding and check MIME charset name */ + outencoding = mbfl_no2encoding(outcode); + if (outencoding == NULL || outencoding->mime_name == NULL || outencoding->mime_name[0] == '\0') { + return NULL; + } + + pe = (struct mime_header_encoder_data*)mbfl_malloc(sizeof(struct mime_header_encoder_data)); + if (pe == NULL) { + return NULL; + } + + mbfl_memory_device_init(&pe->outdev, 0, 0); + mbfl_memory_device_init(&pe->tmpdev, 0, 0); + pe->prevpos = 0; + pe->linehead = 0; + pe->firstindent = 0; + pe->status1 = 0; + pe->status2 = 0; + + /* make the encoding description string exp. "=?ISO-2022-JP?B?" */ + n = 0; + pe->encname[n++] = 0x3d; + pe->encname[n++] = 0x3f; + s = outencoding->mime_name; + while (*s) { + pe->encname[n++] = *s++; + } + pe->encname[n++] = 0x3f; + if (transenc == mbfl_no_encoding_qprint) { + pe->encname[n++] = 0x51; + } else { + pe->encname[n++] = 0x42; + transenc = mbfl_no_encoding_base64; + } + pe->encname[n++] = 0x3f; + pe->encname[n] = '\0'; + pe->encnamelen = n; + + n = 0; + pe->lwsp[n++] = 0x0d; + pe->lwsp[n++] = 0x0a; + pe->lwsp[n++] = 0x20; + pe->lwsp[n] = '\0'; + pe->lwsplen = n; + + /* transfer encode filter */ + pe->encod_filter = mbfl_convert_filter_new(outcode, transenc, mbfl_memory_device_output, 0, &(pe->outdev)); + pe->encod_filter_backup = mbfl_convert_filter_new(outcode, transenc, mbfl_memory_device_output, 0, &(pe->outdev)); + + /* Output code filter */ + pe->conv2_filter = mbfl_convert_filter_new(mbfl_no_encoding_wchar, outcode, mbfl_filter_output_pipe, 0, pe->encod_filter); + pe->conv2_filter_backup = mbfl_convert_filter_new(mbfl_no_encoding_wchar, outcode, mbfl_filter_output_pipe, 0, pe->encod_filter); + + /* encoded block filter */ + pe->block_filter = mbfl_convert_filter_new(mbfl_no_encoding_wchar, mbfl_no_encoding_wchar, mime_header_encoder_block_collector, 0, pe); + + /* Input code filter */ + pe->conv1_filter = mbfl_convert_filter_new(incode, mbfl_no_encoding_wchar, mime_header_encoder_collector, 0, pe); + + if (pe->encod_filter == NULL || + pe->encod_filter_backup == NULL || + pe->conv2_filter == NULL || + pe->conv2_filter_backup == NULL || + pe->conv1_filter == NULL) { + mime_header_encoder_delete(pe); + return NULL; + } + + if (transenc == mbfl_no_encoding_qprint) { + pe->encod_filter->status |= MBFL_QPRINT_STS_MIME_HEADER; + pe->encod_filter_backup->status |= MBFL_QPRINT_STS_MIME_HEADER; + } else { + pe->encod_filter->status |= MBFL_BASE64_STS_MIME_HEADER; + pe->encod_filter_backup->status |= MBFL_BASE64_STS_MIME_HEADER; + } + + return pe; +} + +void +mime_header_encoder_delete(struct mime_header_encoder_data *pe) +{ + if (pe) { + mbfl_convert_filter_delete(pe->conv1_filter); + mbfl_convert_filter_delete(pe->block_filter); + mbfl_convert_filter_delete(pe->conv2_filter); + mbfl_convert_filter_delete(pe->conv2_filter_backup); + mbfl_convert_filter_delete(pe->encod_filter); + mbfl_convert_filter_delete(pe->encod_filter_backup); + mbfl_memory_device_clear(&pe->outdev); + mbfl_memory_device_clear(&pe->tmpdev); + mbfl_free((void*)pe); + } +} + +int +mime_header_encoder_feed(int c, struct mime_header_encoder_data *pe) +{ + return (*pe->conv1_filter->filter_function)(c, pe->conv1_filter); +} + +mbfl_string * +mbfl_mime_header_encode( + mbfl_string *string, + mbfl_string *result, + enum mbfl_no_encoding outcode, + enum mbfl_no_encoding encoding, + const char *linefeed, + int indent) +{ + int n; + unsigned char *p; + struct mime_header_encoder_data *pe; + + mbfl_string_init(result); + result->no_language = string->no_language; + result->no_encoding = mbfl_no_encoding_ascii; + + pe = mime_header_encoder_new(string->no_encoding, outcode, encoding); + if (pe == NULL) { + return NULL; + } + + if (linefeed != NULL) { + n = 0; + while (*linefeed && n < 8) { + pe->lwsp[n++] = *linefeed++; + } + pe->lwsp[n++] = 0x20; + pe->lwsp[n] = '\0'; + pe->lwsplen = n; + } + if (indent > 0 && indent < 74) { + pe->firstindent = indent; + } + + n = string->len; + p = string->val; + while (n > 0) { + (*pe->conv1_filter->filter_function)(*p++, pe->conv1_filter); + n--; + } + + result = mime_header_encoder_result(pe, result); + mime_header_encoder_delete(pe); + + return result; +} + + +/* + * MIME header decode + */ +struct mime_header_decoder_data { + mbfl_convert_filter *deco_filter; + mbfl_convert_filter *conv1_filter; + mbfl_convert_filter *conv2_filter; + mbfl_memory_device outdev; + mbfl_memory_device tmpdev; + int cspos; + int status; + enum mbfl_no_encoding encoding; + enum mbfl_no_encoding incode; + enum mbfl_no_encoding outcode; +}; + +static int +mime_header_decoder_collector(int c, void* data) +{ + const mbfl_encoding *encoding; + struct mime_header_decoder_data *pd = (struct mime_header_decoder_data*)data; + + switch (pd->status) { + case 1: + if (c == 0x3f) { /* ? */ + mbfl_memory_device_output(c, &pd->tmpdev); + pd->cspos = pd->tmpdev.pos; + pd->status = 2; + } else { + mbfl_convert_filter_devcat(pd->conv1_filter, &pd->tmpdev); + mbfl_memory_device_reset(&pd->tmpdev); + if (c == 0x3d) { /* = */ + mbfl_memory_device_output(c, &pd->tmpdev); + } else if (c == 0x0d || c == 0x0a) { /* CR or LF */ + pd->status = 9; + } else { + (*pd->conv1_filter->filter_function)(c, pd->conv1_filter); + pd->status = 0; + } + } + break; + case 2: /* store charset string */ + if (c == 0x3f) { /* ? */ + /* identify charset */ + mbfl_memory_device_output('\0', &pd->tmpdev); + encoding = mbfl_name2encoding((const char *)&pd->tmpdev.buffer[pd->cspos]); + if (encoding != NULL) { + pd->incode = encoding->no_encoding; + pd->status = 3; + } + mbfl_memory_device_unput(&pd->tmpdev); + mbfl_memory_device_output(c, &pd->tmpdev); + } else { + mbfl_memory_device_output(c, &pd->tmpdev); + if (pd->tmpdev.pos > 100) { /* too long charset string */ + pd->status = 0; + } else if (c == 0x0d || c == 0x0a) { /* CR or LF */ + mbfl_memory_device_unput(&pd->tmpdev); + pd->status = 9; + } + if (pd->status != 2) { + mbfl_convert_filter_devcat(pd->conv1_filter, &pd->tmpdev); + mbfl_memory_device_reset(&pd->tmpdev); + } + } + break; + case 3: /* identify encoding */ + mbfl_memory_device_output(c, &pd->tmpdev); + if (c == 0x42 || c == 0x62) { /* 'B' or 'b' */ + pd->encoding = mbfl_no_encoding_base64; + pd->status = 4; + } else if (c == 0x51 || c == 0x71) { /* 'Q' or 'q' */ + pd->encoding = mbfl_no_encoding_qprint; + pd->status = 4; + } else { + if (c == 0x0d || c == 0x0a) { /* CR or LF */ + mbfl_memory_device_unput(&pd->tmpdev); + pd->status = 9; + } else { + pd->status = 0; + } + mbfl_convert_filter_devcat(pd->conv1_filter, &pd->tmpdev); + mbfl_memory_device_reset(&pd->tmpdev); + } + break; + case 4: /* reset filter */ + mbfl_memory_device_output(c, &pd->tmpdev); + if (c == 0x3f) { /* ? */ + /* charset convert filter */ + mbfl_convert_filter_reset(pd->conv1_filter, pd->incode, mbfl_no_encoding_wchar); + /* decode filter */ + mbfl_convert_filter_reset(pd->deco_filter, pd->encoding, mbfl_no_encoding_8bit); + pd->status = 5; + } else { + if (c == 0x0d || c == 0x0a) { /* CR or LF */ + mbfl_memory_device_unput(&pd->tmpdev); + pd->status = 9; + } else { + pd->status = 0; + } + mbfl_convert_filter_devcat(pd->conv1_filter, &pd->tmpdev); + } + mbfl_memory_device_reset(&pd->tmpdev); + break; + case 5: /* encoded block */ + if (c == 0x3f) { /* ? */ + pd->status = 6; + } else { + (*pd->deco_filter->filter_function)(c, pd->deco_filter); + } + break; + case 6: /* check end position */ + if (c == 0x3d) { /* = */ + /* flush and reset filter */ + (*pd->deco_filter->filter_flush)(pd->deco_filter); + (*pd->conv1_filter->filter_flush)(pd->conv1_filter); + mbfl_convert_filter_reset(pd->conv1_filter, mbfl_no_encoding_ascii, mbfl_no_encoding_wchar); + pd->status = 7; + } else { + (*pd->deco_filter->filter_function)(0x3f, pd->deco_filter); + if (c != 0x3f) { /* ? */ + (*pd->deco_filter->filter_function)(c, pd->deco_filter); + pd->status = 5; + } + } + break; + case 7: /* after encoded block */ + if (c == 0x0d || c == 0x0a) { /* CR LF */ + pd->status = 8; + } else { + mbfl_memory_device_output(c, &pd->tmpdev); + if (c == 0x3d) { /* = */ + pd->status = 1; + } else if (c != 0x20 && c != 0x09) { /* not space */ + mbfl_convert_filter_devcat(pd->conv1_filter, &pd->tmpdev); + mbfl_memory_device_reset(&pd->tmpdev); + pd->status = 0; + } + } + break; + case 8: /* folding */ + case 9: /* folding */ + if (c != 0x0d && c != 0x0a && c != 0x20 && c != 0x09) { + if (c == 0x3d) { /* = */ + if (pd->status == 8) { + mbfl_memory_device_output(0x20, &pd->tmpdev); /* SPACE */ + } else { + (*pd->conv1_filter->filter_function)(0x20, pd->conv1_filter); + } + mbfl_memory_device_output(c, &pd->tmpdev); + pd->status = 1; + } else { + mbfl_memory_device_output(0x20, &pd->tmpdev); + mbfl_memory_device_output(c, &pd->tmpdev); + mbfl_convert_filter_devcat(pd->conv1_filter, &pd->tmpdev); + mbfl_memory_device_reset(&pd->tmpdev); + pd->status = 0; + } + } + break; + default: /* non encoded block */ + if (c == 0x0d || c == 0x0a) { /* CR LF */ + pd->status = 9; + } else if (c == 0x3d) { /* = */ + mbfl_memory_device_output(c, &pd->tmpdev); + pd->status = 1; + } else { + (*pd->conv1_filter->filter_function)(c, pd->conv1_filter); + } + break; + } + + return c; +} + +mbfl_string * +mime_header_decoder_result(struct mime_header_decoder_data *pd, mbfl_string *result) +{ + switch (pd->status) { + case 1: + case 2: + case 3: + case 4: + case 7: + case 8: + case 9: + mbfl_convert_filter_devcat(pd->conv1_filter, &pd->tmpdev); + break; + case 5: + case 6: + (*pd->deco_filter->filter_flush)(pd->deco_filter); + (*pd->conv1_filter->filter_flush)(pd->conv1_filter); + break; + } + (*pd->conv2_filter->filter_flush)(pd->conv2_filter); + mbfl_memory_device_reset(&pd->tmpdev); + pd->status = 0; + + return mbfl_memory_device_result(&pd->outdev, result); +} + +struct mime_header_decoder_data* +mime_header_decoder_new(enum mbfl_no_encoding outcode) +{ + struct mime_header_decoder_data *pd; + + pd = (struct mime_header_decoder_data*)mbfl_malloc(sizeof(struct mime_header_decoder_data)); + if (pd == NULL) { + return NULL; + } + + mbfl_memory_device_init(&pd->outdev, 0, 0); + mbfl_memory_device_init(&pd->tmpdev, 0, 0); + pd->cspos = 0; + pd->status = 0; + pd->encoding = mbfl_no_encoding_pass; + pd->incode = mbfl_no_encoding_ascii; + pd->outcode = outcode; + /* charset convert filter */ + pd->conv2_filter = mbfl_convert_filter_new(mbfl_no_encoding_wchar, pd->outcode, mbfl_memory_device_output, 0, &pd->outdev); + pd->conv1_filter = mbfl_convert_filter_new(pd->incode, mbfl_no_encoding_wchar, mbfl_filter_output_pipe, 0, pd->conv2_filter); + /* decode filter */ + pd->deco_filter = mbfl_convert_filter_new(pd->encoding, mbfl_no_encoding_8bit, mbfl_filter_output_pipe, 0, pd->conv1_filter); + + if (pd->conv1_filter == NULL || pd->conv2_filter == NULL || pd->deco_filter == NULL) { + mime_header_decoder_delete(pd); + return NULL; + } + + return pd; +} + +void +mime_header_decoder_delete(struct mime_header_decoder_data *pd) +{ + if (pd) { + mbfl_convert_filter_delete(pd->conv2_filter); + mbfl_convert_filter_delete(pd->conv1_filter); + mbfl_convert_filter_delete(pd->deco_filter); + mbfl_memory_device_clear(&pd->outdev); + mbfl_memory_device_clear(&pd->tmpdev); + mbfl_free((void*)pd); + } +} + +int +mime_header_decoder_feed(int c, struct mime_header_decoder_data *pd) +{ + return mime_header_decoder_collector(c, pd); +} + +mbfl_string * +mbfl_mime_header_decode( + mbfl_string *string, + mbfl_string *result, + enum mbfl_no_encoding outcode) +{ + int n; + unsigned char *p; + struct mime_header_decoder_data *pd; + + mbfl_string_init(result); + result->no_language = string->no_language; + result->no_encoding = outcode; + + pd = mime_header_decoder_new(outcode); + if (pd == NULL) { + return NULL; + } + + /* feed data */ + n = string->len; + p = string->val; + while (n > 0) { + mime_header_decoder_collector(*p++, pd); + n--; + } + + result = mime_header_decoder_result(pd, result); + mime_header_decoder_delete(pd); + + return result; +} + + + +/* + * convert HTML numeric entity + */ +struct collector_htmlnumericentity_data { + mbfl_convert_filter *decoder; + int status; + int cache; + int digit; + int *convmap; + int mapsize; +}; + +static int +collector_encode_htmlnumericentity(int c, void *data) +{ + struct collector_htmlnumericentity_data *pc = (struct collector_htmlnumericentity_data *)data; + int f, n, s, r, d, size, *mapelm; + + size = pc->mapsize; + f = 0; + n = 0; + while (n < size) { + mapelm = &(pc->convmap[n*4]); + if (c >= mapelm[0] && c <= mapelm[1]) { + s = (c + mapelm[2]) & mapelm[3]; + if (s >= 0) { + (*pc->decoder->filter_function)(0x26, pc->decoder); /* '&' */ + (*pc->decoder->filter_function)(0x23, pc->decoder); /* '#' */ + r = 100000000; + s %= r; + while (r > 0) { + d = s/r; + if (d || f) { + f = 1; + s %= r; + (*pc->decoder->filter_function)(mbfl_hexchar_table[d], pc->decoder); + } + r /= 10; + } + if (!f) { + f = 1; + (*pc->decoder->filter_function)(mbfl_hexchar_table[0], pc->decoder); + } + (*pc->decoder->filter_function)(0x3b, pc->decoder); /* ';' */ + } + } + if (f) { + break; + } + n++; + } + if (!f) { + (*pc->decoder->filter_function)(c, pc->decoder); + } + + return c; +} + +static int +collector_decode_htmlnumericentity(int c, void *data) +{ + struct collector_htmlnumericentity_data *pc = (struct collector_htmlnumericentity_data *)data; + int f, n, s, r, d, size, *mapelm; + + switch (pc->status) { + case 1: + if (c == 0x23) { /* '#' */ + pc->status = 2; + } else { + pc->status = 0; + (*pc->decoder->filter_function)(0x26, pc->decoder); /* '&' */ + (*pc->decoder->filter_function)(c, pc->decoder); + } + break; + case 2: + if (c == 0x78) { /* 'x' */ + pc->status = 4; + } else if (c >= 0x30 && c <= 0x39) { /* '0' - '9' */ + pc->cache = c - 0x30; + pc->status = 3; + pc->digit = 1; + } else { + pc->status = 0; + (*pc->decoder->filter_function)(0x26, pc->decoder); /* '&' */ + (*pc->decoder->filter_function)(0x23, pc->decoder); /* '#' */ + (*pc->decoder->filter_function)(c, pc->decoder); + } + break; + case 3: + s = 0; + f = 0; + if (c >= 0x30 && c <= 0x39) { /* '0' - '9' */ + if (pc->digit > 9) { + pc->status = 0; + s = pc->cache; + f = 1; + } else { + s = pc->cache*10 + c - 0x30; + pc->cache = s; + pc->digit++; + } + } else { + pc->status = 0; + s = pc->cache; + f = 1; + n = 0; + size = pc->mapsize; + while (n < size) { + mapelm = &(pc->convmap[n*4]); + d = s - mapelm[2]; + if (d >= mapelm[0] && d <= mapelm[1]) { + f = 0; + (*pc->decoder->filter_function)(d, pc->decoder); + if (c != 0x3b) { /* ';' */ + (*pc->decoder->filter_function)(c, pc->decoder); + } + break; + } + n++; + } + } + if (f) { + (*pc->decoder->filter_function)(0x26, pc->decoder); /* '&' */ + (*pc->decoder->filter_function)(0x23, pc->decoder); /* '#' */ + r = 1; + n = pc->digit; + while (n > 0) { + r *= 10; + n--; + } + s %= r; + r /= 10; + while (r > 0) { + d = s/r; + s %= r; + r /= 10; + (*pc->decoder->filter_function)(mbfl_hexchar_table[d], pc->decoder); + } + (*pc->decoder->filter_function)(c, pc->decoder); + } + break; + case 4: + if (c >= 0x30 && c <= 0x39) { /* '0' - '9' */ + pc->cache = c - 0x30; + pc->status = 5; + pc->digit = 1; + } else if (c >= 0x41 && c <= 0x46) { /* 'A' - 'F' */ + pc->cache = c - 0x41 + 10; + pc->status = 5; + pc->digit = 1; + } else if (c >= 0x61 && c <= 0x66) { /* 'a' - 'f' */ + pc->cache = c - 0x61 + 10; + pc->status = 5; + pc->digit = 1; + } else { + pc->status = 0; + (*pc->decoder->filter_function)(0x26, pc->decoder); /* '&' */ + (*pc->decoder->filter_function)(0x23, pc->decoder); /* '#' */ + (*pc->decoder->filter_function)(0x78, pc->decoder); /* 'x' */ + (*pc->decoder->filter_function)(c, pc->decoder); + } + break; + case 5: + s = 0; + f = 0; + if ((c >= 0x30 && c <= 0x39) || + (c >= 0x41 && c <= 0x46) || + (c >= 0x61 && c <= 0x66)) { /* '0' - '9' or 'a' - 'f' */ + if (pc->digit > 9) { + pc->status = 0; + s = pc->cache; + f = 1; + } else { + if (c >= 0x30 && c <= 0x39) { + s = pc->cache*16 + (c - 0x30); + } else if (c >= 0x41 && c <= 0x46) { + s = pc->cache*16 + (c - 0x41 + 10); + } else { + s = pc->cache*16 + (c - 0x61 + 10); + } + pc->cache = s; + pc->digit++; + } + } else { + pc->status = 0; + s = pc->cache; + f = 1; + n = 0; + size = pc->mapsize; + while (n < size) { + mapelm = &(pc->convmap[n*4]); + d = s - mapelm[2]; + if (d >= mapelm[0] && d <= mapelm[1]) { + f = 0; + (*pc->decoder->filter_function)(d, pc->decoder); + if (c != 0x3b) { /* ';' */ + (*pc->decoder->filter_function)(c, pc->decoder); + } + break; + } + n++; + } + } + if (f) { + (*pc->decoder->filter_function)(0x26, pc->decoder); /* '&' */ + (*pc->decoder->filter_function)(0x23, pc->decoder); /* '#' */ + (*pc->decoder->filter_function)(0x78, pc->decoder); /* 'x' */ + r = 1; + n = pc->digit; + while (n > 0) { + r *= 16; + n--; + } + s %= r; + r /= 16; + while (r > 0) { + d = s/r; + s %= r; + r /= 16; + (*pc->decoder->filter_function)(mbfl_hexchar_table[d], pc->decoder); + } + (*pc->decoder->filter_function)(c, pc->decoder); + } + break; + default: + if (c == 0x26) { /* '&' */ + pc->status = 1; + } else { + (*pc->decoder->filter_function)(c, pc->decoder); + } + break; + } + + return c; +} + +static int +collector_encode_hex_htmlnumericentity(int c, void *data) +{ + struct collector_htmlnumericentity_data *pc = (struct collector_htmlnumericentity_data *)data; + int f, n, s, r, d, size, *mapelm; + + size = pc->mapsize; + f = 0; + n = 0; + while (n < size) { + mapelm = &(pc->convmap[n*4]); + if (c >= mapelm[0] && c <= mapelm[1]) { + s = (c + mapelm[2]) & mapelm[3]; + if (s >= 0) { + (*pc->decoder->filter_function)(0x26, pc->decoder); /* '&' */ + (*pc->decoder->filter_function)(0x23, pc->decoder); /* '#' */ + (*pc->decoder->filter_function)(0x78, pc->decoder); /* 'x' */ + r = 0x1000000; + s %= r; + while (r > 0) { + d = s/r; + if (d || f) { + f = 1; + s %= r; + (*pc->decoder->filter_function)(mbfl_hexchar_table[d], pc->decoder); + } + r /= 16; + } + if (!f) { + f = 1; + (*pc->decoder->filter_function)(mbfl_hexchar_table[0], pc->decoder); + } + (*pc->decoder->filter_function)(0x3b, pc->decoder); /* ';' */ + } + } + if (f) { + break; + } + n++; + } + if (!f) { + (*pc->decoder->filter_function)(c, pc->decoder); + } + + return c; +} + +int mbfl_filt_decode_htmlnumericentity_flush(mbfl_convert_filter *filter) +{ + struct collector_htmlnumericentity_data *pc = (struct collector_htmlnumericentity_data *)filter; + int n, s, r, d; + + if (pc->status) { + switch (pc->status) { + case 1: /* '&' */ + (*pc->decoder->filter_function)(0x26, pc->decoder); /* '&' */ + break; + case 2: /* '#' */ + (*pc->decoder->filter_function)(0x26, pc->decoder); /* '&' */ + (*pc->decoder->filter_function)(0x23, pc->decoder); /* '#' */ + break; + case 3: /* '0'-'9' */ + (*pc->decoder->filter_function)(0x26, pc->decoder); /* '&' */ + (*pc->decoder->filter_function)(0x23, pc->decoder); /* '#' */ + + s = pc->cache; + r = 1; + n = pc->digit; + while (n > 0) { + r *= 10; + n--; + } + s %= r; + r /= 10; + while (r > 0) { + d = s/r; + s %= r; + r /= 10; + (*pc->decoder->filter_function)(mbfl_hexchar_table[d], pc->decoder); + } + + break; + case 4: /* 'x' */ + (*pc->decoder->filter_function)(0x26, pc->decoder); /* '&' */ + (*pc->decoder->filter_function)(0x23, pc->decoder); /* '#' */ + (*pc->decoder->filter_function)(0x78, pc->decoder); /* 'x' */ + break; + case 5: /* '0'-'9','a'-'f' */ + (*pc->decoder->filter_function)(0x26, pc->decoder); /* '&' */ + (*pc->decoder->filter_function)(0x23, pc->decoder); /* '#' */ + (*pc->decoder->filter_function)(0x78, pc->decoder); /* 'x' */ + + s = pc->cache; + r = 1; + n = pc->digit; + while (n > 0) { + r *= 16; + n--; + } + s %= r; + r /= 16; + while (r > 0) { + d = s/r; + s %= r; + r /= 16; + (*pc->decoder->filter_function)(mbfl_hexchar_table[d], pc->decoder); + } + break; + default: + break; + } + } + + pc->status = 0; + pc->cache = 0; + pc->digit = 0; + + return 0; +} + + +mbfl_string * +mbfl_html_numeric_entity( + mbfl_string *string, + mbfl_string *result, + int *convmap, + int mapsize, + int type) +{ + struct collector_htmlnumericentity_data pc; + mbfl_memory_device device; + mbfl_convert_filter *encoder; + int n; + unsigned char *p; + + if (string == NULL || result == NULL) { + return NULL; + } + mbfl_string_init(result); + result->no_language = string->no_language; + result->no_encoding = string->no_encoding; + mbfl_memory_device_init(&device, string->len, 0); + + /* output code filter */ + pc.decoder = mbfl_convert_filter_new( + mbfl_no_encoding_wchar, + string->no_encoding, + mbfl_memory_device_output, 0, &device); + /* wchar filter */ + if (type == 0) { /* decimal output */ + encoder = mbfl_convert_filter_new( + string->no_encoding, + mbfl_no_encoding_wchar, + collector_encode_htmlnumericentity, 0, &pc); + } else if (type == 2) { /* hex output */ + encoder = mbfl_convert_filter_new( + string->no_encoding, + mbfl_no_encoding_wchar, + collector_encode_hex_htmlnumericentity, 0, &pc); + } else { /* type == 1: decimal/hex input */ + encoder = mbfl_convert_filter_new( + string->no_encoding, + mbfl_no_encoding_wchar, + collector_decode_htmlnumericentity, + (int (*)(void*))mbfl_filt_decode_htmlnumericentity_flush, &pc); + } + if (pc.decoder == NULL || encoder == NULL) { + mbfl_convert_filter_delete(encoder); + mbfl_convert_filter_delete(pc.decoder); + return NULL; + } + pc.status = 0; + pc.cache = 0; + pc.digit = 0; + pc.convmap = convmap; + pc.mapsize = mapsize; + + /* feed data */ + p = string->val; + n = string->len; + if (p != NULL) { + while (n > 0) { + if ((*encoder->filter_function)(*p++, encoder) < 0) { + break; + } + n--; + } + } + mbfl_convert_filter_flush(encoder); + mbfl_convert_filter_flush(pc.decoder); + result = mbfl_memory_device_result(&device, result); + mbfl_convert_filter_delete(encoder); + mbfl_convert_filter_delete(pc.decoder); + + return result; +} + +/* + * Local variables: + * tab-width: 4 + * c-basic-offset: 4 + * End: + */ diff --git a/ext/mbstring/libmbfl/mbfl/mbfilter.h b/ext/mbstring/libmbfl/mbfl/mbfilter.h new file mode 100644 index 0000000..6108f93 --- /dev/null +++ b/ext/mbstring/libmbfl/mbfl/mbfilter.h @@ -0,0 +1,290 @@ +/* charset=UTF-8 + * vim: encoding=utf-8: + * */ + +/* + * "streamable kanji code filter and converter" + * + * Copyright (c) 1998,1999,2000,2001 HappySize, Inc. All rights reserved. + * + * This software is released under the GNU Lesser General Public License. + * (Version 2.1, February 1999) + * Please read the following detail of the licence (in japanese). + * + * 雿輻刻迂隢暹∩辣 + * + * 柴賬艾扼U舀芸隡蝷整潦萸扎箝怒阡箝整芸隡蝷整 + * 潦萸扎箝胯雿璅拇喃質雿璅拇∠桀怒柴賬艾扼U恍 + * 嫘艾格貝押靽璅拙押∼怨雿踴整芸隡蝷整潦萸 + * 箝臭誑銝急閮∩辣怠艾柴賬艾扼U雿輻具隞扼胯芥璅拙 + * 摰X怨迂隢整整雿鈭箝具隞乩格∩辣怠艾柴賬艾扼U雿輻 + * 具胯扼整 + * + * 柴賬艾扼UGNU Lesser General Public License (Version 2.1, February + * 1999)怎內∩辣找蝙具具具艾格嫘怨迂隢整整GNU Lesser + * General Public License皞芥雿輻具怒胯芸隡蝷整潦萸扎箝賊 + * 怒閮梯姥敺敹閬整 + * + * GNU Lesser General Public License桀冽臭誑銝柴艾扼潦詻敺扼 + * 整GNU Lesser General Public License具胯整兵ibrary General + * Public License典潦啜艾柴扼 + * http://www.gnu.org/ --- GNU艾扼萸扎 + * http://www.gnu.org/copyleft/lesser.html --- 押扎颯喋寞 + * 柴押扎颯喋嫘桀摰嫘芥嫘摰芥嫘怒臭蝙具閮梯姥整 + * + * 芥敶蝷整沁NU准詻扼胯具桃孵桅V蝷箏整臭蜓撘萸柴 + * 胯整 + * + * 靽閮澆摰嫖 + * + * 柴賬艾扼U胯敺雿餅賬餅扯賬扎具格具西身閮 + * 箝艾整靽閮潦柴扼胯整柴賬艾扼U胯 + * 柴整整桃嗆扳靘艾具啜柴賬艾扼U格冽扼芥孵 + * 桃怠氬具具雿桐閮澆摰嫘蝷箝暺怎內艾 + * 游扼艾桐閮潦舐∪嫘扼柴賬艾扼U雿輻具蝯芥雿 + * 具芥蝯怒艾湔乓舫乓怠頨思芸瑕拿鞎∠銝格摰 + * 潦踴格憭晞胯桐桀具艾格摰喋怒扎艾胯格摰喋桀航賣扼雿輻刻 + * 敶蝷整舐洵銝怒西郎艾游扼艾敶蝷整胯格摰喋株 + * 唾憛怒銵整株摰臭桀具艾柴賊V整舀賊U怎∼靽閮潦 + * 憟蝝餉摰怠芸整 + * + * 雿璅抵桅蝯∪喃蝙冽∩辣怒扎艾桀 + * + * 102-0073 + * 曹漪賢隞啣箔畾萄1-13-5交砍唳蝚砌4F + * 芸隡蝷整潦萸扎 + * Phone: 03-3512-3655, Fax: 03-3512-3656 + * Email: sales@happysize.co.jp + * Web: http://happysize.com/ + * + * + * + * 研 <sgk@happysize.co.jp> + * + * 撅交韭 + * + * 1998/11/10 sgk implementation in C++ + * 1999/4/25 sgk C扳詻芥 + * 1999/4/26 sgk 亙怒踴摰鋆瞍W喋潦典芥怒踴餈賢 + * 1999/6/?? Unicode萸潦 + * 1999/6/22 sgk 押扎颯喋嫘LGPL怠氬 + * + */ + +/* + * Unicode support + * + * Portions copyright (c) 1999,2000,2001 by the PHP3 internationalization team. + * All rights reserved. + * + */ + +/* + * + * streamable kanji code filter and converter + * mbfl : Multi Byte FiLter Liblary + * + */ + +#ifndef MBFL_MBFILTER_H +#define MBFL_MBFILTER_H + +#include "mbfl_defs.h" +#include "mbfl_consts.h" +#include "mbfl_allocators.h" +#include "mbfl_encoding.h" +#include "mbfl_language.h" +#include "mbfl_string.h" +#include "mbfl_convert.h" +#include "mbfl_ident.h" + +/* + * version information + */ +#define MBFL_VERSION_MAJOR 1 +#define MBFL_VERSION_MINOR 3 +#define MBFL_VERSION_TEENY 2 + +/* + * convert filter + */ +#define MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE 0 +#define MBFL_OUTPUTFILTER_ILLEGAL_MODE_CHAR 1 +#define MBFL_OUTPUTFILTER_ILLEGAL_MODE_LONG 2 +#define MBFL_OUTPUTFILTER_ILLEGAL_MODE_ENTITY 3 + +/* + * buffering converter + */ +typedef struct _mbfl_buffer_converter mbfl_buffer_converter; + +struct _mbfl_buffer_converter { + mbfl_convert_filter *filter1; + mbfl_convert_filter *filter2; + mbfl_memory_device device; + const mbfl_encoding *from; + const mbfl_encoding *to; +}; + +MBFLAPI extern mbfl_buffer_converter * mbfl_buffer_converter_new(enum mbfl_no_encoding from, enum mbfl_no_encoding to, int buf_initsz); +MBFLAPI extern mbfl_buffer_converter * mbfl_buffer_converter_new2(const mbfl_encoding *from, const mbfl_encoding *to, int buf_initsz); +MBFLAPI extern void mbfl_buffer_converter_delete(mbfl_buffer_converter *convd); +MBFLAPI extern void mbfl_buffer_converter_reset(mbfl_buffer_converter *convd); +MBFLAPI extern int mbfl_buffer_converter_illegal_mode(mbfl_buffer_converter *convd, int mode); +MBFLAPI extern int mbfl_buffer_converter_illegal_substchar(mbfl_buffer_converter *convd, int substchar); +MBFLAPI extern int mbfl_buffer_converter_strncat(mbfl_buffer_converter *convd, const unsigned char *p, int n); +MBFLAPI extern int mbfl_buffer_converter_feed(mbfl_buffer_converter *convd, mbfl_string *string); +MBFLAPI extern int mbfl_buffer_converter_feed2(mbfl_buffer_converter *convd, mbfl_string *string, int *loc); +MBFLAPI extern int mbfl_buffer_converter_flush(mbfl_buffer_converter *convd); +MBFLAPI extern mbfl_string * mbfl_buffer_converter_getbuffer(mbfl_buffer_converter *convd, mbfl_string *result); +MBFLAPI extern mbfl_string * mbfl_buffer_converter_result(mbfl_buffer_converter *convd, mbfl_string *result); +MBFLAPI extern mbfl_string * mbfl_buffer_converter_feed_result(mbfl_buffer_converter *convd, mbfl_string *string, mbfl_string *result); +MBFLAPI extern int mbfl_buffer_illegalchars(mbfl_buffer_converter *convd); + +/* + * encoding detector + */ +typedef struct _mbfl_encoding_detector mbfl_encoding_detector; + +struct _mbfl_encoding_detector { + mbfl_identify_filter **filter_list; + int filter_list_size; + int strict; +}; + +MBFLAPI extern mbfl_encoding_detector * mbfl_encoding_detector_new(enum mbfl_no_encoding *elist, int elistsz, int strict); +MBFLAPI extern mbfl_encoding_detector * mbfl_encoding_detector_new2(const mbfl_encoding **elist, int elistsz, int strict); +MBFLAPI extern void mbfl_encoding_detector_delete(mbfl_encoding_detector *identd); +MBFLAPI extern int mbfl_encoding_detector_feed(mbfl_encoding_detector *identd, mbfl_string *string); +MBFLAPI extern enum mbfl_no_encoding mbfl_encoding_detector_judge(mbfl_encoding_detector *identd); +MBFLAPI extern const mbfl_encoding *mbfl_encoding_detector_judge2(mbfl_encoding_detector *identd); + + +/* + * encoding converter + */ +MBFLAPI extern mbfl_string * +mbfl_convert_encoding(mbfl_string *string, mbfl_string *result, enum mbfl_no_encoding toenc); + + +/* + * identify encoding + */ +MBFLAPI extern const mbfl_encoding * +mbfl_identify_encoding(mbfl_string *string, enum mbfl_no_encoding *elist, int elistsz, int strict); + +MBFLAPI extern const mbfl_encoding * +mbfl_identify_encoding2(mbfl_string *string, const mbfl_encoding **elist, int elistsz, int strict); +/* + * strlen + */ +MBFLAPI extern int +mbfl_strlen(mbfl_string *string); + +/* + * oddlen + */ +MBFLAPI extern int +mbfl_oddlen(mbfl_string *string); + +/* + * strpos + */ +MBFLAPI extern int +mbfl_strpos(mbfl_string *haystack, mbfl_string *needle, int offset, int reverse); + + +/* + * substr_count + */ +MBFLAPI extern int +mbfl_substr_count(mbfl_string *haystack, mbfl_string *needle); + +/* + * substr + */ +MBFLAPI extern mbfl_string * +mbfl_substr(mbfl_string *string, mbfl_string *result, int from, int length); + +/* + * strcut + */ +MBFLAPI extern mbfl_string * +mbfl_strcut(mbfl_string *string, mbfl_string *result, int from, int length); + +/* + * strwidth + */ +MBFLAPI extern int +mbfl_strwidth(mbfl_string *string); + +/* + * strimwidth + */ +MBFLAPI extern mbfl_string * +mbfl_strimwidth(mbfl_string *string, mbfl_string *marker, mbfl_string *result, int from, int width); + +/* + * MIME header encode + */ +struct mime_header_encoder_data; /* forward declaration */ + +MBFLAPI extern struct mime_header_encoder_data * +mime_header_encoder_new( + enum mbfl_no_encoding incode, + enum mbfl_no_encoding outcode, + enum mbfl_no_encoding encoding); + +MBFLAPI extern void +mime_header_encoder_delete(struct mime_header_encoder_data *pe); + +MBFLAPI extern int +mime_header_encoder_feed(int c, struct mime_header_encoder_data *pe); + +MBFLAPI extern mbfl_string * +mime_header_encoder_result(struct mime_header_encoder_data *pe, mbfl_string *result); + +MBFLAPI extern mbfl_string * +mbfl_mime_header_encode( + mbfl_string *string, mbfl_string *result, + enum mbfl_no_encoding outcode, + enum mbfl_no_encoding encoding, + const char *linefeed, + int indent); + +/* + * MIME header decode + */ +struct mime_header_decoder_data; /* forward declaration */ + +MBFLAPI extern struct mime_header_decoder_data * +mime_header_decoder_new(enum mbfl_no_encoding outcode); + +MBFLAPI extern void +mime_header_decoder_delete(struct mime_header_decoder_data *pd); + +MBFLAPI extern int +mime_header_decoder_feed(int c, struct mime_header_decoder_data *pd); + +MBFLAPI extern mbfl_string * +mime_header_decoder_result(struct mime_header_decoder_data *pd, mbfl_string *result); + +MBFLAPI extern mbfl_string * +mbfl_mime_header_decode( + mbfl_string *string, + mbfl_string *result, + enum mbfl_no_encoding outcode); + +/* + * convert HTML numeric entity + */ +MBFLAPI extern mbfl_string * +mbfl_html_numeric_entity(mbfl_string *string, mbfl_string *result, int *convmap, int mapsize, int type); + +/* + * convert of harfwidth and fullwidth for japanese + */ +MBFLAPI extern mbfl_string * +mbfl_ja_jp_hantozen(mbfl_string *string, mbfl_string *result, int mode); + +#endif /* MBFL_MBFILTER_H */ diff --git a/ext/mbstring/libmbfl/mbfl/mbfilter_8bit.c b/ext/mbstring/libmbfl/mbfl/mbfilter_8bit.c new file mode 100644 index 0000000..9b19479 --- /dev/null +++ b/ext/mbstring/libmbfl/mbfl/mbfilter_8bit.c @@ -0,0 +1,50 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by Moriyoshi Koizumi <moriyoshi@php.net> on 20 Dec 2002. The file + * mbfilter.c is included in this package . + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#ifdef HAVE_STDDEF_H +#include <stddef.h> +#endif + +#include "mbfilter.h" + +static const char *mbfl_encoding_8bit_aliases[] = {"binary", NULL}; + +const mbfl_encoding mbfl_encoding_8bit = { + mbfl_no_encoding_8bit, + "8bit", + "8bit", + (const char *(*)[])&mbfl_encoding_8bit_aliases, + NULL, + MBFL_ENCTYPE_SBCS +}; diff --git a/ext/mbstring/libmbfl/mbfl/mbfilter_8bit.h b/ext/mbstring/libmbfl/mbfl/mbfilter_8bit.h new file mode 100644 index 0000000..a87c564 --- /dev/null +++ b/ext/mbstring/libmbfl/mbfl/mbfilter_8bit.h @@ -0,0 +1,39 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by Moriyoshi Koizumi <moriyoshi@php.net> on 20 Dec 2002. The file + * mbfilter.c is included in this package . + * + */ + +#ifndef MBFL_MBFILTER_8BIT_H +#define MBFL_MBFILTER_8BIT_H + +#include "mbfl_defs.h" +#include "mbfilter.h" + +MBFLAPI extern const mbfl_encoding mbfl_encoding_8bit; + +#endif /* MBFL_MBFILTER_8BIT_H */ diff --git a/ext/mbstring/libmbfl/mbfl/mbfilter_pass.c b/ext/mbstring/libmbfl/mbfl/mbfilter_pass.c new file mode 100644 index 0000000..b6da879 --- /dev/null +++ b/ext/mbstring/libmbfl/mbfl/mbfilter_pass.c @@ -0,0 +1,65 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#ifdef HAVE_STDDEF_H +#include <stddef.h> +#endif + +#include "mbfilter.h" +#include "mbfilter_pass.h" + +static const char *mbfl_encoding_pass_aliases[] = {"none", NULL}; + +const mbfl_encoding mbfl_encoding_pass = { + mbfl_no_encoding_pass, + "pass", + NULL, + (const char *(*)[])&mbfl_encoding_pass_aliases, + NULL, + 0 +}; + +const struct mbfl_convert_vtbl vtbl_pass = { + mbfl_no_encoding_pass, + mbfl_no_encoding_pass, + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + mbfl_filt_conv_pass, + mbfl_filt_conv_common_flush +}; + +int mbfl_filt_conv_pass(int c, mbfl_convert_filter *filter) +{ + return (*filter->output_function)(c, filter->data); +} + diff --git a/ext/mbstring/libmbfl/mbfl/mbfilter_pass.h b/ext/mbstring/libmbfl/mbfl/mbfilter_pass.h new file mode 100644 index 0000000..49d169c --- /dev/null +++ b/ext/mbstring/libmbfl/mbfl/mbfilter_pass.h @@ -0,0 +1,41 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by moriyoshi koizumi <moriyoshi@php.net> on 4 dec 2002. + * + */ + +#ifndef MBFL_MBFILTER_PASS_H +#define MBFL_MBFILTER_PASS_H + +#include "mbfl_defs.h" +#include "mbfilter.h" + +MBFLAPI extern const mbfl_encoding mbfl_encoding_pass; +MBFLAPI extern const struct mbfl_convert_vtbl vtbl_pass; + +MBFLAPI extern int mbfl_filt_conv_pass(int c, mbfl_convert_filter *filter); + +#endif /* MBFL_MBFILTER_PASS_H */ diff --git a/ext/mbstring/libmbfl/mbfl/mbfilter_wchar.c b/ext/mbstring/libmbfl/mbfl/mbfilter_wchar.c new file mode 100644 index 0000000..50f7629 --- /dev/null +++ b/ext/mbstring/libmbfl/mbfl/mbfilter_wchar.c @@ -0,0 +1,48 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by Moriyoshi Koizumi <moriyoshi@php.net> on 20 Dec 2002. The file + * mbfilter.c is included in this package . + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#ifdef HAVE_STDDEF_H +#include <stddef.h> +#endif + +#include "mbfilter.h" + +const mbfl_encoding mbfl_encoding_wchar = { + mbfl_no_encoding_wchar, + "wchar", + NULL, + NULL, + NULL, + MBFL_ENCTYPE_WCS4BE +}; diff --git a/ext/mbstring/libmbfl/mbfl/mbfilter_wchar.h b/ext/mbstring/libmbfl/mbfl/mbfilter_wchar.h new file mode 100644 index 0000000..9e9396a --- /dev/null +++ b/ext/mbstring/libmbfl/mbfl/mbfilter_wchar.h @@ -0,0 +1,39 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by Moriyoshi Koizumi <moriyoshi@php.net> on 20 Dec 2002. The file + * mbfilter.c is included in this package . + * + */ + +#ifndef MBFL_MBFILTER_WCHAR_H +#define MBFL_MBFILTER_WCHAR_H + +#include "mbfl_defs.h" +#include "mbfilter.h" + +MBFLAPI extern const mbfl_encoding mbfl_encoding_wchar; + +#endif /* MBFL_MBFILTER_WCHAR_H */ diff --git a/ext/mbstring/libmbfl/mbfl/mbfl_allocators.c b/ext/mbstring/libmbfl/mbfl/mbfl_allocators.c new file mode 100644 index 0000000..be9d345 --- /dev/null +++ b/ext/mbstring/libmbfl/mbfl/mbfl_allocators.c @@ -0,0 +1,93 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by Moriyoshi Koizumi <moriyoshi@php.net> on 20 Dec 2002. The file + * mbfilter.c is included in this package . + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#ifdef HAVE_STDLIB_H +#include <stdlib.h> +#endif + +#ifdef HAVE_MEMORY_H +#include <memory.h> +#endif + +#ifdef HAVE_STRING_H +#include <string.h> +#endif + +#ifdef HAVE_STRINGS_H +#include <strings.h> +#endif + +#ifdef HAVE_STDDEF_H +#include <stddef.h> +#endif + +#include "mbfl_allocators.h" + +static void *__mbfl__malloc(unsigned int); +static void *__mbfl__realloc(void *, unsigned int); +static void *__mbfl__calloc(unsigned int, unsigned int); +static void __mbfl__free(void *); + +static mbfl_allocators default_allocators = { + __mbfl__malloc, + __mbfl__realloc, + __mbfl__calloc, + __mbfl__free, + __mbfl__malloc, + __mbfl__realloc, + __mbfl__free +}; + +mbfl_allocators *__mbfl_allocators = &default_allocators; + +static void *__mbfl__malloc(unsigned int sz) +{ + return malloc(sz); +} + +static void *__mbfl__realloc(void *ptr, unsigned int sz) +{ + return realloc(ptr, sz); +} + +static void *__mbfl__calloc(unsigned int nelems, unsigned int szelem) +{ + return calloc(nelems, szelem); +} + +static void __mbfl__free(void *ptr) +{ + free(ptr); +} + diff --git a/ext/mbstring/libmbfl/mbfl/mbfl_allocators.h b/ext/mbstring/libmbfl/mbfl/mbfl_allocators.h new file mode 100644 index 0000000..a1539f0 --- /dev/null +++ b/ext/mbstring/libmbfl/mbfl/mbfl_allocators.h @@ -0,0 +1,56 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.h + * by Moriyoshi Koizumi <moriyoshi@php.net> on 20 Dec 2002. The file + * mbfilter.h is included in this package . + * + */ + +#ifndef MBFL_ALLOCATORS_H +#define MBFL_ALLOCATORS_H + +#include "mbfl_defs.h" + +typedef struct _mbfl_allocators { + void *(*malloc)(unsigned int); + void *(*realloc)(void *, unsigned int); + void *(*calloc)(unsigned int, unsigned int); + void (*free)(void *); + void *(*pmalloc)(unsigned int); + void *(*prealloc)(void *, unsigned int); + void (*pfree)(void *); +} mbfl_allocators; + +MBFLAPI extern mbfl_allocators *__mbfl_allocators; + +#define mbfl_malloc (__mbfl_allocators->malloc) +#define mbfl_realloc (__mbfl_allocators->realloc) +#define mbfl_calloc (__mbfl_allocators->calloc) +#define mbfl_free (__mbfl_allocators->free) +#define mbfl_pmalloc (__mbfl_allocators->pmalloc) +#define mbfl_prealloc (__mbfl_allocators->preallloc) +#define mbfl_pfree (__mbfl_allocators->pfree) + +#endif /* MBFL_ALLOCATORS_H */ diff --git a/ext/mbstring/libmbfl/mbfl/mbfl_consts.h b/ext/mbstring/libmbfl/mbfl/mbfl_consts.h new file mode 100644 index 0000000..6a630c8 --- /dev/null +++ b/ext/mbstring/libmbfl/mbfl/mbfl_consts.h @@ -0,0 +1,94 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.h + * by Moriyoshi Koizumi <moriyoshi@php.net> on 20 Dec 2002. The file + * mbfilter.h is included in this package . + * + */ + +#ifndef MBFL_CONSTS_H +#define MBFL_CONSTS_H + +#define MBFL_ENCTYPE_SBCS 0x00000001 +#define MBFL_ENCTYPE_MBCS 0x00000002 +#define MBFL_ENCTYPE_WCS2BE 0x00000010 +#define MBFL_ENCTYPE_WCS2LE 0x00000020 +#define MBFL_ENCTYPE_MWC2BE 0x00000040 +#define MBFL_ENCTYPE_MWC2LE 0x00000080 +#define MBFL_ENCTYPE_WCS4BE 0x00000100 +#define MBFL_ENCTYPE_WCS4LE 0x00000200 +#define MBFL_ENCTYPE_MWC4BE 0x00000400 +#define MBFL_ENCTYPE_MWC4LE 0x00000800 +#define MBFL_ENCTYPE_SHFTCODE 0x00001000 +#define MBFL_ENCTYPE_ENC_STRM 0x00002000 +#define MBFL_ENCTYPE_GL_UNSAFE 0x00004000 + +/* wchar plane, special charactor */ +#define MBFL_WCSPLANE_MASK 0xffff +#define MBFL_WCSPLANE_UCS2MAX 0x00010000 +#define MBFL_WCSPLANE_UTF32MAX 0x00110000 +#define MBFL_WCSPLANE_SUPMIN 0x00010000 +#define MBFL_WCSPLANE_SUPMAX 0x00200000 +#define MBFL_WCSPLANE_JIS0213 0x70e00000 /* JIS HEX : 2121h - 7E7Eh */ +#define MBFL_WCSPLANE_JIS0208 0x70e10000 /* JIS HEX : 2121h - 7E7Eh */ +#define MBFL_WCSPLANE_JIS0212 0x70e20000 /* JIS HEX : 2121h - 7E7Eh */ +#define MBFL_WCSPLANE_WINCP932 0x70e30000 /* JIS HEX : 2121h - 9898h */ +#define MBFL_WCSPLANE_8859_1 0x70e40000 /* 00h - FFh */ +#define MBFL_WCSPLANE_8859_2 0x70e50000 /* 00h - FFh */ +#define MBFL_WCSPLANE_8859_3 0x70e60000 /* 00h - FFh */ +#define MBFL_WCSPLANE_8859_4 0x70e70000 /* 00h - FFh */ +#define MBFL_WCSPLANE_8859_5 0x70e80000 /* 00h - FFh */ +#define MBFL_WCSPLANE_8859_6 0x70e90000 /* 00h - FFh */ +#define MBFL_WCSPLANE_8859_7 0x70ea0000 /* 00h - FFh */ +#define MBFL_WCSPLANE_8859_8 0x70eb0000 /* 00h - FFh */ +#define MBFL_WCSPLANE_8859_9 0x70ec0000 /* 00h - FFh */ +#define MBFL_WCSPLANE_8859_10 0x70ed0000 /* 00h - FFh */ +#define MBFL_WCSPLANE_8859_13 0x70ee0000 /* 00h - FFh */ +#define MBFL_WCSPLANE_8859_14 0x70ef0000 /* 00h - FFh */ +#define MBFL_WCSPLANE_8859_15 0x70f00000 /* 00h - FFh */ +#define MBFL_WCSPLANE_KSC5601 0x70f10000 /* 2121h - 7E7Eh */ +#define MBFL_WCSPLANE_GB2312 0x70f20000 /* 2121h - 7E7Eh */ +#define MBFL_WCSPLANE_WINCP936 0x70f30000 /* 2121h - 9898h */ +#define MBFL_WCSPLANE_BIG5 0x70f40000 /* 2121h - 9898h */ +#define MBFL_WCSPLANE_CNS11643 0x70f50000 /* 2121h - 9898h */ +#define MBFL_WCSPLANE_UHC 0x70f60000 /* 8141h - fefeh */ +#define MBFL_WCSPLANE_CP1251 0x70f70000 +#define MBFL_WCSPLANE_CP866 0x70f80000 +#define MBFL_WCSPLANE_KOI8R 0x70f90000 +#define MBFL_WCSPLANE_8859_16 0x70fa0000 /* 00h - FFh */ +#define MBFL_WCSPLANE_ARMSCII8 0x70fb0000 +#define MBFL_WCSPLANE_KOI8U 0x70fc0000 +#define MBFL_WCSPLANE_CP1254 0x70fd0000 /* 00h - FFh */ +#define MBFL_WCSPLANE_CP850 0x70fe0000 /* 00h - FFh */ +#define MBFL_WCSPLANE_GB18030 0x70ff0000 /* a1a1h-e3329a35h */ +#define MBFL_WCSGROUP_MASK 0xffffff +#define MBFL_WCSGROUP_UCS4MAX 0x70000000 +#define MBFL_WCSGROUP_WCHARMAX 0x78000000 +#define MBFL_WCSGROUP_THROUGH 0x78000000 /* 000000h - FFFFFFh */ + +#define MBFL_QPRINT_STS_MIME_HEADER 0x1000000 +#define MBFL_BASE64_STS_MIME_HEADER 0x1000000 + +#endif /* MBFL_CONSTS_H */ diff --git a/ext/mbstring/libmbfl/mbfl/mbfl_convert.c b/ext/mbstring/libmbfl/mbfl/mbfl_convert.c new file mode 100644 index 0000000..ae8deb2 --- /dev/null +++ b/ext/mbstring/libmbfl/mbfl/mbfl_convert.c @@ -0,0 +1,627 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by Moriyoshi Koizumi <moriyoshi@php.net> on 20 Dec 2002. The file + * mbfilter.c is included in this package . + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#ifdef HAVE_STDDEF_H +#include <stddef.h> +#endif + +#include "mbfl_encoding.h" +#include "mbfl_allocators.h" +#include "mbfl_filter_output.h" +#include "mbfilter_pass.h" +#include "mbfilter_8bit.h" +#include "mbfilter_wchar.h" + +#include "filters/mbfilter_euc_cn.h" +#include "filters/mbfilter_hz.h" +#include "filters/mbfilter_euc_tw.h" +#include "filters/mbfilter_big5.h" +#include "filters/mbfilter_uhc.h" +#include "filters/mbfilter_euc_kr.h" +#include "filters/mbfilter_iso2022_kr.h" +#include "filters/mbfilter_sjis.h" +#include "filters/mbfilter_sjis_open.h" +#include "filters/mbfilter_sjis_2004.h" +#include "filters/mbfilter_sjis_mobile.h" +#include "filters/mbfilter_sjis_mac.h" +#include "filters/mbfilter_cp51932.h" +#include "filters/mbfilter_jis.h" +#include "filters/mbfilter_iso2022_jp_ms.h" +#include "filters/mbfilter_iso2022jp_2004.h" +#include "filters/mbfilter_iso2022jp_mobile.h" +#include "filters/mbfilter_euc_jp.h" +#include "filters/mbfilter_euc_jp_2004.h" +#include "filters/mbfilter_euc_jp_win.h" +#include "filters/mbfilter_gb18030.h" +#include "filters/mbfilter_ascii.h" +#include "filters/mbfilter_koi8r.h" +#include "filters/mbfilter_koi8u.h" +#include "filters/mbfilter_cp866.h" +#include "filters/mbfilter_cp932.h" +#include "filters/mbfilter_cp936.h" +#include "filters/mbfilter_cp1251.h" +#include "filters/mbfilter_cp1252.h" +#include "filters/mbfilter_cp1254.h" +#include "filters/mbfilter_cp5022x.h" +#include "filters/mbfilter_iso8859_1.h" +#include "filters/mbfilter_iso8859_2.h" +#include "filters/mbfilter_iso8859_3.h" +#include "filters/mbfilter_iso8859_4.h" +#include "filters/mbfilter_iso8859_5.h" +#include "filters/mbfilter_iso8859_6.h" +#include "filters/mbfilter_iso8859_7.h" +#include "filters/mbfilter_iso8859_8.h" +#include "filters/mbfilter_iso8859_9.h" +#include "filters/mbfilter_iso8859_10.h" +#include "filters/mbfilter_iso8859_13.h" +#include "filters/mbfilter_iso8859_14.h" +#include "filters/mbfilter_iso8859_15.h" +#include "filters/mbfilter_base64.h" +#include "filters/mbfilter_qprint.h" +#include "filters/mbfilter_uuencode.h" +#include "filters/mbfilter_7bit.h" +#include "filters/mbfilter_utf7.h" +#include "filters/mbfilter_utf7imap.h" +#include "filters/mbfilter_utf8.h" +#include "filters/mbfilter_utf8_mobile.h" +#include "filters/mbfilter_utf16.h" +#include "filters/mbfilter_utf32.h" +#include "filters/mbfilter_byte2.h" +#include "filters/mbfilter_byte4.h" +#include "filters/mbfilter_ucs4.h" +#include "filters/mbfilter_ucs2.h" +#include "filters/mbfilter_htmlent.h" +#include "filters/mbfilter_armscii8.h" +#include "filters/mbfilter_cp850.h" + +/* hex character table "0123456789ABCDEF" */ +static char mbfl_hexchar_table[] = { + 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x41,0x42,0x43,0x44,0x45,0x46 +}; + +const struct mbfl_convert_vtbl *mbfl_convert_filter_list[] = { + &vtbl_utf8_wchar, + &vtbl_wchar_utf8, + &vtbl_eucjp_wchar, + &vtbl_wchar_eucjp, + &vtbl_sjis_wchar, + &vtbl_wchar_sjis, + &vtbl_sjis_open_wchar, + &vtbl_wchar_sjis_open, + &vtbl_sjis2004_wchar, + &vtbl_wchar_sjis2004, + &vtbl_cp51932_wchar, + &vtbl_wchar_cp51932, + &vtbl_jis_wchar, + &vtbl_wchar_jis, + &vtbl_jis_ms_wchar, + &vtbl_wchar_jis_ms, + &vtbl_2022jp_wchar, + &vtbl_wchar_2022jp, + &vtbl_2022jpms_wchar, + &vtbl_wchar_2022jpms, + &vtbl_2022jp_2004_wchar, + &vtbl_wchar_2022jp_2004, + &vtbl_2022jp_kddi_wchar, + &vtbl_wchar_2022jp_kddi, + &vtbl_eucjpwin_wchar, + &vtbl_wchar_eucjpwin, + &vtbl_eucjp2004_wchar, + &vtbl_wchar_eucjp2004, + &vtbl_cp932_wchar, + &vtbl_wchar_cp932, + &vtbl_sjis_docomo_wchar, + &vtbl_wchar_sjis_docomo, + &vtbl_sjis_kddi_wchar, + &vtbl_wchar_sjis_kddi, + &vtbl_sjis_sb_wchar, + &vtbl_wchar_sjis_sb, + &vtbl_sjis_mac_wchar, + &vtbl_wchar_sjis_mac, + &vtbl_utf8_docomo_wchar, + &vtbl_wchar_utf8_docomo, + &vtbl_utf8_kddi_a_wchar, + &vtbl_wchar_utf8_kddi_a, + &vtbl_utf8_kddi_b_wchar, + &vtbl_wchar_utf8_kddi_b, + &vtbl_utf8_sb_wchar, + &vtbl_wchar_utf8_sb, + &vtbl_euccn_wchar, + &vtbl_wchar_euccn, + &vtbl_cp936_wchar, + &vtbl_wchar_cp936, + &vtbl_gb18030_wchar, + &vtbl_wchar_gb18030, + &vtbl_hz_wchar, + &vtbl_wchar_hz, + &vtbl_euctw_wchar, + &vtbl_wchar_euctw, + &vtbl_big5_wchar, + &vtbl_wchar_big5, + &vtbl_cp950_wchar, + &vtbl_wchar_cp950, + &vtbl_euckr_wchar, + &vtbl_wchar_euckr, + &vtbl_uhc_wchar, + &vtbl_wchar_uhc, + &vtbl_2022kr_wchar, + &vtbl_wchar_2022kr, + &vtbl_cp1251_wchar, + &vtbl_wchar_cp1251, + &vtbl_cp866_wchar, + &vtbl_wchar_cp866, + &vtbl_koi8r_wchar, + &vtbl_wchar_koi8r, + &vtbl_koi8u_wchar, + &vtbl_wchar_koi8u, + &vtbl_cp1252_wchar, + &vtbl_wchar_cp1252, + &vtbl_cp1254_wchar, + &vtbl_wchar_cp1254, + &vtbl_cp50220_wchar, + &vtbl_wchar_cp50220, + &vtbl_cp50220raw_wchar, + &vtbl_wchar_cp50220raw, + &vtbl_cp50221_wchar, + &vtbl_wchar_cp50221, + &vtbl_cp50222_wchar, + &vtbl_wchar_cp50222, + &vtbl_ascii_wchar, + &vtbl_wchar_ascii, + &vtbl_8859_1_wchar, + &vtbl_wchar_8859_1, + &vtbl_8859_2_wchar, + &vtbl_wchar_8859_2, + &vtbl_8859_3_wchar, + &vtbl_wchar_8859_3, + &vtbl_8859_4_wchar, + &vtbl_wchar_8859_4, + &vtbl_8859_5_wchar, + &vtbl_wchar_8859_5, + &vtbl_8859_6_wchar, + &vtbl_wchar_8859_6, + &vtbl_8859_7_wchar, + &vtbl_wchar_8859_7, + &vtbl_8859_8_wchar, + &vtbl_wchar_8859_8, + &vtbl_8859_9_wchar, + &vtbl_wchar_8859_9, + &vtbl_8859_10_wchar, + &vtbl_wchar_8859_10, + &vtbl_8859_13_wchar, + &vtbl_wchar_8859_13, + &vtbl_8859_14_wchar, + &vtbl_wchar_8859_14, + &vtbl_8859_15_wchar, + &vtbl_wchar_8859_15, + &vtbl_8bit_b64, + &vtbl_b64_8bit, + &vtbl_uuencode_8bit, + &vtbl_wchar_html, + &vtbl_html_wchar, + &vtbl_8bit_qprint, + &vtbl_qprint_8bit, + &vtbl_8bit_7bit, + &vtbl_7bit_8bit, + &vtbl_utf7_wchar, + &vtbl_wchar_utf7, + &vtbl_utf7imap_wchar, + &vtbl_wchar_utf7imap, + &vtbl_utf16_wchar, + &vtbl_wchar_utf16, + &vtbl_utf16be_wchar, + &vtbl_wchar_utf16be, + &vtbl_utf16le_wchar, + &vtbl_wchar_utf16le, + &vtbl_utf32_wchar, + &vtbl_wchar_utf32, + &vtbl_utf32be_wchar, + &vtbl_wchar_utf32be, + &vtbl_utf32le_wchar, + &vtbl_wchar_utf32le, + &vtbl_ucs4_wchar, + &vtbl_wchar_ucs4, + &vtbl_ucs4be_wchar, + &vtbl_wchar_ucs4be, + &vtbl_ucs4le_wchar, + &vtbl_wchar_ucs4le, + &vtbl_ucs2_wchar, + &vtbl_wchar_ucs2, + &vtbl_ucs2be_wchar, + &vtbl_wchar_ucs2be, + &vtbl_ucs2le_wchar, + &vtbl_wchar_ucs2le, + &vtbl_byte4be_wchar, + &vtbl_wchar_byte4be, + &vtbl_byte4le_wchar, + &vtbl_wchar_byte4le, + &vtbl_byte2be_wchar, + &vtbl_wchar_byte2be, + &vtbl_byte2le_wchar, + &vtbl_wchar_byte2le, + &vtbl_armscii8_wchar, + &vtbl_wchar_armscii8, + &vtbl_cp850_wchar, + &vtbl_wchar_cp850, + &vtbl_pass, + NULL +}; + +static int +mbfl_convert_filter_common_init( + mbfl_convert_filter *filter, + enum mbfl_no_encoding from, + enum mbfl_no_encoding to, + const struct mbfl_convert_vtbl *vtbl, + int (*output_function)(int, void* ), + int (*flush_function)(void*), + void* data) +{ + /* encoding structure */ + if ((filter->from = mbfl_no2encoding(from)) == NULL) { + return 1; + } + + if ((filter->to = mbfl_no2encoding(to)) == NULL) { + return 1; + } + + if (output_function != NULL) { + filter->output_function = output_function; + } else { + filter->output_function = mbfl_filter_output_null; + } + + filter->flush_function = flush_function; + filter->data = data; + filter->illegal_mode = MBFL_OUTPUTFILTER_ILLEGAL_MODE_CHAR; + filter->illegal_substchar = 0x3f; /* '?' */ + filter->num_illegalchar = 0; + filter->filter_ctor = vtbl->filter_ctor; + filter->filter_dtor = vtbl->filter_dtor; + filter->filter_function = vtbl->filter_function; + filter->filter_flush = vtbl->filter_flush; + filter->filter_copy = vtbl->filter_copy; + + (*filter->filter_ctor)(filter); + + return 0; +} + + +mbfl_convert_filter * +mbfl_convert_filter_new( + enum mbfl_no_encoding from, + enum mbfl_no_encoding to, + int (*output_function)(int, void* ), + int (*flush_function)(void*), + void* data) +{ + mbfl_convert_filter * filter; + const struct mbfl_convert_vtbl *vtbl; + + vtbl = mbfl_convert_filter_get_vtbl(from, to); + + if (vtbl == NULL) { + vtbl = &vtbl_pass; + } + + /* allocate */ + filter = (mbfl_convert_filter *)mbfl_malloc(sizeof(mbfl_convert_filter)); + if (filter == NULL) { + return NULL; + } + + if (mbfl_convert_filter_common_init(filter, from, to, vtbl, + output_function, flush_function, data)) { + mbfl_free(filter); + return NULL; + } + + return filter; +} + +mbfl_convert_filter * +mbfl_convert_filter_new2( + const struct mbfl_convert_vtbl *vtbl, + int (*output_function)(int, void* ), + int (*flush_function)(void*), + void* data) +{ + mbfl_convert_filter * filter; + + if (vtbl == NULL) { + vtbl = &vtbl_pass; + } + + /* allocate */ + filter = (mbfl_convert_filter *)mbfl_malloc(sizeof(mbfl_convert_filter)); + if (filter == NULL) { + return NULL; + } + + if (mbfl_convert_filter_common_init(filter, vtbl->from, vtbl->to, vtbl, + output_function, flush_function, data)) { + mbfl_free(filter); + return NULL; + } + + return filter; +} + +void +mbfl_convert_filter_delete(mbfl_convert_filter *filter) +{ + if (filter) { + (*filter->filter_dtor)(filter); + mbfl_free((void*)filter); + } +} + +int +mbfl_convert_filter_feed(int c, mbfl_convert_filter *filter) +{ + return (*filter->filter_function)(c, filter); +} + +int +mbfl_convert_filter_flush(mbfl_convert_filter *filter) +{ + (*filter->filter_flush)(filter); + return (filter->flush_function ? (*filter->flush_function)(filter->data) : 0); +} + +void mbfl_convert_filter_reset(mbfl_convert_filter *filter, + enum mbfl_no_encoding from, enum mbfl_no_encoding to) +{ + const struct mbfl_convert_vtbl *vtbl; + + /* destruct old filter */ + (*filter->filter_dtor)(filter); + + vtbl = mbfl_convert_filter_get_vtbl(from, to); + + if (vtbl == NULL) { + vtbl = &vtbl_pass; + } + + mbfl_convert_filter_common_init(filter, from, to, vtbl, + filter->output_function, filter->flush_function, filter->data); +} + +void +mbfl_convert_filter_copy( + mbfl_convert_filter *src, + mbfl_convert_filter *dest) +{ + if (src->filter_copy != NULL) { + src->filter_copy(src, dest); + return; + } + + *dest = *src; +} + +int mbfl_convert_filter_devcat(mbfl_convert_filter *filter, mbfl_memory_device *src) +{ + int n; + unsigned char *p; + + p = src->buffer; + n = src->pos; + while (n > 0) { + if ((*filter->filter_function)(*p++, filter) < 0) { + return -1; + } + n--; + } + + return n; +} + +int mbfl_convert_filter_strcat(mbfl_convert_filter *filter, const unsigned char *p) +{ + int c; + + while ((c = *p++) != '\0') { + if ((*filter->filter_function)(c, filter) < 0) { + return -1; + } + } + + return 0; +} + +/* illegal character output function for conv-filter */ +int +mbfl_filt_conv_illegal_output(int c, mbfl_convert_filter *filter) +{ + int mode_backup, ret, n, m, r; + + ret = 0; + mode_backup = filter->illegal_mode; + filter->illegal_mode = MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE; + switch (mode_backup) { + case MBFL_OUTPUTFILTER_ILLEGAL_MODE_CHAR: + ret = (*filter->filter_function)(filter->illegal_substchar, filter); + break; + case MBFL_OUTPUTFILTER_ILLEGAL_MODE_LONG: + if (c >= 0) { + if (c < MBFL_WCSGROUP_UCS4MAX) { /* unicode */ + ret = mbfl_convert_filter_strcat(filter, (const unsigned char *)"U+"); + } else { + if (c < MBFL_WCSGROUP_WCHARMAX) { + m = c & ~MBFL_WCSPLANE_MASK; + switch (m) { + case MBFL_WCSPLANE_JIS0208: + ret = mbfl_convert_filter_strcat(filter, (const unsigned char *)"JIS+"); + break; + case MBFL_WCSPLANE_JIS0212: + ret = mbfl_convert_filter_strcat(filter, (const unsigned char *)"JIS2+"); + break; + case MBFL_WCSPLANE_JIS0213: + ret = mbfl_convert_filter_strcat(filter, (const unsigned char *)"JIS3+"); + break; + case MBFL_WCSPLANE_WINCP932: + ret = mbfl_convert_filter_strcat(filter, (const unsigned char *)"W932+"); + break; + case MBFL_WCSPLANE_GB18030: + ret = mbfl_convert_filter_strcat(filter, (const unsigned char *)"GB+"); + break; + case MBFL_WCSPLANE_8859_1: + ret = mbfl_convert_filter_strcat(filter, (const unsigned char *)"I8859_1+"); + break; + default: + ret = mbfl_convert_filter_strcat(filter, (const unsigned char *)"?+"); + break; + } + c &= MBFL_WCSPLANE_MASK; + } else { + ret = mbfl_convert_filter_strcat(filter, (const unsigned char *)"BAD+"); + c &= MBFL_WCSGROUP_MASK; + } + } + if (ret >= 0) { + m = 0; + r = 28; + while (r >= 0) { + n = (c >> r) & 0xf; + if (n || m) { + m = 1; + ret = (*filter->filter_function)(mbfl_hexchar_table[n], filter); + if (ret < 0) { + break; + } + } + r -= 4; + } + if (m == 0 && ret >= 0) { + ret = (*filter->filter_function)(mbfl_hexchar_table[0], filter); + } + } + } + break; + case MBFL_OUTPUTFILTER_ILLEGAL_MODE_ENTITY: + if (c >= 0) { + if (c < MBFL_WCSGROUP_UCS4MAX) { /* unicode */ + ret = mbfl_convert_filter_strcat(filter, (const unsigned char *)"&#x"); + if (ret < 0) + break; + + m = 0; + r = 28; + while (r >= 0) { + n = (c >> r) & 0xf; + if (n || m) { + m = 1; + ret = (*filter->filter_function)(mbfl_hexchar_table[n], filter); + if (ret < 0) { + break; + } + } + r -= 4; + } + if (ret < 0) { + break; + } + if (m == 0) { + ret = (*filter->filter_function)(mbfl_hexchar_table[0], filter); + } + ret = mbfl_convert_filter_strcat(filter, (const unsigned char *)";"); + } else { + ret = (*filter->filter_function)(filter->illegal_substchar, filter); + } + } + break; + default: + break; + } + filter->illegal_mode = mode_backup; + filter->num_illegalchar++; + + return ret; +} + +const struct mbfl_convert_vtbl * mbfl_convert_filter_get_vtbl(enum mbfl_no_encoding from, enum mbfl_no_encoding to) +{ + const struct mbfl_convert_vtbl *vtbl; + int i; + + if (to == mbfl_no_encoding_base64 || + to == mbfl_no_encoding_qprint || + to == mbfl_no_encoding_7bit) { + from = mbfl_no_encoding_8bit; + } else if (from == mbfl_no_encoding_base64 || + from == mbfl_no_encoding_qprint || + from == mbfl_no_encoding_uuencode) { + to = mbfl_no_encoding_8bit; + } + + i = 0; + while ((vtbl = mbfl_convert_filter_list[i++]) != NULL){ + if (vtbl->from == from && vtbl->to == to) { + return vtbl; + } + } + + return NULL; +} + +/* + * commonly used constructor and destructor + */ +void mbfl_filt_conv_common_ctor(mbfl_convert_filter *filter) +{ + filter->status = 0; + filter->cache = 0; +} + +int mbfl_filt_conv_common_flush(mbfl_convert_filter *filter) +{ + filter->status = 0; + filter->cache = 0; + + if (filter->flush_function != NULL) { + (*filter->flush_function)(filter->data); + } + return 0; +} + +void mbfl_filt_conv_common_dtor(mbfl_convert_filter *filter) +{ + filter->status = 0; + filter->cache = 0; +} + + diff --git a/ext/mbstring/libmbfl/mbfl/mbfl_convert.h b/ext/mbstring/libmbfl/mbfl/mbfl_convert.h new file mode 100644 index 0000000..8b5ba5b --- /dev/null +++ b/ext/mbstring/libmbfl/mbfl/mbfl_convert.h @@ -0,0 +1,97 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.h + * by Moriyoshi Koizumi <moriyoshi@php.net> on 20 Dec 2002. The file + * mbfilter.h is included in this package . + * + */ + +#ifndef MBFL_CONVERT_H +#define MBFL_CONVERT_H + +#include "mbfl_defs.h" +#include "mbfl_encoding.h" +#include "mbfl_memory_device.h" + +typedef struct _mbfl_convert_filter mbfl_convert_filter; + +struct _mbfl_convert_filter { + void (*filter_ctor)(mbfl_convert_filter *filter); + void (*filter_dtor)(mbfl_convert_filter *filter); + void (*filter_copy)(mbfl_convert_filter *src, mbfl_convert_filter *dest); + int (*filter_function)(int c, mbfl_convert_filter *filter); + int (*filter_flush)(mbfl_convert_filter *filter); + int (*output_function)(int c, void *data); + int (*flush_function)(void *data); + void *data; + int status; + int cache; + const mbfl_encoding *from; + const mbfl_encoding *to; + int illegal_mode; + int illegal_substchar; + int num_illegalchar; + void *opaque; +}; + +struct mbfl_convert_vtbl { + enum mbfl_no_encoding from; + enum mbfl_no_encoding to; + void (*filter_ctor)(mbfl_convert_filter *filter); + void (*filter_dtor)(mbfl_convert_filter *filter); + int (*filter_function)(int c, mbfl_convert_filter *filter); + int (*filter_flush)(mbfl_convert_filter *filter); + void (*filter_copy)(mbfl_convert_filter *src, mbfl_convert_filter *dest); +}; + +MBFLAPI extern const struct mbfl_convert_vtbl *mbfl_convert_filter_list[]; + +MBFLAPI extern mbfl_convert_filter *mbfl_convert_filter_new( + enum mbfl_no_encoding from, + enum mbfl_no_encoding to, + int (*output_function)(int, void *), + int (*flush_function)(void *), + void *data ); +MBFLAPI extern mbfl_convert_filter *mbfl_convert_filter_new2( + const struct mbfl_convert_vtbl *vtbl, + int (*output_function)(int, void *), + int (*flush_function)(void *), + void *data ); +MBFLAPI extern void mbfl_convert_filter_delete(mbfl_convert_filter *filter); +MBFLAPI extern int mbfl_convert_filter_feed(int c, mbfl_convert_filter *filter); +MBFLAPI extern int mbfl_convert_filter_flush(mbfl_convert_filter *filter); +MBFLAPI extern void mbfl_convert_filter_reset(mbfl_convert_filter *filter, enum mbfl_no_encoding from, enum mbfl_no_encoding to); +MBFLAPI extern void mbfl_convert_filter_copy(mbfl_convert_filter *src, mbfl_convert_filter *dist); +MBFLAPI extern int mbfl_filt_conv_illegal_output(int c, mbfl_convert_filter *filter); +MBFLAPI extern const struct mbfl_convert_vtbl * mbfl_convert_filter_get_vtbl(enum mbfl_no_encoding from, enum mbfl_no_encoding to); + +MBFLAPI extern void mbfl_filt_conv_common_ctor(mbfl_convert_filter *filter); +MBFLAPI extern int mbfl_filt_conv_common_flush(mbfl_convert_filter *filter); +MBFLAPI extern void mbfl_filt_conv_common_dtor(mbfl_convert_filter *filter); + +MBFLAPI extern int mbfl_convert_filter_devcat(mbfl_convert_filter *filter, mbfl_memory_device *src); +MBFLAPI extern int mbfl_convert_filter_strcat(mbfl_convert_filter *filter, const unsigned char *p); + +#endif /* MBFL_CONVERT_H */ diff --git a/ext/mbstring/libmbfl/mbfl/mbfl_defs.h b/ext/mbstring/libmbfl/mbfl/mbfl_defs.h new file mode 100644 index 0000000..fcfac2b --- /dev/null +++ b/ext/mbstring/libmbfl/mbfl/mbfl_defs.h @@ -0,0 +1,56 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.h + * by Moriyoshi Koizumi <moriyoshi@php.net> on 20 Dec 2002. The file + * mbfilter.h is included in this package . + * + */ + +#ifndef MBFL_DEFS_H +#define MBFL_DEFS_H + +#ifndef NULL +#ifdef __cplusplus +#define NULL (0L) +#else +#define NULL (void *)(0L) +#endif +#endif + +#ifdef WIN32 +#ifdef MBFL_DLL_EXPORT +#define MBFLAPI __declspec(dllexport) +#else +#define MBFLAPI __declspec(dllimport) +#endif /* MBFL_DLL_EXPORT */ +#else +#if defined(__GNUC__) && __GNUC__ >= 4 +#define MBFLAPI __attribute__((visibility("default"))) +#else +#define MBFLAPI +#endif /* defined(__GNUC__) && __GNUC__ >= 4 */ +#endif /* WIN32 */ + +#endif /* MBFL_DEFS_H */ diff --git a/ext/mbstring/libmbfl/mbfl/mbfl_encoding.c b/ext/mbstring/libmbfl/mbfl/mbfl_encoding.c new file mode 100644 index 0000000..adf0c3a --- /dev/null +++ b/ext/mbstring/libmbfl/mbfl/mbfl_encoding.c @@ -0,0 +1,341 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by Moriyoshi Koizumi <moriyoshi@php.net> on 20 Dec 2002. The file + * mbfilter.c is included in this package . + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#ifdef HAVE_STDDEF_H +#include <stddef.h> +#endif + +#ifdef HAVE_STRING_H +#include <string.h> +#endif + +#ifdef HAVE_STRINGS_H +#include <strings.h> +#endif + +#include "mbfl_encoding.h" +#include "mbfilter_pass.h" +#include "mbfilter_8bit.h" +#include "mbfilter_wchar.h" + +#include "filters/mbfilter_euc_cn.h" +#include "filters/mbfilter_hz.h" +#include "filters/mbfilter_euc_tw.h" +#include "filters/mbfilter_big5.h" +#include "filters/mbfilter_uhc.h" +#include "filters/mbfilter_euc_kr.h" +#include "filters/mbfilter_iso2022_kr.h" +#include "filters/mbfilter_sjis.h" +#include "filters/mbfilter_sjis_open.h" +#include "filters/mbfilter_sjis_mobile.h" +#include "filters/mbfilter_sjis_mac.h" +#include "filters/mbfilter_sjis_2004.h" +#include "filters/mbfilter_cp51932.h" +#include "filters/mbfilter_jis.h" +#include "filters/mbfilter_iso2022_jp_ms.h" +#include "filters/mbfilter_iso2022jp_2004.h" +#include "filters/mbfilter_iso2022jp_mobile.h" +#include "filters/mbfilter_euc_jp.h" +#include "filters/mbfilter_euc_jp_win.h" +#include "filters/mbfilter_euc_jp_2004.h" +#include "filters/mbfilter_gb18030.h" +#include "filters/mbfilter_ascii.h" +#include "filters/mbfilter_koi8r.h" +#include "filters/mbfilter_koi8u.h" +#include "filters/mbfilter_cp866.h" +#include "filters/mbfilter_cp932.h" +#include "filters/mbfilter_cp936.h" +#include "filters/mbfilter_cp1251.h" +#include "filters/mbfilter_cp1252.h" +#include "filters/mbfilter_cp1254.h" +#include "filters/mbfilter_cp5022x.h" +#include "filters/mbfilter_iso8859_1.h" +#include "filters/mbfilter_iso8859_2.h" +#include "filters/mbfilter_iso8859_3.h" +#include "filters/mbfilter_iso8859_4.h" +#include "filters/mbfilter_iso8859_5.h" +#include "filters/mbfilter_iso8859_6.h" +#include "filters/mbfilter_iso8859_7.h" +#include "filters/mbfilter_iso8859_8.h" +#include "filters/mbfilter_iso8859_9.h" +#include "filters/mbfilter_iso8859_10.h" +#include "filters/mbfilter_iso8859_13.h" +#include "filters/mbfilter_iso8859_14.h" +#include "filters/mbfilter_iso8859_15.h" +#include "filters/mbfilter_iso8859_16.h" +#include "filters/mbfilter_base64.h" +#include "filters/mbfilter_qprint.h" +#include "filters/mbfilter_uuencode.h" +#include "filters/mbfilter_7bit.h" +#include "filters/mbfilter_utf7.h" +#include "filters/mbfilter_utf7imap.h" +#include "filters/mbfilter_utf8.h" +#include "filters/mbfilter_utf8_mobile.h" +#include "filters/mbfilter_utf16.h" +#include "filters/mbfilter_utf32.h" +#include "filters/mbfilter_byte2.h" +#include "filters/mbfilter_byte4.h" +#include "filters/mbfilter_ucs4.h" +#include "filters/mbfilter_ucs2.h" +#include "filters/mbfilter_htmlent.h" +#include "filters/mbfilter_armscii8.h" +#include "filters/mbfilter_cp850.h" + +#ifndef HAVE_STRCASECMP +#ifdef HAVE_STRICMP +#define strcasecmp stricmp +#endif +#endif + + +static const char *mbfl_encoding_auto_aliases[] = {"unknown", NULL}; + +static const mbfl_encoding mbfl_encoding_auto = { + mbfl_no_encoding_auto, + "auto", + NULL, + (const char *(*)[])&mbfl_encoding_auto_aliases, + NULL, + 0 +}; + +static const mbfl_encoding *mbfl_encoding_ptr_list[] = { + &mbfl_encoding_pass, + &mbfl_encoding_auto, + &mbfl_encoding_wchar, + &mbfl_encoding_byte2be, + &mbfl_encoding_byte2le, + &mbfl_encoding_byte4be, + &mbfl_encoding_byte4le, + &mbfl_encoding_base64, + &mbfl_encoding_uuencode, + &mbfl_encoding_html_ent, + &mbfl_encoding_qprint, + &mbfl_encoding_7bit, + &mbfl_encoding_8bit, + &mbfl_encoding_ucs4, + &mbfl_encoding_ucs4be, + &mbfl_encoding_ucs4le, + &mbfl_encoding_ucs2, + &mbfl_encoding_ucs2be, + &mbfl_encoding_ucs2le, + &mbfl_encoding_utf32, + &mbfl_encoding_utf32be, + &mbfl_encoding_utf32le, + &mbfl_encoding_utf16, + &mbfl_encoding_utf16be, + &mbfl_encoding_utf16le, + &mbfl_encoding_utf8, + &mbfl_encoding_utf7, + &mbfl_encoding_utf7imap, + &mbfl_encoding_ascii, + &mbfl_encoding_euc_jp, + &mbfl_encoding_sjis, + &mbfl_encoding_eucjp_win, + &mbfl_encoding_eucjp2004, + &mbfl_encoding_sjis_open, + &mbfl_encoding_sjis_docomo, + &mbfl_encoding_sjis_kddi, + &mbfl_encoding_sjis_sb, + &mbfl_encoding_sjis_mac, + &mbfl_encoding_sjis2004, + &mbfl_encoding_utf8_docomo, + &mbfl_encoding_utf8_kddi_a, + &mbfl_encoding_utf8_kddi_b, + &mbfl_encoding_utf8_sb, + &mbfl_encoding_cp932, + &mbfl_encoding_cp51932, + &mbfl_encoding_jis, + &mbfl_encoding_2022jp, + &mbfl_encoding_2022jpms, + &mbfl_encoding_gb18030, + &mbfl_encoding_cp1252, + &mbfl_encoding_cp1254, + &mbfl_encoding_8859_1, + &mbfl_encoding_8859_2, + &mbfl_encoding_8859_3, + &mbfl_encoding_8859_4, + &mbfl_encoding_8859_5, + &mbfl_encoding_8859_6, + &mbfl_encoding_8859_7, + &mbfl_encoding_8859_8, + &mbfl_encoding_8859_9, + &mbfl_encoding_8859_10, + &mbfl_encoding_8859_13, + &mbfl_encoding_8859_14, + &mbfl_encoding_8859_15, + &mbfl_encoding_8859_16, + &mbfl_encoding_euc_cn, + &mbfl_encoding_cp936, + &mbfl_encoding_hz, + &mbfl_encoding_euc_tw, + &mbfl_encoding_big5, + &mbfl_encoding_cp950, + &mbfl_encoding_euc_kr, + &mbfl_encoding_uhc, + &mbfl_encoding_2022kr, + &mbfl_encoding_cp1251, + &mbfl_encoding_cp866, + &mbfl_encoding_koi8r, + &mbfl_encoding_koi8u, + &mbfl_encoding_armscii8, + &mbfl_encoding_cp850, + &mbfl_encoding_jis_ms, + &mbfl_encoding_2022jp_2004, + &mbfl_encoding_2022jp_kddi, + &mbfl_encoding_cp50220, + &mbfl_encoding_cp50220raw, + &mbfl_encoding_cp50221, + &mbfl_encoding_cp50222, + NULL +}; + +/* encoding resolver */ +const mbfl_encoding * +mbfl_name2encoding(const char *name) +{ + const mbfl_encoding *encoding; + int i, j; + + if (name == NULL) { + return NULL; + } + + i = 0; + while ((encoding = mbfl_encoding_ptr_list[i++]) != NULL){ + if (strcasecmp(encoding->name, name) == 0) { + return encoding; + } + } + + /* serch MIME charset name */ + i = 0; + while ((encoding = mbfl_encoding_ptr_list[i++]) != NULL) { + if (encoding->mime_name != NULL) { + if (strcasecmp(encoding->mime_name, name) == 0) { + return encoding; + } + } + } + + /* serch aliases */ + i = 0; + while ((encoding = mbfl_encoding_ptr_list[i++]) != NULL) { + if (encoding->aliases != NULL) { + j = 0; + while ((*encoding->aliases)[j] != NULL) { + if (strcasecmp((*encoding->aliases)[j], name) == 0) { + return encoding; + } + j++; + } + } + } + + return NULL; +} + +const mbfl_encoding * +mbfl_no2encoding(enum mbfl_no_encoding no_encoding) +{ + const mbfl_encoding *encoding; + int i; + + i = 0; + while ((encoding = mbfl_encoding_ptr_list[i++]) != NULL){ + if (encoding->no_encoding == no_encoding) { + return encoding; + } + } + + return NULL; +} + +enum mbfl_no_encoding +mbfl_name2no_encoding(const char *name) +{ + const mbfl_encoding *encoding; + + encoding = mbfl_name2encoding(name); + if (encoding == NULL) { + return mbfl_no_encoding_invalid; + } else { + return encoding->no_encoding; + } +} + +const char * +mbfl_no_encoding2name(enum mbfl_no_encoding no_encoding) +{ + const mbfl_encoding *encoding; + + encoding = mbfl_no2encoding(no_encoding); + if (encoding == NULL) { + return ""; + } else { + return encoding->name; + } +} + +const mbfl_encoding ** +mbfl_get_supported_encodings(void) +{ + return mbfl_encoding_ptr_list; +} + +const char * +mbfl_no2preferred_mime_name(enum mbfl_no_encoding no_encoding) +{ + const mbfl_encoding *encoding; + + encoding = mbfl_no2encoding(no_encoding); + if (encoding != NULL && encoding->mime_name != NULL && encoding->mime_name[0] != '\0') { + return encoding->mime_name; + } else { + return NULL; + } +} + +int +mbfl_is_support_encoding(const char *name) +{ + const mbfl_encoding *encoding; + + encoding = mbfl_name2encoding(name); + if (encoding == NULL) { + return 0; + } else { + return 1; + } +} diff --git a/ext/mbstring/libmbfl/mbfl/mbfl_encoding.h b/ext/mbstring/libmbfl/mbfl/mbfl_encoding.h new file mode 100644 index 0000000..ca7717c --- /dev/null +++ b/ext/mbstring/libmbfl/mbfl/mbfl_encoding.h @@ -0,0 +1,152 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.h + * by Moriyoshi Koizumi <moriyoshi@php.net> on 20 Dec 2002. The file + * mbfilter.h is included in this package . + * + */ + +#ifndef MBFL_ENCODING_H +#define MBFL_ENCODING_H + +#include "mbfl_defs.h" + +enum mbfl_no_encoding { + mbfl_no_encoding_invalid = -1, + mbfl_no_encoding_pass, + mbfl_no_encoding_auto, + mbfl_no_encoding_wchar, + mbfl_no_encoding_byte2be, + mbfl_no_encoding_byte2le, + mbfl_no_encoding_byte4be, + mbfl_no_encoding_byte4le, + mbfl_no_encoding_base64, + mbfl_no_encoding_uuencode, + mbfl_no_encoding_html_ent, + mbfl_no_encoding_qprint, + mbfl_no_encoding_7bit, + mbfl_no_encoding_8bit, + mbfl_no_encoding_charset_min, + mbfl_no_encoding_ucs4, + mbfl_no_encoding_ucs4be, + mbfl_no_encoding_ucs4le, + mbfl_no_encoding_ucs2, + mbfl_no_encoding_ucs2be, + mbfl_no_encoding_ucs2le, + mbfl_no_encoding_utf32, + mbfl_no_encoding_utf32be, + mbfl_no_encoding_utf32le, + mbfl_no_encoding_utf16, + mbfl_no_encoding_utf16be, + mbfl_no_encoding_utf16le, + mbfl_no_encoding_utf8, + mbfl_no_encoding_utf8_docomo, + mbfl_no_encoding_utf8_kddi_a, + mbfl_no_encoding_utf8_kddi_b, + mbfl_no_encoding_utf8_sb, + mbfl_no_encoding_utf7, + mbfl_no_encoding_utf7imap, + mbfl_no_encoding_ascii, + mbfl_no_encoding_euc_jp, + mbfl_no_encoding_eucjp2004, + mbfl_no_encoding_sjis, + mbfl_no_encoding_eucjp_win, + mbfl_no_encoding_sjis_open, + mbfl_no_encoding_sjis_docomo, + mbfl_no_encoding_sjis_kddi, + mbfl_no_encoding_sjis_sb, + mbfl_no_encoding_sjis_mac, + mbfl_no_encoding_sjis2004, + mbfl_no_encoding_cp932, + mbfl_no_encoding_cp51932, + mbfl_no_encoding_jis, + mbfl_no_encoding_2022jp, + mbfl_no_encoding_2022jp_2004, + mbfl_no_encoding_2022jp_kddi, + mbfl_no_encoding_2022jpms, + mbfl_no_encoding_gb18030, + mbfl_no_encoding_cp1252, + mbfl_no_encoding_cp1254, + mbfl_no_encoding_8859_1, + mbfl_no_encoding_8859_2, + mbfl_no_encoding_8859_3, + mbfl_no_encoding_8859_4, + mbfl_no_encoding_8859_5, + mbfl_no_encoding_8859_6, + mbfl_no_encoding_8859_7, + mbfl_no_encoding_8859_8, + mbfl_no_encoding_8859_9, + mbfl_no_encoding_8859_10, + mbfl_no_encoding_8859_13, + mbfl_no_encoding_8859_14, + mbfl_no_encoding_8859_15, + mbfl_no_encoding_euc_cn, + mbfl_no_encoding_cp936, + mbfl_no_encoding_euc_tw, + mbfl_no_encoding_big5, + mbfl_no_encoding_cp950, + mbfl_no_encoding_euc_kr, + mbfl_no_encoding_2022kr, + mbfl_no_encoding_uhc, + mbfl_no_encoding_hz, + mbfl_no_encoding_cp1251, + mbfl_no_encoding_cp866, + mbfl_no_encoding_koi8r, + mbfl_no_encoding_koi8u, + mbfl_no_encoding_8859_16, + mbfl_no_encoding_armscii8, + mbfl_no_encoding_cp850, + mbfl_no_encoding_jis_ms, + mbfl_no_encoding_cp50220, + mbfl_no_encoding_cp50220raw, + mbfl_no_encoding_cp50221, + mbfl_no_encoding_cp50222, + mbfl_no_encoding_charset_max +}; + +typedef enum mbfl_no_encoding mbfl_encoding_id; + +/* + * encoding + */ +typedef struct _mbfl_encoding { + enum mbfl_no_encoding no_encoding; + const char *name; + const char *mime_name; + const char *(*aliases)[]; + const unsigned char *mblen_table; + unsigned int flag; +} mbfl_encoding; + +MBFLAPI extern const mbfl_encoding * mbfl_name2encoding(const char *name); +MBFLAPI extern const mbfl_encoding * mbfl_no2encoding(enum mbfl_no_encoding no_encoding); +MBFLAPI extern enum mbfl_no_encoding mbfl_name2no_encoding(const char *name); +MBFLAPI extern const mbfl_encoding ** mbfl_get_supported_encodings(); +MBFLAPI extern const char * mbfl_no_encoding2name(enum mbfl_no_encoding no_encoding); +MBFLAPI extern const char * mbfl_no2preferred_mime_name(enum mbfl_no_encoding no_encoding); +MBFLAPI extern int mbfl_is_support_encoding(const char *name); + + +#endif /* MBFL_ENCODING_H */ diff --git a/ext/mbstring/libmbfl/mbfl/mbfl_filter_output.c b/ext/mbstring/libmbfl/mbfl/mbfl_filter_output.c new file mode 100644 index 0000000..341047d --- /dev/null +++ b/ext/mbstring/libmbfl/mbfl/mbfl_filter_output.c @@ -0,0 +1,57 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by Moriyoshi Koizumi <moriyoshi@php.net> on 20 Dec 2002. The file + * mbfilter.c is included in this package . + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "mbfl_convert.h" +#include "mbfl_filter_output.h" + +int mbfl_filter_output_pipe(int c, void* data) +{ + mbfl_convert_filter *filter = (mbfl_convert_filter*)data; + return (*filter->filter_function)(c, filter); +} + +int mbfl_filter_output_pipe_flush(void *data) +{ + mbfl_convert_filter *filter = (mbfl_convert_filter*)data; + if (filter->filter_flush != NULL) { + return (*filter->filter_flush)(filter); + } + + return 0; +} + +int mbfl_filter_output_null(int c, void* data) +{ + return c; +} diff --git a/ext/mbstring/libmbfl/mbfl/mbfl_filter_output.h b/ext/mbstring/libmbfl/mbfl/mbfl_filter_output.h new file mode 100644 index 0000000..d477653 --- /dev/null +++ b/ext/mbstring/libmbfl/mbfl/mbfl_filter_output.h @@ -0,0 +1,38 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.h + * by Moriyoshi Koizumi <moriyoshi@php.net> on 20 Dec 2002. The file + * mbfilter.h is included in this package . + * + */ + +#ifndef MBFL_FILTER_OUTPUT_H +#define MBFL_FILTER_OUTPUT_H + +MBFLAPI extern int mbfl_filter_output_pipe(int c, void* data); +MBFLAPI extern int mbfl_filter_output_pipe_flush(void* data); +MBFLAPI extern int mbfl_filter_output_null(int c, void* data); + +#endif /* MBFL_FILTER_OUTPUT_H */ diff --git a/ext/mbstring/libmbfl/mbfl/mbfl_ident.c b/ext/mbstring/libmbfl/mbfl/mbfl_ident.c new file mode 100644 index 0000000..4d6283f --- /dev/null +++ b/ext/mbstring/libmbfl/mbfl/mbfl_ident.c @@ -0,0 +1,304 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by Moriyoshi Koizumi <moriyoshi@php.net> on 20 Dec 2002. The file + * mbfilter.c is included in this package . + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#ifdef HAVE_STDDEF_H +#include <stddef.h> +#endif + +#include "mbfl_ident.h" +#include "mbfl_allocators.h" +#include "mbfilter_pass.h" +#include "mbfilter_8bit.h" +#include "mbfilter_wchar.h" + +#include "filters/mbfilter_euc_cn.h" +#include "filters/mbfilter_hz.h" +#include "filters/mbfilter_euc_tw.h" +#include "filters/mbfilter_big5.h" +#include "filters/mbfilter_uhc.h" +#include "filters/mbfilter_euc_kr.h" +#include "filters/mbfilter_iso2022_kr.h" +#include "filters/mbfilter_sjis.h" +#include "filters/mbfilter_sjis_open.h" +#include "filters/mbfilter_sjis_mobile.h" +#include "filters/mbfilter_jis.h" +#include "filters/mbfilter_iso2022_jp_ms.h" +#include "filters/mbfilter_iso2022jp_2004.h" +#include "filters/mbfilter_iso2022jp_mobile.h" +#include "filters/mbfilter_euc_jp.h" +#include "filters/mbfilter_euc_jp_win.h" +#include "filters/mbfilter_euc_jp_2004.h" +#include "filters/mbfilter_utf8_mobile.h" +#include "filters/mbfilter_ascii.h" +#include "filters/mbfilter_koi8r.h" +#include "filters/mbfilter_koi8u.h" +#include "filters/mbfilter_cp866.h" +#include "filters/mbfilter_cp932.h" +#include "filters/mbfilter_cp936.h" +#include "filters/mbfilter_cp1251.h" +#include "filters/mbfilter_cp1252.h" +#include "filters/mbfilter_cp1254.h" +#include "filters/mbfilter_cp51932.h" +#include "filters/mbfilter_cp5022x.h" +#include "filters/mbfilter_gb18030.h" +#include "filters/mbfilter_iso8859_1.h" +#include "filters/mbfilter_iso8859_2.h" +#include "filters/mbfilter_iso8859_3.h" +#include "filters/mbfilter_iso8859_4.h" +#include "filters/mbfilter_iso8859_5.h" +#include "filters/mbfilter_iso8859_6.h" +#include "filters/mbfilter_iso8859_7.h" +#include "filters/mbfilter_iso8859_8.h" +#include "filters/mbfilter_iso8859_9.h" +#include "filters/mbfilter_iso8859_10.h" +#include "filters/mbfilter_iso8859_13.h" +#include "filters/mbfilter_iso8859_14.h" +#include "filters/mbfilter_iso8859_15.h" +#include "filters/mbfilter_base64.h" +#include "filters/mbfilter_qprint.h" +#include "filters/mbfilter_uuencode.h" +#include "filters/mbfilter_7bit.h" +#include "filters/mbfilter_utf7.h" +#include "filters/mbfilter_utf7imap.h" +#include "filters/mbfilter_utf8.h" +#include "filters/mbfilter_utf16.h" +#include "filters/mbfilter_utf32.h" +#include "filters/mbfilter_byte2.h" +#include "filters/mbfilter_byte4.h" +#include "filters/mbfilter_ucs4.h" +#include "filters/mbfilter_ucs2.h" +#include "filters/mbfilter_htmlent.h" +#include "filters/mbfilter_armscii8.h" +#include "filters/mbfilter_cp850.h" + +static const struct mbfl_identify_vtbl vtbl_identify_false = { + mbfl_no_encoding_pass, + mbfl_filt_ident_false_ctor, + mbfl_filt_ident_common_dtor, + mbfl_filt_ident_false }; + + +static const struct mbfl_identify_vtbl *mbfl_identify_filter_list[] = { + &vtbl_identify_utf8, + &vtbl_identify_utf7, + &vtbl_identify_ascii, + &vtbl_identify_eucjp, + &vtbl_identify_sjis, + &vtbl_identify_sjis_open, + &vtbl_identify_eucjpwin, + &vtbl_identify_eucjp2004, + &vtbl_identify_cp932, + &vtbl_identify_jis, + &vtbl_identify_2022jp, + &vtbl_identify_2022jpms, + &vtbl_identify_2022jp_2004, + &vtbl_identify_2022jp_kddi, + &vtbl_identify_cp51932, + &vtbl_identify_sjis_docomo, + &vtbl_identify_sjis_kddi, + &vtbl_identify_sjis_sb, + &vtbl_identify_utf8_docomo, + &vtbl_identify_utf8_kddi_a, + &vtbl_identify_utf8_kddi_b, + &vtbl_identify_utf8_sb, + &vtbl_identify_euccn, + &vtbl_identify_cp936, + &vtbl_identify_hz, + &vtbl_identify_euctw, + &vtbl_identify_big5, + &vtbl_identify_cp950, + &vtbl_identify_euckr, + &vtbl_identify_uhc, + &vtbl_identify_2022kr, + &vtbl_identify_cp1251, + &vtbl_identify_cp866, + &vtbl_identify_koi8r, + &vtbl_identify_koi8u, + &vtbl_identify_cp1252, + &vtbl_identify_cp1254, + &vtbl_identify_8859_1, + &vtbl_identify_8859_2, + &vtbl_identify_8859_3, + &vtbl_identify_8859_4, + &vtbl_identify_8859_5, + &vtbl_identify_8859_6, + &vtbl_identify_8859_7, + &vtbl_identify_8859_8, + &vtbl_identify_8859_9, + &vtbl_identify_8859_10, + &vtbl_identify_8859_13, + &vtbl_identify_8859_14, + &vtbl_identify_8859_15, + &vtbl_identify_armscii8, + &vtbl_identify_cp850, + &vtbl_identify_jis_ms, + &vtbl_identify_cp50220, + &vtbl_identify_cp50221, + &vtbl_identify_cp50222, + &vtbl_identify_gb18030, + &vtbl_identify_false, + NULL +}; + + + +/* + * identify filter + */ +const struct mbfl_identify_vtbl * mbfl_identify_filter_get_vtbl(enum mbfl_no_encoding encoding) +{ + const struct mbfl_identify_vtbl * vtbl; + int i; + + i = 0; + while ((vtbl = mbfl_identify_filter_list[i++]) != NULL) { + if (vtbl->encoding == encoding) { + break; + } + } + + return vtbl; +} + +mbfl_identify_filter *mbfl_identify_filter_new(enum mbfl_no_encoding encoding) +{ + mbfl_identify_filter *filter; + + /* allocate */ + filter = (mbfl_identify_filter *)mbfl_malloc(sizeof(mbfl_identify_filter)); + if (filter == NULL) { + return NULL; + } + + if (mbfl_identify_filter_init(filter, encoding)) { + mbfl_free(filter); + return NULL; + } + + return filter; +} + +mbfl_identify_filter *mbfl_identify_filter_new2(const mbfl_encoding *encoding) +{ + mbfl_identify_filter *filter; + + /* allocate */ + filter = (mbfl_identify_filter *)mbfl_malloc(sizeof(mbfl_identify_filter)); + if (filter == NULL) { + return NULL; + } + + if (mbfl_identify_filter_init2(filter, encoding)) { + mbfl_free(filter); + return NULL; + } + + return filter; +} + + +int mbfl_identify_filter_init(mbfl_identify_filter *filter, enum mbfl_no_encoding encoding) +{ + const mbfl_encoding *enc = mbfl_no2encoding(encoding); + return mbfl_identify_filter_init2(filter, enc ? enc: &mbfl_encoding_pass); +} + +int mbfl_identify_filter_init2(mbfl_identify_filter *filter, const mbfl_encoding *encoding) +{ + const struct mbfl_identify_vtbl *vtbl; + + /* encoding structure */ + filter->encoding = encoding; + + filter->status = 0; + filter->flag = 0; + filter->score = 0; + + /* setup the function table */ + vtbl = mbfl_identify_filter_get_vtbl(filter->encoding->no_encoding); + if (vtbl == NULL) { + vtbl = &vtbl_identify_false; + } + filter->filter_ctor = vtbl->filter_ctor; + filter->filter_dtor = vtbl->filter_dtor; + filter->filter_function = vtbl->filter_function; + + /* constructor */ + (*filter->filter_ctor)(filter); + + return 0; +} + +void mbfl_identify_filter_delete(mbfl_identify_filter *filter) +{ + if (filter == NULL) { + return; + } + + mbfl_identify_filter_cleanup(filter); + mbfl_free((void*)filter); +} + +void mbfl_identify_filter_cleanup(mbfl_identify_filter *filter) +{ + (*filter->filter_dtor)(filter); +} + +void mbfl_filt_ident_common_ctor(mbfl_identify_filter *filter) +{ + filter->status = 0; + filter->flag = 0; +} + +void mbfl_filt_ident_common_dtor(mbfl_identify_filter *filter) +{ + filter->status = 0; +} + +int mbfl_filt_ident_false(int c, mbfl_identify_filter *filter) +{ + filter->flag = 1; /* bad */ + return c; +} + +void mbfl_filt_ident_false_ctor(mbfl_identify_filter *filter) +{ + filter->status = 0; + filter->flag = 1; +} + +int mbfl_filt_ident_true(int c, mbfl_identify_filter *filter) +{ + return c; +} diff --git a/ext/mbstring/libmbfl/mbfl/mbfl_ident.h b/ext/mbstring/libmbfl/mbfl/mbfl_ident.h new file mode 100644 index 0000000..12d81cd --- /dev/null +++ b/ext/mbstring/libmbfl/mbfl/mbfl_ident.h @@ -0,0 +1,74 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.h + * by Moriyoshi Koizumi <moriyoshi@php.net> on 20 Dec 2002. The file + * mbfilter.h is included in this package . + * + */ + +#ifndef MBFL_IDENT_H +#define MBFL_IDENT_H + +#include "mbfl_defs.h" +#include "mbfl_encoding.h" + +/* + * identify filter + */ +typedef struct _mbfl_identify_filter mbfl_identify_filter; + +struct _mbfl_identify_filter { + void (*filter_ctor)(mbfl_identify_filter *filter); + void (*filter_dtor)(mbfl_identify_filter *filter); + int (*filter_function)(int c, mbfl_identify_filter *filter); + int status; + int flag; + int score; + const mbfl_encoding *encoding; +}; + +struct mbfl_identify_vtbl { + enum mbfl_no_encoding encoding; + void (*filter_ctor)(mbfl_identify_filter *filter); + void (*filter_dtor)(mbfl_identify_filter *filter); + int (*filter_function)(int c, mbfl_identify_filter *filter); +}; + +MBFLAPI extern const struct mbfl_identify_vtbl * mbfl_identify_filter_get_vtbl(enum mbfl_no_encoding encoding); +MBFLAPI extern mbfl_identify_filter * mbfl_identify_filter_new(enum mbfl_no_encoding encoding); +MBFLAPI extern mbfl_identify_filter * mbfl_identify_filter_new2(const mbfl_encoding *encoding); +MBFLAPI extern void mbfl_identify_filter_delete(mbfl_identify_filter *filter); +MBFLAPI extern int mbfl_identify_filter_init(mbfl_identify_filter *filter, enum mbfl_no_encoding encoding); +MBFLAPI extern int mbfl_identify_filter_init2(mbfl_identify_filter *filter, const mbfl_encoding *encoding); +MBFLAPI void mbfl_identify_filter_cleanup(mbfl_identify_filter *filter); + +MBFLAPI extern void mbfl_filt_ident_common_ctor(mbfl_identify_filter *filter); +MBFLAPI extern void mbfl_filt_ident_common_dtor(mbfl_identify_filter *filter); +MBFLAPI extern void mbfl_filt_ident_false_ctor(mbfl_identify_filter *filter); + +MBFLAPI extern int mbfl_filt_ident_false(int c, mbfl_identify_filter *filter); +MBFLAPI extern int mbfl_filt_ident_true(int c, mbfl_identify_filter *filter); + +#endif /* MBFL_IDENT_H */ diff --git a/ext/mbstring/libmbfl/mbfl/mbfl_language.c b/ext/mbstring/libmbfl/mbfl/mbfl_language.c new file mode 100644 index 0000000..4dd9726 --- /dev/null +++ b/ext/mbstring/libmbfl/mbfl/mbfl_language.c @@ -0,0 +1,171 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by Moriyoshi Koizumi <moriyoshi@php.net> on 20 Dec 2002. The file + * mbfilter.c is included in this package . + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#ifdef HAVE_STDDEF_H +#include <stddef.h> +#endif + +#ifdef HAVE_STDDEF_H +#include <stddef.h> +#endif + +#ifdef HAVE_STRING_H +#include <string.h> +#endif + +#ifdef HAVE_STRINGS_H +#include <strings.h> +#endif + +#include "mbfl_encoding.h" +#include "mbfl_language.h" + +#include "nls/nls_ja.h" +#include "nls/nls_kr.h" +#include "nls/nls_zh.h" +#include "nls/nls_uni.h" +#include "nls/nls_de.h" +#include "nls/nls_ru.h" +#include "nls/nls_ua.h" +#include "nls/nls_en.h" +#include "nls/nls_hy.h" +#include "nls/nls_tr.h" +#include "nls/nls_neutral.h" + +#ifndef HAVE_STRCASECMP +#ifdef HAVE_STRICMP +#define strcasecmp stricmp +#endif +#endif + +static const mbfl_language *mbfl_language_ptr_table[] = { + &mbfl_language_uni, + &mbfl_language_japanese, + &mbfl_language_korean, + &mbfl_language_simplified_chinese, + &mbfl_language_traditional_chinese, + &mbfl_language_english, + &mbfl_language_german, + &mbfl_language_russian, + &mbfl_language_ukrainian, + &mbfl_language_armenian, + &mbfl_language_turkish, + &mbfl_language_neutral, + NULL +}; + +/* language resolver */ +const mbfl_language * +mbfl_name2language(const char *name) +{ + const mbfl_language *language; + int i, j; + + if (name == NULL) { + return NULL; + } + + i = 0; + while ((language = mbfl_language_ptr_table[i++]) != NULL){ + if (strcasecmp(language->name, name) == 0) { + return language; + } + } + + i = 0; + while ((language = mbfl_language_ptr_table[i++]) != NULL){ + if (strcasecmp(language->short_name, name) == 0) { + return language; + } + } + + /* serch aliases */ + i = 0; + while ((language = mbfl_language_ptr_table[i++]) != NULL) { + if (language->aliases != NULL) { + j = 0; + while ((*language->aliases)[j] != NULL) { + if (strcasecmp((*language->aliases)[j], name) == 0) { + return language; + } + j++; + } + } + } + + return NULL; +} + +const mbfl_language * +mbfl_no2language(enum mbfl_no_language no_language) +{ + const mbfl_language *language; + int i; + + i = 0; + while ((language = mbfl_language_ptr_table[i++]) != NULL){ + if (language->no_language == no_language) { + return language; + } + } + + return NULL; +} + +enum mbfl_no_language +mbfl_name2no_language(const char *name) +{ + const mbfl_language *language; + + language = mbfl_name2language(name); + if (language == NULL) { + return mbfl_no_language_invalid; + } else { + return language->no_language; + } +} + +const char * +mbfl_no_language2name(enum mbfl_no_language no_language) +{ + const mbfl_language *language; + + language = mbfl_no2language(no_language); + if (language == NULL) { + return ""; + } else { + return language->name; + } +} + diff --git a/ext/mbstring/libmbfl/mbfl/mbfl_language.h b/ext/mbstring/libmbfl/mbfl/mbfl_language.h new file mode 100644 index 0000000..af42a01 --- /dev/null +++ b/ext/mbstring/libmbfl/mbfl/mbfl_language.h @@ -0,0 +1,87 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.h + * by Moriyoshi Koizumi <moriyoshi@php.net> on 20 Dec 2002. The file + * mbfilter.h is included in this package . + * + */ + +#ifndef MBFL_LANGUAGE_H +#define MBFL_LANGUAGE_H + +#include "mbfl_defs.h" +#include "mbfl_encoding.h" + +enum mbfl_no_language { + mbfl_no_language_invalid = -1, + mbfl_no_language_neutral, + mbfl_no_language_uni, + mbfl_no_language_min, + mbfl_no_language_catalan, /* ca */ + mbfl_no_language_danish, /* da */ + mbfl_no_language_german, /* de */ + mbfl_no_language_english, /* en */ + mbfl_no_language_estonian, /* et */ + mbfl_no_language_greek, /* el */ + mbfl_no_language_spanish, /* es */ + mbfl_no_language_french, /* fr */ + mbfl_no_language_italian, /* it */ + mbfl_no_language_japanese, /* ja */ + mbfl_no_language_korean, /* ko */ + mbfl_no_language_dutch, /* nl */ + mbfl_no_language_polish, /* pl */ + mbfl_no_language_portuguese, /* pt */ + mbfl_no_language_swedish, /* sv */ + mbfl_no_language_simplified_chinese, /* zh-cn */ + mbfl_no_language_traditional_chinese, /* zh-tw */ + mbfl_no_language_russian, /* ru */ + mbfl_no_language_ukrainian, /* ua */ + mbfl_no_language_armenian, /* hy */ + mbfl_no_language_turkish, /* tr */ + mbfl_no_language_max +}; + +typedef enum mbfl_no_language mbfl_language_id; + +/* + * language + */ +typedef struct _mbfl_language { + enum mbfl_no_language no_language; + const char *name; + const char *short_name; + const char *(*aliases)[]; + enum mbfl_no_encoding mail_charset; + enum mbfl_no_encoding mail_header_encoding; + enum mbfl_no_encoding mail_body_encoding; +} mbfl_language; + +MBFLAPI extern const mbfl_language * mbfl_name2language(const char *name); +MBFLAPI extern const mbfl_language * mbfl_no2language(enum mbfl_no_language no_language); +MBFLAPI extern enum mbfl_no_language mbfl_name2no_language(const char *name); +MBFLAPI extern const char * mbfl_no_language2name(enum mbfl_no_language no_language); + + +#endif /* MBFL_LANGUAGE_H */ diff --git a/ext/mbstring/libmbfl/mbfl/mbfl_memory_device.c b/ext/mbstring/libmbfl/mbfl/mbfl_memory_device.c new file mode 100644 index 0000000..7509ef1 --- /dev/null +++ b/ext/mbstring/libmbfl/mbfl/mbfl_memory_device.c @@ -0,0 +1,350 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by Moriyoshi Koizumi <moriyoshi@php.net> on 20 Dec 2002. The file + * mbfilter.c is included in this package . + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#ifdef HAVE_STDDEF_H +#include <stddef.h> +#endif + +#include "mbfl_allocators.h" +#include "mbfl_string.h" +#include "mbfl_memory_device.h" + +/* + * memory device output functions + */ +void +mbfl_memory_device_init(mbfl_memory_device *device, int initsz, int allocsz) +{ + if (device) { + device->length = 0; + device->buffer = (unsigned char *)0; + if (initsz > 0) { + device->buffer = (unsigned char *)mbfl_malloc(initsz*sizeof(unsigned char)); + if (device->buffer != NULL) { + device->length = initsz; + } + } + device->pos= 0; + if (allocsz > MBFL_MEMORY_DEVICE_ALLOC_SIZE) { + device->allocsz = allocsz; + } else { + device->allocsz = MBFL_MEMORY_DEVICE_ALLOC_SIZE; + } + } +} + +void +mbfl_memory_device_realloc(mbfl_memory_device *device, int initsz, int allocsz) +{ + unsigned char *tmp; + + if (device) { + if (initsz > device->length) { + tmp = (unsigned char *)mbfl_realloc((void *)device->buffer, initsz*sizeof(unsigned char)); + if (tmp != NULL) { + device->buffer = tmp; + device->length = initsz; + } + } + if (allocsz > MBFL_MEMORY_DEVICE_ALLOC_SIZE) { + device->allocsz = allocsz; + } else { + device->allocsz = MBFL_MEMORY_DEVICE_ALLOC_SIZE; + } + } +} + +void +mbfl_memory_device_clear(mbfl_memory_device *device) +{ + if (device) { + if (device->buffer) { + mbfl_free(device->buffer); + } + device->buffer = (unsigned char *)0; + device->length = 0; + device->pos = 0; + } +} + +void +mbfl_memory_device_reset(mbfl_memory_device *device) +{ + if (device) { + device->pos = 0; + } +} + +void +mbfl_memory_device_unput(mbfl_memory_device *device) +{ + if (device->pos > 0) { + device->pos--; + } +} + +mbfl_string * +mbfl_memory_device_result(mbfl_memory_device *device, mbfl_string *result) +{ + if (device && result) { + result->len = device->pos; + mbfl_memory_device_output4('\0', device); + result->val = device->buffer; + device->buffer = (unsigned char *)0; + device->length = 0; + device->pos= 0; + if (result->val == NULL) { + result->len = 0; + result = NULL; + } + } else { + result = NULL; + } + + return result; +} + +int +mbfl_memory_device_output(int c, void *data) +{ + mbfl_memory_device *device = (mbfl_memory_device *)data; + + if (device->pos >= device->length) { + /* reallocate buffer */ + int newlen; + unsigned char *tmp; + + newlen = device->length + device->allocsz; + tmp = (unsigned char *)mbfl_realloc((void *)device->buffer, newlen*sizeof(unsigned char)); + if (tmp == NULL) { + return -1; + } + device->length = newlen; + device->buffer = tmp; + } + + device->buffer[device->pos++] = (unsigned char)c; + return c; +} + +int +mbfl_memory_device_output2(int c, void *data) +{ + mbfl_memory_device *device = (mbfl_memory_device *)data; + + if ((device->pos + 2) >= device->length) { + /* reallocate buffer */ + int newlen; + unsigned char *tmp; + + newlen = device->length + device->allocsz; + tmp = (unsigned char *)mbfl_realloc((void *)device->buffer, newlen*sizeof(unsigned char)); + if (tmp == NULL) { + return -1; + } + device->length = newlen; + device->buffer = tmp; + } + + device->buffer[device->pos++] = (unsigned char)((c >> 8) & 0xff); + device->buffer[device->pos++] = (unsigned char)(c & 0xff); + + return c; +} + +int +mbfl_memory_device_output4(int c, void* data) +{ + mbfl_memory_device *device = (mbfl_memory_device *)data; + + if ((device->pos + 4) >= device->length) { + /* reallocate buffer */ + int newlen; + unsigned char *tmp; + + newlen = device->length + device->allocsz; + tmp = (unsigned char *)mbfl_realloc((void *)device->buffer, newlen*sizeof(unsigned char)); + if (tmp == NULL) { + return -1; + } + device->length = newlen; + device->buffer = tmp; + } + + device->buffer[device->pos++] = (unsigned char)((c >> 24) & 0xff); + device->buffer[device->pos++] = (unsigned char)((c >> 16) & 0xff); + device->buffer[device->pos++] = (unsigned char)((c >> 8) & 0xff); + device->buffer[device->pos++] = (unsigned char)(c & 0xff); + + return c; +} + +int +mbfl_memory_device_strcat(mbfl_memory_device *device, const char *psrc) +{ + int len; + unsigned char *w; + const unsigned char *p; + + len = 0; + p = (const unsigned char*)psrc; + while (*p) { + p++; + len++; + } + + if ((device->pos + len) >= device->length) { + /* reallocate buffer */ + int newlen = device->length + (len + MBFL_MEMORY_DEVICE_ALLOC_SIZE)*sizeof(unsigned char); + unsigned char *tmp = (unsigned char *)mbfl_realloc((void *)device->buffer, newlen*sizeof(unsigned char)); + if (tmp == NULL) { + return -1; + } + device->length = newlen; + device->buffer = tmp; + } + + p = (const unsigned char*)psrc; + w = &device->buffer[device->pos]; + device->pos += len; + while (len > 0) { + *w++ = *p++; + len--; + } + + return len; +} + +int +mbfl_memory_device_strncat(mbfl_memory_device *device, const char *psrc, int len) +{ + unsigned char *w; + + if ((device->pos + len) >= device->length) { + /* reallocate buffer */ + int newlen = device->length + len + MBFL_MEMORY_DEVICE_ALLOC_SIZE; + unsigned char *tmp = (unsigned char *)mbfl_realloc((void *)device->buffer, newlen*sizeof(unsigned char)); + if (tmp == NULL) { + return -1; + } + device->length = newlen; + device->buffer = tmp; + } + + w = &device->buffer[device->pos]; + device->pos += len; + while (len > 0) { + *w++ = *psrc++; + len--; + } + + return len; +} + +int +mbfl_memory_device_devcat(mbfl_memory_device *dest, mbfl_memory_device *src) +{ + int n; + unsigned char *p, *w; + + if ((dest->pos + src->pos) >= dest->length) { + /* reallocate buffer */ + int newlen = dest->length + src->pos + MBFL_MEMORY_DEVICE_ALLOC_SIZE; + unsigned char *tmp = (unsigned char *)mbfl_realloc((void *)dest->buffer, newlen*sizeof(unsigned char)); + if (tmp == NULL) { + return -1; + } + dest->length = newlen; + dest->buffer = tmp; + } + + p = src->buffer; + w = &dest->buffer[dest->pos]; + n = src->pos; + dest->pos += n; + while (n > 0) { + *w++ = *p++; + n--; + } + + return n; +} + +void +mbfl_wchar_device_init(mbfl_wchar_device *device) +{ + if (device) { + device->buffer = (unsigned int *)0; + device->length = 0; + device->pos= 0; + device->allocsz = MBFL_MEMORY_DEVICE_ALLOC_SIZE; + } +} + +void +mbfl_wchar_device_clear(mbfl_wchar_device *device) +{ + if (device) { + if (device->buffer) { + mbfl_free(device->buffer); + } + device->buffer = (unsigned int*)0; + device->length = 0; + device->pos = 0; + } +} + +int +mbfl_wchar_device_output(int c, void *data) +{ + mbfl_wchar_device *device = (mbfl_wchar_device *)data; + + if (device->pos >= device->length) { + /* reallocate buffer */ + int newlen; + unsigned int *tmp; + + newlen = device->length + device->allocsz; + tmp = (unsigned int *)mbfl_realloc((void *)device->buffer, newlen*sizeof(int)); + if (tmp == NULL) { + return -1; + } + device->length = newlen; + device->buffer = tmp; + } + + device->buffer[device->pos++] = c; + + return c; +} diff --git a/ext/mbstring/libmbfl/mbfl/mbfl_memory_device.h b/ext/mbstring/libmbfl/mbfl/mbfl_memory_device.h new file mode 100644 index 0000000..a2c1c40 --- /dev/null +++ b/ext/mbstring/libmbfl/mbfl/mbfl_memory_device.h @@ -0,0 +1,73 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.h + * by Moriyoshi Koizumi <moriyoshi@php.net> on 20 Dec 2002. The file + * mbfilter.h is included in this package . + * + */ + +#ifndef MBFL_MEMORY_DEVICE_H +#define MBFL_MEMORY_DEVICE_H + +#include "mbfl_defs.h" +#include "mbfl_string.h" + +#define MBFL_MEMORY_DEVICE_ALLOC_SIZE 64 + +typedef struct _mbfl_memory_device { + unsigned char *buffer; + int length; + int pos; + int allocsz; +} mbfl_memory_device; + +typedef struct _mbfl_wchar_device { + unsigned int *buffer; + int length; + int pos; + int allocsz; +} mbfl_wchar_device; + +MBFLAPI extern void mbfl_memory_device_init(mbfl_memory_device *device, int initsz, int allocsz); +MBFLAPI extern void mbfl_memory_device_realloc(mbfl_memory_device *device, int initsz, int allocsz); +MBFLAPI extern void mbfl_memory_device_clear(mbfl_memory_device *device); +MBFLAPI extern void mbfl_memory_device_reset(mbfl_memory_device *device); +MBFLAPI extern mbfl_string * mbfl_memory_device_result(mbfl_memory_device *device, mbfl_string *result); +MBFLAPI extern void mbfl_memory_device_unput(mbfl_memory_device *device); +MBFLAPI extern int mbfl_memory_device_output(int c, void *data); +MBFLAPI extern int mbfl_memory_device_output2(int c, void *data); +MBFLAPI extern int mbfl_memory_device_output4(int c, void *data); +MBFLAPI extern int mbfl_memory_device_strcat(mbfl_memory_device *device, const char *psrc); +MBFLAPI extern int mbfl_memory_device_strncat(mbfl_memory_device *device, const char *psrc, int len); +MBFLAPI extern int mbfl_memory_device_devcat(mbfl_memory_device *dest, mbfl_memory_device *src); + +MBFLAPI extern void mbfl_wchar_device_init(mbfl_wchar_device *device); +MBFLAPI extern int mbfl_wchar_device_output(int c, void *data); +MBFLAPI extern void mbfl_wchar_device_clear(mbfl_wchar_device *device); + + + +#endif /* MBFL_MEMORY_DEVICE_H */ + diff --git a/ext/mbstring/libmbfl/mbfl/mbfl_string.c b/ext/mbstring/libmbfl/mbfl/mbfl_string.c new file mode 100644 index 0000000..e0351a4 --- /dev/null +++ b/ext/mbstring/libmbfl/mbfl/mbfl_string.c @@ -0,0 +1,79 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.c + * by Moriyoshi Koizumi <moriyoshi@php.net> on 20 Dec 2002. The file + * mbfilter.c is included in this package . + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#ifdef HAVE_STDDEF_H +#include <stddef.h> +#endif + +#include "mbfl_allocators.h" +#include "mbfl_string.h" + +/* + * string object + */ +void +mbfl_string_init(mbfl_string *string) +{ + if (string) { + string->no_language = mbfl_no_language_uni; + string->no_encoding = mbfl_no_encoding_pass; + string->val = (unsigned char*)NULL; + string->len = 0; + } +} + +void +mbfl_string_init_set(mbfl_string *string, mbfl_language_id no_language, mbfl_encoding_id no_encoding) +{ + if (string) { + string->no_language = no_language; + string->no_encoding = no_encoding; + string->val = (unsigned char*)NULL; + string->len = 0; + } +} + +void +mbfl_string_clear(mbfl_string *string) +{ + if (string) { + if (string->val != (unsigned char*)NULL) { + mbfl_free(string->val); + } + string->val = (unsigned char*)NULL; + string->len = 0; + } +} + + diff --git a/ext/mbstring/libmbfl/mbfl/mbfl_string.h b/ext/mbstring/libmbfl/mbfl/mbfl_string.h new file mode 100644 index 0000000..d112131 --- /dev/null +++ b/ext/mbstring/libmbfl/mbfl/mbfl_string.h @@ -0,0 +1,56 @@ +/* + * "streamable kanji code filter and converter" + * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. + * + * LICENSE NOTICES + * + * This file is part of "streamable kanji code filter and converter", + * which is distributed under the terms of GNU Lesser General Public + * License (version 2) as published by the Free Software Foundation. + * + * This software 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with "streamable kanji code filter and converter"; + * if not, write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + * The author of this file: + * + */ +/* + * The source code included in this files was separated from mbfilter.h + * by Moriyoshi Koizumi <moriyoshi@php.net> on 20 Dec 2002. The file + * mbfilter.h is included in this package . + * + */ + +#ifndef MBFL_STRING_H +#define MBFL_STRING_H + +#include "mbfl_defs.h" +#include "mbfl_encoding.h" +#include "mbfl_language.h" + +/* + * string object + */ +typedef struct _mbfl_string { + enum mbfl_no_language no_language; + enum mbfl_no_encoding no_encoding; + unsigned char *val; + unsigned int len; +} mbfl_string; + +MBFLAPI extern void mbfl_string_init(mbfl_string *string); +MBFLAPI extern void mbfl_string_init_set(mbfl_string *string, mbfl_language_id no_language, mbfl_encoding_id no_encoding); +MBFLAPI extern void mbfl_string_clear(mbfl_string *string); + +#ifndef NULL +#define NULL 0 +#endif + +#endif /* MBFL_STRING_H */ diff --git a/ext/mbstring/libmbfl/mbfl/mk_eaw_tbl.awk b/ext/mbstring/libmbfl/mbfl/mk_eaw_tbl.awk new file mode 100644 index 0000000..02c73f2 --- /dev/null +++ b/ext/mbstring/libmbfl/mbfl/mk_eaw_tbl.awk @@ -0,0 +1,81 @@ +#!/usr/bin/awk -f +# +# $Id$ +# +# Description: a script to generate east asian width table. +# + +BEGIN { + prev = -1 + comma = 0 + ORS = "" + FS = "[;.|# ]" + print "static const struct {\n\tint begin;\n\tint end;\n} " TABLE_NAME "[] = {\n\t" +} + +/^#/ { +} + +/^[0-9a-fA-F]+;/ { + if ($2 == "W" || $2 == "F") { + + v = strtonum( "0x" $1 ) + if (prev < 0) { + first = v + } else if (v - prev > 1) { + if (comma) { + print ",\n\t" + } + printf("{ 0x%04x, 0x%04x }", first, prev) + first = v + comma = 1 + } + prev = v + } else { + if (prev >= 0) { + if (comma) { + print ",\n\t" + } + printf("{ 0x%04x, 0x%04x }", first, prev) + prev = -1 + comma = 1 + } + } +} + +/^[0-9a-fA-F]+\.\./ { + if ($4 == "W" || $4 == "F") { + vs = strtonum( "0x" $1 ) + ve = strtonum( "0x" $3 ) + if (prev < 0) { + first = vs + } else if (vs - prev > 1) { + if (comma) { + print ",\n\t" + } + printf("{ 0x%04x, 0x%04x }", first, prev) + first = vs + comma = 1 + } + prev = ve + } else { + if (prev >= 0) { + if (comma) { + print ",\n\t" + } + printf("{ 0x%04x, 0x%04x }", first, prev) + prev = -1 + comma = 1 + } + } +} + +END { + if (prev >= 0) { + if (comma) { + print ",\n\t" + } + printf("{ 0x%04x, 0x%04x }", first, prev) + } + print "\n};\n" +} diff --git a/ext/mbstring/libmbfl/nls/Makefile.am b/ext/mbstring/libmbfl/nls/Makefile.am new file mode 100644 index 0000000..a9f987b --- /dev/null +++ b/ext/mbstring/libmbfl/nls/Makefile.am @@ -0,0 +1,25 @@ +noinst_LTLIBRARIES=libmbfl_nls.la +INCLUDES=-I../mbfl +libmbfl_nls_la_LDFLAGS=-version-info $(SHLIB_VERSION) +libmbfl_nls_la_SOURCES=nls_ja.c \ + nls_de.c \ + nls_en.c \ + nls_hy.c \ + nls_tr.c \ + nls_kr.c \ + nls_ru.c \ + nls_ua.c \ + nls_zh.c \ + nls_uni.c \ + nls_neutral.c \ + nls_ja.h \ + nls_de.h \ + nls_en.h \ + nls_hy.h \ + nls_tr.h \ + nls_kr.h \ + nls_ru.h \ + nls_ua.h \ + nls_zh.h \ + nls_uni.h \ + nls_neutral.h diff --git a/ext/mbstring/libmbfl/nls/nls_de.c b/ext/mbstring/libmbfl/nls/nls_de.c new file mode 100644 index 0000000..b559e2d --- /dev/null +++ b/ext/mbstring/libmbfl/nls/nls_de.c @@ -0,0 +1,23 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#ifdef HAVE_STDDEF_H +#include <stddef.h> +#endif + +#include "mbfilter.h" +#include "nls_de.h" + +static const char *mbfl_language_german_aliases[] = {"Deutsch", NULL}; + +const mbfl_language mbfl_language_german = { + mbfl_no_language_german, + "German", + "de", + (const char *(*)[])&mbfl_language_german_aliases, + mbfl_no_encoding_8859_15, + mbfl_no_encoding_qprint, + mbfl_no_encoding_8bit +}; + diff --git a/ext/mbstring/libmbfl/nls/nls_de.h b/ext/mbstring/libmbfl/nls/nls_de.h new file mode 100644 index 0000000..a6c289b --- /dev/null +++ b/ext/mbstring/libmbfl/nls/nls_de.h @@ -0,0 +1,8 @@ +#ifndef MBFL_NLS_DE_H +#define MBFL_NLS_DE_H + +#include "mbfilter.h" + +extern const mbfl_language mbfl_language_german; + +#endif /* MBFL_NLS_DE_H */ diff --git a/ext/mbstring/libmbfl/nls/nls_en.c b/ext/mbstring/libmbfl/nls/nls_en.c new file mode 100644 index 0000000..0700e4f --- /dev/null +++ b/ext/mbstring/libmbfl/nls/nls_en.c @@ -0,0 +1,21 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#ifdef HAVE_STDDEF_H +#include <stddef.h> +#endif + +#include "mbfilter.h" +#include "nls_en.h" + +const mbfl_language mbfl_language_english = { + mbfl_no_language_english, + "English", + "en", + NULL, + mbfl_no_encoding_8859_1, + mbfl_no_encoding_qprint, + mbfl_no_encoding_8bit +}; + diff --git a/ext/mbstring/libmbfl/nls/nls_en.h b/ext/mbstring/libmbfl/nls/nls_en.h new file mode 100644 index 0000000..aa9297d --- /dev/null +++ b/ext/mbstring/libmbfl/nls/nls_en.h @@ -0,0 +1,8 @@ +#ifndef MBFL_NLS_EN_H +#define MBFL_NLS_EN_H + +#include "mbfilter.h" + +extern const mbfl_language mbfl_language_english; + +#endif /* MBFL_NLS_EN_H */ diff --git a/ext/mbstring/libmbfl/nls/nls_hy.c b/ext/mbstring/libmbfl/nls/nls_hy.c new file mode 100644 index 0000000..1c4b383 --- /dev/null +++ b/ext/mbstring/libmbfl/nls/nls_hy.c @@ -0,0 +1,20 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#ifdef HAVE_STDDEF_H +#include <stddef.h> +#endif + +#include "mbfilter.h" +#include "nls_hy.h" + +const mbfl_language mbfl_language_armenian = { + mbfl_no_language_armenian , + "Armenian", + "hy", + NULL, + mbfl_no_encoding_armscii8, + mbfl_no_encoding_qprint, + mbfl_no_encoding_8bit +}; diff --git a/ext/mbstring/libmbfl/nls/nls_hy.h b/ext/mbstring/libmbfl/nls/nls_hy.h new file mode 100644 index 0000000..39fa246 --- /dev/null +++ b/ext/mbstring/libmbfl/nls/nls_hy.h @@ -0,0 +1,9 @@ +#ifndef MBFL_NLS_HY_H +#define MBFL_NLS_HY_H + +#include "mbfilter.h" +#include "nls_hy.h" + +extern const mbfl_language mbfl_language_armenian; + +#endif /* MBFL_NLS_HY_H */ diff --git a/ext/mbstring/libmbfl/nls/nls_ja.c b/ext/mbstring/libmbfl/nls/nls_ja.c new file mode 100644 index 0000000..d5541fa --- /dev/null +++ b/ext/mbstring/libmbfl/nls/nls_ja.c @@ -0,0 +1,20 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#ifdef HAVE_STDDEF_H +#include <stddef.h> +#endif + +#include "mbfilter.h" +#include "nls_ja.h" + +const mbfl_language mbfl_language_japanese = { + mbfl_no_language_japanese, + "Japanese", + "ja", + NULL, + mbfl_no_encoding_2022jp, + mbfl_no_encoding_base64, + mbfl_no_encoding_7bit +}; diff --git a/ext/mbstring/libmbfl/nls/nls_ja.h b/ext/mbstring/libmbfl/nls/nls_ja.h new file mode 100644 index 0000000..bf1c9e9 --- /dev/null +++ b/ext/mbstring/libmbfl/nls/nls_ja.h @@ -0,0 +1,8 @@ +#ifndef MBFL_NLS_JA_H +#define MBFL_NLS_JA_H + +#include "mbfilter.h" + +extern const mbfl_language mbfl_language_japanese; + +#endif /* MBFL_NLS_JA_H */ diff --git a/ext/mbstring/libmbfl/nls/nls_kr.c b/ext/mbstring/libmbfl/nls/nls_kr.c new file mode 100644 index 0000000..afff43a --- /dev/null +++ b/ext/mbstring/libmbfl/nls/nls_kr.c @@ -0,0 +1,21 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#ifdef HAVE_STDDEF_H +#include <stddef.h> +#endif + +#include "mbfilter.h" +#include "nls_kr.h" + +const mbfl_language mbfl_language_korean = { + mbfl_no_language_korean, + "Korean", + "ko", + NULL, + mbfl_no_encoding_2022kr, + mbfl_no_encoding_base64, + mbfl_no_encoding_7bit +}; + diff --git a/ext/mbstring/libmbfl/nls/nls_kr.h b/ext/mbstring/libmbfl/nls/nls_kr.h new file mode 100644 index 0000000..1aeb357 --- /dev/null +++ b/ext/mbstring/libmbfl/nls/nls_kr.h @@ -0,0 +1,8 @@ +#ifndef MBFL_NLS_KR_H +#define MBFL_NLS_KR_H + +#include "mbfilter.h" + +extern const mbfl_language mbfl_language_korean; + +#endif /* MBFL_NLS_KR_H */ diff --git a/ext/mbstring/libmbfl/nls/nls_neutral.c b/ext/mbstring/libmbfl/nls/nls_neutral.c new file mode 100644 index 0000000..87a6a19 --- /dev/null +++ b/ext/mbstring/libmbfl/nls/nls_neutral.c @@ -0,0 +1,21 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#ifdef HAVE_STDDEF_H +#include <stddef.h> +#endif + +#include "mbfilter.h" +#include "nls_neutral.h" + +const mbfl_language mbfl_language_neutral = { + mbfl_no_language_neutral, + "neutral", + "neutral", + NULL, + mbfl_no_encoding_utf8, + mbfl_no_encoding_base64, + mbfl_no_encoding_base64 +}; + diff --git a/ext/mbstring/libmbfl/nls/nls_neutral.h b/ext/mbstring/libmbfl/nls/nls_neutral.h new file mode 100644 index 0000000..50c6499 --- /dev/null +++ b/ext/mbstring/libmbfl/nls/nls_neutral.h @@ -0,0 +1,8 @@ +#ifndef MBFL_NLS_NEUTRAL_H +#define MBFL_NLS_NEUTRAL_H + +#include "mbfilter.h" + +extern const mbfl_language mbfl_language_neutral; + +#endif /* MBFL_NLS_NEUTRAL_H */ diff --git a/ext/mbstring/libmbfl/nls/nls_ru.c b/ext/mbstring/libmbfl/nls/nls_ru.c new file mode 100644 index 0000000..7e4cf9c --- /dev/null +++ b/ext/mbstring/libmbfl/nls/nls_ru.c @@ -0,0 +1,20 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#ifdef HAVE_STDDEF_H +#include <stddef.h> +#endif + +#include "mbfilter.h" +#include "nls_ru.h" + +const mbfl_language mbfl_language_russian = { + mbfl_no_language_russian, + "Russian", + "ru", + NULL, + mbfl_no_encoding_koi8r, + mbfl_no_encoding_qprint, + mbfl_no_encoding_8bit +}; diff --git a/ext/mbstring/libmbfl/nls/nls_ru.h b/ext/mbstring/libmbfl/nls/nls_ru.h new file mode 100644 index 0000000..ba21b9a --- /dev/null +++ b/ext/mbstring/libmbfl/nls/nls_ru.h @@ -0,0 +1,9 @@ +#ifndef MBFL_NLS_RU_H +#define MBFL_NLS_RU_H + +#include "mbfilter.h" +#include "nls_ru.h" + +extern const mbfl_language mbfl_language_russian; + +#endif /* MBFL_NLS_RU_H */ diff --git a/ext/mbstring/libmbfl/nls/nls_tr.c b/ext/mbstring/libmbfl/nls/nls_tr.c new file mode 100644 index 0000000..c7044ff --- /dev/null +++ b/ext/mbstring/libmbfl/nls/nls_tr.c @@ -0,0 +1,21 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#ifdef HAVE_STDDEF_H +#include <stddef.h> +#endif + +#include "mbfilter.h" +#include "nls_tr.h" + +const mbfl_language mbfl_language_turkish = { + mbfl_no_language_turkish, + "Turkish", + "tr", + NULL, + mbfl_no_encoding_8859_9, + mbfl_no_encoding_qprint, + mbfl_no_encoding_8bit +}; + diff --git a/ext/mbstring/libmbfl/nls/nls_tr.h b/ext/mbstring/libmbfl/nls/nls_tr.h new file mode 100644 index 0000000..5c17f7d --- /dev/null +++ b/ext/mbstring/libmbfl/nls/nls_tr.h @@ -0,0 +1,8 @@ +#ifndef MBFL_NLS_TR_H +#define MBFL_NLS_TR_H + +#include "mbfilter.h" + +extern const mbfl_language mbfl_language_turkish; + +#endif /* MBFL_NLS_TR_H */ diff --git a/ext/mbstring/libmbfl/nls/nls_ua.c b/ext/mbstring/libmbfl/nls/nls_ua.c new file mode 100644 index 0000000..85fe9b4 --- /dev/null +++ b/ext/mbstring/libmbfl/nls/nls_ua.c @@ -0,0 +1,22 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + + +#ifdef HAVE_STDDEF_H +#include <stddef.h> +#endif + + +#include "mbfilter.h" +#include "nls_ua.h" + +const mbfl_language mbfl_language_ukrainian = { + mbfl_no_language_ukrainian, + "Ukrainian", + "ua", + NULL, + mbfl_no_encoding_koi8u, + mbfl_no_encoding_qprint, + mbfl_no_encoding_8bit +}; diff --git a/ext/mbstring/libmbfl/nls/nls_ua.h b/ext/mbstring/libmbfl/nls/nls_ua.h new file mode 100644 index 0000000..0efa8d1 --- /dev/null +++ b/ext/mbstring/libmbfl/nls/nls_ua.h @@ -0,0 +1,9 @@ +#ifndef MBFL_NLS_UA_H +#define MBFL_NLS_UA_H + +#include "mbfilter.h" +#include "nls_ua.h" + +extern const mbfl_language mbfl_language_ukrainian; + +#endif /* MBFL_NLS_UA_H */ diff --git a/ext/mbstring/libmbfl/nls/nls_uni.c b/ext/mbstring/libmbfl/nls/nls_uni.c new file mode 100644 index 0000000..6a01001 --- /dev/null +++ b/ext/mbstring/libmbfl/nls/nls_uni.c @@ -0,0 +1,23 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#ifdef HAVE_STDDEF_H +#include <stddef.h> +#endif + +#include "mbfilter.h" +#include "nls_uni.h" + +static const char *mbfl_language_uni_aliases[] = {"universal", NULL}; + +const mbfl_language mbfl_language_uni = { + mbfl_no_language_uni, + "uni", + "uni", + (const char *(*)[])&mbfl_language_uni_aliases, + mbfl_no_encoding_utf8, + mbfl_no_encoding_base64, + mbfl_no_encoding_base64 +}; + diff --git a/ext/mbstring/libmbfl/nls/nls_uni.h b/ext/mbstring/libmbfl/nls/nls_uni.h new file mode 100644 index 0000000..1e3f94d --- /dev/null +++ b/ext/mbstring/libmbfl/nls/nls_uni.h @@ -0,0 +1,8 @@ +#ifndef MBFL_NLS_UNI_H +#define MBFL_NLS_UNI_H + +#include "mbfilter.h" + +extern const mbfl_language mbfl_language_uni; + +#endif /* MBFL_NLS_UNI_H */ diff --git a/ext/mbstring/libmbfl/nls/nls_zh.c b/ext/mbstring/libmbfl/nls/nls_zh.c new file mode 100644 index 0000000..d9a4993 --- /dev/null +++ b/ext/mbstring/libmbfl/nls/nls_zh.c @@ -0,0 +1,31 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#ifdef HAVE_STDDEF_H +#include <stddef.h> +#endif + +#include "mbfilter.h" +#include "nls_zh.h" + +const mbfl_language mbfl_language_simplified_chinese = { + mbfl_no_language_simplified_chinese, + "Simplified Chinese", + "zh-cn", + NULL, + mbfl_no_encoding_hz, + mbfl_no_encoding_base64, + mbfl_no_encoding_7bit +}; + +const mbfl_language mbfl_language_traditional_chinese = { + mbfl_no_language_traditional_chinese, + "Traditional Chinese", + "zh-tw", + NULL, + mbfl_no_encoding_big5, + mbfl_no_encoding_base64, + mbfl_no_encoding_8bit +}; + diff --git a/ext/mbstring/libmbfl/nls/nls_zh.h b/ext/mbstring/libmbfl/nls/nls_zh.h new file mode 100644 index 0000000..2181602 --- /dev/null +++ b/ext/mbstring/libmbfl/nls/nls_zh.h @@ -0,0 +1,9 @@ +#ifndef MBFL_NLS_ZH_H +#define MBFL_NLS_ZH_H + +#include "mbfilter.h" + +extern const mbfl_language mbfl_language_simplified_chinese; +extern const mbfl_language mbfl_language_traditional_chinese; + +#endif /* MBFL_NLS_ZH_H */ diff --git a/ext/mbstring/libmbfl/tests/Makefile.am b/ext/mbstring/libmbfl/tests/Makefile.am new file mode 100644 index 0000000..8e857bc --- /dev/null +++ b/ext/mbstring/libmbfl/tests/Makefile.am @@ -0,0 +1,10 @@ +SUBDIRS=conv_encoding.tests conv_kana.tests strwidth.tests strcut.tests +noinst_PROGRAMS=conv_encoding conv_kana strwidth strcut +conv_encoding_SOURCES=conv_encoding.c +conv_encoding_LDADD=../mbfl/libmbfl.la +conv_kana_SOURCES=conv_kana.c +conv_kana_LDADD=../mbfl/libmbfl.la +strwidth_SOURCES=strwidth.c +strwidth_LDADD=../mbfl/libmbfl.la +strcut_SOURCES=strcut.c +strcut_LDADD=../mbfl/libmbfl.la diff --git a/ext/mbstring/libmbfl/tests/conv_encoding.c b/ext/mbstring/libmbfl/tests/conv_encoding.c new file mode 100644 index 0000000..9769964 --- /dev/null +++ b/ext/mbstring/libmbfl/tests/conv_encoding.c @@ -0,0 +1,104 @@ +/** + * this is a small sample script to use libmbfl. + * Rui Hirokawa <hirokawa@php.net> + * + * this file is encoded in EUC-JP. + */ + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include "mbfl/mbfilter.h" + +static void hexdump(const mbfl_string *ptr) +{ + unsigned int i; + + for (i = 0; i < ptr->len; i++) { + printf("%%%02x", ptr->val[i]); + } + + printf(" (%u)\n", ptr->len); +} + +int main(int argc, char **argv) +{ + enum mbfl_no_encoding from_encoding, to_encoding; + enum mbfl_no_language no_language; + mbfl_buffer_converter *convd = NULL; + mbfl_memory_device dev; + mbfl_string string, result, *ret; + int final = 0; + int state = 0; + + if (argc < 4) { + fprintf(stderr, "Usage: %s lang to_encoding from_encoding\n", argv[0]); + return EXIT_FAILURE; + } + + if ((no_language = mbfl_name2no_language(argv[1])) == + mbfl_no_language_invalid) { + printf("Unsupported NLS: %s\n", argv[1]); + return EXIT_FAILURE; + } + + if ((to_encoding = mbfl_name2no_encoding(argv[2])) == + mbfl_no_encoding_invalid) { + printf("Unsupported encoding: %s\n", argv[2]); + return EXIT_FAILURE; + } + + if ((from_encoding = mbfl_name2no_encoding(argv[3])) == + mbfl_no_encoding_invalid) { + printf("Unsupported encoding: %s\n", argv[3]); + return EXIT_FAILURE; + } + + convd = mbfl_buffer_converter_new(from_encoding, to_encoding, 0); + + do { + mbfl_memory_device_init(&dev, 0, 4096); + mbfl_string_init_set(&string, no_language, from_encoding); + + for (;;) { + const int c = fgetc(stdin); + + if (c == EOF) { + final = 1; + break; + } else if (c == 10) { + if (state == 1) { + state = 0; + continue; + } + break; + } else if (c == 13) { + state = 1; + break; + } + + if (dev.pos >= dev.length) { + if (dev.length + dev.allocsz < dev.length) { + printf("Unable to allocate memory\n"); + return EXIT_FAILURE; + } + + mbfl_memory_device_realloc(&dev, dev.length + dev.allocsz, + dev.allocsz); + } + + dev.buffer[dev.pos++] = (unsigned char)c; + } + + mbfl_memory_device_result(&dev, &string); + mbfl_string_init_set(&result, no_language, to_encoding); + ret = mbfl_buffer_converter_feed_result(convd, &string, &result); + hexdump(&result); + mbfl_string_clear(&result); + mbfl_string_clear(&string); + } while (!final); + + mbfl_buffer_converter_delete(convd); + + return EXIT_SUCCESS; +} diff --git a/ext/mbstring/libmbfl/tests/conv_encoding.tests/Makefile.am b/ext/mbstring/libmbfl/tests/conv_encoding.tests/Makefile.am new file mode 100644 index 0000000..6a626bd --- /dev/null +++ b/ext/mbstring/libmbfl/tests/conv_encoding.tests/Makefile.am @@ -0,0 +1,31 @@ +EXTRA_DIST=\ + cp51932_cp50220raw.exp\ + ujis_sjis.exp\ + utf8_sjis.exp\ + yensign.exp +noinst_PROGRAMS=gen_exp +gen_exp_SOURCES=gen_exp.c +CLEANFILES=\ + uni_to_cp932.exp\ + uni_to_cp50220.exp\ + uni_to_cp50222.exp\ + cp932_to_uni.exp + +CP932.TXT: + $(FETCH_VIA_FTP) ftp://unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP932.TXT + +cp932_to_uni.exp: gen_exp CP932.TXT + ./gen_exp from_cp932 > "$@" + +uni_to_cp932.exp: gen_exp CP932.TXT + ./gen_exp to_cp932 > "$@" + +uni_to_cp50220.exp: gen_exp CP932.TXT + ./gen_exp to_cp50220 > "$@" + +uni_to_cp50222.exp: gen_exp CP932.TXT + ./gen_exp to_cp50222 > "$@" + +check-local: uni_to_cp932.exp uni_to_cp50220.exp uni_to_cp50222.exp + +.PHONY: check-local diff --git a/ext/mbstring/libmbfl/tests/conv_encoding.tests/cp51932_cp50220raw.exp b/ext/mbstring/libmbfl/tests/conv_encoding.tests/cp51932_cp50220raw.exp new file mode 100644 index 0000000..0e63ef1 --- /dev/null +++ b/ext/mbstring/libmbfl/tests/conv_encoding.tests/cp51932_cp50220raw.exp @@ -0,0 +1,33 @@ +#!/usr/bin/expect -f +spawn tests/conv_encoding Japanese CP50220raw eucJP-win +set timeout 1 + +expect_after { + "\[^\r\n\]*\r\n" { fail $test } +} + +set test "81 - 87ku" +send "\xf5\xba\xf6\xec\xf7\xc9\xf8\xb3\xf9\xa1\xfa\xa1\xfb\xa1\r" +expect { + "%1b%24%42%75%3a%76%6c%77%49%78%33%79%21%7a%21%7b%21%1b%28%42 (20)\r\n" { pass $test } +} + + +set test "kanji + kana" +send "ゥ呿賄氾旦玄\r" +expect { + "%1b%24%42%46%7c%4b%5c%38%6c%25%46%25%39%25%48%1b%28%42 (18)\r\n" { pass $test } +} + +set test "full-width numerics" +send "ㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨ\r" +expect { + "%1b%24%42%23%30%23%31%23%32%23%33%23%34%23%35%23%36%23%37%23%38%23%39%1b%28%42 (26)\r\n" { pass $test } +} + +set test "full-width numerics" +send "倀" +expect { + "%1b%24%42%2d%42%1b%28%42 (8)\r\n" { pass $test } +} + diff --git a/ext/mbstring/libmbfl/tests/conv_encoding.tests/gen_exp.c b/ext/mbstring/libmbfl/tests/conv_encoding.tests/gen_exp.c new file mode 100644 index 0000000..93a0fb3 --- /dev/null +++ b/ext/mbstring/libmbfl/tests/conv_encoding.tests/gen_exp.c @@ -0,0 +1,497 @@ +#include <stdio.h> +#include <stddef.h> +#include <string.h> +#include <stdlib.h> +#include <errno.h> + +struct mappings_entry { + int cp_uni; + int n; + int cp_932[16]; +}; + +struct mappings { + size_t n; + size_t nalloc; + struct mappings_entry *entries; +}; + +static void mappings_init(struct mappings *map) +{ + map->n = 0; + map->nalloc = 0; + map->entries = 0; +} + +static void mappings_destroy(struct mappings *map) +{ + if (map->entries) + free(map->entries); +} + +static int mappings_grow(struct mappings *map) +{ + if (map->n >= map->nalloc) { + struct mappings_entry *new_entries; + size_t n = map->nalloc << 1, a; + if (n == 0) + n = 1; + else if (n <= map->n) + return 2; + a = sizeof(*map->entries) * n; + if (a / n != sizeof(*map->entries)) + return 2; + new_entries = realloc(map->entries, a); + if (!new_entries) + return 2; + map->entries = new_entries; + map->nalloc = n; + } + return 0; +} + +static int mappings_add(struct mappings *map, int cp_uni, int cp_932) +{ + size_t i; + size_t s = 0, e = map->n; + struct mappings_entry *entry; + + for (;;) { + i = (s + e) / 2; + entry = &map->entries[i]; + if (e == i || entry->cp_uni > cp_uni) { + if (e == i) { + int r = mappings_grow(map); + if (r) + return r; + if (map->n > i) { + size_t n = map->n - i, a = sizeof(*map->entries) * n; + if (a / n != sizeof(*map->entries)) + return 2; + memmove(&map->entries[i + 1], &map->entries[i], a); + } + ++map->n; + entry = &map->entries[i]; + entry->cp_uni = cp_uni; + entry->n = 0; + break; + } + e = i; + } else if (entry->cp_uni < cp_uni) { + if (s == i) { + int r = mappings_grow(map); + if (r) + return r; + if (map->n > i + 1) { + size_t n = (map->n - i - 1), a = sizeof(*map->entries) * n; + if (a / n != sizeof(*map->entries)) + return 2; + memmove(&map->entries[i + 2], &map->entries[i + 1], a); + } + ++map->n; + entry = &map->entries[i + 1]; + entry->cp_uni = cp_uni; + entry->n = 0; + break; + } + s = i; + } else { + break; + } + } + if (entry->n >= sizeof(entry->cp_932) / sizeof(*entry->cp_932)) + return 1; + entry->cp_932[entry->n++] = cp_932; + return 0; +} + +struct generator_entry { + const char *name; + const char *prologue; + const char *epilogue; + void(*visitor)(const struct mappings_entry *); +}; + +static int utf32_utf8(char *buf, int k) +{ + int retval = 0; + + if (k < 0x80) { + buf[0] = k; + retval = 1; + } else if (k < 0x800) { + buf[0] = 0xc0 | (k >> 6); + buf[1] = 0x80 | (k & 0x3f); + retval = 2; + } else if (k < 0x10000) { + buf[0] = 0xe0 | (k >> 12); + buf[1] = 0x80 | ((k >> 6) & 0x3f); + buf[2] = 0x80 | (k & 0x3f); + retval = 3; + } else if (k < 0x200000) { + buf[0] = 0xf0 | (k >> 18); + buf[1] = 0x80 | ((k >> 12) & 0x3f); + buf[2] = 0x80 | ((k >> 6) & 0x3f); + buf[3] = 0x80 | (k & 0x3f); + retval = 4; + } else if (k < 0x4000000) { + buf[0] = 0xf8 | (k >> 24); + buf[1] = 0x80 | ((k >> 18) & 0x3f); + buf[2] = 0x80 | ((k >> 12) & 0x3f); + buf[3] = 0x80 | ((k >> 6) & 0x3f); + buf[4] = 0x80 | (k & 0x3f); + retval = 5; + } else { + buf[0] = 0xfc | (k >> 30); + buf[1] = 0x80 | ((k >> 24) & 0x3f); + buf[2] = 0x80 | ((k >> 18) & 0x3f); + buf[3] = 0x80 | ((k >> 12) & 0x3f); + buf[4] = 0x80 | ((k >> 6) & 0x3f); + buf[5] = 0x80 | (k & 0x3f); + retval = 6; + } + buf[retval] = '\0'; + + return retval; +} + +static const char epilogue[] = +"close\n"; + +static const char prologue_to_cp932[] = +"#!/usr/bin/expect -f\n" +"spawn tests/conv_encoding Japanese CP932 UTF-8\n" +"set timeout 1\n" +"\n" +"expect_after {\n" +" \"\\[^\\r\\n\\]*\\r\\n\" { fail $test }\n" +"}\n"; + +static const char prologue_to_cp50220[] = +"#!/usr/bin/expect -f\n" +"spawn tests/conv_encoding Japanese CP50220 UTF-8\n" +"set timeout 1\n" +"\n" +"expect_after {\n" +" \"\\[^\\r\\n\\]*\\r\\n\" { fail $test }\n" +"}\n"; + +static const char prologue_to_cp50222[] = +"#!/usr/bin/expect -f\n" +"spawn tests/conv_encoding Japanese CP50222 UTF-8\n" +"set timeout 1\n" +"\n" +"expect_after {\n" +" \"\\[^\\r\\n\\]*\\r\\n\" { fail $test }\n" +"}\n"; + +static const char prologue_from_cp932[] = +"#!/usr/bin/expect -f\n" +"spawn tests/conv_encoding Japanese UTF-8 CP932\n" +"set timeout 1\n" +"\n" +"expect_after {\n" +" \"\\[^\\r\\n\\]*\\r\\n\" { fail $test }\n" +"}\n"; + +static void to_cp932_visitor(const struct mappings_entry *entry) +{ + char buf_uni[32], buf_cp932[8]; + int i; + + if (entry->cp_uni < 32 || entry->cp_uni == 127) + return; + + i = utf32_utf8(buf_uni, entry->cp_uni); + buf_uni[i * 4] = '\0'; + while (--i >= 0) { + unsigned char c = ((unsigned char *)buf_uni)[i]; + buf_uni[i * 4] = '\\'; + buf_uni[i * 4 + 1] = 'x'; + buf_uni[i * 4 + 2] = "0123456789abcdef"[c >> 4]; + buf_uni[i * 4 + 3] = "0123456789abcdef"[c & 15]; + } + + printf("set test \"U+%06X\"\n" + "send -- \"%s\r\"\n" + "sleep 0.001\n" + "expect {\n", entry->cp_uni, buf_uni); + + for (i = 0; i < entry->n; ++i) { + int len = 0; + const int c = entry->cp_932[i]; + if (c >= 0x100) { + len = 2; + sprintf(buf_cp932, "%%%02x%%%02x", (c >> 8) & 0xff, c & 0xff); + } else { + len = 1; + sprintf(buf_cp932, "%%%02x", c); + } + printf(" \"%s (%d)\\r\\n\" { pass $test }\n", buf_cp932, len); + } + + printf("}\n"); +} + +static void from_cp932_visitor(const struct mappings_entry *entry) +{ + char buf_uni[32], buf_cp932[8]; + int i, len; + + if (entry->cp_uni < 32 || entry->cp_uni == 127) + return; + + len = utf32_utf8(buf_uni, entry->cp_uni); + buf_uni[len * 3] = '\0'; + i = len; + while (--i >= 0) { + unsigned char c = ((unsigned char *)buf_uni)[i]; + buf_uni[i * 3] = '%'; + buf_uni[i * 3 + 1] = "0123456789abcdef"[c >> 4]; + buf_uni[i * 3 + 2] = "0123456789abcdef"[c & 15]; + } + + for (i = 0; i < entry->n; ++i) { + const int c = entry->cp_932[i]; + if (c >= 0x100) + sprintf(buf_cp932, "\\x%02x\\x%02x", (c >> 8) & 0xff, c & 0xff); + else + sprintf(buf_cp932, "\\x%02x", c); + printf("set test \"U+%06X\"\n" + "send -- \"%s\r\"\n" + "sleep 0.001\n" + "expect {\n" + " \"%s (%d)\\r\\n\" { pass $test }\n" + "}\n", + entry->cp_uni, buf_cp932, buf_uni, len); + } +} + +static void to_cp50220_visitor(const struct mappings_entry *entry) +{ + char buf_uni[32], buf_cp50220[32]; + int i; + + if (entry->cp_uni < 32 || entry->cp_uni == 127) + return; + + i = utf32_utf8(buf_uni, entry->cp_uni); + buf_uni[i * 4] = '\0'; + while (--i >= 0) { + unsigned char c = ((unsigned char *)buf_uni)[i]; + buf_uni[i * 4] = '\\'; + buf_uni[i * 4 + 1] = 'x'; + buf_uni[i * 4 + 2] = "0123456789abcdef"[c >> 4]; + buf_uni[i * 4 + 3] = "0123456789abcdef"[c & 15]; + } + + printf("set test \"U+%06X\"\n" + "send -- \"%s\r\"\n" + "sleep 0.001\n" + "expect {\n", entry->cp_uni, buf_uni); + + for (i = 0; i < entry->n; ++i) { + int len = 0; + const int c = entry->cp_932[i]; + if (c >= 0xa1 && c < 0xe0) { + static const int jisx0208_tl_map[] = { + 0x0000, 0x2123, 0x2156, 0x2157, 0x2122, 0x2126, 0x2572, 0x2521, + 0x2523, 0x2525, 0x2527, 0x2529, 0x2563, 0x2565, 0x2567, 0x2543, + 0x213c, 0x2522, 0x2524, 0x2526, 0x2528, 0x252a, 0x252b, 0x252d, + 0x252f, 0x2531, 0x2533, 0x2535, 0x2537, 0x2539, 0x253b, 0x253d, + 0x253f, 0x2541, 0x2544, 0x2546, 0x2548, 0x254a, 0x254b, 0x254c, + 0x254d, 0x254e, 0x254f, 0x2552, 0x2555, 0x2558, 0x255b, 0x255e, + 0x255f, 0x2560, 0x2561, 0x2562, 0x2564, 0x2566, 0x2568, 0x2569, + 0x256a, 0x256b, 0x256c, 0x256d, 0x256f, 0x2573, 0x212b, 0x212c + }; + const int j = jisx0208_tl_map[c - 0xa0]; + len = 8; + sprintf(buf_cp50220, "%%1b%%24%%42%%%02x%%%02x%%1b%%28%%42", j >> 8, j & 0xff); + } else if (c >= 0x100) { + const int j = ((((c & 0xff00) - (c >= 0xe000 ? 0xb000: 0x7000)) << 1) | ((c & 0xff) - (c & 0x80 ? 32: 31))) - ((c & 0xff) >= 159 ? 94: 0x100); + len = 8; + sprintf(buf_cp50220, "%%1b%%24%%42%%%02x%%%02x%%1b%%28%%42", j >> 8, j & 0xff); + } else { + len = 1; + sprintf(buf_cp50220, "%%%02x", c); + } + printf(" \"%s (%d)\\r\\n\" { pass $test }\n", buf_cp50220, len); + } + + printf("}\n"); +} + +static void to_cp50222_visitor(const struct mappings_entry *entry) +{ + char buf_uni[32], buf_cp50220[32]; + int i; + + if (entry->cp_uni < 32 || entry->cp_uni == 127) + return; + + i = utf32_utf8(buf_uni, entry->cp_uni); + buf_uni[i * 4] = '\0'; + while (--i >= 0) { + unsigned char c = ((unsigned char *)buf_uni)[i]; + buf_uni[i * 4] = '\\'; + buf_uni[i * 4 + 1] = 'x'; + buf_uni[i * 4 + 2] = "0123456789abcdef"[c >> 4]; + buf_uni[i * 4 + 3] = "0123456789abcdef"[c & 15]; + } + + printf("set test \"U+%06X\"\n" + "send -- \"%s\r\"\n" + "sleep 0.001\n" + "expect {\n", entry->cp_uni, buf_uni); + + for (i = 0; i < entry->n; ++i) { + int len = 0; + const int c = entry->cp_932[i]; + if (c >= 0xa1 && c < 0xe0) { + len = 3; + sprintf(buf_cp50220, "%%0e%%%02x%%0f", c - 0x80); + } else if (c >= 0x100) { + const int j = ((((c & 0xff00) - (c >= 0xe000 ? 0xb000: 0x7000)) << 1) | ((c & 0xff) - (c & 0x80 ? 32: 31))) - ((c & 0xff) >= 159 ? 94: 0x100); + len = 8; + sprintf(buf_cp50220, "%%1b%%24%%42%%%02x%%%02x%%1b%%28%%42", j >> 8, j & 0xff); + } else { + len = 1; + sprintf(buf_cp50220, "%%%02x", c); + } + printf(" \"%s (%d)\\r\\n\" { pass $test }\n", buf_cp50220, len); + } + + printf("}\n"); +} + + +static struct generator_entry entries[] = { + { "to_cp932", prologue_to_cp932, epilogue, to_cp932_visitor }, + { "to_cp50220", prologue_to_cp50220, epilogue, to_cp50220_visitor }, + { "to_cp50222", prologue_to_cp50222, epilogue, to_cp50222_visitor }, + { "from_cp932", prologue_from_cp932, epilogue, from_cp932_visitor }, + { NULL } +}; + +static const char cp932_txt[] = "CP932.TXT"; + +int main(int argc, char **argv) +{ + int retval = 0; + FILE *fp; + char buf[1024]; + struct generator_entry* gen; + struct mappings map; + + if (argc <= 1) { + fprintf(stderr, "usage: %s generator\n", argv[0]); + return 255; + } + + for (gen = entries;; ++gen) { + if (!gen->name) { + fprintf(stderr, "Unknown generator: %s\n", argv[1]); + return 1; + } + if (strcmp(gen->name, argv[1]) == 0) + break; + } + + fp = fopen(cp932_txt, "r"); + if (!fp) { + fprintf(stderr, "Failed to open %s\n", cp932_txt); + return 2; + } + + mappings_init(&map); + + while (fgets(buf, sizeof(buf), fp)) { + const char *fields[16]; + char *p = buf; + int field = 0; + int cp_932, cp_uni; + for (;;) { + char *q = 0; + int eol = 0; + + if (field >= sizeof(fields) / sizeof(*fields)) { + fprintf(stderr, "Too many fields (incorrect file?)\n"); + retval = 3; + goto out; + } + + for (;;) { + if (*p == '\0' || *p == '#' || *p == 0x0a) { + eol = 1; + break; + } else if (*p != ' ' && *p != '\t') { + break; + } + ++p; + } + + if (eol) + break; + + q = p; + + for (;;) { + if (*p == '\0' || *p == '#' || *p == 0x0a) { + eol = 1; + break; + } else if (*p == ' ' || *p == '\t') { + break; + } + ++p; + } + + *p = '\0'; + fields[field++] = q; + + if (eol) + break; + ++p; + } + if (field == 0 || field == 1) { + continue; + } else if (field != 2) { + fprintf(stderr, "Unexpected field count (expected 2, got %d)\n", field); + retval = 3; + goto out; + } + cp_932 = strtol(fields[0], NULL, 0); + if (errno == ERANGE || errno == EINVAL) { + fprintf(stderr, "Malformed field value: %s\n", fields[0]); + retval = 4; + goto out; + } + cp_uni = strtol(fields[1], NULL, 0); + if (errno == ERANGE || errno == EINVAL) { + fprintf(stderr, "Malformed field value: %s\n", fields[1]); + retval = 4; + goto out; + } + + if (mappings_add(&map, cp_uni, cp_932)) { + fprintf(stderr, "Too many mappings to the same Unicode codepoint (U+%06X)\n", cp_uni); + retval = 4; + goto out; + } + } + + { + size_t i; + printf("%s", gen->prologue); + for (i = 0; i < map.n; ++i) + gen->visitor(&map.entries[i]); + printf("%s", gen->epilogue); + } + +out: + mappings_destroy(&map); + return retval; +} + +/* + * vim: sts=4 sw=4 ts=4 noet + */ diff --git a/ext/mbstring/libmbfl/tests/conv_encoding.tests/ujis_sjis.exp b/ext/mbstring/libmbfl/tests/conv_encoding.tests/ujis_sjis.exp new file mode 100644 index 0000000..882953f --- /dev/null +++ b/ext/mbstring/libmbfl/tests/conv_encoding.tests/ujis_sjis.exp @@ -0,0 +1,35 @@ +#!/usr/bin/expect -f +spawn tests/conv_encoding Japanese Shift_JIS EUC-JP +set timeout 1 + +expect_after { + "\[^\r\n\]*\r\n" { fail $test } +} + +set test "basic test" +send "testtest\r" +expect { + "%74%65%73%74%74%65%73%74 (8)\r\n" { pass $test } +} + + +set test "kanji + kana" +send "ゥ呿賄氾旦玄\r" +expect { + "%93%fa%96%7b%8c%ea%83%65%83%58%83%67 (12)\r\n" { pass $test } +} + +set test "full-width numerics" +send "ㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨ\r" +expect { + "%82%4f%82%50%82%51%82%52%82%53%82%54%82%55%82%56%82%57%82%58 (20)\r\n" { pass $test } +} + +set test "full-width numerics" +send "倀" +expect { + "%3f (1)\r\n" { pass $test } +} + +close +# vim: sts=4 ts=4 sw=4 et encoding=EUC-JP diff --git a/ext/mbstring/libmbfl/tests/conv_encoding.tests/utf8_sjis.exp b/ext/mbstring/libmbfl/tests/conv_encoding.tests/utf8_sjis.exp new file mode 100644 index 0000000..e51b5e4 --- /dev/null +++ b/ext/mbstring/libmbfl/tests/conv_encoding.tests/utf8_sjis.exp @@ -0,0 +1,35 @@ +#!/usr/bin/expect -f +spawn tests/conv_encoding Japanese Shift_JIS UTF-8 +set timeout 1 + +expect_after { + "\[^\r\n\]*\r\n" { fail $test } +} + +set test "basic test" +send "testtest\r" +expect { + "%74%65%73%74%74%65%73%74 (8)\r\n" { pass $test } +} + + +set test "kanji + kana" +send "交祈嫘\r" +expect { + "%93%fa%96%7b%8c%ea%83%65%83%58%83%67 (12)\r\n" { pass $test } +} + +set test "full-width numerics" +send "嚗嚗嚗嚗嚗嚗嚗嚗嚗嚗\r" +expect { + "%82%4f%82%50%82%51%82%52%82%53%82%54%82%55%82%56%82%57%82%58 (20)\r\n" { pass $test } +} + +set test "full-width numerics" +send "" +expect { + "%3f (1)\r\n" { pass $test } +} + +close +# vim: sts=4 ts=4 sw=4 et encoding=EUC-JP diff --git a/ext/mbstring/libmbfl/tests/conv_encoding.tests/yensign.exp b/ext/mbstring/libmbfl/tests/conv_encoding.tests/yensign.exp new file mode 100644 index 0000000..03f2faf --- /dev/null +++ b/ext/mbstring/libmbfl/tests/conv_encoding.tests/yensign.exp @@ -0,0 +1,99 @@ +#!/usr/bin/expect -f +set timeout 1 + +spawn tests/conv_encoding Japanese CP932 UTF-8 +expect_after { + "\[^\r\n\]*\r\n" { fail $test } +} +set test "CP932" +send "\xc2\xa5\r" +sleep 0.01 +expect { + "%5c (1)\r\n" { pass $test } +} +close + +spawn tests/conv_encoding Japanese SJIS-open UTF-8 +expect_after { + "\[^\r\n\]*\r\n" { fail $test } +} +set test "SJIS-open" +send "\xc2\xa5\r" +sleep 0.01 +expect { + "%81%8f (2)\r\n" { pass $test } +} +close + +spawn tests/conv_encoding Japanese eucJP-open UTF-8 +expect_after { + "\[^\r\n\]*\r\n" { fail $test } +} +set test "eucJP-open" +send "\xc2\xa5\r" +sleep 0.01 +expect { + "%a1%ef (2)\r\n" { pass $test } +} +close + +spawn tests/conv_encoding Japanese CP51932 UTF-8 +expect_after { + "\[^\r\n\]*\r\n" { fail $test } +} +set test "CP51932" +send "\xc2\xa5\r" +sleep 0.01 +expect { + "%5c (1)\r\n" { pass $test } +} +close + +spawn tests/conv_encoding Japanese ISO-2022-JP-MS UTF-8 +expect_after { + "\[^\r\n\]*\r\n" { fail $test } +} +set test "ISO-2022-JP-MS" +send "\xc2\xa5\r" +sleep 0.01 +expect { + "%1b%24%42%21%6f%1b%28%42 (8)\r\n" { pass $test } +} +close + +spawn tests/conv_encoding Japanese CP50220 UTF-8 +expect_after { + "\[^\r\n\]*\r\n" { fail $test } +} +set test "CP50220" +send "\xc2\xa5\r" +sleep 0.01 +expect { + "%1b%28%4a%5c%1b%28%42 (7)\r\n" { pass $test } +} +close + +spawn tests/conv_encoding Japanese CP50221 UTF-8 +expect_after { + "\[^\r\n\]*\r\n" { fail $test } +} +set test "CP50221" +send "\xc2\xa5\r" +sleep 0.01 +expect { + "%1b%28%4a%5c%1b%28%42 (7)\r\n" { pass $test } +} +close + +spawn tests/conv_encoding Japanese CP50222 UTF-8 +expect_after { + "\[^\r\n\]*\r\n" { fail $test } +} +set test "CP50222" +send "\xc2\xa5\r" +sleep 0.01 +expect { + "%1b%28%4a%5c%1b%28%42 (7)\r\n" { pass $test } +} +close +# vim: sts=4 ts=4 sw=4 et diff --git a/ext/mbstring/libmbfl/tests/conv_kana.c b/ext/mbstring/libmbfl/tests/conv_kana.c new file mode 100644 index 0000000..c12fdc2 --- /dev/null +++ b/ext/mbstring/libmbfl/tests/conv_kana.c @@ -0,0 +1,147 @@ +/** + * this is a small sample script to use libmbfl. + * Rui Hirokawa <hirokawa@php.net> + * + * this file is encoded in EUC-JP. + */ + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include "mbfl/mbfilter.h" + +static void hexdump(const mbfl_string *ptr) +{ + unsigned int i; + + for (i = 0; i < ptr->len; i++) { + printf("%%%02x", ptr->val[i]); + } + + printf(" (%u)\n", ptr->len); +} + +int main(int argc, char **argv) +{ + enum mbfl_no_encoding no_enc; + const enum mbfl_no_language no_lang = mbfl_no_language_japanese; + mbfl_memory_device dev; + mbfl_string string, result; + int final = 0; + int state = 0; + int mode = 0; + + if (argc < 3) { + fprintf(stderr, "Usage: %s encoding flags\n", argv[0]); + return EXIT_FAILURE; + } + + if ((no_enc = mbfl_name2no_encoding(argv[1])) == + mbfl_no_encoding_invalid) { + printf("Unsupported encoding: %s\n", argv[1]); + return EXIT_FAILURE; + } + + { + const char *p; + + for (p= argv[2] + strlen(argv[2]); p > argv[2]; ) { + switch (*(--p)) { + case 'A': + mode |= 0x1; + break; + case 'a': + mode |= 0x10; + break; + case 'R': + mode |= 0x2; + break; + case 'r': + mode |= 0x20; + break; + case 'N': + mode |= 0x4; + break; + case 'n': + mode |= 0x40; + break; + case 'S': + mode |= 0x8; + break; + case 's': + mode |= 0x80; + break; + case 'K': + mode |= 0x100; + break; + case 'k': + mode |= 0x1000; + break; + case 'H': + mode |= 0x200; + break; + case 'h': + mode |= 0x2000; + break; + case 'V': + mode |= 0x800; + break; + case 'C': + mode |= 0x10000; + break; + case 'c': + mode |= 0x20000; + break; + case 'M': + mode |= 0x100000; + break; + case 'm': + mode |= 0x200000; + break; + } + } + } + + do { + mbfl_memory_device_init(&dev, 0, 4096); + mbfl_string_init_set(&string, no_lang, no_enc); + + for (;;) { + const int c = fgetc(stdin); + + if (c == EOF) { + final = 1; + break; + } else if (c == 10) { + if (state == 1) { + state = 0; + continue; + } + break; + } else if (c == 13) { + state = 1; + break; + } + + if (dev.pos >= dev.length) { + if (dev.length + dev.allocsz < dev.length) { + printf("Unable to allocate memory\n"); + return EXIT_FAILURE; + } + + mbfl_memory_device_realloc(&dev, dev.length + dev.allocsz, + dev.allocsz); + } + + dev.buffer[dev.pos++] = (unsigned char)c; + } + + mbfl_memory_device_result(&dev, &string); + mbfl_ja_jp_hantozen(&string, &result, mode); + hexdump(&result); + mbfl_string_clear(&result); + mbfl_string_clear(&string); + } while (!final); + + return EXIT_SUCCESS; +} diff --git a/ext/mbstring/libmbfl/tests/conv_kana.tests/Makefile.am b/ext/mbstring/libmbfl/tests/conv_kana.tests/Makefile.am new file mode 100644 index 0000000..37713c3 --- /dev/null +++ b/ext/mbstring/libmbfl/tests/conv_kana.tests/Makefile.am @@ -0,0 +1 @@ +EXTRA_DIST=*.exp diff --git a/ext/mbstring/libmbfl/tests/conv_kana.tests/conv_kana.exp b/ext/mbstring/libmbfl/tests/conv_kana.tests/conv_kana.exp new file mode 100644 index 0000000..a6459fe --- /dev/null +++ b/ext/mbstring/libmbfl/tests/conv_kana.tests/conv_kana.exp @@ -0,0 +1,1098 @@ +#!/usr/bin/expect -f + +set timeout 1 + +set test "full-width alphabets to half-width counterparts" +spawn tests/conv_kana EUC-JP "r" +expect_after { + "\[^\r\n\]*\r\n" { fail $test } +} +send "嶂滹聜銫憯璉蝤鋆憌磩諴鴥瞨謑鵃艞韗礗鞶穬鶜鬕驐齮灥\r" +expect { + -ex "%61%62%63%64%65%66%67%68%69%6a%6b%6c%6d%6e%6f%70%71%72%73%74%75%76%77%78%79%7a (26)\r\n" { pass $test } +} +send "薜瞿瓊耀籟ゞラ氿呁芄怗礿峉洷苺悈猀茛啥掁痑蛅堧晻焮r" +expect { + -ex "%41%42%43%44%45%46%47%48%49%4a%4b%4c%4d%4e%4f%50%51%52%53%54%55%56%57%58%59%5a (26)\r\n" { pass $test } +} +send "abcdefghijklmnopqrstuvwxyz\r" +expect { + -ex "%61%62%63%64%65%66%67%68%69%6a%6b%6c%6d%6e%6f%70%71%72%73%74%75%76%77%78%79%7a (26)\r\n" { pass $test } +} +send "ABCDEFGHIJKLMNOPQRSTUVWXYZ\r" +expect { + -ex "%41%42%43%44%45%46%47%48%49%4a%4b%4c%4d%4e%4f%50%51%52%53%54%55%56%57%58%59%5a (26)\r\n" { pass $test } +} +send "0123456789\r" +expect { + -ex "%30%31%32%33%34%35%36%37%38%39 (10)\r\n" { pass $test } +} +send "ㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨ\r" +expect { + -ex "%a3%b1%a3%b2%a3%b3%a3%b4%a3%b5%a3%b6%a3%b7%a3%b8%a3%b9 (20)\r\n" { pass $test } +} +send "﹛ \r" +expect { + -ex "%a1%a1%20 (3)\r\n" { pass $test } +} +send "失奶它巨左布幼弘必打由疋皿矢禾市‵平‵弁‵弗‵戊‵甩′甲′白′目′石′\r" +expect { + -ex "%a5%a2%a5%a4%a5%a6%a5%a8%a5%aa%a5%ac%a5%ae%a5%b0%a5%b2%a5%b4%a5%d1%a5%d4%a5%d7%a5%da%a5%dd%a5%ab%a1%ab%a5%ad%a1%ab%a5%af%a1%ab%a5%b1%a1%ab%a5%b3%a1%ab%a5%cf%a1%ac%a5%d2%a1%ac%a5%d5%a1%ac%a5%d8%a1%ac%a5%db%a1%ac (70)\r\n" { pass $test } +} +send "綅r" +expect { + -ex "%8e%b1%8e%b2%8e%b3%8e%b4%8e%b5%8e%b6%8e%de%8e%b7%8e%de%8e%b8%8e%de%8e%b9%8e%de%8e%ba%8e%de%8e%ca%8e%df%8e%cb%8e%df%8e%cc%8e%df%8e%cd%8e%df%8e%ce%8e%df (50)\r\n" { pass $test } +} +send "丐中丹尹云互亢什仆仍天夭尤巴弔井‵五‵仁‵仃‵仇‵反′夫′孔′尺′幻′\r" +expect { + -ex "%a4%a2%a4%a4%a4%a6%a4%a8%a4%aa%a4%ac%a4%ae%a4%b0%a4%b2%a4%b4%a4%d1%a4%d4%a4%d7%a4%da%a4%dd%a4%ab%a1%ab%a4%ad%a1%ab%a4%af%a1%ab%a4%b1%a1%ab%a4%b3%a1%ab%a4%cf%a1%ac%a4%d2%a1%ac%a4%d5%a1%ac%a4%d8%a1%ac%a4%db%a1%ac (70)\r\n" { pass $test } +} +close + +set test "half-width alphabets to full-width counterparts" +spawn tests/conv_kana EUC-JP "R" +expect_after { + "\[^\r\n\]*\r\n" { fail $test } +} +send "嶂滹聜銫憯璉蝤鋆憌磩諴鴥瞨謑鵃艞韗礗鞶穬鶜鬕驐齮灥\r" +expect { + -ex "%a3%e1%a3%e2%a3%e3%a3%e4%a3%e5%a3%e6%a3%e7%a3%e8%a3%e9%a3%ea%a3%eb%a3%ec%a3%ed%a3%ee%a3%ef%a3%f0%a3%f1%a3%f2%a3%f3%a3%f4%a3%f5%a3%f6%a3%f7%a3%f8%a3%f9%a3%fa (52)\r\n" { pass $test } +} +send "薜瞿瓊耀籟ゞラ氿呁芄怗礿峉洷苺悈猀茛啥掁痑蛅堧晻焮r" +expect { + -ex "%a3%c1%a3%c2%a3%c3%a3%c4%a3%c5%a3%c6%a3%c7%a3%c8%a3%c9%a3%ca%a3%cb%a3%cc%a3%cd%a3%ce%a3%cf%a3%d0%a3%d1%a3%d2%a3%d3%a3%d4%a3%d5%a3%d6%a3%d7%a3%d8%a3%d9%a3%da (52)\r\n" { pass $test } +} +send "0123456789\r" +expect { + -ex "%30%31%32%33%34%35%36%37%38%39 (10)\r\n" { pass $test } +} +send "ㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨ\r" +expect { + -ex "%a3%b1%a3%b2%a3%b3%a3%b4%a3%b5%a3%b6%a3%b7%a3%b8%a3%b9 (20)\r\n" { pass $test } +} +send "﹛ \r" +expect { + -ex "%a1%a1%20 (3)\r\n" { pass $test } +} +send "失奶它巨左布幼弘必打由疋皿矢禾市‵平‵弁‵弗‵戊‵甩′甲′白′目′石′\r" +expect { + -ex "%a5%a2%a5%a4%a5%a6%a5%a8%a5%aa%a5%ac%a5%ae%a5%b0%a5%b2%a5%b4%a5%d1%a5%d4%a5%d7%a5%da%a5%dd%a5%ab%a1%ab%a5%ad%a1%ab%a5%af%a1%ab%a5%b1%a1%ab%a5%b3%a1%ab%a5%cf%a1%ac%a5%d2%a1%ac%a5%d5%a1%ac%a5%d8%a1%ac%a5%db%a1%ac (70)\r\n" { pass $test } +} +send "綅r" +expect { + -ex "%8e%b1%8e%b2%8e%b3%8e%b4%8e%b5%8e%b6%8e%de%8e%b7%8e%de%8e%b8%8e%de%8e%b9%8e%de%8e%ba%8e%de%8e%ca%8e%df%8e%cb%8e%df%8e%cc%8e%df%8e%cd%8e%df%8e%ce%8e%df (50)\r\n" { pass $test } +} +send "丐中丹尹云互亢什仆仍天夭尤巴弔井‵五‵仁‵仃‵仇‵反′夫′孔′尺′幻′\r" +expect { + -ex "%a4%a2%a4%a4%a4%a6%a4%a8%a4%aa%a4%ac%a4%ae%a4%b0%a4%b2%a4%b4%a4%d1%a4%d4%a4%d7%a4%da%a4%dd%a4%ab%a1%ab%a4%ad%a1%ab%a4%af%a1%ab%a4%b1%a1%ab%a4%b3%a1%ab%a4%cf%a1%ac%a4%d2%a1%ac%a4%d5%a1%ac%a4%d8%a1%ac%a4%db%a1%ac (70)\r\n" { pass $test } +} +close + +set test "transliterate half-width alphabets to full-width counterparts and full-width to half-width at a time" +spawn tests/conv_kana EUC-JP "Rr" +expect_after { + "\[^\r\n\]*\r\n" { fail $test } +} +send "嶂滹聜銫憯璉蝤鋆憌磩諴鴥瞨謑鵃艞韗礗鞶穬鶜鬕驐齮灥\r" +expect { + -ex "%61%62%63%64%65%66%67%68%69%6a%6b%6c%6d%6e%6f%70%71%72%73%74%75%76%77%78%79%7a (26)\r\n" { pass $test } +} +send "薜瞿瓊耀籟ゞラ氿呁芄怗礿峉洷苺悈猀茛啥掁痑蛅堧晻焮r" +expect { + -ex "%41%42%43%44%45%46%47%48%49%4a%4b%4c%4d%4e%4f%50%51%52%53%54%55%56%57%58%59%5a (26)\r\n" { pass $test } +} +send "abcdefghijklmnopqrstuvwxyz\r" +expect { + -ex "%a3%e1%a3%e2%a3%e3%a3%e4%a3%e5%a3%e6%a3%e7%a3%e8%a3%e9%a3%ea%a3%eb%a3%ec%a3%ed%a3%ee%a3%ef%a3%f0%a3%f1%a3%f2%a3%f3%a3%f4%a3%f5%a3%f6%a3%f7%a3%f8%a3%f9%a3%fa (52)\r\n" { pass $test } +} +send "ABCDEFGHIJKLMNOPQRSTUVWXYZ\r" +expect { + -ex "%a3%c1%a3%c2%a3%c3%a3%c4%a3%c5%a3%c6%a3%c7%a3%c8%a3%c9%a3%ca%a3%cb%a3%cc%a3%cd%a3%ce%a3%cf%a3%d0%a3%d1%a3%d2%a3%d3%a3%d4%a3%d5%a3%d6%a3%d7%a3%d8%a3%d9%a3%da (52)\r\n" { pass $test } +} +send "0123456789\r" +expect { + -ex "%30%31%32%33%34%35%36%37%38%39 (10)\r\n" { pass $test } +} +send "ㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨ\r" +expect { + -ex "%a3%b1%a3%b2%a3%b3%a3%b4%a3%b5%a3%b6%a3%b7%a3%b8%a3%b9 (20)\r\n" { pass $test } +} +send "﹛ \r" +expect { + -ex "%a1%a1%20 (3)\r\n" { pass $test } +} +send "失奶它巨左布幼弘必打由疋皿矢禾市‵平‵弁‵弗‵戊‵甩′甲′白′目′石′\r" +expect { + -ex "%a5%a2%a5%a4%a5%a6%a5%a8%a5%aa%a5%ac%a5%ae%a5%b0%a5%b2%a5%b4%a5%d1%a5%d4%a5%d7%a5%da%a5%dd%a5%ab%a1%ab%a5%ad%a1%ab%a5%af%a1%ab%a5%b1%a1%ab%a5%b3%a1%ab%a5%cf%a1%ac%a5%d2%a1%ac%a5%d5%a1%ac%a5%d8%a1%ac%a5%db%a1%ac (70)\r\n" { pass $test } +} +send "綅r" +expect { + -ex "%8e%b1%8e%b2%8e%b3%8e%b4%8e%b5%8e%b6%8e%de%8e%b7%8e%de%8e%b8%8e%de%8e%b9%8e%de%8e%ba%8e%de%8e%ca%8e%df%8e%cb%8e%df%8e%cc%8e%df%8e%cd%8e%df%8e%ce%8e%df (50)\r\n" { pass $test } +} +send "丐中丹尹云互亢什仆仍天夭尤巴弔井‵五‵仁‵仃‵仇‵反′夫′孔′尺′幻′\r" +expect { + -ex "%a4%a2%a4%a4%a4%a6%a4%a8%a4%aa%a4%ac%a4%ae%a4%b0%a4%b2%a4%b4%a4%d1%a4%d4%a4%d7%a4%da%a4%dd%a4%ab%a1%ab%a4%ad%a1%ab%a4%af%a1%ab%a4%b1%a1%ab%a4%b3%a1%ab%a4%cf%a1%ac%a4%d2%a1%ac%a4%d5%a1%ac%a4%d8%a1%ac%a4%db%a1%ac (70)\r\n" { pass $test } +} +close + +set test "full-width numerics to half-width counterparts" +spawn tests/conv_kana EUC-JP "n" +expect_after { + "\[^\r\n\]*\r\n" { fail $test } +} +send "嶂滹聜銫憯璉蝤鋆憌磩諴鴥瞨謑鵃艞韗礗鞶穬鶜鬕驐齮灥\r" +expect { + -ex "%a3%e1%a3%e2%a3%e3%a3%e4%a3%e5%a3%e6%a3%e7%a3%e8%a3%e9%a3%ea%a3%eb%a3%ec%a3%ed%a3%ee%a3%ef%a3%f0%a3%f1%a3%f2%a3%f3%a3%f4%a3%f5%a3%f6%a3%f7%a3%f8%a3%f9%a3%fa (52)\r\n" { pass $test } +} +send "薜瞿瓊耀籟ゞラ氿呁芄怗礿峉洷苺悈猀茛啥掁痑蛅堧晻焮r" +expect { + -ex "%a3%c1%a3%c2%a3%c3%a3%c4%a3%c5%a3%c6%a3%c7%a3%c8%a3%c9%a3%ca%a3%cb%a3%cc%a3%cd%a3%ce%a3%cf%a3%d0%a3%d1%a3%d2%a3%d3%a3%d4%a3%d5%a3%d6%a3%d7%a3%d8%a3%d9%a3%da (52)\r\n" { pass $test } +} +send "abcdefghijklmnopqrstuvwxyz\r" +expect { + -ex "%61%62%63%64%65%66%67%68%69%6a%6b%6c%6d%6e%6f%70%71%72%73%74%75%76%77%78%79%7a (26)\r\n" { pass $test } +} +send "ABCDEFGHIJKLMNOPQRSTUVWXYZ\r" +expect { + -ex "%41%42%43%44%45%46%47%48%49%4a%4b%4c%4d%4e%4f%50%51%52%53%54%55%56%57%58%59%5a (26)\r\n" { pass $test } +} +send "0123456789\r" +expect { + -ex "%30%31%32%33%34%35%36%37%38%39 (10)\r\n" { pass $test } +} +send "ㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨ\r" +expect { + -ex "%30%31%32%33%34%35%36%37%38%39 (10)\r\n" { pass $test } +} +send "﹛ \r" +expect { + -ex "%a1%a1%20 (3)\r\n" { pass $test } +} +send "失奶它巨左布幼弘必打由疋皿矢禾市‵平‵弁‵弗‵戊‵甩′甲′白′目′石′\r" +expect { + -ex "%a5%a2%a5%a4%a5%a6%a5%a8%a5%aa%a5%ac%a5%ae%a5%b0%a5%b2%a5%b4%a5%d1%a5%d4%a5%d7%a5%da%a5%dd%a5%ab%a1%ab%a5%ad%a1%ab%a5%af%a1%ab%a5%b1%a1%ab%a5%b3%a1%ab%a5%cf%a1%ac%a5%d2%a1%ac%a5%d5%a1%ac%a5%d8%a1%ac%a5%db%a1%ac (70)\r\n" { pass $test } +} +send "綅r" +expect { + -ex "%8e%b1%8e%b2%8e%b3%8e%b4%8e%b5%8e%b6%8e%de%8e%b7%8e%de%8e%b8%8e%de%8e%b9%8e%de%8e%ba%8e%de%8e%ca%8e%df%8e%cb%8e%df%8e%cc%8e%df%8e%cd%8e%df%8e%ce%8e%df (50)\r\n" { pass $test } +} +send "丐中丹尹云互亢什仆仍天夭尤巴弔井‵五‵仁‵仃‵仇‵反′夫′孔′尺′幻′\r" +expect { + -ex "%a4%a2%a4%a4%a4%a6%a4%a8%a4%aa%a4%ac%a4%ae%a4%b0%a4%b2%a4%b4%a4%d1%a4%d4%a4%d7%a4%da%a4%dd%a4%ab%a1%ab%a4%ad%a1%ab%a4%af%a1%ab%a4%b1%a1%ab%a4%b3%a1%ab%a4%cf%a1%ac%a4%d2%a1%ac%a4%d5%a1%ac%a4%d8%a1%ac%a4%db%a1%ac (70)\r\n" { pass $test } +} +close + +set test "full-width numerics to half-width counterparts" +spawn tests/conv_kana EUC-JP "n" +expect_after { + "\[^\r\n\]*\r\n" { fail $test } +} +send "嶂滹聜銫憯璉蝤鋆憌磩諴鴥瞨謑鵃艞韗礗鞶穬鶜鬕驐齮灥\r" +expect { + -ex "%a3%e1%a3%e2%a3%e3%a3%e4%a3%e5%a3%e6%a3%e7%a3%e8%a3%e9%a3%ea%a3%eb%a3%ec%a3%ed%a3%ee%a3%ef%a3%f0%a3%f1%a3%f2%a3%f3%a3%f4%a3%f5%a3%f6%a3%f7%a3%f8%a3%f9%a3%fa (52)\r\n" { pass $test } +} +send "薜瞿瓊耀籟ゞラ氿呁芄怗礿峉洷苺悈猀茛啥掁痑蛅堧晻焮r" +expect { + -ex "%a3%c1%a3%c2%a3%c3%a3%c4%a3%c5%a3%c6%a3%c7%a3%c8%a3%c9%a3%ca%a3%cb%a3%cc%a3%cd%a3%ce%a3%cf%a3%d0%a3%d1%a3%d2%a3%d3%a3%d4%a3%d5%a3%d6%a3%d7%a3%d8%a3%d9%a3%da (52)\r\n" { pass $test } +} +send "abcdefghijklmnopqrstuvwxyz\r" +expect { + -ex "%61%62%63%64%65%66%67%68%69%6a%6b%6c%6d%6e%6f%70%71%72%73%74%75%76%77%78%79%7a (26)\r\n" { pass $test } +} +send "ABCDEFGHIJKLMNOPQRSTUVWXYZ\r" +expect { + -ex "%41%42%43%44%45%46%47%48%49%4a%4b%4c%4d%4e%4f%50%51%52%53%54%55%56%57%58%59%5a (26)\r\n" { pass $test } +} +send "0123456789\r" +expect { + -ex "%30%31%32%33%34%35%36%37%38%39 (10)\r\n" { pass $test } +} +send "ㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨ\r" +expect { + -ex "%30%31%32%33%34%35%36%37%38%39 (10)\r\n" { pass $test } +} +send "﹛ \r" +expect { + -ex "%a1%a1%20 (3)\r\n" { pass $test } +} +send "失奶它巨左布幼弘必打由疋皿矢禾市‵平‵弁‵弗‵戊‵甩′甲′白′目′石′\r" +expect { + -ex "%a5%a2%a5%a4%a5%a6%a5%a8%a5%aa%a5%ac%a5%ae%a5%b0%a5%b2%a5%b4%a5%d1%a5%d4%a5%d7%a5%da%a5%dd%a5%ab%a1%ab%a5%ad%a1%ab%a5%af%a1%ab%a5%b1%a1%ab%a5%b3%a1%ab%a5%cf%a1%ac%a5%d2%a1%ac%a5%d5%a1%ac%a5%d8%a1%ac%a5%db%a1%ac (70)\r\n" { pass $test } +} +send "綅r" +expect { + -ex "%8e%b1%8e%b2%8e%b3%8e%b4%8e%b5%8e%b6%8e%de%8e%b7%8e%de%8e%b8%8e%de%8e%b9%8e%de%8e%ba%8e%de%8e%ca%8e%df%8e%cb%8e%df%8e%cc%8e%df%8e%cd%8e%df%8e%ce%8e%df (50)\r\n" { pass $test } +} +send "丐中丹尹云互亢什仆仍天夭尤巴弔井‵五‵仁‵仃‵仇‵反′夫′孔′尺′幻′\r" +expect { + -ex "%a4%a2%a4%a4%a4%a6%a4%a8%a4%aa%a4%ac%a4%ae%a4%b0%a4%b2%a4%b4%a4%d1%a4%d4%a4%d7%a4%da%a4%dd%a4%ab%a1%ab%a4%ad%a1%ab%a4%af%a1%ab%a4%b1%a1%ab%a4%b3%a1%ab%a4%cf%a1%ac%a4%d2%a1%ac%a4%d5%a1%ac%a4%d8%a1%ac%a4%db%a1%ac (70)\r\n" { pass $test } +} +close + +set test "half-width numerics to full-width counterparts" +spawn tests/conv_kana EUC-JP "N" +expect_after { + "\[^\r\n\]*\r\n" { fail $test } +} +send "嶂滹聜銫憯璉蝤鋆憌磩諴鴥瞨謑鵃艞韗礗鞶穬鶜鬕驐齮灥\r" +expect { + -ex "%a3%e1%a3%e2%a3%e3%a3%e4%a3%e5%a3%e6%a3%e7%a3%e8%a3%e9%a3%ea%a3%eb%a3%ec%a3%ed%a3%ee%a3%ef%a3%f0%a3%f1%a3%f2%a3%f3%a3%f4%a3%f5%a3%f6%a3%f7%a3%f8%a3%f9%a3%fa (52)\r\n" { pass $test } +} +send "薜瞿瓊耀籟ゞラ氿呁芄怗礿峉洷苺悈猀茛啥掁痑蛅堧晻焮r" +expect { + -ex "%a3%c1%a3%c2%a3%c3%a3%c4%a3%c5%a3%c6%a3%c7%a3%c8%a3%c9%a3%ca%a3%cb%a3%cc%a3%cd%a3%ce%a3%cf%a3%d0%a3%d1%a3%d2%a3%d3%a3%d4%a3%d5%a3%d6%a3%d7%a3%d8%a3%d9%a3%da (52)\r\n" { pass $test } +} +send "abcdefghijklmnopqrstuvwxyz\r" +expect { + -ex "%61%62%63%64%65%66%67%68%69%6a%6b%6c%6d%6e%6f%70%71%72%73%74%75%76%77%78%79%7a (26)\r\n" { pass $test } +} +send "ABCDEFGHIJKLMNOPQRSTUVWXYZ\r" +expect { + -ex "%41%42%43%44%45%46%47%48%49%4a%4b%4c%4d%4e%4f%50%51%52%53%54%55%56%57%58%59%5a (26)\r\n" { pass $test } +} +send "0123456789\r" +expect { + -ex "%a3%b1%a3%b2%a3%b3%a3%b4%a3%b5%a3%b6%a3%b7%a3%b8%a3%b9 (20)\r\n" { pass $test } +} +send "ㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨ\r" +expect { + -ex "%a3%b1%a3%b2%a3%b3%a3%b4%a3%b5%a3%b6%a3%b7%a3%b8%a3%b9 (20)\r\n" { pass $test } +} +send "﹛ \r" +expect { + -ex "%a1%a1%20 (3)\r\n" { pass $test } +} +send "失奶它巨左布幼弘必打由疋皿矢禾市‵平‵弁‵弗‵戊‵甩′甲′白′目′石′\r" +expect { + -ex "%a5%a2%a5%a4%a5%a6%a5%a8%a5%aa%a5%ac%a5%ae%a5%b0%a5%b2%a5%b4%a5%d1%a5%d4%a5%d7%a5%da%a5%dd%a5%ab%a1%ab%a5%ad%a1%ab%a5%af%a1%ab%a5%b1%a1%ab%a5%b3%a1%ab%a5%cf%a1%ac%a5%d2%a1%ac%a5%d5%a1%ac%a5%d8%a1%ac%a5%db%a1%ac (70)\r\n" { pass $test } +} +send "綅r" +expect { + -ex "%8e%b1%8e%b2%8e%b3%8e%b4%8e%b5%8e%b6%8e%de%8e%b7%8e%de%8e%b8%8e%de%8e%b9%8e%de%8e%ba%8e%de%8e%ca%8e%df%8e%cb%8e%df%8e%cc%8e%df%8e%cd%8e%df%8e%ce%8e%df (50)\r\n" { pass $test } +} +send "丐中丹尹云互亢什仆仍天夭尤巴弔井‵五‵仁‵仃‵仇‵反′夫′孔′尺′幻′\r" +expect { + -ex "%a4%a2%a4%a4%a4%a6%a4%a8%a4%aa%a4%ac%a4%ae%a4%b0%a4%b2%a4%b4%a4%d1%a4%d4%a4%d7%a4%da%a4%dd%a4%ab%a1%ab%a4%ad%a1%ab%a4%af%a1%ab%a4%b1%a1%ab%a4%b3%a1%ab%a4%cf%a1%ac%a4%d2%a1%ac%a4%d5%a1%ac%a4%d8%a1%ac%a4%db%a1%ac (70)\r\n" { pass $test } +} +close + +set test "transliterate half-width numerics to full-width counterparts and full-width to half-width at a time" +spawn tests/conv_kana EUC-JP "nN" +expect_after { + "\[^\r\n\]*\r\n" { fail $test } +} +send "嶂滹聜銫憯璉蝤鋆憌磩諴鴥瞨謑鵃艞韗礗鞶穬鶜鬕驐齮灥\r" +expect { + -ex "%a3%e1%a3%e2%a3%e3%a3%e4%a3%e5%a3%e6%a3%e7%a3%e8%a3%e9%a3%ea%a3%eb%a3%ec%a3%ed%a3%ee%a3%ef%a3%f0%a3%f1%a3%f2%a3%f3%a3%f4%a3%f5%a3%f6%a3%f7%a3%f8%a3%f9%a3%fa (52)\r\n" { pass $test } +} +send "薜瞿瓊耀籟ゞラ氿呁芄怗礿峉洷苺悈猀茛啥掁痑蛅堧晻焮r" +expect { + -ex "%a3%c1%a3%c2%a3%c3%a3%c4%a3%c5%a3%c6%a3%c7%a3%c8%a3%c9%a3%ca%a3%cb%a3%cc%a3%cd%a3%ce%a3%cf%a3%d0%a3%d1%a3%d2%a3%d3%a3%d4%a3%d5%a3%d6%a3%d7%a3%d8%a3%d9%a3%da (52)\r\n" { pass $test } +} +send "abcdefghijklmnopqrstuvwxyz\r" +expect { + -ex "%61%62%63%64%65%66%67%68%69%6a%6b%6c%6d%6e%6f%70%71%72%73%74%75%76%77%78%79%7a (26)\r\n" { pass $test } +} +send "ABCDEFGHIJKLMNOPQRSTUVWXYZ\r" +expect { + -ex "%41%42%43%44%45%46%47%48%49%4a%4b%4c%4d%4e%4f%50%51%52%53%54%55%56%57%58%59%5a (26)\r\n" { pass $test } +} +send "0123456789\r" +expect { + -ex "%a3%b0%a3%b1%a3%b2%a3%b3%a3%b4%a3%b5%a3%b6%a3%b7%a3%b8%a3%b9 (20)\r\n" { pass $test } +} +send "ㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨ\r" +expect { + -ex "%30%31%32%33%34%35%36%37%38%39 (10)\r\n" { pass $test } +} +send "﹛ \r" +expect { + -ex "%a1%a1%20 (3)\r\n" { pass $test } +} +send "失奶它巨左布幼弘必打由疋皿矢禾市‵平‵弁‵弗‵戊‵甩′甲′白′目′石′\r" +expect { + -ex "%a5%a2%a5%a4%a5%a6%a5%a8%a5%aa%a5%ac%a5%ae%a5%b0%a5%b2%a5%b4%a5%d1%a5%d4%a5%d7%a5%da%a5%dd%a5%ab%a1%ab%a5%ad%a1%ab%a5%af%a1%ab%a5%b1%a1%ab%a5%b3%a1%ab%a5%cf%a1%ac%a5%d2%a1%ac%a5%d5%a1%ac%a5%d8%a1%ac%a5%db%a1%ac (70)\r\n" { pass $test } +} +send "綅r" +expect { + -ex "%8e%b1%8e%b2%8e%b3%8e%b4%8e%b5%8e%b6%8e%de%8e%b7%8e%de%8e%b8%8e%de%8e%b9%8e%de%8e%ba%8e%de%8e%ca%8e%df%8e%cb%8e%df%8e%cc%8e%df%8e%cd%8e%df%8e%ce%8e%df (50)\r\n" { pass $test } +} +send "丐中丹尹云互亢什仆仍天夭尤巴弔井‵五‵仁‵仃‵仇‵反′夫′孔′尺′幻′\r" +expect { + -ex "%a4%a2%a4%a4%a4%a6%a4%a8%a4%aa%a4%ac%a4%ae%a4%b0%a4%b2%a4%b4%a4%d1%a4%d4%a4%d7%a4%da%a4%dd%a4%ab%a1%ab%a4%ad%a1%ab%a4%af%a1%ab%a4%b1%a1%ab%a4%b3%a1%ab%a4%cf%a1%ac%a4%d2%a1%ac%a4%d5%a1%ac%a4%d8%a1%ac%a4%db%a1%ac (70)\r\n" { pass $test } +} +close + +set test "full-width alphanumerics to half-width counterparts" +spawn tests/conv_kana EUC-JP "a" +expect_after { + "\[^\r\n\]*\r\n" { fail $test } +} +send "嶂滹聜銫憯璉蝤鋆憌磩諴鴥瞨謑鵃艞韗礗鞶穬鶜鬕驐齮灥\r" +expect { + -ex "%61%62%63%64%65%66%67%68%69%6a%6b%6c%6d%6e%6f%70%71%72%73%74%75%76%77%78%79%7a (26)\r\n" { pass $test } +} +send "薜瞿瓊耀籟ゞラ氿呁芄怗礿峉洷苺悈猀茛啥掁痑蛅堧晻焮r" +expect { + -ex "%41%42%43%44%45%46%47%48%49%4a%4b%4c%4d%4e%4f%50%51%52%53%54%55%56%57%58%59%5a (26)\r\n" { pass $test } +} +send "abcdefghijklmnopqrstuvwxyz\r" +expect { + -ex "%61%62%63%64%65%66%67%68%69%6a%6b%6c%6d%6e%6f%70%71%72%73%74%75%76%77%78%79%7a (26)\r\n" { pass $test } +} +send "ABCDEFGHIJKLMNOPQRSTUVWXYZ\r" +expect { + -ex "%41%42%43%44%45%46%47%48%49%4a%4b%4c%4d%4e%4f%50%51%52%53%54%55%56%57%58%59%5a (26)\r\n" { pass $test } +} +send "0123456789\r" +expect { + -ex "%30%31%32%33%34%35%36%37%38%39 (10)\r\n" { pass $test } +} +send "ㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨ\r" +expect { + -ex "%30%31%32%33%34%35%36%37%38%39 (10)\r\n" { pass $test } +} +send "﹛ \r" +expect { + -ex "%a1%a1%20 (3)\r\n" { pass $test } +} +send "失奶它巨左布幼弘必打由疋皿矢禾市‵平‵弁‵弗‵戊‵甩′甲′白′目′石′\r" +expect { + -ex "%a5%a2%a5%a4%a5%a6%a5%a8%a5%aa%a5%ac%a5%ae%a5%b0%a5%b2%a5%b4%a5%d1%a5%d4%a5%d7%a5%da%a5%dd%a5%ab%a1%ab%a5%ad%a1%ab%a5%af%a1%ab%a5%b1%a1%ab%a5%b3%a1%ab%a5%cf%a1%ac%a5%d2%a1%ac%a5%d5%a1%ac%a5%d8%a1%ac%a5%db%a1%ac (70)\r\n" { pass $test } +} +send "綅r" +expect { + -ex "%8e%b1%8e%b2%8e%b3%8e%b4%8e%b5%8e%b6%8e%de%8e%b7%8e%de%8e%b8%8e%de%8e%b9%8e%de%8e%ba%8e%de%8e%ca%8e%df%8e%cb%8e%df%8e%cc%8e%df%8e%cd%8e%df%8e%ce%8e%df (50)\r\n" { pass $test } +} +send "丐中丹尹云互亢什仆仍天夭尤巴弔井‵五‵仁‵仃‵仇‵反′夫′孔′尺′幻′\r" +expect { + -ex "%a4%a2%a4%a4%a4%a6%a4%a8%a4%aa%a4%ac%a4%ae%a4%b0%a4%b2%a4%b4%a4%d1%a4%d4%a4%d7%a4%da%a4%dd%a4%ab%a1%ab%a4%ad%a1%ab%a4%af%a1%ab%a4%b1%a1%ab%a4%b3%a1%ab%a4%cf%a1%ac%a4%d2%a1%ac%a4%d5%a1%ac%a4%d8%a1%ac%a4%db%a1%ac (70)\r\n" { pass $test } +} +close + +set test "half-width alphanumerics to full-width counterparts" +spawn tests/conv_kana EUC-JP "A" +expect_after { + "\[^\r\n\]*\r\n" { fail $test } +} +send "嶂滹聜銫憯璉蝤鋆憌磩諴鴥瞨謑鵃艞韗礗鞶穬鶜鬕驐齮灥\r" +expect { + -ex "%a3%e1%a3%e2%a3%e3%a3%e4%a3%e5%a3%e6%a3%e7%a3%e8%a3%e9%a3%ea%a3%eb%a3%ec%a3%ed%a3%ee%a3%ef%a3%f0%a3%f1%a3%f2%a3%f3%a3%f4%a3%f5%a3%f6%a3%f7%a3%f8%a3%f9%a3%fa (52)\r\n" { pass $test } +} +send "薜瞿瓊耀籟ゞラ氿呁芄怗礿峉洷苺悈猀茛啥掁痑蛅堧晻焮r" +expect { + -ex "%a3%c1%a3%c2%a3%c3%a3%c4%a3%c5%a3%c6%a3%c7%a3%c8%a3%c9%a3%ca%a3%cb%a3%cc%a3%cd%a3%ce%a3%cf%a3%d0%a3%d1%a3%d2%a3%d3%a3%d4%a3%d5%a3%d6%a3%d7%a3%d8%a3%d9%a3%da (52)\r\n" { pass $test } +} +send "0123456789\r" +expect { + -ex "%a3%b1%a3%b2%a3%b3%a3%b4%a3%b5%a3%b6%a3%b7%a3%b8%a3%b9 (20)\r\n" { pass $test } +} +send "ㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨ\r" +expect { + -ex "%a3%b1%a3%b2%a3%b3%a3%b4%a3%b5%a3%b6%a3%b7%a3%b8%a3%b9 (20)\r\n" { pass $test } +} +send "失奶它巨左布幼弘必打由疋皿矢禾市‵平‵弁‵弗‵戊‵甩′甲′白′目′石′\r" +expect { + -ex "%a5%a2%a5%a4%a5%a6%a5%a8%a5%aa%a5%ac%a5%ae%a5%b0%a5%b2%a5%b4%a5%d1%a5%d4%a5%d7%a5%da%a5%dd%a5%ab%a1%ab%a5%ad%a1%ab%a5%af%a1%ab%a5%b1%a1%ab%a5%b3%a1%ab%a5%cf%a1%ac%a5%d2%a1%ac%a5%d5%a1%ac%a5%d8%a1%ac%a5%db%a1%ac (70)\r\n" { pass $test } +} +send "綅r" +expect { + -ex "%8e%b1%8e%b2%8e%b3%8e%b4%8e%b5%8e%b6%8e%de%8e%b7%8e%de%8e%b8%8e%de%8e%b9%8e%de%8e%ba%8e%de%8e%ca%8e%df%8e%cb%8e%df%8e%cc%8e%df%8e%cd%8e%df%8e%ce%8e%df (50)\r\n" { pass $test } +} +send "丐中丹尹云互亢什仆仍天夭尤巴弔井‵五‵仁‵仃‵仇‵反′夫′孔′尺′幻′\r" +expect { + -ex "%a4%a2%a4%a4%a4%a6%a4%a8%a4%aa%a4%ac%a4%ae%a4%b0%a4%b2%a4%b4%a4%d1%a4%d4%a4%d7%a4%da%a4%dd%a4%ab%a1%ab%a4%ad%a1%ab%a4%af%a1%ab%a4%b1%a1%ab%a4%b3%a1%ab%a4%cf%a1%ac%a4%d2%a1%ac%a4%d5%a1%ac%a4%d8%a1%ac%a4%db%a1%ac (70)\r\n" { pass $test } +} +close + +set test "transliterate half-width alphanumerics to full-width counterparts and full-width to half-width at a time" +spawn tests/conv_kana EUC-JP "Aa" +expect_after { + "\[^\r\n\]*\r\n" { fail $test } +} +send "嶂滹聜銫憯璉蝤鋆憌磩諴鴥瞨謑鵃艞韗礗鞶穬鶜鬕驐齮灥\r" +expect { + -ex "%61%62%63%64%65%66%67%68%69%6a%6b%6c%6d%6e%6f%70%71%72%73%74%75%76%77%78%79%7a (26)\r\n" { pass $test } +} +send "薜瞿瓊耀籟ゞラ氿呁芄怗礿峉洷苺悈猀茛啥掁痑蛅堧晻焮r" +expect { + -ex "%41%42%43%44%45%46%47%48%49%4a%4b%4c%4d%4e%4f%50%51%52%53%54%55%56%57%58%59%5a (26)\r\n" { pass $test } +} +send "abcdefghijklmnopqrstuvwxyz\r" +expect { + -ex "%a3%e1%a3%e2%a3%e3%a3%e4%a3%e5%a3%e6%a3%e7%a3%e8%a3%e9%a3%ea%a3%eb%a3%ec%a3%ed%a3%ee%a3%ef%a3%f0%a3%f1%a3%f2%a3%f3%a3%f4%a3%f5%a3%f6%a3%f7%a3%f8%a3%f9%a3%fa (52)\r\n" { pass $test } +} +send "ABCDEFGHIJKLMNOPQRSTUVWXYZ\r" +expect { + -ex "%a3%c1%a3%c2%a3%c3%a3%c4%a3%c5%a3%c6%a3%c7%a3%c8%a3%c9%a3%ca%a3%cb%a3%cc%a3%cd%a3%ce%a3%cf%a3%d0%a3%d1%a3%d2%a3%d3%a3%d4%a3%d5%a3%d6%a3%d7%a3%d8%a3%d9%a3%da (52)\r\n" { pass $test } +} +send "0123456789\r" +expect { + -ex "%a3%b0%a3%b1%a3%b2%a3%b3%a3%b4%a3%b5%a3%b6%a3%b7%a3%b8%a3%b9 (20)\r\n" { pass $test } +} +send "ㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨ\r" +expect { + -ex "%30%31%32%33%34%35%36%37%38%39 (10)\r\n" { pass $test } +} +send "﹛ \r" +expect { + -ex "%a1%a1%20 (3)\r\n" { pass $test } +} +send "失奶它巨左布幼弘必打由疋皿矢禾市‵平‵弁‵弗‵戊‵甩′甲′白′目′石′\r" +expect { + -ex "%a5%a2%a5%a4%a5%a6%a5%a8%a5%aa%a5%ac%a5%ae%a5%b0%a5%b2%a5%b4%a5%d1%a5%d4%a5%d7%a5%da%a5%dd%a5%ab%a1%ab%a5%ad%a1%ab%a5%af%a1%ab%a5%b1%a1%ab%a5%b3%a1%ab%a5%cf%a1%ac%a5%d2%a1%ac%a5%d5%a1%ac%a5%d8%a1%ac%a5%db%a1%ac (70)\r\n" { pass $test } +} +send "綅r" +expect { + -ex "%8e%b1%8e%b2%8e%b3%8e%b4%8e%b5%8e%b6%8e%de%8e%b7%8e%de%8e%b8%8e%de%8e%b9%8e%de%8e%ba%8e%de%8e%ca%8e%df%8e%cb%8e%df%8e%cc%8e%df%8e%cd%8e%df%8e%ce%8e%df (50)\r\n" { pass $test } +} +send "丐中丹尹云互亢什仆仍天夭尤巴弔井‵五‵仁‵仃‵仇‵反′夫′孔′尺′幻′\r" +expect { + -ex "%a4%a2%a4%a4%a4%a6%a4%a8%a4%aa%a4%ac%a4%ae%a4%b0%a4%b2%a4%b4%a4%d1%a4%d4%a4%d7%a4%da%a4%dd%a4%ab%a1%ab%a4%ad%a1%ab%a4%af%a1%ab%a4%b1%a1%ab%a4%b3%a1%ab%a4%cf%a1%ac%a4%d2%a1%ac%a4%d5%a1%ac%a4%d8%a1%ac%a4%db%a1%ac (70)\r\n" { pass $test } +} +close + +set test "full-width spaces to half-width counterparts" +spawn tests/conv_kana EUC-JP "s" +expect_after { + "\[^\r\n\]*\r\n" { fail $test } +} +send "嶂滹聜銫憯璉蝤鋆憌磩諴鴥瞨謑鵃艞韗礗鞶穬鶜鬕驐齮灥\r" +expect { + -ex "%a3%e1%a3%e2%a3%e3%a3%e4%a3%e5%a3%e6%a3%e7%a3%e8%a3%e9%a3%ea%a3%eb%a3%ec%a3%ed%a3%ee%a3%ef%a3%f0%a3%f1%a3%f2%a3%f3%a3%f4%a3%f5%a3%f6%a3%f7%a3%f8%a3%f9%a3%fa (52)\r\n" { pass $test } +} +send "薜瞿瓊耀籟ゞラ氿呁芄怗礿峉洷苺悈猀茛啥掁痑蛅堧晻焮r" +expect { + -ex "%a3%c1%a3%c2%a3%c3%a3%c4%a3%c5%a3%c6%a3%c7%a3%c8%a3%c9%a3%ca%a3%cb%a3%cc%a3%cd%a3%ce%a3%cf%a3%d0%a3%d1%a3%d2%a3%d3%a3%d4%a3%d5%a3%d6%a3%d7%a3%d8%a3%d9%a3%da (52)\r\n" { pass $test } +} +send "abcdefghijklmnopqrstuvwxyz\r" +expect { + -ex "%61%62%63%64%65%66%67%68%69%6a%6b%6c%6d%6e%6f%70%71%72%73%74%75%76%77%78%79%7a (26)\r\n" { pass $test } +} +send "ABCDEFGHIJKLMNOPQRSTUVWXYZ\r" +expect { + -ex "%41%42%43%44%45%46%47%48%49%4a%4b%4c%4d%4e%4f%50%51%52%53%54%55%56%57%58%59%5a (26)\r\n" { pass $test } +} +send "0123456789\r" +expect { + -ex "%30%31%32%33%34%35%36%37%38%39 (10)\r\n" { pass $test } +} +send "ㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨ\r" +expect { + -ex "%a3%b1%a3%b2%a3%b3%a3%b4%a3%b5%a3%b6%a3%b7%a3%b8%a3%b9 (20)\r\n" { pass $test } +} +send "﹛ \r" +expect { + -ex "%20%20 (2)\r\n" { pass $test } +} +send "失奶它巨左布幼弘必打由疋皿矢禾市‵平‵弁‵弗‵戊‵甩′甲′白′目′石′\r" +expect { + -ex "%a5%a2%a5%a4%a5%a6%a5%a8%a5%aa%a5%ac%a5%ae%a5%b0%a5%b2%a5%b4%a5%d1%a5%d4%a5%d7%a5%da%a5%dd%a5%ab%a1%ab%a5%ad%a1%ab%a5%af%a1%ab%a5%b1%a1%ab%a5%b3%a1%ab%a5%cf%a1%ac%a5%d2%a1%ac%a5%d5%a1%ac%a5%d8%a1%ac%a5%db%a1%ac (70)\r\n" { pass $test } +} +send "綅r" +expect { + -ex "%8e%b1%8e%b2%8e%b3%8e%b4%8e%b5%8e%b6%8e%de%8e%b7%8e%de%8e%b8%8e%de%8e%b9%8e%de%8e%ba%8e%de%8e%ca%8e%df%8e%cb%8e%df%8e%cc%8e%df%8e%cd%8e%df%8e%ce%8e%df (50)\r\n" { pass $test } +} +send "丐中丹尹云互亢什仆仍天夭尤巴弔井‵五‵仁‵仃‵仇‵反′夫′孔′尺′幻′\r" +expect { + -ex "%a4%a2%a4%a4%a4%a6%a4%a8%a4%aa%a4%ac%a4%ae%a4%b0%a4%b2%a4%b4%a4%d1%a4%d4%a4%d7%a4%da%a4%dd%a4%ab%a1%ab%a4%ad%a1%ab%a4%af%a1%ab%a4%b1%a1%ab%a4%b3%a1%ab%a4%cf%a1%ac%a4%d2%a1%ac%a4%d5%a1%ac%a4%d8%a1%ac%a4%db%a1%ac (70)\r\n" { pass $test } +} +close + +set test "half-width spaces to full-width counterparts" +spawn tests/conv_kana EUC-JP "S" +expect_after { + "\[^\r\n\]*\r\n" { fail $test } +} +send "嶂滹聜銫憯璉蝤鋆憌磩諴鴥瞨謑鵃艞韗礗鞶穬鶜鬕驐齮灥\r" +expect { + -ex "%a3%e1%a3%e2%a3%e3%a3%e4%a3%e5%a3%e6%a3%e7%a3%e8%a3%e9%a3%ea%a3%eb%a3%ec%a3%ed%a3%ee%a3%ef%a3%f0%a3%f1%a3%f2%a3%f3%a3%f4%a3%f5%a3%f6%a3%f7%a3%f8%a3%f9%a3%fa (52)\r\n" { pass $test } +} +send "薜瞿瓊耀籟ゞラ氿呁芄怗礿峉洷苺悈猀茛啥掁痑蛅堧晻焮r" +expect { + -ex "%a3%c1%a3%c2%a3%c3%a3%c4%a3%c5%a3%c6%a3%c7%a3%c8%a3%c9%a3%ca%a3%cb%a3%cc%a3%cd%a3%ce%a3%cf%a3%d0%a3%d1%a3%d2%a3%d3%a3%d4%a3%d5%a3%d6%a3%d7%a3%d8%a3%d9%a3%da (52)\r\n" { pass $test } +} +send "0123456789\r" +expect { + -ex "%30%31%32%33%34%35%36%37%38%39 (10)\r\n" { pass $test } +} +send "ㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨ\r" +expect { + -ex "%a3%b1%a3%b2%a3%b3%a3%b4%a3%b5%a3%b6%a3%b7%a3%b8%a3%b9 (20)\r\n" { pass $test } +} +send "﹛ \r" +expect { + -ex "%a1%a1%a1%a1 (4)\r\n" { pass $test } +} +send "失奶它巨左布幼弘必打由疋皿矢禾市‵平‵弁‵弗‵戊‵甩′甲′白′目′石′\r" +expect { + -ex "%a5%a2%a5%a4%a5%a6%a5%a8%a5%aa%a5%ac%a5%ae%a5%b0%a5%b2%a5%b4%a5%d1%a5%d4%a5%d7%a5%da%a5%dd%a5%ab%a1%ab%a5%ad%a1%ab%a5%af%a1%ab%a5%b1%a1%ab%a5%b3%a1%ab%a5%cf%a1%ac%a5%d2%a1%ac%a5%d5%a1%ac%a5%d8%a1%ac%a5%db%a1%ac (70)\r\n" { pass $test } +} +send "綅r" +expect { + -ex "%8e%b1%8e%b2%8e%b3%8e%b4%8e%b5%8e%b6%8e%de%8e%b7%8e%de%8e%b8%8e%de%8e%b9%8e%de%8e%ba%8e%de%8e%ca%8e%df%8e%cb%8e%df%8e%cc%8e%df%8e%cd%8e%df%8e%ce%8e%df (50)\r\n" { pass $test } +} +send "丐中丹尹云互亢什仆仍天夭尤巴弔井‵五‵仁‵仃‵仇‵反′夫′孔′尺′幻′\r" +expect { + -ex "%a4%a2%a4%a4%a4%a6%a4%a8%a4%aa%a4%ac%a4%ae%a4%b0%a4%b2%a4%b4%a4%d1%a4%d4%a4%d7%a4%da%a4%dd%a4%ab%a1%ab%a4%ad%a1%ab%a4%af%a1%ab%a4%b1%a1%ab%a4%b3%a1%ab%a4%cf%a1%ac%a4%d2%a1%ac%a4%d5%a1%ac%a4%d8%a1%ac%a4%db%a1%ac (70)\r\n" { pass $test } +} +close + +set test "transliterate half-width spaces to full-width counterparts and full-width to half-width at a time" +spawn tests/conv_kana EUC-JP "Ss" +expect_after { + "\[^\r\n\]*\r\n" { fail $test } +} +send "嶂滹聜銫憯璉蝤鋆憌磩諴鴥瞨謑鵃艞韗礗鞶穬鶜鬕驐齮灥\r" +expect { + -ex "%a3%e1%a3%e2%a3%e3%a3%e4%a3%e5%a3%e6%a3%e7%a3%e8%a3%e9%a3%ea%a3%eb%a3%ec%a3%ed%a3%ee%a3%ef%a3%f0%a3%f1%a3%f2%a3%f3%a3%f4%a3%f5%a3%f6%a3%f7%a3%f8%a3%f9%a3%fa (52)\r\n" { pass $test } +} +send "薜瞿瓊耀籟ゞラ氿呁芄怗礿峉洷苺悈猀茛啥掁痑蛅堧晻焮r" +expect { + -ex "%a3%c1%a3%c2%a3%c3%a3%c4%a3%c5%a3%c6%a3%c7%a3%c8%a3%c9%a3%ca%a3%cb%a3%cc%a3%cd%a3%ce%a3%cf%a3%d0%a3%d1%a3%d2%a3%d3%a3%d4%a3%d5%a3%d6%a3%d7%a3%d8%a3%d9%a3%da (52)\r\n" { pass $test } +} +send "abcdefghijklmnopqrstuvwxyz\r" +expect { + -ex "%61%62%63%64%65%66%67%68%69%6a%6b%6c%6d%6e%6f%70%71%72%73%74%75%76%77%78%79%7a (26)\r\n" { pass $test } +} +send "ABCDEFGHIJKLMNOPQRSTUVWXYZ\r" +expect { + -ex "%41%42%43%44%45%46%47%48%49%4a%4b%4c%4d%4e%4f%50%51%52%53%54%55%56%57%58%59%5a (26)\r\n" { pass $test } +} +send "0123456789\r" +expect { + -ex "%30%31%32%33%34%35%36%37%38%39 (10)\r\n" { pass $test } +} +send "ㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨ\r" +expect { + -ex "%a3%b1%a3%b2%a3%b3%a3%b4%a3%b5%a3%b6%a3%b7%a3%b8%a3%b9 (20)\r\n" { pass $test } +} +send "﹛ \r" +expect { + -ex "%20%a1%a1 (3)\r\n" { pass $test } +} +send "失奶它巨左布幼弘必打由疋皿矢禾市‵平‵弁‵弗‵戊‵甩′甲′白′目′石′\r" +expect { + -ex "%a5%a2%a5%a4%a5%a6%a5%a8%a5%aa%a5%ac%a5%ae%a5%b0%a5%b2%a5%b4%a5%d1%a5%d4%a5%d7%a5%da%a5%dd%a5%ab%a1%ab%a5%ad%a1%ab%a5%af%a1%ab%a5%b1%a1%ab%a5%b3%a1%ab%a5%cf%a1%ac%a5%d2%a1%ac%a5%d5%a1%ac%a5%d8%a1%ac%a5%db%a1%ac (70)\r\n" { pass $test } +} +send "綅r" +expect { + -ex "%8e%b1%8e%b2%8e%b3%8e%b4%8e%b5%8e%b6%8e%de%8e%b7%8e%de%8e%b8%8e%de%8e%b9%8e%de%8e%ba%8e%de%8e%ca%8e%df%8e%cb%8e%df%8e%cc%8e%df%8e%cd%8e%df%8e%ce%8e%df (50)\r\n" { pass $test } +} +send "丐中丹尹云互亢什仆仍天夭尤巴弔井‵五‵仁‵仃‵仇‵反′夫′孔′尺′幻′\r" +expect { + -ex "%a4%a2%a4%a4%a4%a6%a4%a8%a4%aa%a4%ac%a4%ae%a4%b0%a4%b2%a4%b4%a4%d1%a4%d4%a4%d7%a4%da%a4%dd%a4%ab%a1%ab%a4%ad%a1%ab%a4%af%a1%ab%a4%b1%a1%ab%a4%b3%a1%ab%a4%cf%a1%ac%a4%d2%a1%ac%a4%d5%a1%ac%a4%d8%a1%ac%a4%db%a1%ac (70)\r\n" { pass $test } +} +close + +set test "full-width katakanas to half-width counterparts" +spawn tests/conv_kana EUC-JP "k" +expect_after { + "\[^\r\n\]*\r\n" { fail $test } +} +send "嶂滹聜銫憯璉蝤鋆憌磩諴鴥瞨謑鵃艞韗礗鞶穬鶜鬕驐齮灥\r" +expect { + -ex "%a3%e1%a3%e2%a3%e3%a3%e4%a3%e5%a3%e6%a3%e7%a3%e8%a3%e9%a3%ea%a3%eb%a3%ec%a3%ed%a3%ee%a3%ef%a3%f0%a3%f1%a3%f2%a3%f3%a3%f4%a3%f5%a3%f6%a3%f7%a3%f8%a3%f9%a3%fa (52)\r\n" { pass $test } +} +send "薜瞿瓊耀籟ゞラ氿呁芄怗礿峉洷苺悈猀茛啥掁痑蛅堧晻焮r" +expect { + -ex "%a3%c1%a3%c2%a3%c3%a3%c4%a3%c5%a3%c6%a3%c7%a3%c8%a3%c9%a3%ca%a3%cb%a3%cc%a3%cd%a3%ce%a3%cf%a3%d0%a3%d1%a3%d2%a3%d3%a3%d4%a3%d5%a3%d6%a3%d7%a3%d8%a3%d9%a3%da (52)\r\n" { pass $test } +} +send "abcdefghijklmnopqrstuvwxyz\r" +expect { + -ex "%61%62%63%64%65%66%67%68%69%6a%6b%6c%6d%6e%6f%70%71%72%73%74%75%76%77%78%79%7a (26)\r\n" { pass $test } +} +send "ABCDEFGHIJKLMNOPQRSTUVWXYZ\r" +expect { + -ex "%41%42%43%44%45%46%47%48%49%4a%4b%4c%4d%4e%4f%50%51%52%53%54%55%56%57%58%59%5a (26)\r\n" { pass $test } +} +send "0123456789\r" +expect { + -ex "%30%31%32%33%34%35%36%37%38%39 (10)\r\n" { pass $test } +} +send "ㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨ\r" +expect { + -ex "%a3%b1%a3%b2%a3%b3%a3%b4%a3%b5%a3%b6%a3%b7%a3%b8%a3%b9 (20)\r\n" { pass $test } +} +send "﹛ \r" +expect { + -ex "%a1%a1%20 (3)\r\n" { pass $test } +} +send "失奶它巨左布幼弘必打由疋皿矢禾市‵平‵弁‵弗‵戊‵甩′甲′白′目′石′\r" +expect { + -ex "%8e%b1%8e%b2%8e%b3%8e%b4%8e%b5%8e%b6%8e%de%8e%b7%8e%de%8e%b8%8e%de%8e%b9%8e%de%8e%ba%8e%de%8e%ca%8e%df%8e%cb%8e%df%8e%cc%8e%df%8e%cd%8e%df%8e%ce%8e%df%8e%b6%8e%de%8e%b7%8e%de%8e%b8%8e%de%8e%b9%8e%de%8e%ba%8e%de%8e%ca%8e%df%8e%cb%8e%df%8e%cc%8e%df%8e%cd%8e%df%8e%ce%8e%df (90)\r\n" { pass $test } +} +send "綅r" +expect { + -ex "%8e%b1%8e%b2%8e%b3%8e%b4%8e%b5%8e%b6%8e%de%8e%b7%8e%de%8e%b8%8e%de%8e%b9%8e%de%8e%ba%8e%de%8e%ca%8e%df%8e%cb%8e%df%8e%cc%8e%df%8e%cd%8e%df%8e%ce%8e%df (50)\r\n" { pass $test } +} +send "丐中丹尹云互亢什仆仍天夭尤巴弔井‵五‵仁‵仃‵仇‵反′夫′孔′尺′幻′\r" +expect { + -ex "%a4%a2%a4%a4%a4%a6%a4%a8%a4%aa%a4%ac%a4%ae%a4%b0%a4%b2%a4%b4%a4%d1%a4%d4%a4%d7%a4%da%a4%dd%a4%ab%8e%de%a4%ad%8e%de%a4%af%8e%de%a4%b1%8e%de%a4%b3%8e%de%a4%cf%8e%df%a4%d2%8e%df%a4%d5%8e%df%a4%d8%8e%df%a4%db%8e%df (70)\r\n" { pass $test } +} +close + +set test "half-width katakanas to full-width counterparts" +spawn tests/conv_kana EUC-JP "K" +expect_after { + "\[^\r\n\]*\r\n" { fail $test } +} +send "嶂滹聜銫憯璉蝤鋆憌磩諴鴥瞨謑鵃艞韗礗鞶穬鶜鬕驐齮灥\r" +expect { + -ex "%a3%e1%a3%e2%a3%e3%a3%e4%a3%e5%a3%e6%a3%e7%a3%e8%a3%e9%a3%ea%a3%eb%a3%ec%a3%ed%a3%ee%a3%ef%a3%f0%a3%f1%a3%f2%a3%f3%a3%f4%a3%f5%a3%f6%a3%f7%a3%f8%a3%f9%a3%fa (52)\r\n" { pass $test } +} +send "薜瞿瓊耀籟ゞラ氿呁芄怗礿峉洷苺悈猀茛啥掁痑蛅堧晻焮r" +expect { + -ex "%a3%c1%a3%c2%a3%c3%a3%c4%a3%c5%a3%c6%a3%c7%a3%c8%a3%c9%a3%ca%a3%cb%a3%cc%a3%cd%a3%ce%a3%cf%a3%d0%a3%d1%a3%d2%a3%d3%a3%d4%a3%d5%a3%d6%a3%d7%a3%d8%a3%d9%a3%da (52)\r\n" { pass $test } +} +send "abcdefghijklmnopqrstuvwxyz\r" +expect { + -ex "%61%62%63%64%65%66%67%68%69%6a%6b%6c%6d%6e%6f%70%71%72%73%74%75%76%77%78%79%7a (26)\r\n" { pass $test } +} +send "ABCDEFGHIJKLMNOPQRSTUVWXYZ\r" +expect { + -ex "%41%42%43%44%45%46%47%48%49%4a%4b%4c%4d%4e%4f%50%51%52%53%54%55%56%57%58%59%5a (26)\r\n" { pass $test } +} +send "0123456789\r" +expect { + -ex "%30%31%32%33%34%35%36%37%38%39 (10)\r\n" { pass $test } +} +send "ㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨ\r" +expect { + -ex "%a3%b1%a3%b2%a3%b3%a3%b4%a3%b5%a3%b6%a3%b7%a3%b8%a3%b9 (20)\r\n" { pass $test } +} +send "﹛ \r" +expect { + -ex "%a1%a1%20 (3)\r\n" { pass $test } +} +send "失奶它巨左布幼弘必打由疋皿矢禾市‵平‵弁‵弗‵戊‵甩′甲′白′目′石′\r" +expect { + -ex "%a5%a2%a5%a4%a5%a6%a5%a8%a5%aa%a5%ac%a5%ae%a5%b0%a5%b2%a5%b4%a5%d1%a5%d4%a5%d7%a5%da%a5%dd%a5%ab%a1%ab%a5%ad%a1%ab%a5%af%a1%ab%a5%b1%a1%ab%a5%b3%a1%ab%a5%cf%a1%ac%a5%d2%a1%ac%a5%d5%a1%ac%a5%d8%a1%ac%a5%db%a1%ac (70)\r\n" { pass $test } +} +send "綅r" +expect { + -ex "%a5%a2%a5%a4%a5%a6%a5%a8%a5%aa%a5%ab%a1%ab%a5%ad%a1%ab%a5%af%a1%ab%a5%b1%a1%ab%a5%b3%a1%ab%a5%cf%a1%ac%a5%d2%a1%ac%a5%d5%a1%ac%a5%d8%a1%ac%a5%db%a1%ac (50)\r\n" { pass $test } +} +send "丐中丹尹云互亢什仆仍天夭尤巴弔井‵五‵仁‵仃‵仇‵反′夫′孔′尺′幻′\r" +expect { + -ex "%a4%a2%a4%a4%a4%a6%a4%a8%a4%aa%a4%ac%a4%ae%a4%b0%a4%b2%a4%b4%a4%d1%a4%d4%a4%d7%a4%da%a4%dd%a4%ab%a1%ab%a4%ad%a1%ab%a4%af%a1%ab%a4%b1%a1%ab%a4%b3%a1%ab%a4%cf%a1%ac%a4%d2%a1%ac%a4%d5%a1%ac%a4%d8%a1%ac%a4%db%a1%ac (70)\r\n" { pass $test } +} +close + +set test "transliterate half-width katakanas to full-width counterparts and full-width to half-width at a time" +spawn tests/conv_kana EUC-JP "kK" +expect_after { + "\[^\r\n\]*\r\n" { fail $test } +} +send "嶂滹聜銫憯璉蝤鋆憌磩諴鴥瞨謑鵃艞韗礗鞶穬鶜鬕驐齮灥\r" +expect { + -ex "%a3%e1%a3%e2%a3%e3%a3%e4%a3%e5%a3%e6%a3%e7%a3%e8%a3%e9%a3%ea%a3%eb%a3%ec%a3%ed%a3%ee%a3%ef%a3%f0%a3%f1%a3%f2%a3%f3%a3%f4%a3%f5%a3%f6%a3%f7%a3%f8%a3%f9%a3%fa (52)\r\n" { pass $test } +} +send "薜瞿瓊耀籟ゞラ氿呁芄怗礿峉洷苺悈猀茛啥掁痑蛅堧晻焮r" +expect { + -ex "%a3%c1%a3%c2%a3%c3%a3%c4%a3%c5%a3%c6%a3%c7%a3%c8%a3%c9%a3%ca%a3%cb%a3%cc%a3%cd%a3%ce%a3%cf%a3%d0%a3%d1%a3%d2%a3%d3%a3%d4%a3%d5%a3%d6%a3%d7%a3%d8%a3%d9%a3%da (52)\r\n" { pass $test } +} +send "abcdefghijklmnopqrstuvwxyz\r" +expect { + -ex "%61%62%63%64%65%66%67%68%69%6a%6b%6c%6d%6e%6f%70%71%72%73%74%75%76%77%78%79%7a (26)\r\n" { pass $test } +} +send "ABCDEFGHIJKLMNOPQRSTUVWXYZ\r" +expect { + -ex "%41%42%43%44%45%46%47%48%49%4a%4b%4c%4d%4e%4f%50%51%52%53%54%55%56%57%58%59%5a (26)\r\n" { pass $test } +} +send "0123456789\r" +expect { + -ex "%30%31%32%33%34%35%36%37%38%39 (10)\r\n" { pass $test } +} +send "ㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨ\r" +expect { + -ex "%a3%b1%a3%b2%a3%b3%a3%b4%a3%b5%a3%b6%a3%b7%a3%b8%a3%b9 (20)\r\n" { pass $test } +} +send "﹛ \r" +expect { + -ex "%a1%a1%20 (3)\r\n" { pass $test } +} +send "失奶它巨左布幼弘必打由疋皿矢禾市‵平‵弁‵弗‵戊‵甩′甲′白′目′石′\r" +expect { + -ex "%8e%b1%8e%b2%8e%b3%8e%b4%8e%b5%8e%b6%8e%de%8e%b7%8e%de%8e%b8%8e%de%8e%b9%8e%de%8e%ba%8e%de%8e%ca%8e%df%8e%cb%8e%df%8e%cc%8e%df%8e%cd%8e%df%8e%ce%8e%df%8e%b6%8e%de%8e%b7%8e%de%8e%b8%8e%de%8e%b9%8e%de%8e%ba%8e%de%8e%ca%8e%df%8e%cb%8e%df%8e%cc%8e%df%8e%cd%8e%df%8e%ce%8e%df (90)\r\n" { pass $test } +} +send "綅r" +expect { + -ex "%a5%a2%a5%a4%a5%a6%a5%a8%a5%aa%a5%ab%a1%ab%a5%ad%a1%ab%a5%af%a1%ab%a5%b1%a1%ab%a5%b3%a1%ab%a5%cf%a1%ac%a5%d2%a1%ac%a5%d5%a1%ac%a5%d8%a1%ac%a5%db%a1%ac (50)\r\n" { pass $test } +} +send "丐中丹尹云互亢什仆仍天夭尤巴弔井‵五‵仁‵仃‵仇‵反′夫′孔′尺′幻′\r" +expect { + -ex "%a4%a2%a4%a4%a4%a6%a4%a8%a4%aa%a4%ac%a4%ae%a4%b0%a4%b2%a4%b4%a4%d1%a4%d4%a4%d7%a4%da%a4%dd%a4%ab%8e%de%a4%ad%8e%de%a4%af%8e%de%a4%b1%8e%de%a4%b3%8e%de%a4%cf%8e%df%a4%d2%8e%df%a4%d5%8e%df%a4%d8%8e%df%a4%db%8e%df (70)\r\n" { pass $test } +} +close + +set test "full-width hiraganas to half-width katakana" +spawn tests/conv_kana EUC-JP "h" +expect_after { + "\[^\r\n\]*\r\n" { fail $test } +} +send "嶂滹聜銫憯璉蝤鋆憌磩諴鴥瞨謑鵃艞韗礗鞶穬鶜鬕驐齮灥\r" +expect { + -ex "%a3%e1%a3%e2%a3%e3%a3%e4%a3%e5%a3%e6%a3%e7%a3%e8%a3%e9%a3%ea%a3%eb%a3%ec%a3%ed%a3%ee%a3%ef%a3%f0%a3%f1%a3%f2%a3%f3%a3%f4%a3%f5%a3%f6%a3%f7%a3%f8%a3%f9%a3%fa (52)\r\n" { pass $test } +} +send "薜瞿瓊耀籟ゞラ氿呁芄怗礿峉洷苺悈猀茛啥掁痑蛅堧晻焮r" +expect { + -ex "%a3%c1%a3%c2%a3%c3%a3%c4%a3%c5%a3%c6%a3%c7%a3%c8%a3%c9%a3%ca%a3%cb%a3%cc%a3%cd%a3%ce%a3%cf%a3%d0%a3%d1%a3%d2%a3%d3%a3%d4%a3%d5%a3%d6%a3%d7%a3%d8%a3%d9%a3%da (52)\r\n" { pass $test } +} +send "abcdefghijklmnopqrstuvwxyz\r" +expect { + -ex "%61%62%63%64%65%66%67%68%69%6a%6b%6c%6d%6e%6f%70%71%72%73%74%75%76%77%78%79%7a (26)\r\n" { pass $test } +} +send "ABCDEFGHIJKLMNOPQRSTUVWXYZ\r" +expect { + -ex "%41%42%43%44%45%46%47%48%49%4a%4b%4c%4d%4e%4f%50%51%52%53%54%55%56%57%58%59%5a (26)\r\n" { pass $test } +} +send "0123456789\r" +expect { + -ex "%30%31%32%33%34%35%36%37%38%39 (10)\r\n" { pass $test } +} +send "ㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨ\r" +expect { + -ex "%a3%b1%a3%b2%a3%b3%a3%b4%a3%b5%a3%b6%a3%b7%a3%b8%a3%b9 (20)\r\n" { pass $test } +} +send "﹛ \r" +expect { + -ex "%a1%a1%20 (3)\r\n" { pass $test } +} +send "失奶它巨左布幼弘必打由疋皿矢禾市‵平‵弁‵弗‵戊‵甩′甲′白′目′石′\r" +expect { + -ex "%a5%a2%a5%a4%a5%a6%a5%a8%a5%aa%a5%ac%a5%ae%a5%b0%a5%b2%a5%b4%a5%d1%a5%d4%a5%d7%a5%da%a5%dd%a5%ab%8e%de%a5%ad%8e%de%a5%af%8e%de%a5%b1%8e%de%a5%b3%8e%de%a5%cf%8e%df%a5%d2%8e%df%a5%d5%8e%df%a5%d8%8e%df%a5%db%8e%df (70)\r\n" { pass $test } +} +send "綅r" +expect { + -ex "%8e%b1%8e%b2%8e%b3%8e%b4%8e%b5%8e%b6%8e%de%8e%b7%8e%de%8e%b8%8e%de%8e%b9%8e%de%8e%ba%8e%de%8e%ca%8e%df%8e%cb%8e%df%8e%cc%8e%df%8e%cd%8e%df%8e%ce%8e%df (50)\r\n" { pass $test } +} +send "丐中丹尹云互亢什仆仍天夭尤巴弔井‵五‵仁‵仃‵仇‵反′夫′孔′尺′幻′\r" +expect { + -ex "%8e%b1%8e%b2%8e%b3%8e%b4%8e%b5%8e%b6%8e%de%8e%b7%8e%de%8e%b8%8e%de%8e%b9%8e%de%8e%ba%8e%de%8e%ca%8e%df%8e%cb%8e%df%8e%cc%8e%df%8e%cd%8e%df%8e%ce%8e%df%8e%b6%8e%de%8e%b7%8e%de%8e%b8%8e%de%8e%b9%8e%de%8e%ba%8e%de%8e%ca%8e%df%8e%cb%8e%df%8e%cc%8e%df%8e%cd%8e%df%8e%ce%8e%df (90)\r\n" { pass $test } +} +close + +set test "half-width katakanas to full-width hiragana" +spawn tests/conv_kana EUC-JP "H" +expect_after { + "\[^\r\n\]*\r\n" { fail $test } +} +send "嶂滹聜銫憯璉蝤鋆憌磩諴鴥瞨謑鵃艞韗礗鞶穬鶜鬕驐齮灥\r" +expect { + -ex "%a3%e1%a3%e2%a3%e3%a3%e4%a3%e5%a3%e6%a3%e7%a3%e8%a3%e9%a3%ea%a3%eb%a3%ec%a3%ed%a3%ee%a3%ef%a3%f0%a3%f1%a3%f2%a3%f3%a3%f4%a3%f5%a3%f6%a3%f7%a3%f8%a3%f9%a3%fa (52)\r\n" { pass $test } +} +send "薜瞿瓊耀籟ゞラ氿呁芄怗礿峉洷苺悈猀茛啥掁痑蛅堧晻焮r" +expect { + -ex "%a3%c1%a3%c2%a3%c3%a3%c4%a3%c5%a3%c6%a3%c7%a3%c8%a3%c9%a3%ca%a3%cb%a3%cc%a3%cd%a3%ce%a3%cf%a3%d0%a3%d1%a3%d2%a3%d3%a3%d4%a3%d5%a3%d6%a3%d7%a3%d8%a3%d9%a3%da (52)\r\n" { pass $test } +} +send "abcdefghijklmnopqrstuvwxyz\r" +expect { + -ex "%61%62%63%64%65%66%67%68%69%6a%6b%6c%6d%6e%6f%70%71%72%73%74%75%76%77%78%79%7a (26)\r\n" { pass $test } +} +send "ABCDEFGHIJKLMNOPQRSTUVWXYZ\r" +expect { + -ex "%41%42%43%44%45%46%47%48%49%4a%4b%4c%4d%4e%4f%50%51%52%53%54%55%56%57%58%59%5a (26)\r\n" { pass $test } +} +send "0123456789\r" +expect { + -ex "%30%31%32%33%34%35%36%37%38%39 (10)\r\n" { pass $test } +} +send "ㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨ\r" +expect { + -ex "%a3%b1%a3%b2%a3%b3%a3%b4%a3%b5%a3%b6%a3%b7%a3%b8%a3%b9 (20)\r\n" { pass $test } +} +send "﹛ \r" +expect { + -ex "%a1%a1%20 (3)\r\n" { pass $test } +} +send "失奶它巨左布幼弘必打由疋皿矢禾市‵平‵弁‵弗‵戊‵甩′甲′白′目′石′\r" +expect { + -ex "%a5%a2%a5%a4%a5%a6%a5%a8%a5%aa%a5%ac%a5%ae%a5%b0%a5%b2%a5%b4%a5%d1%a5%d4%a5%d7%a5%da%a5%dd%a5%ab%a1%ab%a5%ad%a1%ab%a5%af%a1%ab%a5%b1%a1%ab%a5%b3%a1%ab%a5%cf%a1%ac%a5%d2%a1%ac%a5%d5%a1%ac%a5%d8%a1%ac%a5%db%a1%ac (70)\r\n" { pass $test } +} +send "綅r" +expect { + -ex "%a4%a2%a4%a4%a4%a6%a4%a8%a4%aa%a4%ab%a1%ab%a4%ad%a1%ab%a4%af%a1%ab%a4%b1%a1%ab%a4%b3%a1%ab%a4%cf%a1%ac%a4%d2%a1%ac%a4%d5%a1%ac%a4%d8%a1%ac%a4%db%a1%ac (50)\r\n" { pass $test } +} +send "丐中丹尹云互亢什仆仍天夭尤巴弔井‵五‵仁‵仃‵仇‵反′夫′孔′尺′幻′\r" +expect { + -ex "%a4%a2%a4%a4%a4%a6%a4%a8%a4%aa%a4%ac%a4%ae%a4%b0%a4%b2%a4%b4%a4%d1%a4%d4%a4%d7%a4%da%a4%dd%a4%ab%a1%ab%a4%ad%a1%ab%a4%af%a1%ab%a4%b1%a1%ab%a4%b3%a1%ab%a4%cf%a1%ac%a4%d2%a1%ac%a4%d5%a1%ac%a4%d8%a1%ac%a4%db%a1%ac (70)\r\n" { pass $test } +} +close + +set test "transliterate half-width katakanas to full-width hiraganas and full-width to half-width at a time" +spawn tests/conv_kana EUC-JP "hH" +expect_after { + "\[^\r\n\]*\r\n" { fail $test } +} +send "嶂滹聜銫憯璉蝤鋆憌磩諴鴥瞨謑鵃艞韗礗鞶穬鶜鬕驐齮灥\r" +expect { + -ex "%a3%e1%a3%e2%a3%e3%a3%e4%a3%e5%a3%e6%a3%e7%a3%e8%a3%e9%a3%ea%a3%eb%a3%ec%a3%ed%a3%ee%a3%ef%a3%f0%a3%f1%a3%f2%a3%f3%a3%f4%a3%f5%a3%f6%a3%f7%a3%f8%a3%f9%a3%fa (52)\r\n" { pass $test } +} +send "薜瞿瓊耀籟ゞラ氿呁芄怗礿峉洷苺悈猀茛啥掁痑蛅堧晻焮r" +expect { + -ex "%a3%c1%a3%c2%a3%c3%a3%c4%a3%c5%a3%c6%a3%c7%a3%c8%a3%c9%a3%ca%a3%cb%a3%cc%a3%cd%a3%ce%a3%cf%a3%d0%a3%d1%a3%d2%a3%d3%a3%d4%a3%d5%a3%d6%a3%d7%a3%d8%a3%d9%a3%da (52)\r\n" { pass $test } +} +send "abcdefghijklmnopqrstuvwxyz\r" +expect { + -ex "%61%62%63%64%65%66%67%68%69%6a%6b%6c%6d%6e%6f%70%71%72%73%74%75%76%77%78%79%7a (26)\r\n" { pass $test } +} +send "ABCDEFGHIJKLMNOPQRSTUVWXYZ\r" +expect { + -ex "%41%42%43%44%45%46%47%48%49%4a%4b%4c%4d%4e%4f%50%51%52%53%54%55%56%57%58%59%5a (26)\r\n" { pass $test } +} +send "0123456789\r" +expect { + -ex "%30%31%32%33%34%35%36%37%38%39 (10)\r\n" { pass $test } +} +send "ㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨ\r" +expect { + -ex "%a3%b1%a3%b2%a3%b3%a3%b4%a3%b5%a3%b6%a3%b7%a3%b8%a3%b9 (20)\r\n" { pass $test } +} +send "﹛ \r" +expect { + -ex "%a1%a1%20 (3)\r\n" { pass $test } +} +send "失奶它巨左布幼弘必打由疋皿矢禾市‵平‵弁‵弗‵戊‵甩′甲′白′目′石′\r" +expect { + -ex "%a5%a2%a5%a4%a5%a6%a5%a8%a5%aa%a5%ac%a5%ae%a5%b0%a5%b2%a5%b4%a5%d1%a5%d4%a5%d7%a5%da%a5%dd%a5%ab%8e%de%a5%ad%8e%de%a5%af%8e%de%a5%b1%8e%de%a5%b3%8e%de%a5%cf%8e%df%a5%d2%8e%df%a5%d5%8e%df%a5%d8%8e%df%a5%db%8e%df (70)\r\n" { pass $test } +} +send "綅r" +expect { + -ex "%a4%a2%a4%a4%a4%a6%a4%a8%a4%aa%a4%ab%a1%ab%a4%ad%a1%ab%a4%af%a1%ab%a4%b1%a1%ab%a4%b3%a1%ab%a4%cf%a1%ac%a4%d2%a1%ac%a4%d5%a1%ac%a4%d8%a1%ac%a4%db%a1%ac (50)\r\n" { pass $test } +} +send "丐中丹尹云互亢什仆仍天夭尤巴弔井‵五‵仁‵仃‵仇‵反′夫′孔′尺′幻′\r" +expect { + -ex "%8e%b1%8e%b2%8e%b3%8e%b4%8e%b5%8e%b6%8e%de%8e%b7%8e%de%8e%b8%8e%de%8e%b9%8e%de%8e%ba%8e%de%8e%ca%8e%df%8e%cb%8e%df%8e%cc%8e%df%8e%cd%8e%df%8e%ce%8e%df%8e%b6%8e%de%8e%b7%8e%de%8e%b8%8e%de%8e%b9%8e%de%8e%ba%8e%de%8e%ca%8e%df%8e%cb%8e%df%8e%cc%8e%df%8e%cd%8e%df%8e%ce%8e%df (90)\r\n" { pass $test } +} +close + +set test "full-width katakanas to full-width hiragana" +spawn tests/conv_kana EUC-JP "c" +expect_after { + "\[^\r\n\]*\r\n" { fail $test } +} +send "嶂滹聜銫憯璉蝤鋆憌磩諴鴥瞨謑鵃艞韗礗鞶穬鶜鬕驐齮灥\r" +expect { + -ex "%a3%e1%a3%e2%a3%e3%a3%e4%a3%e5%a3%e6%a3%e7%a3%e8%a3%e9%a3%ea%a3%eb%a3%ec%a3%ed%a3%ee%a3%ef%a3%f0%a3%f1%a3%f2%a3%f3%a3%f4%a3%f5%a3%f6%a3%f7%a3%f8%a3%f9%a3%fa (52)\r\n" { pass $test } +} +send "薜瞿瓊耀籟ゞラ氿呁芄怗礿峉洷苺悈猀茛啥掁痑蛅堧晻焮r" +expect { + -ex "%a3%c1%a3%c2%a3%c3%a3%c4%a3%c5%a3%c6%a3%c7%a3%c8%a3%c9%a3%ca%a3%cb%a3%cc%a3%cd%a3%ce%a3%cf%a3%d0%a3%d1%a3%d2%a3%d3%a3%d4%a3%d5%a3%d6%a3%d7%a3%d8%a3%d9%a3%da (52)\r\n" { pass $test } +} +send "abcdefghijklmnopqrstuvwxyz\r" +expect { + -ex "%61%62%63%64%65%66%67%68%69%6a%6b%6c%6d%6e%6f%70%71%72%73%74%75%76%77%78%79%7a (26)\r\n" { pass $test } +} +send "ABCDEFGHIJKLMNOPQRSTUVWXYZ\r" +expect { + -ex "%41%42%43%44%45%46%47%48%49%4a%4b%4c%4d%4e%4f%50%51%52%53%54%55%56%57%58%59%5a (26)\r\n" { pass $test } +} +send "0123456789\r" +expect { + -ex "%30%31%32%33%34%35%36%37%38%39 (10)\r\n" { pass $test } +} +send "ㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨ\r" +expect { + -ex "%a3%b1%a3%b2%a3%b3%a3%b4%a3%b5%a3%b6%a3%b7%a3%b8%a3%b9 (20)\r\n" { pass $test } +} +send "﹛ \r" +expect { + -ex "%a1%a1%20 (3)\r\n" { pass $test } +} +send "失奶它巨左布幼弘必打由疋皿矢禾市‵平‵弁‵弗‵戊‵甩′甲′白′目′石′\r" +expect { + -ex "%a4%a2%a4%a4%a4%a6%a4%a8%a4%aa%a4%ac%a4%ae%a4%b0%a4%b2%a4%b4%a4%d1%a4%d4%a4%d7%a4%da%a4%dd%a4%ab%a1%ab%a4%ad%a1%ab%a4%af%a1%ab%a4%b1%a1%ab%a4%b3%a1%ab%a4%cf%a1%ac%a4%d2%a1%ac%a4%d5%a1%ac%a4%d8%a1%ac%a4%db%a1%ac (70)\r\n" { pass $test } +} +send "綅r" +expect { + -ex "%8e%b1%8e%b2%8e%b3%8e%b4%8e%b5%8e%b6%8e%de%8e%b7%8e%de%8e%b8%8e%de%8e%b9%8e%de%8e%ba%8e%de%8e%ca%8e%df%8e%cb%8e%df%8e%cc%8e%df%8e%cd%8e%df%8e%ce%8e%df (50)\r\n" { pass $test } +} +send "丐中丹尹云互亢什仆仍天夭尤巴弔井‵五‵仁‵仃‵仇‵反′夫′孔′尺′幻′\r" +expect { + -ex "%a4%a2%a4%a4%a4%a6%a4%a8%a4%aa%a4%ac%a4%ae%a4%b0%a4%b2%a4%b4%a4%d1%a4%d4%a4%d7%a4%da%a4%dd%a4%ab%a1%ab%a4%ad%a1%ab%a4%af%a1%ab%a4%b1%a1%ab%a4%b3%a1%ab%a4%cf%a1%ac%a4%d2%a1%ac%a4%d5%a1%ac%a4%d8%a1%ac%a4%db%a1%ac (70)\r\n" { pass $test } +} +close + +set test "full-width hiraganas to full-width katakana" +spawn tests/conv_kana EUC-JP "C" +expect_after { + "\[^\r\n\]*\r\n" { fail $test } +} +send "嶂滹聜銫憯璉蝤鋆憌磩諴鴥瞨謑鵃艞韗礗鞶穬鶜鬕驐齮灥\r" +expect { + -ex "%a3%e1%a3%e2%a3%e3%a3%e4%a3%e5%a3%e6%a3%e7%a3%e8%a3%e9%a3%ea%a3%eb%a3%ec%a3%ed%a3%ee%a3%ef%a3%f0%a3%f1%a3%f2%a3%f3%a3%f4%a3%f5%a3%f6%a3%f7%a3%f8%a3%f9%a3%fa (52)\r\n" { pass $test } +} +send "薜瞿瓊耀籟ゞラ氿呁芄怗礿峉洷苺悈猀茛啥掁痑蛅堧晻焮r" +expect { + -ex "%a3%c1%a3%c2%a3%c3%a3%c4%a3%c5%a3%c6%a3%c7%a3%c8%a3%c9%a3%ca%a3%cb%a3%cc%a3%cd%a3%ce%a3%cf%a3%d0%a3%d1%a3%d2%a3%d3%a3%d4%a3%d5%a3%d6%a3%d7%a3%d8%a3%d9%a3%da (52)\r\n" { pass $test } +} +send "0123456789\r" +expect { + -ex "%30%31%32%33%34%35%36%37%38%39 (10)\r\n" { pass $test } +} +send "ㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨ\r" +expect { + -ex "%a3%b1%a3%b2%a3%b3%a3%b4%a3%b5%a3%b6%a3%b7%a3%b8%a3%b9 (20)\r\n" { pass $test } +} +send "﹛ \r" +expect { + -ex "%a1%a1%20 (3)\r\n" { pass $test } +} +send "失奶它巨左布幼弘必打由疋皿矢禾市‵平‵弁‵弗‵戊‵甩′甲′白′目′石′\r" +expect { + -ex "%a5%a2%a5%a4%a5%a6%a5%a8%a5%aa%a5%ac%a5%ae%a5%b0%a5%b2%a5%b4%a5%d1%a5%d4%a5%d7%a5%da%a5%dd%a5%ab%a1%ab%a5%ad%a1%ab%a5%af%a1%ab%a5%b1%a1%ab%a5%b3%a1%ab%a5%cf%a1%ac%a5%d2%a1%ac%a5%d5%a1%ac%a5%d8%a1%ac%a5%db%a1%ac (70)\r\n" { pass $test } +} +send "綅r" +expect { + -ex "%8e%b1%8e%b2%8e%b3%8e%b4%8e%b5%8e%b6%8e%de%8e%b7%8e%de%8e%b8%8e%de%8e%b9%8e%de%8e%ba%8e%de%8e%ca%8e%df%8e%cb%8e%df%8e%cc%8e%df%8e%cd%8e%df%8e%ce%8e%df (50)\r\n" { pass $test } +} +send "丐中丹尹云互亢什仆仍天夭尤巴弔井‵五‵仁‵仃‵仇‵反′夫′孔′尺′幻′\r" +expect { + -ex "%a5%a2%a5%a4%a5%a6%a5%a8%a5%aa%a5%ac%a5%ae%a5%b0%a5%b2%a5%b4%a5%d1%a5%d4%a5%d7%a5%da%a5%dd%a5%ab%a1%ab%a5%ad%a1%ab%a5%af%a1%ab%a5%b1%a1%ab%a5%b3%a1%ab%a5%cf%a1%ac%a5%d2%a1%ac%a5%d5%a1%ac%a5%d8%a1%ac%a5%db%a1%ac (70)\r\n" { pass $test } +} +close + +set test "conversion between full-width hiraganas and full-width katakanas, flags for both directions are specified at a time" +spawn tests/conv_kana EUC-JP "Cc" +expect_after { + "\[^\r\n\]*\r\n" { fail $test } +} +send "嶂滹聜銫憯璉蝤鋆憌磩諴鴥瞨謑鵃艞韗礗鞶穬鶜鬕驐齮灥\r" +expect { + -ex "%a3%e1%a3%e2%a3%e3%a3%e4%a3%e5%a3%e6%a3%e7%a3%e8%a3%e9%a3%ea%a3%eb%a3%ec%a3%ed%a3%ee%a3%ef%a3%f0%a3%f1%a3%f2%a3%f3%a3%f4%a3%f5%a3%f6%a3%f7%a3%f8%a3%f9%a3%fa (52)\r\n" { pass $test } +} +send "薜瞿瓊耀籟ゞラ氿呁芄怗礿峉洷苺悈猀茛啥掁痑蛅堧晻焮r" +expect { + -ex "%a3%c1%a3%c2%a3%c3%a3%c4%a3%c5%a3%c6%a3%c7%a3%c8%a3%c9%a3%ca%a3%cb%a3%cc%a3%cd%a3%ce%a3%cf%a3%d0%a3%d1%a3%d2%a3%d3%a3%d4%a3%d5%a3%d6%a3%d7%a3%d8%a3%d9%a3%da (52)\r\n" { pass $test } +} +send "abcdefghijklmnopqrstuvwxyz\r" +expect { + -ex "%61%62%63%64%65%66%67%68%69%6a%6b%6c%6d%6e%6f%70%71%72%73%74%75%76%77%78%79%7a (26)\r\n" { pass $test } +} +send "ABCDEFGHIJKLMNOPQRSTUVWXYZ\r" +expect { + -ex "%41%42%43%44%45%46%47%48%49%4a%4b%4c%4d%4e%4f%50%51%52%53%54%55%56%57%58%59%5a (26)\r\n" { pass $test } +} +send "0123456789\r" +expect { + -ex "%30%31%32%33%34%35%36%37%38%39 (10)\r\n" { pass $test } +} +send "ㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨ\r" +expect { + -ex "%a3%b1%a3%b2%a3%b3%a3%b4%a3%b5%a3%b6%a3%b7%a3%b8%a3%b9 (20)\r\n" { pass $test } +} +send "﹛ \r" +expect { + -ex "%a1%a1%20 (3)\r\n" { pass $test } +} +send "失奶它巨左布幼弘必打由疋皿矢禾市‵平‵弁‵弗‵戊‵甩′甲′白′目′石′\r" +expect { + -ex "%a4%a2%a4%a4%a4%a6%a4%a8%a4%aa%a4%ac%a4%ae%a4%b0%a4%b2%a4%b4%a4%d1%a4%d4%a4%d7%a4%da%a4%dd%a4%ab%a1%ab%a4%ad%a1%ab%a4%af%a1%ab%a4%b1%a1%ab%a4%b3%a1%ab%a4%cf%a1%ac%a4%d2%a1%ac%a4%d5%a1%ac%a4%d8%a1%ac%a4%db%a1%ac (70)\r\n" { pass $test } +} +send "綅r" +expect { + -ex "%8e%b1%8e%b2%8e%b3%8e%b4%8e%b5%8e%b6%8e%de%8e%b7%8e%de%8e%b8%8e%de%8e%b9%8e%de%8e%ba%8e%de%8e%ca%8e%df%8e%cb%8e%df%8e%cc%8e%df%8e%cd%8e%df%8e%ce%8e%df (50)\r\n" { pass $test } +} +send "丐中丹尹云互亢什仆仍天夭尤巴弔井‵五‵仁‵仃‵仇‵反′夫′孔′尺′幻′\r" +expect { + -ex "%a5%a2%a5%a4%a5%a6%a5%a8%a5%aa%a5%ac%a5%ae%a5%b0%a5%b2%a5%b4%a5%d1%a5%d4%a5%d7%a5%da%a5%dd%a5%ab%a1%ab%a5%ad%a1%ab%a5%af%a1%ab%a5%b1%a1%ab%a5%b3%a1%ab%a5%cf%a1%ac%a5%d2%a1%ac%a5%d5%a1%ac%a5%d8%a1%ac%a5%db%a1%ac (70)\r\n" { pass $test } +} +close + +set test "half-width katakanas to full-width katakanas, with voiced marks combined" +spawn tests/conv_kana EUC-JP "KV" +expect_after { + "\[^\r\n\]*\r\n" { fail $test } +} +send "嶂滹聜銫憯璉蝤鋆憌磩諴鴥瞨謑鵃艞韗礗鞶穬鶜鬕驐齮灥\r" +expect { + -ex "%a3%e1%a3%e2%a3%e3%a3%e4%a3%e5%a3%e6%a3%e7%a3%e8%a3%e9%a3%ea%a3%eb%a3%ec%a3%ed%a3%ee%a3%ef%a3%f0%a3%f1%a3%f2%a3%f3%a3%f4%a3%f5%a3%f6%a3%f7%a3%f8%a3%f9%a3%fa (52)\r\n" { pass $test } +} +send "薜瞿瓊耀籟ゞラ氿呁芄怗礿峉洷苺悈猀茛啥掁痑蛅堧晻焮r" +expect { + -ex "%a3%c1%a3%c2%a3%c3%a3%c4%a3%c5%a3%c6%a3%c7%a3%c8%a3%c9%a3%ca%a3%cb%a3%cc%a3%cd%a3%ce%a3%cf%a3%d0%a3%d1%a3%d2%a3%d3%a3%d4%a3%d5%a3%d6%a3%d7%a3%d8%a3%d9%a3%da (52)\r\n" { pass $test } +} +send "abcdefghijklmnopqrstuvwxyz\r" +expect { + -ex "%61%62%63%64%65%66%67%68%69%6a%6b%6c%6d%6e%6f%70%71%72%73%74%75%76%77%78%79%7a (26)\r\n" { pass $test } +} +send "ABCDEFGHIJKLMNOPQRSTUVWXYZ\r" +expect { + -ex "%41%42%43%44%45%46%47%48%49%4a%4b%4c%4d%4e%4f%50%51%52%53%54%55%56%57%58%59%5a (26)\r\n" { pass $test } +} +send "0123456789\r" +expect { + -ex "%30%31%32%33%34%35%36%37%38%39 (10)\r\n" { pass $test } +} +send "ㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨ\r" +expect { + -ex "%a3%b1%a3%b2%a3%b3%a3%b4%a3%b5%a3%b6%a3%b7%a3%b8%a3%b9 (20)\r\n" { pass $test } +} +send "﹛ \r" +expect { + -ex "%a1%a1%20 (3)\r\n" { pass $test } +} +send "失奶它巨左布幼弘必打由疋皿矢禾市‵平‵弁‵弗‵戊‵甩′甲′白′目′石′\r" +expect { + -ex "%a5%a2%a5%a4%a5%a6%a5%a8%a5%aa%a5%ac%a5%ae%a5%b0%a5%b2%a5%b4%a5%d1%a5%d4%a5%d7%a5%da%a5%dd%a5%ab%a1%ab%a5%ad%a1%ab%a5%af%a1%ab%a5%b1%a1%ab%a5%b3%a1%ab%a5%cf%a1%ac%a5%d2%a1%ac%a5%d5%a1%ac%a5%d8%a1%ac%a5%db%a1%ac (70)\r\n" { pass $test } +} +send "綅r" +expect { + -ex "%a5%a2%a5%a4%a5%a6%a5%a8%a5%aa%a5%ac%a5%ae%a5%b0%a5%b2%a5%b4%a5%d1%a5%d4%a5%d7%a5%da%a5%dd (30)\r\n" { pass $test } +} +send "丐中丹尹云互亢什仆仍天夭尤巴弔井‵五‵仁‵仃‵仇‵反′夫′孔′尺′幻′\r" +expect { + -ex "%a4%a2%a4%a4%a4%a6%a4%a8%a4%aa%a4%ac%a4%ae%a4%b0%a4%b2%a4%b4%a4%d1%a4%d4%a4%d7%a4%da%a4%dd%a4%ab%a1%ab%a4%ad%a1%ab%a4%af%a1%ab%a4%b1%a1%ab%a4%b3%a1%ab%a4%cf%a1%ac%a4%d2%a1%ac%a4%d5%a1%ac%a4%d8%a1%ac%a4%db%a1%ac (70)\r\n" { pass $test } +} +close + +set test "half-width katakanas to full-width hiraganas, with voiced marks combined" +spawn tests/conv_kana EUC-JP "HV" +expect_after { + "\[^\r\n\]*\r\n" { fail $test } +} +send "嶂滹聜銫憯璉蝤鋆憌磩諴鴥瞨謑鵃艞韗礗鞶穬鶜鬕驐齮灥\r" +expect { + -ex "%a3%e1%a3%e2%a3%e3%a3%e4%a3%e5%a3%e6%a3%e7%a3%e8%a3%e9%a3%ea%a3%eb%a3%ec%a3%ed%a3%ee%a3%ef%a3%f0%a3%f1%a3%f2%a3%f3%a3%f4%a3%f5%a3%f6%a3%f7%a3%f8%a3%f9%a3%fa (52)\r\n" { pass $test } +} +send "薜瞿瓊耀籟ゞラ氿呁芄怗礿峉洷苺悈猀茛啥掁痑蛅堧晻焮r" +expect { + -ex "%a3%c1%a3%c2%a3%c3%a3%c4%a3%c5%a3%c6%a3%c7%a3%c8%a3%c9%a3%ca%a3%cb%a3%cc%a3%cd%a3%ce%a3%cf%a3%d0%a3%d1%a3%d2%a3%d3%a3%d4%a3%d5%a3%d6%a3%d7%a3%d8%a3%d9%a3%da (52)\r\n" { pass $test } +} +send "abcdefghijklmnopqrstuvwxyz\r" +expect { + -ex "%61%62%63%64%65%66%67%68%69%6a%6b%6c%6d%6e%6f%70%71%72%73%74%75%76%77%78%79%7a (26)\r\n" { pass $test } +} +send "ABCDEFGHIJKLMNOPQRSTUVWXYZ\r" +expect { + -ex "%41%42%43%44%45%46%47%48%49%4a%4b%4c%4d%4e%4f%50%51%52%53%54%55%56%57%58%59%5a (26)\r\n" { pass $test } +} +send "0123456789\r" +expect { + -ex "%30%31%32%33%34%35%36%37%38%39 (10)\r\n" { pass $test } +} +send "ㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨ\r" +expect { + -ex "%a3%b1%a3%b2%a3%b3%a3%b4%a3%b5%a3%b6%a3%b7%a3%b8%a3%b9 (20)\r\n" { pass $test } +} +send "﹛ \r" +expect { + -ex "%a1%a1%20 (3)\r\n" { pass $test } +} +send "失奶它巨左布幼弘必打由疋皿矢禾市‵平‵弁‵弗‵戊‵甩′甲′白′目′石′\r" +expect { + -ex "%a5%a2%a5%a4%a5%a6%a5%a8%a5%aa%a5%ac%a5%ae%a5%b0%a5%b2%a5%b4%a5%d1%a5%d4%a5%d7%a5%da%a5%dd%a5%ab%a1%ab%a5%ad%a1%ab%a5%af%a1%ab%a5%b1%a1%ab%a5%b3%a1%ab%a5%cf%a1%ac%a5%d2%a1%ac%a5%d5%a1%ac%a5%d8%a1%ac%a5%db%a1%ac (70)\r\n" { pass $test } +} +send "綅r" +expect { + -ex "%a4%a2%a4%a4%a4%a6%a4%a8%a4%aa%a4%ac%a4%ae%a4%b0%a4%b2%a4%b4%a4%d1%a4%d4%a4%d7%a4%da%a4%dd (30)\r\n" { pass $test } +} +send "丐中丹尹云互亢什仆仍天夭尤巴弔井‵五‵仁‵仃‵仇‵反′夫′孔′尺′幻′\r" +expect { + -ex "%a4%a2%a4%a4%a4%a6%a4%a8%a4%aa%a4%ac%a4%ae%a4%b0%a4%b2%a4%b4%a4%d1%a4%d4%a4%d7%a4%da%a4%dd%a4%ab%a1%ab%a4%ad%a1%ab%a4%af%a1%ab%a4%b1%a1%ab%a4%b3%a1%ab%a4%cf%a1%ac%a4%d2%a1%ac%a4%d5%a1%ac%a4%d8%a1%ac%a4%db%a1%ac (70)\r\n" { pass $test } +} +close + + +# vim: sts=4 ts=4 sw=4 et encoding=EUC-JP diff --git a/ext/mbstring/libmbfl/tests/emoji.c b/ext/mbstring/libmbfl/tests/emoji.c new file mode 100644 index 0000000..4f6a346 --- /dev/null +++ b/ext/mbstring/libmbfl/tests/emoji.c @@ -0,0 +1,119 @@ +/** + * this is a small sample script to use libmbfl. + * Rui Hirokawa <hirokawa@php.net> + * + * this file is encoded in EUC-JP. + */ + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include "mbfl/mbfilter.h" + +static void hexdump(const mbfl_string *ptr) +{ + unsigned int i; + + for (i = 0; i < ptr->len; i++) { + printf("%%%02x", ptr->val[i]); + } + + printf(" (%u)\n", ptr->len); +} + +//#define TEST_DOCOMO +//#define TEST_KDDI +#define TEST_SOFTBANK + +int main(int argc, char **argv) +{ + enum mbfl_no_encoding from_encoding, to_encoding; + enum mbfl_no_language no_language; + mbfl_buffer_converter *convd = NULL, *convd2 = NULL; + mbfl_memory_device dev, dev2; + mbfl_string string, result, *ret; +#ifdef TEST_DOCOMO + //char str[] = {0xF9,0xD7,0x00}; // U+2122 + //char str[] = {0xF9,0x82,0x00}; // U+1F195 + char str[] = {0xF9,0xD6,0x00}; // U+00A9 +#endif +#ifdef TEST_KDDI + //char str[] = {0xF7,0x6A,0x00};// U+2122 + //char str[] = {0xF7,0xE5,0x00}; // U+1F195 + //char str[] = {0xF3,0xD2,0x00}; // U+1F1E8 U+1F1F3 + char str[] = {0xF7,0x74,0x00}; // U+00A9 +#endif +#ifdef TEST_SOFTBANK + //char str[] = {0xFB,0xD7,0x00};// U+2122 + //char str[] = {0xF7,0xB2,0x00}; // U+1F195 + //char str[] = {0xFB,0xB3,0x00}; // U+1F1E8 U+1F1F3 + char str[] = {0xF7,0xEE,0x00}; // U+00A9 +#endif + int final = 0; + int state = 0; + int i; + + no_language = mbfl_name2no_language("Japanese"); +#ifdef TEST_DOCOMO + from_encoding = mbfl_name2no_encoding("SJIS-win#DOCOMO"); +#endif +#ifdef TEST_KDDI + from_encoding = mbfl_name2no_encoding("SJIS-win#KDDI"); +#endif +#ifdef TEST_SOFTBANK + from_encoding = mbfl_name2no_encoding("SJIS-win#SOFTBANK"); +#endif + to_encoding = mbfl_name2no_encoding("UTF-8"); + + convd = mbfl_buffer_converter_new(from_encoding, to_encoding, 0); + + mbfl_memory_device_init(&dev, 0, 4096); + mbfl_string_init_set(&string, no_language, from_encoding); + mbfl_memory_device_realloc(&dev, dev.length + dev.allocsz, dev.allocsz); + + strcpy(dev.buffer, str); + dev.pos += strlen(str); + + mbfl_memory_device_result(&dev, &string); + mbfl_string_init_set(&result, no_language, to_encoding); + ret = mbfl_buffer_converter_feed_result(convd, &string, &result); + +#if 0 + for (i = 0; i < result.len; i+= 2) { + if (result.val[i] >= 0xD8 && result.val[i] < 0xE0) { // Surrogate pair + int h = (result.val[i] & 0x07)<<8 | result.val[i+1]; + int l = (result.val[i+2] & 0x03)<<8 | result.val[i+3]; + int c = (h<<(2+8)) | l; + printf("U+%x\n",c+0x10000); + i+=2; + } else { + printf("U+%x\n",(result.val[i] << 8) | result.val[i+1]); + } + } + hexdump(&result); +#endif + + +#if 1 + convd2 = mbfl_buffer_converter_new(to_encoding, from_encoding, 0); + mbfl_memory_device_init(&dev2, 0, 4096); + mbfl_string_init_set(&string, no_language, to_encoding); + mbfl_memory_device_realloc(&dev2, dev2.length + dev2.allocsz, dev2.allocsz); + + memcpy(dev2.buffer, result.val, result.len+1); + dev2.pos += strlen(dev2.buffer); + + mbfl_memory_device_result(&dev2, &string); + mbfl_string_init_set(&result, no_language, from_encoding); + ret = mbfl_buffer_converter_feed_result(convd2, &string, &result); + hexdump(&result); + mbfl_buffer_converter_delete(convd2); +#endif + mbfl_string_clear(&result); + mbfl_string_clear(&string); + + mbfl_buffer_converter_delete(convd); + + + return EXIT_SUCCESS; +} diff --git a/ext/mbstring/libmbfl/tests/sample.c b/ext/mbstring/libmbfl/tests/sample.c new file mode 100644 index 0000000..d961964 --- /dev/null +++ b/ext/mbstring/libmbfl/tests/sample.c @@ -0,0 +1,38 @@ +/** + * this is a small sample script to use libmbfl. + * Rui Hirokawa <hirokawa@php.net> + * + * this file is encoded in EUC-JP. + */ + +#include <stdio.h> +#include "../mbfl/mbfilter.h" + +int main() +{ + enum mbfl_no_encoding from_encoding, to_encoding; + enum mbfl_no_language no_language; + mbfl_buffer_converter *convd = NULL; + mbfl_string string, result, *ret; + mbfl_language lang; + unsigned char input[] = "ゥ呿賄妐儂昫"; /* EUC-JP kanji string */ + + no_language = mbfl_name2no_language("Japanese"); + from_encoding = mbfl_name2no_encoding("EUC-JP"); + to_encoding = mbfl_name2no_encoding("SJIS"); + + mbfl_string_init(&string); + mbfl_string_init(&result); + + string.no_encoding = from_encoding; + string.no_language = no_language; + string.val = (unsigned char *)input; + string.len = strlen(input); + + convd = mbfl_buffer_converter_new(from_encoding, to_encoding, 0); + ret = mbfl_buffer_converter_feed_result(convd, &string, &result); + mbfl_buffer_converter_delete(convd); + + puts(ret->val); + return 1; +} diff --git a/ext/mbstring/libmbfl/tests/strcut.c b/ext/mbstring/libmbfl/tests/strcut.c new file mode 100644 index 0000000..2d6a873 --- /dev/null +++ b/ext/mbstring/libmbfl/tests/strcut.c @@ -0,0 +1,113 @@ +/** + * this is a small sample script to use libmbfl. + * Rui Hirokawa <hirokawa@php.net> + * + * this file is encoded in EUC-JP. + */ + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <errno.h> +#include "mbfl/mbfilter.h" + +static void hexdump(const mbfl_string *ptr) +{ + unsigned int i; + + for (i = 0; i < ptr->len; i++) { + printf("%%%02x", ptr->val[i]); + } + + printf(" (%u)\n", ptr->len); +} + +int main(int argc, char **argv) +{ + enum mbfl_no_encoding no_encoding; + enum mbfl_no_language no_language; + mbfl_memory_device dev; + mbfl_string string; + int offset, length; + int final = 0; + int state = 0; + + if (argc < 5) { + fprintf(stderr, "Usage: %s lang encoding offset length\n", argv[0]); + return EXIT_FAILURE; + } + + if ((no_language = mbfl_name2no_language(argv[1])) == + mbfl_no_language_invalid) { + printf("Unsupported NLS: %s\n", argv[1]); + return EXIT_FAILURE; + } + + if ((no_encoding = mbfl_name2no_encoding(argv[2])) == + mbfl_no_encoding_invalid) { + printf("Unsupported encoding: %s\n", argv[2]); + return EXIT_FAILURE; + } + + errno = 0; + offset = strtol(argv[3], NULL, 10); + if (errno) { + printf("Invalid offset: %s\n", argv[3]); + return EXIT_FAILURE; + } + + length = strtol(argv[4], NULL, 10); + if (errno) { + printf("Invalid length: %s\n", argv[4]); + return EXIT_FAILURE; + } + + + do { + mbfl_string result; + + mbfl_memory_device_init(&dev, 0, 4096); + mbfl_string_init_set(&string, no_language, no_encoding); + + for (;;) { + const int c = fgetc(stdin); + + if (c == EOF) { + final = 1; + break; + } else if (c == 10) { + if (state == 1) { + state = 0; + continue; + } + break; + } else if (c == 13) { + state = 1; + break; + } + + if (dev.pos >= dev.length) { + if (dev.length + dev.allocsz < dev.length) { + printf("Unable to allocate memory\n"); + return EXIT_FAILURE; + } + + mbfl_memory_device_realloc(&dev, dev.length + dev.allocsz, + dev.allocsz); + } + + dev.buffer[dev.pos++] = (unsigned char)c; + } + + mbfl_memory_device_result(&dev, &string); + if (mbfl_strcut(&string, &result, offset, length)) { + hexdump(&result); + mbfl_string_clear(&result); + } else { + printf("***ERROR***\n"); + } + mbfl_string_clear(&string); + } while (!final); + + return EXIT_SUCCESS; +} diff --git a/ext/mbstring/libmbfl/tests/strcut.tests/Makefile.am b/ext/mbstring/libmbfl/tests/strcut.tests/Makefile.am new file mode 100644 index 0000000..37713c3 --- /dev/null +++ b/ext/mbstring/libmbfl/tests/strcut.tests/Makefile.am @@ -0,0 +1 @@ +EXTRA_DIST=*.exp diff --git a/ext/mbstring/libmbfl/tests/strcut.tests/iso2022jp.exp b/ext/mbstring/libmbfl/tests/strcut.tests/iso2022jp.exp new file mode 100644 index 0000000..7e3d0fd --- /dev/null +++ b/ext/mbstring/libmbfl/tests/strcut.tests/iso2022jp.exp @@ -0,0 +1,129 @@ +#!/usr/bin/expect -f +proc begin_strcut_test {_from _length} { + global spawn_id from length + set from $_from + set length $_length + + spawn tests/strcut Japanese "ISO-2022-JP" $_from $_length + set timeout 10 + + expect_after { + "\[^\r\n\]*\r\n" { fail $test } + } +} + +begin_strcut_test -1 2 + +set test "asciish characters ($from, $length)" +send "testtest\r" +expect { + -ex "***ERROR***\r\n" { pass $test } +} + +set test "non-asciish characters ($from, $length)" +send "\x1b\$B%F%9%H%F%9%H\x1b(B\r" +sleep 1 +expect { + -ex "***ERROR***\r\n" { pass $test } +} + +close +begin_strcut_test 2 -1 + +set test "asciish characters ($from, $length)" +send "testtest\r" +expect { + -ex "***ERROR***\r\n" { pass $test } +} + +set test "non-asciish characters ($from, $length)" +send "\x1b\$B%F%9%H%F%9%H\x1b(B\r" +sleep 1 +expect { + -ex "***ERROR***\r\n" { pass $test } +} + +close +begin_strcut_test 3 2 + +set test "asciish characters ($from, $length)" +send "testtest\r" +expect { + -ex "%74%74 (2)\r\n" { pass $test } +} + +set test "non-asciish characters ($from, $length)" +send "\x1b\$B%F%9%H%F%9%H\x1b(B\r" +sleep 1 +expect { + -ex " (0)\r\n" { pass $test } +} + +close +begin_strcut_test 5 8 + +set test "asciish characters ($from, $length)" +send "testtest\r" +expect { + -ex "%65%73%74 (3)\r\n" { pass $test } +} + +set test "non-asciish characters ($from, $length)" +sleep 1 +send "\x1b\$B%F%9%H%F%9%H\x1b(B\r" +sleep 1 +expect { + -ex "%1b%24%42%25%39%1b%28%42 (8)\r\n" { pass $test } +} + +close +begin_strcut_test 1 15 + +set test "asciish characters ($from, $length)" +send "testestestestestes\r" +expect { + "%65%73%74%65%73%74%65%73%74%65%73%74%65%73%74 (15)\r\n" { pass $test } +} + +set test "non-asciish characters ($from, $length)" +send "\x1b\$B%F%9%H%F%9%H\x1b(B\r" +sleep 1 +expect { + -ex "%1b%24%42%25%46%25%39%25%48%25%46%1b%28%42 (14)\r\n" { pass $test } +} +close +begin_strcut_test 8 20 + +set test "non-asciish characters (2) ($from, $length)" +send "\x1b\x24\x42\x25\x46\x1b\x28\x42\x74\x1b\x24\x42\x25\x39\x1b\x28\x42\x74\x1b\x24\x42\x25\x48\x24\x46\x24\x39\x24\x48\x1b\x28\x49\x4a\x5e\x4a\x5e\x4a\x5e\x43\x3d\x44\x1b\x28\x42\x74\x1b\x24\x42\x25\x46\x1b\x28\x42\x74\x1b\x24\x42\x25\x39\x1b\x28\x42\x74\x1b\x24\x42\x25\x48\x1b\x28\x42\x74\x1b\x24\x42\x25\x46\x1b\x28\x42\x74\x1b\x24\x42\x25\x39\x1b\x28\x42\x74\x1b\x24\x42\x25\x48\x1b\x28\x42\x74\x1b\x24\x42\x25\x46\x1b\x28\x42\x74\x1b\x24\x42\x25\x39\x1b\x28\x42\x74\x1b\x24\x42\x25\x48\x1b\x28\x42\x74\r" +sleep 1 +expect { + -ex "%74%1b%24%42%25%39%1b%28%42%74%1b%24%42%25%48%24%46%1b%28%42 (20)\r\n" { + pass $test + } +} + +begin_strcut_test 8 21 + +set test "non-asciish characters (2) ($from, $length)" +send "\x1b\x24\x42\x25\x46\x1b\x28\x42\x74\x1b\x24\x42\x25\x39\x1b\x28\x42\x74\x1b\x24\x42\x25\x48\x24\x46\x24\x39\x24\x48\x1b\x28\x49\x4a\x5e\x4a\x5e\x4a\x5e\x43\x3d\x44\x1b\x28\x42\x74\x1b\x24\x42\x25\x46\x1b\x28\x42\x74\x1b\x24\x42\x25\x39\x1b\x28\x42\x74\x1b\x24\x42\x25\x48\x1b\x28\x42\x74\x1b\x24\x42\x25\x46\x1b\x28\x42\x74\x1b\x24\x42\x25\x39\x1b\x28\x42\x74\x1b\x24\x42\x25\x48\x1b\x28\x42\x74\x1b\x24\x42\x25\x46\x1b\x28\x42\x74\x1b\x24\x42\x25\x39\x1b\x28\x42\x74\x1b\x24\x42\x25\x48\x1b\x28\x42\x74\r" +sleep 1 +expect { + -ex "%74%1b%24%42%25%39%1b%28%42%74%1b%24%42%25%48%24%46%1b%28%42 (20)\r\n" { + pass $test + } +} + +begin_strcut_test 11 17 + +set test "non-asciish characters (2) ($from, $length)" +send "\x1b\x24\x42\x25\x46\x1b\x28\x42\x74\x1b\x24\x42\x25\x39\x1b\x28\x42\x74\x1b\x24\x42\x25\x48\x24\x46\x24\x39\x24\x48\x1b\x28\x49\x4a\x5e\x4a\x5e\x4a\x5e\x43\x3d\x44\x1b\x28\x42\x74\x1b\x24\x42\x25\x46\x1b\x28\x42\x74\x1b\x24\x42\x25\x39\x1b\x28\x42\x74\x1b\x24\x42\x25\x48\x1b\x28\x42\x74\x1b\x24\x42\x25\x46\x1b\x28\x42\x74\x1b\x24\x42\x25\x39\x1b\x28\x42\x74\x1b\x24\x42\x25\x48\x1b\x28\x42\x74\x1b\x24\x42\x25\x46\x1b\x28\x42\x74\x1b\x24\x42\x25\x39\x1b\x28\x42\x74\x1b\x24\x42\x25\x48\x1b\x28\x42\x74\r" +sleep 1 +expect { + -ex "%1b%24%42%25%39%1b%28%42%74%1b%24%42%25%48%1b%28%42 (17)\r\n" { + pass $test + } +} + + +# vim: sts=4 sw=4 ts=4 et diff --git a/ext/mbstring/libmbfl/tests/strcut.tests/ujis.exp b/ext/mbstring/libmbfl/tests/strcut.tests/ujis.exp new file mode 100644 index 0000000..8ad6f95 --- /dev/null +++ b/ext/mbstring/libmbfl/tests/strcut.tests/ujis.exp @@ -0,0 +1,91 @@ +#!/usr/bin/expect -f +proc begin_strcut_test {_from _length} { + global spawn_id from length + set from $_from + set length $_length + + spawn tests/strcut Japanese EUC-JP $_from $_length + set timeout 1 + + expect_after { + "\[^\r\n\]*\r\n" { fail $test } + } +} + +begin_strcut_test -1 2 + +set test "asciish characters ($from, $length)" +send "testtest\r" +expect { + -ex "***ERROR***\r\n" { pass $test } +} + +set test "non-asciish characters ($from, $length)" +send "氾旦玄氾旦玄\r" +expect { + -ex "***ERROR***\r\n" { pass $test } +} + +close +begin_strcut_test 2 -1 + +set test "asciish characters ($from, $length)" +send "testtest\r" +expect { + -ex "***ERROR***\r\n" { pass $test } +} + +set test "non-asciish characters ($from, $length)" +send "氾旦玄氾旦玄\r" +expect { + -ex "***ERROR***\r\n" { pass $test } +} + +close +begin_strcut_test 3 2 + +set test "asciish characters ($from, $length)" +send "testtest\r" +expect { + -ex "%74%74 (2)\r\n" { pass $test } +} + +set test "non-asciish characters ($from, $length)" +send "氾旦玄氾旦玄\r" +expect { + -ex "%a5%b9 (2)\r\n" { pass $test } +} + +close +begin_strcut_test 5 8 + +set test "asciish characters ($from, $length)" +send "testtest\r" +expect { + -ex "%65%73%74 (3)\r\n" { pass $test } +} + +set test "non-asciish characters ($from, $length)" +send "氾旦玄氾旦玄\r" +expect { + -ex "%a5%c8%a5%c6%a5%b9%a5%c8 (8)\r\n" { pass $test } +} + +close +begin_strcut_test 1 15 + +set test "asciish characters ($from, $length)" +send "testestestestestes\r" +expect { + "%65%73%74%65%73%74%65%73%74%65%73%74%65%73%74 (15)\r\n" { pass $test } +} + +set test "non-asciish characters ($from, $length)" +send "氾旦玄氾旦玄\r" +expect { + -ex "%a5%c6%a5%b9%a5%c8%a5%c6%a5%b9%a5%c8 (12)\r\n" { pass $test } +} +close + + +# vim: sts=4 sw=4 ts=4 et encoding=EUC-JP diff --git a/ext/mbstring/libmbfl/tests/strcut.tests/utf8.exp b/ext/mbstring/libmbfl/tests/strcut.tests/utf8.exp new file mode 100644 index 0000000..5104bf1 --- /dev/null +++ b/ext/mbstring/libmbfl/tests/strcut.tests/utf8.exp @@ -0,0 +1,91 @@ +#!/usr/bin/expect -f +proc begin_strcut_test {_from _length} { + global spawn_id from length + set from $_from + set length $_length + + spawn tests/strcut Japanese UTF-8 $_from $_length + set timeout 1 + + expect_after { + "\[^\r\n\]*\r\n" { fail $test } + } +} + +begin_strcut_test -1 2 + +set test "asciish characters ($from, $length)" +send "testtest\r" +expect { + -ex "***ERROR***\r\n" { pass $test } +} + +set test "non-asciish characters ($from, $length)" +send "嫘嫘\r" +expect { + -ex "***ERROR***\r\n" { pass $test } +} + +close +begin_strcut_test 2 -1 + +set test "asciish characters ($from, $length)" +send "testtest\r" +expect { + -ex "***ERROR***\r\n" { pass $test } +} + +set test "non-asciish characters ($from, $length)" +send "嫘嫘\r" +expect { + -ex "***ERROR***\r\n" { pass $test } +} + +close +begin_strcut_test 3 2 + +set test "asciish characters ($from, $length)" +send "testtest\r" +expect { + -ex "%74%74 (2)\r\n" { pass $test } +} + +set test "non-asciish characters ($from, $length)" +send "嫘嫘\r" +expect { + -ex "(0)\r\n" { pass $test } +} + +close +begin_strcut_test 5 8 + +set test "asciish characters ($from, $length)" +send "testtest\r" +expect { + -ex "%65%73%74 (3)\r\n" { pass $test } +} + +set test "non-asciish characters ($from, $length)" +send "嫘嫘\r" +expect { + -ex "%e3%82%b9%e3%83%88 (6)\r\n" { pass $test } +} + +close +begin_strcut_test 1 15 + +set test "asciish characters ($from, $length)" +send "testestestestestes\r" +expect { + "%65%73%74%65%73%74%65%73%74%65%73%74%65%73%74 (15)\r\n" { pass $test } +} + +set test "non-asciish characters ($from, $length)" +send "嫘嫘\r" +expect { + -ex "%e3%83%86%e3%82%b9%e3%83%88%e3%83%86%e3%82%b9 (15)\r\n" { pass $test } +} +close + + +# vim: sts=4 sw=4 ts=4 et encoding=UTF-8 diff --git a/ext/mbstring/libmbfl/tests/strwidth.c b/ext/mbstring/libmbfl/tests/strwidth.c new file mode 100644 index 0000000..72b4b73 --- /dev/null +++ b/ext/mbstring/libmbfl/tests/strwidth.c @@ -0,0 +1,79 @@ +/** + * this is a small sample script to use libmbfl. + * Rui Hirokawa <hirokawa@php.net> + * + * this file is encoded in EUC-JP. + */ + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include "mbfl/mbfilter.h" + +int main(int argc, char **argv) +{ + enum mbfl_no_encoding no_encoding; + enum mbfl_no_language no_language; + mbfl_memory_device dev; + mbfl_string string; + int final = 0; + int state = 0; + + if (argc < 3) { + fprintf(stderr, "Usage: %s lang encoding\n", argv[0]); + return EXIT_FAILURE; + } + + if ((no_language = mbfl_name2no_language(argv[1])) == + mbfl_no_language_invalid) { + printf("Unsupported NLS: %s\n", argv[1]); + return EXIT_FAILURE; + } + + if ((no_encoding = mbfl_name2no_encoding(argv[2])) == + mbfl_no_encoding_invalid) { + printf("Unsupported encoding: %s\n", argv[2]); + return EXIT_FAILURE; + } + + do { + mbfl_memory_device_init(&dev, 0, 4096); + mbfl_string_init_set(&string, no_language, no_encoding); + + for (;;) { + const int c = fgetc(stdin); + + if (c == EOF) { + final = 1; + break; + } else if (c == 10) { + if (state == 1) { + state = 0; + continue; + } + break; + } else if (c == 13) { + state = 1; + break; + } + + if (dev.pos >= dev.length) { + if (dev.length + dev.allocsz < dev.length) { + printf("Unable to allocate memory\n"); + return EXIT_FAILURE; + } + + mbfl_memory_device_realloc(&dev, dev.length + dev.allocsz, + dev.allocsz); + } + + dev.buffer[dev.pos++] = (unsigned char)c; + } + + mbfl_memory_device_result(&dev, &string); + printf("%d\n", mbfl_strwidth(&string)); + mbfl_string_clear(&string); + } while (!final); + + return EXIT_SUCCESS; +} diff --git a/ext/mbstring/libmbfl/tests/strwidth.tests/Makefile.am b/ext/mbstring/libmbfl/tests/strwidth.tests/Makefile.am new file mode 100644 index 0000000..37713c3 --- /dev/null +++ b/ext/mbstring/libmbfl/tests/strwidth.tests/Makefile.am @@ -0,0 +1 @@ +EXTRA_DIST=*.exp diff --git a/ext/mbstring/libmbfl/tests/strwidth.tests/strwidth.exp b/ext/mbstring/libmbfl/tests/strwidth.tests/strwidth.exp new file mode 100644 index 0000000..09f518c --- /dev/null +++ b/ext/mbstring/libmbfl/tests/strwidth.tests/strwidth.exp @@ -0,0 +1,47 @@ +#!/usr/bin/expect -f +spawn tests/strwidth Japanese UTF-8 +set timeout 1 + +expect_after { + "\[^\r\n\]*\r\n" { fail $test } +} + +set test "basic test" +send "testtest\r" +expect { + "8\r\n" { pass $test } +} + +set test "CJK kanji" +send "瞍W\r" +expect { + "4\r\n" { pass $test } +} + +set test "CJK hiragana" +send "脯歿r" +expect { + "8\r\n" { pass $test } +} + +set test "CJK katakana" +send "怒踴怒\r" +expect { + "8\r\n" { pass $test } +} + +set test "Fullwidth symbols (1)" +send "嚗嚗嚗嚗嚗嚗嚗嚗\r" +expect { + "20\r\n" { pass $test } +} + +set test "Halfwidth symbols assumed to be fullwidth in JISX0208 (2)" +send "\r" +expect { + "3\r\n" { pass $test } +} + +close + +# vim: sts=4 sw=4 ts=4 et encoding=UTF-8 |