├── .github └── FUNDING.yml ├── .gitignore ├── .travis.yml ├── CHANGELOG.md ├── LICENSE-APACHE ├── LICENSE-GPL ├── README.md ├── appveyor.yml ├── composer.json ├── phpunit.xml.dist └── src ├── Normalizer.php └── Patchwork ├── PHP └── Shim │ ├── Iconv.php │ ├── Intl.php │ ├── Mbstring.php │ ├── Normalizer.php │ ├── Xml.php │ ├── charset │ ├── from.big5.ser │ ├── from.cp037.ser │ ├── from.cp1006.ser │ ├── from.cp1026.ser │ ├── from.cp424.ser │ ├── from.cp437.ser │ ├── from.cp500.ser │ ├── from.cp737.ser │ ├── from.cp775.ser │ ├── from.cp850.ser │ ├── from.cp852.ser │ ├── from.cp855.ser │ ├── from.cp856.ser │ ├── from.cp857.ser │ ├── from.cp860.ser │ ├── from.cp861.ser │ ├── from.cp862.ser │ ├── from.cp863.ser │ ├── from.cp864.ser │ ├── from.cp865.ser │ ├── from.cp866.ser │ ├── from.cp869.ser │ ├── from.cp874.ser │ ├── from.cp875.ser │ ├── from.cp932.ser │ ├── from.cp936.ser │ ├── from.cp949.ser │ ├── from.cp950.ser │ ├── from.gsm0338.ser │ ├── from.iso-8859-1.ser │ ├── from.iso-8859-10.ser │ ├── from.iso-8859-11.ser │ ├── from.iso-8859-13.ser │ ├── from.iso-8859-14.ser │ ├── from.iso-8859-15.ser │ ├── from.iso-8859-16.ser │ ├── from.iso-8859-2.ser │ ├── from.iso-8859-3.ser │ ├── from.iso-8859-4.ser │ ├── from.iso-8859-5.ser │ ├── from.iso-8859-6.ser │ ├── from.iso-8859-7.ser │ ├── from.iso-8859-8.ser │ ├── from.iso-8859-9.ser │ ├── from.koi8-r.ser │ ├── from.koi8-u.ser │ ├── from.mazovia.ser │ ├── from.nextstep.ser │ ├── from.stdenc.ser │ ├── from.symbol.ser │ ├── from.turkish.ser │ ├── from.us-ascii-quotes.ser │ ├── from.us-ascii.ser │ ├── from.windows-1250.ser │ ├── from.windows-1251.ser │ ├── from.windows-1252.ser │ ├── from.windows-1253.ser │ ├── from.windows-1254.ser │ ├── from.windows-1255.ser │ ├── from.windows-1256.ser │ ├── from.windows-1257.ser │ ├── from.windows-1258.ser │ ├── from.x-mac-ce.ser │ ├── from.x-mac-cyrillic.ser │ ├── from.x-mac-greek.ser │ ├── from.x-mac-icelandic.ser │ ├── from.x-mac-roman.ser │ ├── from.zdingbat.ser │ ├── to.gsm0338.ser │ ├── to.mazovia.ser │ ├── to.stdenc.ser │ ├── to.symbol.ser │ ├── to.zdingbat.ser │ └── translit.ser │ └── unidata │ ├── canonicalComposition.ser │ ├── canonicalDecomposition.ser │ ├── combiningClass.ser │ ├── compatibilityDecomposition.ser │ ├── lowerCase.ser │ └── upperCase.ser ├── TurkishUtf8.php ├── Utf8.php └── Utf8 ├── BestFit.php ├── Bootup.php ├── Bootup ├── iconv.php ├── intl.php ├── mbstring.php └── utf8_encode.php ├── WindowsStreamWrapper.php └── data ├── caseFolding_full.ser ├── to.bestfit1250.ser ├── to.bestfit1251.ser ├── to.bestfit1252.ser ├── to.bestfit1253.ser ├── to.bestfit1254.ser ├── to.bestfit1255.ser ├── to.bestfit1256.ser ├── to.bestfit1257.ser ├── to.bestfit1258.ser ├── to.bestfit874.ser ├── to.bestfit932.ser ├── to.bestfit936.ser ├── to.bestfit949.ser ├── to.bestfit950.ser └── translit_extra.ser /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | tidelift: "packagist/patchwork/utf8" 2 | github: nicolas-grekas 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /composer.lock 2 | /vendor 3 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: php 2 | dist: bionic 3 | 4 | php: 5 | - 7.4 6 | - 8.0 7 | 8 | matrix: 9 | include: 10 | - php: 5.3 11 | dist: precise 12 | - php: 5.4 13 | dist: trusty 14 | - php: 5.5 15 | dist: trusty 16 | - php: 5.6 17 | dist: xenial 18 | - php: 7.0 19 | dist: xenial 20 | - php: 7.1 21 | dist: bionic 22 | - php: 7.2 23 | dist: bionic 24 | - php: 7.3 25 | dist: bionic 26 | 27 | env: 28 | global: 29 | - SYMFONY_PHPUNIT_REMOVE_RETURN_TYPEHINT=1 30 | 31 | install: 32 | - composer update 33 | - vendor/bin/simple-phpunit install 34 | 35 | script: 36 | - vendor/bin/simple-phpunit --coverage-text 37 | - if [[ "$TRAVIS_PHP_VERSION" != "hhvm" ]]; then phpenv config-rm xdebug.ini; fi; 38 | - vendor/bin/simple-phpunit --group unicode 39 | 40 | branches: 41 | only: 42 | - master 43 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## v1.3.3 (2021-01-07) 2 | 3 | - minor fixes 4 | 5 | ## v1.3.2 (2019-12-03) 6 | 7 | - update maps for Unicode 12 8 | - check if MB_OVERLOAD_STRING exists before using it 9 | 10 | ## v1.3.1 (2016-05-18) 11 | 12 | - Normalizer fixes from @gitlost 13 | - fix tests for php 5.5.35/5.6.21/7.0.6 14 | 15 | ## v1.3.0 (2015-12-15) 16 | 17 | - add shim for mb_convert_variables 18 | - marked all shims as @internal 19 | - test on appveyor 20 | - a few fixes in iconv and mbstring shims 21 | - cleanup refacto for preparing v2 based on symfony-polyfill 22 | 23 | ## v1.2.6 (2015-12-15) 24 | 25 | - fix compat with symfony-polyfill 26 | 27 | ## v1.2.5 (2015-10-14) 28 | 29 | - handle the third argument of mb_convert_encoding() being an array 30 | - add license files 31 | 32 | ## v1.2.4 (2015-06-29) 33 | 34 | - trigger silenced deprecation notices when shims are in use 35 | - fix mb_strrpos() shim registration 36 | - fix .gitattributes 37 | 38 | ## v1.2.3 (2015-06-25) 39 | 40 | - fix mb_strrpos shim with negative offset 41 | - sync tests with latest PHP/HHVM behaviors 42 | - remove PHP7/HHVM from allowed failures 43 | - move to PSR-1+2+4 44 | - mv class/ src/ 45 | 46 | ## v1.2.2 (2015-04-26) 47 | 48 | - Fix ucwords to be functionally the same as in-built PHP version 49 | - Fix iconv_set_encoding deprecation notice in PHP 5.6.0 50 | - remove legacy test for HHVM/PHP7 51 | - mb_parse_str() should have no return value 52 | 53 | ## v1.2.1 (2015-01-28) 54 | 55 | - fix double declaration in mbstring shim 56 | 57 | ## v1.2.0 (2015-01-12) 58 | 59 | - add u::strwidth() to get the width of a string when printed on a terminal 60 | - add more mbstring shims 61 | - add a note about https://bugs.php.net/65358 62 | - fail properly when COM is not loaded 63 | - fallback on stat() when lstat() fails 64 | 65 | ## v1.2.0-beta (2014-08-05) 66 | 67 | - add best-fit mappings for UTF-8 to Code Page approximations 68 | - add portable Unicode filesystem access under Windows and other OSes 69 | 70 | ## v1.1.31 (2015-12-15) 71 | 72 | - fix compat with symfony-polyfill 73 | 74 | ## v1.1.30 (2015-06-29) 75 | 76 | - fix mb_strrpos shim with negative offset 77 | 78 | ## v1.1.29 (2015-04-26) 79 | 80 | - fix ucwords to be functionally the same as in-built PHP version 81 | - fix iconv_set_encoding deprecation notice in PHP 5.6.0 82 | - remove legacy test for HHVM/PHP7 83 | 84 | ## v1.1.28 (2015-01-12) 85 | 86 | - fix mbstring shim for html-entities 87 | 88 | ## v1.1.27 (2015-01-11) 89 | 90 | - update to Unicode 7.0 91 | - fix iconv shim compat layer 92 | 93 | ## v1.1.26 (2014-11-08) 94 | 95 | - tweak composer.json 96 | 97 | ## v1.1.25 (2014-08-05) 98 | 99 | - update travis matrix 100 | - add composer branch alias 101 | 102 | ## v1.1.24 (2014-06-17) 103 | 104 | - update tests for latest HHVM fixes 105 | - move legacy GRAPHEME_CLUSTER_RX version to Intl shim 106 | 107 | ## v1.1.23 (2014-05-22) 108 | 109 | - enable tests for PHP 5.6 110 | - remove HHVM from allowed failures 111 | 112 | ## v1.1.22 (2014-05-06) 113 | 114 | - fix #19: don't call ini_set() when not required and gain compat with PHP5.6 115 | 116 | ## v1.1.21 (2014-03-26) 117 | 118 | - fix #18 u::wordwrap() now relies on native behavior 119 | 120 | ## v1.1.20 (2014-03-01) 121 | ## v1.1.19 (2014-03-01) 122 | 123 | - fix mb_regex_encoding() being disabled on some hosting providers 124 | 125 | ## v1.1.18 (2014-02-02) 126 | 127 | - require PCRE>=7.3, the first that correctly checks UTF-8 validity 128 | - enable HHVM on Travis CI 129 | 130 | ## v1.1.17 (2014-01-02) 131 | 132 | - enable Travis CI and SensioLabsInsight 133 | - add shims for mb_check_encoding, mb_detect_encoding, mb_detect_order, 134 | mb_language and mb_encoding_aliases 135 | - mbstring shim fix: alias UTF8 to UTF-8 136 | - more tests 137 | 138 | ## v1.1.16 (2013-12-06) 139 | 140 | - fix $_FILES bootup filtering 141 | - fix mbstring shim behavior with invalid utf8 strings 142 | 143 | ## v1.1.15 (2013-11-23) 144 | 145 | - u::toAscii() is now locale sensitive and allows a substitution character 146 | - use LSB for more extension openness 147 | - handle null for mb_substr() shim length as in PHP 5.4.8 148 | - fix casts to string 149 | - fix mbstring MB_CASE_TITLE shim on edge case 150 | - small optimizations 151 | - add a changelog 152 | 153 | ## v1.1.14 (2013-11-04) 154 | 155 | - set default_charset to UTF-8 at bootup 156 | - remove bootup PCRE warning 157 | - fix iconv internal_encoding shim 158 | - fix bootup dependencies 159 | - add tests for normalizers consts 160 | - readme update 161 | 162 | ## v1.1.13 (2013-10-11) 163 | 164 | - new u::filter(): normalizes to UTF-8 NFC, converting from CP-1252 when needed 165 | - new u::json_decode(), u::filter_input() and u::filter_input_array() for NFC safeness 166 | - reference Unicode 6.3 167 | - more tests 168 | - readme update 169 | 170 | ## v1.1.12 (2013-10-03) 171 | 172 | - new Patchwork\TurkishUtf8 class extends Patchwork\Utf8 with Turkish specifics 173 | - expose Patchwork\Utf8\Bootup::filterString() for UF-8 NFC strings normalization 174 | - normalize inputs EOL to work around https://bugs.php.net/65732 175 | - update composer.json 176 | 177 | ## v1.1.11 (2013-08-19) 178 | 179 | - updates related to PHP bugs 52211 and 61860 180 | - fixes and tests for iconv shim 181 | - fixes and tests for mbstring shim 182 | 183 | ## v1.1.10 (2013-08-13) 184 | 185 | - update .gitattributes export-ignore 186 | - fixes and tests for intl::grapheme_extract() shim 187 | - fixes and tests for iconv shim 188 | - fixes and tests for mbstring shim 189 | 190 | ## v1.1.9 (2013-08-04) 191 | 192 | - know that PHP bug 61860 has been fixed in 5.5.1 193 | - fix intl::grapheme_strlen() shim on edge case 194 | - fix case sensitive encoding checks for mbstring shim 195 | - some more fixes, tests and optimizations 196 | 197 | ## v1.1.8 since v1.1.0 (2013-05-24) 198 | 199 | - filter leading combining chars in inputs for NFC safeness 200 | - fixes, tests and optimizations 201 | - readme update 202 | 203 | ## v1.1.0 (2013-04-18) 204 | 205 | - PSR-0 autoloading and explicit bootup configuration is now required 206 | 207 | ## v1.0.6 since v1.0.0 (2013-04-22) 208 | 209 | - add extra characters for ASCII transliterations 210 | - move bootup stages in namespaced functions for greater modularity 211 | - NFC normalization for autoglobal inputs 212 | - better setlocale() initialization 213 | - fix fatal error caused by multiple bootup inclusion 214 | - fix bootup 215 | 216 | ## v1.0.0 (2012-10-15) 217 | 218 | - first official release of a work started in 2007 219 | - Apache v2.0 / GPL v2.0 dual-licensed 220 | - PHP portability implementations for mbstring, iconv, intl grapheme_*() and utf8_encode/decode() 221 | - Unicode compliant and portable Normalizer 222 | - grapheme clusters aware UTF-8 handling string functions replica 223 | - PHP runtime environment configuration for UTF-8 224 | - extra functions for UTF-8 validity checks, transliterations and case folding 225 | - covered by unit tests 226 | -------------------------------------------------------------------------------- /LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | 2 | Apache License 3 | Version 2.0, January 2004 4 | http://www.apache.org/licenses/ 5 | 6 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 7 | 8 | 1. Definitions. 9 | 10 | "License" shall mean the terms and conditions for use, reproduction, 11 | and distribution as defined by Sections 1 through 9 of this document. 12 | 13 | "Licensor" shall mean the copyright owner or entity authorized by 14 | the copyright owner that is granting the License. 15 | 16 | "Legal Entity" shall mean the union of the acting entity and all 17 | other entities that control, are controlled by, or are under common 18 | control with that entity. For the purposes of this definition, 19 | "control" means (i) the power, direct or indirect, to cause the 20 | direction or management of such entity, whether by contract or 21 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 22 | outstanding shares, or (iii) beneficial ownership of such entity. 23 | 24 | "You" (or "Your") shall mean an individual or Legal Entity 25 | exercising permissions granted by this License. 26 | 27 | "Source" form shall mean the preferred form for making modifications, 28 | including but not limited to software source code, documentation 29 | source, and configuration files. 30 | 31 | "Object" form shall mean any form resulting from mechanical 32 | transformation or translation of a Source form, including but 33 | not limited to compiled object code, generated documentation, 34 | and conversions to other media types. 35 | 36 | "Work" shall mean the work of authorship, whether in Source or 37 | Object form, made available under the License, as indicated by a 38 | copyright notice that is included in or attached to the work 39 | (an example is provided in the Appendix below). 40 | 41 | "Derivative Works" shall mean any work, whether in Source or Object 42 | form, that is based on (or derived from) the Work and for which the 43 | editorial revisions, annotations, elaborations, or other modifications 44 | represent, as a whole, an original work of authorship. For the purposes 45 | of this License, Derivative Works shall not include works that remain 46 | separable from, or merely link (or bind by name) to the interfaces of, 47 | the Work and Derivative Works thereof. 48 | 49 | "Contribution" shall mean any work of authorship, including 50 | the original version of the Work and any modifications or additions 51 | to that Work or Derivative Works thereof, that is intentionally 52 | submitted to Licensor for inclusion in the Work by the copyright owner 53 | or by an individual or Legal Entity authorized to submit on behalf of 54 | the copyright owner. For the purposes of this definition, "submitted" 55 | means any form of electronic, verbal, or written communication sent 56 | to the Licensor or its representatives, including but not limited to 57 | communication on electronic mailing lists, source code control systems, 58 | and issue tracking systems that are managed by, or on behalf of, the 59 | Licensor for the purpose of discussing and improving the Work, but 60 | excluding communication that is conspicuously marked or otherwise 61 | designated in writing by the copyright owner as "Not a Contribution." 62 | 63 | "Contributor" shall mean Licensor and any individual or Legal Entity 64 | on behalf of whom a Contribution has been received by Licensor and 65 | subsequently incorporated within the Work. 66 | 67 | 2. Grant of Copyright License. Subject to the terms and conditions of 68 | this License, each Contributor hereby grants to You a perpetual, 69 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 70 | copyright license to reproduce, prepare Derivative Works of, 71 | publicly display, publicly perform, sublicense, and distribute the 72 | Work and such Derivative Works in Source or Object form. 73 | 74 | 3. Grant of Patent License. Subject to the terms and conditions of 75 | this License, each Contributor hereby grants to You a perpetual, 76 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 77 | (except as stated in this section) patent license to make, have made, 78 | use, offer to sell, sell, import, and otherwise transfer the Work, 79 | where such license applies only to those patent claims licensable 80 | by such Contributor that are necessarily infringed by their 81 | Contribution(s) alone or by combination of their Contribution(s) 82 | with the Work to which such Contribution(s) was submitted. If You 83 | institute patent litigation against any entity (including a 84 | cross-claim or counterclaim in a lawsuit) alleging that the Work 85 | or a Contribution incorporated within the Work constitutes direct 86 | or contributory patent infringement, then any patent licenses 87 | granted to You under this License for that Work shall terminate 88 | as of the date such litigation is filed. 89 | 90 | 4. Redistribution. You may reproduce and distribute copies of the 91 | Work or Derivative Works thereof in any medium, with or without 92 | modifications, and in Source or Object form, provided that You 93 | meet the following conditions: 94 | 95 | (a) You must give any other recipients of the Work or 96 | Derivative Works a copy of this License; and 97 | 98 | (b) You must cause any modified files to carry prominent notices 99 | stating that You changed the files; and 100 | 101 | (c) You must retain, in the Source form of any Derivative Works 102 | that You distribute, all copyright, patent, trademark, and 103 | attribution notices from the Source form of the Work, 104 | excluding those notices that do not pertain to any part of 105 | the Derivative Works; and 106 | 107 | (d) If the Work includes a "NOTICE" text file as part of its 108 | distribution, then any Derivative Works that You distribute must 109 | include a readable copy of the attribution notices contained 110 | within such NOTICE file, excluding those notices that do not 111 | pertain to any part of the Derivative Works, in at least one 112 | of the following places: within a NOTICE text file distributed 113 | as part of the Derivative Works; within the Source form or 114 | documentation, if provided along with the Derivative Works; or, 115 | within a display generated by the Derivative Works, if and 116 | wherever such third-party notices normally appear. The contents 117 | of the NOTICE file are for informational purposes only and 118 | do not modify the License. You may add Your own attribution 119 | notices within Derivative Works that You distribute, alongside 120 | or as an addendum to the NOTICE text from the Work, provided 121 | that such additional attribution notices cannot be construed 122 | as modifying the License. 123 | 124 | You may add Your own copyright statement to Your modifications and 125 | may provide additional or different license terms and conditions 126 | for use, reproduction, or distribution of Your modifications, or 127 | for any such Derivative Works as a whole, provided Your use, 128 | reproduction, and distribution of the Work otherwise complies with 129 | the conditions stated in this License. 130 | 131 | 5. Submission of Contributions. Unless You explicitly state otherwise, 132 | any Contribution intentionally submitted for inclusion in the Work 133 | by You to the Licensor shall be under the terms and conditions of 134 | this License, without any additional terms or conditions. 135 | Notwithstanding the above, nothing herein shall supersede or modify 136 | the terms of any separate license agreement you may have executed 137 | with Licensor regarding such Contributions. 138 | 139 | 6. Trademarks. This License does not grant permission to use the trade 140 | names, trademarks, service marks, or product names of the Licensor, 141 | except as required for reasonable and customary use in describing the 142 | origin of the Work and reproducing the content of the NOTICE file. 143 | 144 | 7. Disclaimer of Warranty. Unless required by applicable law or 145 | agreed to in writing, Licensor provides the Work (and each 146 | Contributor provides its Contributions) on an "AS IS" BASIS, 147 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 148 | implied, including, without limitation, any warranties or conditions 149 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 150 | PARTICULAR PURPOSE. You are solely responsible for determining the 151 | appropriateness of using or redistributing the Work and assume any 152 | risks associated with Your exercise of permissions under this License. 153 | 154 | 8. Limitation of Liability. In no event and under no legal theory, 155 | whether in tort (including negligence), contract, or otherwise, 156 | unless required by applicable law (such as deliberate and grossly 157 | negligent acts) or agreed to in writing, shall any Contributor be 158 | liable to You for damages, including any direct, indirect, special, 159 | incidental, or consequential damages of any character arising as a 160 | result of this License or out of the use or inability to use the 161 | Work (including but not limited to damages for loss of goodwill, 162 | work stoppage, computer failure or malfunction, or any and all 163 | other commercial damages or losses), even if such Contributor 164 | has been advised of the possibility of such damages. 165 | 166 | 9. Accepting Warranty or Additional Liability. While redistributing 167 | the Work or Derivative Works thereof, You may choose to offer, 168 | and charge a fee for, acceptance of support, warranty, indemnity, 169 | or other liability obligations and/or rights consistent with this 170 | License. However, in accepting such obligations, You may act only 171 | on Your own behalf and on Your sole responsibility, not on behalf 172 | of any other Contributor, and only if You agree to indemnify, 173 | defend, and hold each Contributor harmless for any liability 174 | incurred by, or claims asserted against, such Contributor by reason 175 | of your accepting any such warranty or additional liability. 176 | 177 | END OF TERMS AND CONDITIONS 178 | 179 | APPENDIX: How to apply the Apache License to your work. 180 | 181 | To apply the Apache License to your work, attach the following 182 | boilerplate notice, with the fields enclosed by brackets "[]" 183 | replaced with your own identifying information. (Don't include 184 | the brackets!) The text should be enclosed in the appropriate 185 | comment syntax for the file format. We also recommend that a 186 | file or class name and description of purpose be included on the 187 | same "printed page" as the copyright notice for easier 188 | identification within third-party archives. 189 | 190 | Copyright 2015 Nicolas Grekas 191 | 192 | Licensed under the Apache License, Version 2.0 (the "License"); 193 | you may not use this file except in compliance with the License. 194 | You may obtain a copy of the License at 195 | 196 | http://www.apache.org/licenses/LICENSE-2.0 197 | 198 | Unless required by applicable law or agreed to in writing, software 199 | distributed under the License is distributed on an "AS IS" BASIS, 200 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 201 | See the License for the specific language governing permissions and 202 | limitations under the License. 203 | -------------------------------------------------------------------------------- /LICENSE-GPL: -------------------------------------------------------------------------------- 1 | GNU GENERAL PUBLIC LICENSE 2 | Version 2, June 1991 3 | 4 | Copyright (C) 1989, 1991 Free Software Foundation, Inc., 5 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 6 | Everyone is permitted to copy and distribute verbatim copies 7 | of this license document, but changing it is not allowed. 8 | 9 | Preamble 10 | 11 | The licenses for most software are designed to take away your 12 | freedom to share and change it. By contrast, the GNU General Public 13 | License is intended to guarantee your freedom to share and change free 14 | software--to make sure the software is free for all its users. This 15 | General Public License applies to most of the Free Software 16 | Foundation's software and to any other program whose authors commit to 17 | using it. (Some other Free Software Foundation software is covered by 18 | the GNU Lesser General Public License instead.) You can apply it to 19 | your programs, too. 20 | 21 | When we speak of free software, we are referring to freedom, not 22 | price. Our General Public Licenses are designed to make sure that you 23 | have the freedom to distribute copies of free software (and charge for 24 | this service if you wish), that you receive source code or can get it 25 | if you want it, that you can change the software or use pieces of it 26 | in new free programs; and that you know you can do these things. 27 | 28 | To protect your rights, we need to make restrictions that forbid 29 | anyone to deny you these rights or to ask you to surrender the rights. 30 | These restrictions translate to certain responsibilities for you if you 31 | distribute copies of the software, or if you modify it. 32 | 33 | For example, if you distribute copies of such a program, whether 34 | gratis or for a fee, you must give the recipients all the rights that 35 | you have. You must make sure that they, too, receive or can get the 36 | source code. And you must show them these terms so they know their 37 | rights. 38 | 39 | We protect your rights with two steps: (1) copyright the software, and 40 | (2) offer you this license which gives you legal permission to copy, 41 | distribute and/or modify the software. 42 | 43 | Also, for each author's protection and ours, we want to make certain 44 | that everyone understands that there is no warranty for this free 45 | software. If the software is modified by someone else and passed on, we 46 | want its recipients to know that what they have is not the original, so 47 | that any problems introduced by others will not reflect on the original 48 | authors' reputations. 49 | 50 | Finally, any free program is threatened constantly by software 51 | patents. We wish to avoid the danger that redistributors of a free 52 | program will individually obtain patent licenses, in effect making the 53 | program proprietary. To prevent this, we have made it clear that any 54 | patent must be licensed for everyone's free use or not licensed at all. 55 | 56 | The precise terms and conditions for copying, distribution and 57 | modification follow. 58 | 59 | GNU GENERAL PUBLIC LICENSE 60 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 61 | 62 | 0. This License applies to any program or other work which contains 63 | a notice placed by the copyright holder saying it may be distributed 64 | under the terms of this General Public License. The "Program", below, 65 | refers to any such program or work, and a "work based on the Program" 66 | means either the Program or any derivative work under copyright law: 67 | that is to say, a work containing the Program or a portion of it, 68 | either verbatim or with modifications and/or translated into another 69 | language. (Hereinafter, translation is included without limitation in 70 | the term "modification".) Each licensee is addressed as "you". 71 | 72 | Activities other than copying, distribution and modification are not 73 | covered by this License; they are outside its scope. The act of 74 | running the Program is not restricted, and the output from the Program 75 | is covered only if its contents constitute a work based on the 76 | Program (independent of having been made by running the Program). 77 | Whether that is true depends on what the Program does. 78 | 79 | 1. You may copy and distribute verbatim copies of the Program's 80 | source code as you receive it, in any medium, provided that you 81 | conspicuously and appropriately publish on each copy an appropriate 82 | copyright notice and disclaimer of warranty; keep intact all the 83 | notices that refer to this License and to the absence of any warranty; 84 | and give any other recipients of the Program a copy of this License 85 | along with the Program. 86 | 87 | You may charge a fee for the physical act of transferring a copy, and 88 | you may at your option offer warranty protection in exchange for a fee. 89 | 90 | 2. You may modify your copy or copies of the Program or any portion 91 | of it, thus forming a work based on the Program, and copy and 92 | distribute such modifications or work under the terms of Section 1 93 | above, provided that you also meet all of these conditions: 94 | 95 | a) You must cause the modified files to carry prominent notices 96 | stating that you changed the files and the date of any change. 97 | 98 | b) You must cause any work that you distribute or publish, that in 99 | whole or in part contains or is derived from the Program or any 100 | part thereof, to be licensed as a whole at no charge to all third 101 | parties under the terms of this License. 102 | 103 | c) If the modified program normally reads commands interactively 104 | when run, you must cause it, when started running for such 105 | interactive use in the most ordinary way, to print or display an 106 | announcement including an appropriate copyright notice and a 107 | notice that there is no warranty (or else, saying that you provide 108 | a warranty) and that users may redistribute the program under 109 | these conditions, and telling the user how to view a copy of this 110 | License. (Exception: if the Program itself is interactive but 111 | does not normally print such an announcement, your work based on 112 | the Program is not required to print an announcement.) 113 | 114 | These requirements apply to the modified work as a whole. If 115 | identifiable sections of that work are not derived from the Program, 116 | and can be reasonably considered independent and separate works in 117 | themselves, then this License, and its terms, do not apply to those 118 | sections when you distribute them as separate works. But when you 119 | distribute the same sections as part of a whole which is a work based 120 | on the Program, the distribution of the whole must be on the terms of 121 | this License, whose permissions for other licensees extend to the 122 | entire whole, and thus to each and every part regardless of who wrote it. 123 | 124 | Thus, it is not the intent of this section to claim rights or contest 125 | your rights to work written entirely by you; rather, the intent is to 126 | exercise the right to control the distribution of derivative or 127 | collective works based on the Program. 128 | 129 | In addition, mere aggregation of another work not based on the Program 130 | with the Program (or with a work based on the Program) on a volume of 131 | a storage or distribution medium does not bring the other work under 132 | the scope of this License. 133 | 134 | 3. You may copy and distribute the Program (or a work based on it, 135 | under Section 2) in object code or executable form under the terms of 136 | Sections 1 and 2 above provided that you also do one of the following: 137 | 138 | a) Accompany it with the complete corresponding machine-readable 139 | source code, which must be distributed under the terms of Sections 140 | 1 and 2 above on a medium customarily used for software interchange; or, 141 | 142 | b) Accompany it with a written offer, valid for at least three 143 | years, to give any third party, for a charge no more than your 144 | cost of physically performing source distribution, a complete 145 | machine-readable copy of the corresponding source code, to be 146 | distributed under the terms of Sections 1 and 2 above on a medium 147 | customarily used for software interchange; or, 148 | 149 | c) Accompany it with the information you received as to the offer 150 | to distribute corresponding source code. (This alternative is 151 | allowed only for noncommercial distribution and only if you 152 | received the program in object code or executable form with such 153 | an offer, in accord with Subsection b above.) 154 | 155 | The source code for a work means the preferred form of the work for 156 | making modifications to it. For an executable work, complete source 157 | code means all the source code for all modules it contains, plus any 158 | associated interface definition files, plus the scripts used to 159 | control compilation and installation of the executable. However, as a 160 | special exception, the source code distributed need not include 161 | anything that is normally distributed (in either source or binary 162 | form) with the major components (compiler, kernel, and so on) of the 163 | operating system on which the executable runs, unless that component 164 | itself accompanies the executable. 165 | 166 | If distribution of executable or object code is made by offering 167 | access to copy from a designated place, then offering equivalent 168 | access to copy the source code from the same place counts as 169 | distribution of the source code, even though third parties are not 170 | compelled to copy the source along with the object code. 171 | 172 | 4. You may not copy, modify, sublicense, or distribute the Program 173 | except as expressly provided under this License. Any attempt 174 | otherwise to copy, modify, sublicense or distribute the Program is 175 | void, and will automatically terminate your rights under this License. 176 | However, parties who have received copies, or rights, from you under 177 | this License will not have their licenses terminated so long as such 178 | parties remain in full compliance. 179 | 180 | 5. You are not required to accept this License, since you have not 181 | signed it. However, nothing else grants you permission to modify or 182 | distribute the Program or its derivative works. These actions are 183 | prohibited by law if you do not accept this License. Therefore, by 184 | modifying or distributing the Program (or any work based on the 185 | Program), you indicate your acceptance of this License to do so, and 186 | all its terms and conditions for copying, distributing or modifying 187 | the Program or works based on it. 188 | 189 | 6. Each time you redistribute the Program (or any work based on the 190 | Program), the recipient automatically receives a license from the 191 | original licensor to copy, distribute or modify the Program subject to 192 | these terms and conditions. You may not impose any further 193 | restrictions on the recipients' exercise of the rights granted herein. 194 | You are not responsible for enforcing compliance by third parties to 195 | this License. 196 | 197 | 7. If, as a consequence of a court judgment or allegation of patent 198 | infringement or for any other reason (not limited to patent issues), 199 | conditions are imposed on you (whether by court order, agreement or 200 | otherwise) that contradict the conditions of this License, they do not 201 | excuse you from the conditions of this License. If you cannot 202 | distribute so as to satisfy simultaneously your obligations under this 203 | License and any other pertinent obligations, then as a consequence you 204 | may not distribute the Program at all. For example, if a patent 205 | license would not permit royalty-free redistribution of the Program by 206 | all those who receive copies directly or indirectly through you, then 207 | the only way you could satisfy both it and this License would be to 208 | refrain entirely from distribution of the Program. 209 | 210 | If any portion of this section is held invalid or unenforceable under 211 | any particular circumstance, the balance of the section is intended to 212 | apply and the section as a whole is intended to apply in other 213 | circumstances. 214 | 215 | It is not the purpose of this section to induce you to infringe any 216 | patents or other property right claims or to contest validity of any 217 | such claims; this section has the sole purpose of protecting the 218 | integrity of the free software distribution system, which is 219 | implemented by public license practices. Many people have made 220 | generous contributions to the wide range of software distributed 221 | through that system in reliance on consistent application of that 222 | system; it is up to the author/donor to decide if he or she is willing 223 | to distribute software through any other system and a licensee cannot 224 | impose that choice. 225 | 226 | This section is intended to make thoroughly clear what is believed to 227 | be a consequence of the rest of this License. 228 | 229 | 8. If the distribution and/or use of the Program is restricted in 230 | certain countries either by patents or by copyrighted interfaces, the 231 | original copyright holder who places the Program under this License 232 | may add an explicit geographical distribution limitation excluding 233 | those countries, so that distribution is permitted only in or among 234 | countries not thus excluded. In such case, this License incorporates 235 | the limitation as if written in the body of this License. 236 | 237 | 9. The Free Software Foundation may publish revised and/or new versions 238 | of the General Public License from time to time. Such new versions will 239 | be similar in spirit to the present version, but may differ in detail to 240 | address new problems or concerns. 241 | 242 | Each version is given a distinguishing version number. If the Program 243 | specifies a version number of this License which applies to it and "any 244 | later version", you have the option of following the terms and conditions 245 | either of that version or of any later version published by the Free 246 | Software Foundation. If the Program does not specify a version number of 247 | this License, you may choose any version ever published by the Free Software 248 | Foundation. 249 | 250 | 10. If you wish to incorporate parts of the Program into other free 251 | programs whose distribution conditions are different, write to the author 252 | to ask for permission. For software which is copyrighted by the Free 253 | Software Foundation, write to the Free Software Foundation; we sometimes 254 | make exceptions for this. Our decision will be guided by the two goals 255 | of preserving the free status of all derivatives of our free software and 256 | of promoting the sharing and reuse of software generally. 257 | 258 | NO WARRANTY 259 | 260 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY 261 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN 262 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES 263 | PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED 264 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 265 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS 266 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE 267 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, 268 | REPAIR OR CORRECTION. 269 | 270 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 271 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR 272 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, 273 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING 274 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED 275 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY 276 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER 277 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE 278 | POSSIBILITY OF SUCH DAMAGES. 279 | 280 | END OF TERMS AND CONDITIONS 281 | 282 | How to Apply These Terms to Your New Programs 283 | 284 | If you develop a new program, and you want it to be of the greatest 285 | possible use to the public, the best way to achieve this is to make it 286 | free software which everyone can redistribute and change under these terms. 287 | 288 | To do so, attach the following notices to the program. It is safest 289 | to attach them to the start of each source file to most effectively 290 | convey the exclusion of warranty; and each file should have at least 291 | the "copyright" line and a pointer to where the full notice is found. 292 | 293 | 294 | Copyright (C) 295 | 296 | This program is free software; you can redistribute it and/or modify 297 | it under the terms of the GNU General Public License as published by 298 | the Free Software Foundation; either version 2 of the License, or 299 | (at your option) any later version. 300 | 301 | This program is distributed in the hope that it will be useful, 302 | but WITHOUT ANY WARRANTY; without even the implied warranty of 303 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 304 | GNU General Public License for more details. 305 | 306 | You should have received a copy of the GNU General Public License along 307 | with this program; if not, write to the Free Software Foundation, Inc., 308 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 309 | 310 | Also add information on how to contact you by electronic and paper mail. 311 | 312 | If the program is interactive, make it output a short notice like this 313 | when it starts in an interactive mode: 314 | 315 | Gnomovision version 69, Copyright (C) year name of author 316 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 317 | This is free software, and you are welcome to redistribute it 318 | under certain conditions; type `show c' for details. 319 | 320 | The hypothetical commands `show w' and `show c' should show the appropriate 321 | parts of the General Public License. Of course, the commands you use may 322 | be called something other than `show w' and `show c'; they could even be 323 | mouse-clicks or menu items--whatever suits your program. 324 | 325 | You should also get your employer (if you work as a programmer) or your 326 | school, if any, to sign a "copyright disclaimer" for the program, if 327 | necessary. Here is a sample; alter the names: 328 | 329 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program 330 | `Gnomovision' (which makes passes at compilers) written by James Hacker. 331 | 332 | , 1 April 1989 333 | Ty Coon, President of Vice 334 | 335 | This General Public License does not permit incorporating your program into 336 | proprietary programs. If your program is a subroutine library, you may 337 | consider it more useful to permit linking proprietary applications with the 338 | library. If this is what you want to do, use the GNU Lesser General 339 | Public License instead of this License. 340 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Patchwork UTF-8 for PHP 2 | ======================= 3 | 4 | [![Latest Stable Version](https://poser.pugx.org/patchwork/utf8/v/stable.png)](https://packagist.org/packages/patchwork/utf8) 5 | [![Total Downloads](https://poser.pugx.org/patchwork/utf8/downloads.png)](https://packagist.org/packages/patchwork/utf8) 6 | [![Build Status](https://secure.travis-ci.org/tchwork/utf8.png?branch=master)](http://travis-ci.org/tchwork/utf8) 7 | [![SensioLabsInsight](https://insight.sensiolabs.com/projects/666c8ae7-0997-4d27-883a-6089ce3cc76b/mini.png)](https://insight.sensiolabs.com/projects/666c8ae7-0997-4d27-883a-6089ce3cc76b) 8 | 9 | Patchwork UTF-8 gives PHP developpers extensive, portable and performant 10 | handling of UTF-8 and [grapheme clusters](http://unicode.org/reports/tr29/). 11 | 12 | It provides both : 13 | 14 | - a portability layer for `mbstring`, `iconv`, and intl `Normalizer` and 15 | `grapheme_*` functions, 16 | - an UTF-8 grapheme clusters aware replica of native string functions. 17 | 18 | It can also serve as a documentation source referencing the practical problems 19 | that arise when handling UTF-8 in PHP: Unicode concepts, related algorithms, 20 | bugs in PHP core, workarounds, etc. 21 | 22 | Version 1.2 adds best-fit mappings for UTF-8 to *Code Page* approximations. 23 | It also adds Unicode filesystem access under Windows, using preferably 24 | [wfio](https://github.com/kenjiuno/php-wfio) or a COM based fallback otherwise. 25 | 26 | Portability 27 | ----------- 28 | 29 | Unicode handling in PHP is best performed using a combo of `mbstring`, `iconv`, 30 | `intl` and `pcre` with the `u` flag enabled. But when an application is expected 31 | to run on many servers, you should be aware that these 4 extensions are not 32 | always enabled. 33 | 34 | Patchwork UTF-8 provides pure PHP implementations for 3 of those 4 extensions. 35 | `pcre` compiled with unicode support is required but is widely available. 36 | The following set of portability-fallbacks allows an application to run on a 37 | server even if one or more of those extensions are not enabled: 38 | 39 | - *utf8_encode, utf8_decode*, 40 | - `mbstring`: *mb_check_encoding, mb_convert_case, mb_convert_encoding, 41 | mb_decode_mimeheader, mb_detect_encoding, mb_detect_order, 42 | mb_encode_mimeheader, mb_encoding_aliases, mb_get_info, mb_http_input, 43 | mb_http_output, mb_internal_encoding, mb_language, mb_list_encodings, 44 | mb_output_handler, mb_strlen, mb_strpos, mb_strrpos, mb_strtolower, 45 | mb_strtoupper, mb_stripos, mb_stristr, mb_strrchr, mb_strrichr, mb_strripos, 46 | mb_strstr, mb_strwidth, mb_substitute_character, mb_substr, mb_substr_count*, 47 | - `iconv`: *iconv, iconv_mime_decode, iconv_mime_decode_headers, 48 | iconv_get_encoding, iconv_set_encoding, iconv_mime_encode, ob_iconv_handler, 49 | iconv_strlen, iconv_strpos, iconv_strrpos, iconv_substr*, 50 | - `intl`: *Normalizer, grapheme_extract, grapheme_stripos, grapheme_stristr, 51 | grapheme_strlen, grapheme_strpos, grapheme_strripos, grapheme_strrpos, 52 | grapheme_strstr, grapheme_substr, normalizer_is_normalized, 53 | normalizer_normalize*. 54 | 55 | Patchwork\Utf8 56 | -------------- 57 | 58 | [Grapheme clusters](http://unicode.org/reports/tr29/) should always be 59 | considered when working with generic Unicode strings. The `Patchwork\Utf8` 60 | class implements the quasi-complete set of native string functions that need 61 | UTF-8 grapheme clusters awareness. Function names, arguments and behavior 62 | carefully replicates native PHP string functions. 63 | 64 | Some more functions are also provided to help handling UTF-8 strings: 65 | 66 | - *filter()*: normalizes to UTF-8 NFC, converting from [CP-1252](http://wikipedia.org/wiki/CP-1252) when needed, 67 | - *isUtf8()*: checks if a string contains well formed UTF-8 data, 68 | - *toAscii()*: generic UTF-8 to ASCII transliteration, 69 | - *strtocasefold()*: unicode transformation for caseless matching, 70 | - *strtonatfold()*: generic case sensitive transformation for collation matching, 71 | - *strwidth()*: computes the width of a string when printed on a terminal, 72 | - *wrapPath()*: unicode filesystem access under Windows and other OSes. 73 | 74 | Mirrored string functions are: 75 | *strlen, substr, strpos, stripos, strrpos, strripos, strstr, stristr, strrchr, 76 | strrichr, strtolower, strtoupper, wordwrap, chr, count_chars, ltrim, ord, rtrim, 77 | trim, str_ireplace, str_pad, str_shuffle, str_split, str_word_count, strcmp, 78 | strnatcmp, strcasecmp, strnatcasecmp, strncasecmp, strncmp, strcspn, strpbrk, 79 | strrev, strspn, strtr, substr_compare, substr_count, substr_replace, ucfirst, 80 | lcfirst, ucwords, number_format, utf8_encode, utf8_decode, json_decode, 81 | filter_input, filter_input_array*. 82 | 83 | Notably missing (but hard to replicate) are *printf*-family functions. 84 | 85 | The implementation favors performance over full edge cases handling. 86 | It generally works on UTF-8 normalized strings and provides filters to get them. 87 | 88 | As the turkish locale requires special cares, a `Patchwork\TurkishUtf8` class 89 | is provided for working with this locale. It clones all the features of 90 | `Patchwork\Utf8` but knows about the turkish specifics. 91 | 92 | Usage 93 | ----- 94 | 95 | The recommended way to install Patchwork UTF-8 is [through 96 | composer](http://getcomposer.org). Just create a `composer.json` file and run 97 | the `php composer.phar install` command to install it: 98 | 99 | { 100 | "require": { 101 | "patchwork/utf8": "~1.2" 102 | } 103 | } 104 | 105 | Then, early in your bootstrap sequence, you have to configure your environment: 106 | 107 | ```php 108 | \Patchwork\Utf8\Bootup::initAll(); // Enables the portablity layer and configures PHP for UTF-8 109 | \Patchwork\Utf8\Bootup::filterRequestUri(); // Redirects to an UTF-8 encoded URL if it's not already the case 110 | \Patchwork\Utf8\Bootup::filterRequestInputs(); // Normalizes HTTP inputs to UTF-8 NFC 111 | ``` 112 | 113 | Run `phpunit` to see the code in action. 114 | 115 | Make sure that you are confident about using UTF-8 by reading 116 | [Character Sets / Character Encoding Issues](http://www.phpwact.org/php/i18n/charsets) 117 | and [Handling UTF-8 with PHP](http://www.phpwact.org/php/i18n/utf-8), 118 | or [PHP et UTF-8](http://julp.lescigales.org/articles/3-php-et-utf-8.html) for french readers. 119 | 120 | You should also get familiar with the concept of 121 | [Unicode Normalization](http://en.wikipedia.org/wiki/Unicode_equivalence) and 122 | [Grapheme Clusters](http://unicode.org/reports/tr29/). 123 | 124 | Do not blindly replace all use of PHP's string functions. Most of the time you 125 | will not need to, and you will be introducing a significant performance overhead 126 | to your application. 127 | 128 | Screen your input on the *outer perimeter* so that only well formed UTF-8 pass 129 | through. When dealing with badly formed UTF-8, you should not try to fix it 130 | (see [Unicode Security Considerations](http://www.unicode.org/reports/tr36/#Deletion_of_Noncharacters)). 131 | Instead, consider it as [CP-1252](http://wikipedia.org/wiki/CP-1252) and use 132 | `Patchwork\Utf8::utf8_encode()` to get an UTF-8 string. Don't forget also to 133 | choose one unicode normalization form and stick to it. NFC is now the defacto 134 | standard. `Patchwork\Utf8::filter()` implements this behavior: it converts from 135 | CP1252 and to NFC. 136 | 137 | This library is orthogonal to `mbstring.func_overload` and will not work if the 138 | php.ini setting is enabled. 139 | 140 | Licensing 141 | --------- 142 | 143 | Patchwork\Utf8 is free software; you can redistribute it and/or modify it under 144 | the terms of the (at your option): 145 | - [Apache License v2.0](http://apache.org/licenses/LICENSE-2.0.txt), or 146 | - [GNU General Public License v2.0](http://gnu.org/licenses/gpl-2.0.txt). 147 | 148 | Unicode handling requires tedious work to be implemented and maintained on the 149 | long run. As such, contributions such as unit tests, bug reports, comments or 150 | patches licensed under both licenses are really welcomed. 151 | 152 | I hope many projects could adopt this code and together help solve the unicode 153 | subject for PHP. 154 | -------------------------------------------------------------------------------- /appveyor.yml: -------------------------------------------------------------------------------- 1 | build: false 2 | platform: x86 3 | clone_folder: c:\projects\utf8 4 | 5 | cache: 6 | - c:\php -> appveyor.yml 7 | 8 | branches: 9 | only: 10 | - master 11 | 12 | init: 13 | - SET PATH=c:\php;%PATH% 14 | - SET COMPOSER_NO_INTERACTION=1 15 | - SET PHP=1 16 | 17 | install: 18 | - IF EXIST c:\php (SET PHP=0) ELSE (mkdir c:\php) 19 | - cd c:\php 20 | - IF %PHP%==1 appveyor DownloadFile https://github.com/symfony/binary-utils/releases/download/v0.1/php-5.5.9-nts-Win32-VC11-x86.zip 21 | - IF %PHP%==1 7z x php-5.5.9-nts-Win32-VC11-x86.zip -y >nul 22 | - IF %PHP%==1 del /Q *.zip 23 | - IF %PHP%==1 echo @php %%~dp0composer.phar %%* > composer.bat 24 | - IF %PHP%==1 copy /Y php.ini-development php.ini 25 | - IF %PHP%==1 echo max_execution_time=1200 >> php.ini 26 | - IF %PHP%==1 echo date.timezone="UTC" >> php.ini 27 | - IF %PHP%==1 echo extension_dir=ext >> php.ini 28 | - IF %PHP%==1 echo extension=php_openssl.dll >> php.ini 29 | - IF %PHP%==1 echo extension=php_intl.dll >> php.ini 30 | - IF %PHP%==1 echo extension=php_mbstring.dll >> php.ini 31 | - appveyor DownloadFile https://getcomposer.org/composer.phar 32 | - cd c:\projects\utf8 33 | - IF %APPVEYOR_REPO_BRANCH%==master (SET COMPOSER_ROOT_VERSION=dev-master) ELSE (SET COMPOSER_ROOT_VERSION=%APPVEYOR_REPO_BRANCH%.x-dev) 34 | - composer update --prefer-source --no-progress --ansi 35 | - vendor/bin/simple-phpunit install 36 | 37 | test_script: 38 | - vendor/bin/simple-phpunit 39 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "patchwork/utf8", 3 | "type": "library", 4 | "description": "Portable and performant UTF-8, Unicode and Grapheme Clusters for PHP", 5 | "keywords": ["utf8","utf-8","unicode","i18n","grapheme"], 6 | "homepage": "https://github.com/tchwork/utf8", 7 | "license": "(Apache-2.0 or GPL-2.0)", 8 | "authors": [ 9 | { 10 | "name": "Nicolas Grekas", 11 | "email": "p@tchwork.com" 12 | } 13 | ], 14 | "require": { 15 | "php": ">=5.3.0", 16 | "lib-pcre": ">=7.3" 17 | }, 18 | "suggest": { 19 | "ext-wfio": "Use WFIO for UTF-8 filesystem access on Windows", 20 | "ext-intl": "Use Intl for best performance", 21 | "ext-iconv": "Use iconv for best performance", 22 | "ext-mbstring": "Use Mbstring for best performance" 23 | }, 24 | "autoload": { 25 | "psr-4": {"Patchwork\\": "src/Patchwork/"}, 26 | "classmap": ["src/Normalizer.php"] 27 | }, 28 | "autoload-dev": { 29 | "files": ["tests/bootstrap.php"] 30 | }, 31 | "extra": { 32 | "branch-alias": { 33 | "dev-master": "1.3-dev" 34 | } 35 | }, 36 | "require-dev": { 37 | "symfony/phpunit-bridge": "^3.4|^4.4" 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /phpunit.xml.dist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | ./tests/ 16 | 17 | 18 | 19 | 20 | 21 | unicode 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /src/Normalizer.php: -------------------------------------------------------------------------------- 1 | $size || 0 > $start || 0 > $type || 2 < $type) { 57 | return false; 58 | } 59 | if (0 === $size) { 60 | return ''; 61 | } 62 | 63 | $next = $start; 64 | 65 | $s = preg_split('/('.GRAPHEME_CLUSTER_RX.')/u', "\r\n".$s, $size + 1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE); 66 | 67 | if (!isset($s[1])) { 68 | return false; 69 | } 70 | 71 | $i = 1; 72 | $ret = ''; 73 | 74 | do { 75 | if (GRAPHEME_EXTR_COUNT === $type) { 76 | --$size; 77 | } elseif (GRAPHEME_EXTR_MAXBYTES === $type) { 78 | $size -= strlen($s[$i]); 79 | } else { 80 | $size -= iconv_strlen($s[$i], 'UTF-8//IGNORE'); 81 | } 82 | 83 | if ($size >= 0) { 84 | $ret .= $s[$i]; 85 | } 86 | } while (isset($s[++$i]) && $size > 0); 87 | 88 | $next += strlen($ret); 89 | 90 | return $ret; 91 | } 92 | 93 | public static function grapheme_strlen($s) 94 | { 95 | preg_replace('/'.GRAPHEME_CLUSTER_RX.'/u', '', $s, -1, $len); 96 | 97 | return 0 === $len && '' !== $s ? null : $len; 98 | } 99 | 100 | public static function grapheme_substr($s, $start, $len = 2147483647) 101 | { 102 | preg_match_all('/'.GRAPHEME_CLUSTER_RX.'/u', $s, $s); 103 | 104 | $slen = count($s[0]); 105 | $start = (int) $start; 106 | 107 | if (0 > $start) { 108 | $start += $slen; 109 | } 110 | if (0 > $start) { 111 | return false; 112 | } 113 | if ($start >= $slen) { 114 | return false; 115 | } 116 | 117 | $rem = $slen - $start; 118 | 119 | if (0 > $len) { 120 | $len += $rem; 121 | } 122 | if (0 === $len) { 123 | return ''; 124 | } 125 | if (0 > $len) { 126 | return false; 127 | } 128 | if ($len > $rem) { 129 | $len = $rem; 130 | } 131 | 132 | return implode('', array_slice($s[0], $start, $len)); 133 | } 134 | 135 | public static function grapheme_substr_workaround62759($s, $start, $len) 136 | { 137 | // Intl based http://bugs.php.net/62759 and 55562 workaround 138 | 139 | if (2147483647 == $len) { 140 | return grapheme_substr($s, $start); 141 | } 142 | 143 | $s .= ''; 144 | $slen = grapheme_strlen($s); 145 | $start = (int) $start; 146 | 147 | if (0 > $start) { 148 | $start += $slen; 149 | } 150 | if (0 > $start) { 151 | return false; 152 | } 153 | if ($start >= $slen) { 154 | return false; 155 | } 156 | 157 | $rem = $slen - $start; 158 | 159 | if (0 > $len) { 160 | $len += $rem; 161 | } 162 | if (0 === $len) { 163 | return ''; 164 | } 165 | if (0 > $len) { 166 | return false; 167 | } 168 | if ($len > $rem) { 169 | $len = $rem; 170 | } 171 | 172 | return grapheme_substr($s, $start, $len); 173 | } 174 | 175 | public static function grapheme_strpos($s, $needle, $offset = 0) 176 | { 177 | return self::grapheme_position($s, $needle, $offset, 0); 178 | } 179 | 180 | public static function grapheme_stripos($s, $needle, $offset = 0) 181 | { 182 | return self::grapheme_position($s, $needle, $offset, 1); 183 | } 184 | 185 | public static function grapheme_strrpos($s, $needle, $offset = 0) 186 | { 187 | return self::grapheme_position($s, $needle, $offset, 2); 188 | } 189 | 190 | public static function grapheme_strripos($s, $needle, $offset = 0) 191 | { 192 | return self::grapheme_position($s, $needle, $offset, 3); 193 | } 194 | 195 | public static function grapheme_stristr($s, $needle, $beforeNeedle = false) 196 | { 197 | return mb_stristr($s, $needle, $beforeNeedle, 'UTF-8'); 198 | } 199 | 200 | public static function grapheme_strstr($s, $needle, $beforeNeedle = false) 201 | { 202 | return mb_strstr($s, $needle, $beforeNeedle, 'UTF-8'); 203 | } 204 | 205 | private static function grapheme_position($s, $needle, $offset, $mode) 206 | { 207 | if (!preg_match('/./us', $needle .= '')) { 208 | return false; 209 | } 210 | if (!preg_match('/./us', $s .= '')) { 211 | return false; 212 | } 213 | if ($offset > 0) { 214 | $s = self::grapheme_substr($s, $offset); 215 | } elseif ($offset < 0) { 216 | if (defined('HHVM_VERSION_ID') || PHP_VERSION_ID < 50535 || (50600 <= PHP_VERSION_ID && PHP_VERSION_ID < 50621) || (70000 <= PHP_VERSION_ID && PHP_VERSION_ID < 70006)) { 217 | $offset = 0; 218 | } else { 219 | return false; 220 | } 221 | } 222 | 223 | switch ($mode) { 224 | case 0: $needle = iconv_strpos($s, $needle, 0, 'UTF-8'); break; 225 | case 1: $needle = mb_stripos($s, $needle, 0, 'UTF-8'); break; 226 | case 2: $needle = iconv_strrpos($s, $needle, 'UTF-8'); break; 227 | default: $needle = mb_strripos($s, $needle, 0, 'UTF-8'); break; 228 | } 229 | 230 | return $needle ? self::grapheme_strlen(iconv_substr($s, 0, $needle, 'UTF-8')) + $offset : $needle; 231 | } 232 | } 233 | -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/Normalizer.php: -------------------------------------------------------------------------------- 1 | 2, "\xD0" => 2, "\xE0" => 3, "\xF0" => 4); 39 | private static $ASCII = "\x20\x65\x69\x61\x73\x6E\x74\x72\x6F\x6C\x75\x64\x5D\x5B\x63\x6D\x70\x27\x0A\x67\x7C\x68\x76\x2E\x66\x62\x2C\x3A\x3D\x2D\x71\x31\x30\x43\x32\x2A\x79\x78\x29\x28\x4C\x39\x41\x53\x2F\x50\x22\x45\x6A\x4D\x49\x6B\x33\x3E\x35\x54\x3C\x44\x34\x7D\x42\x7B\x38\x46\x77\x52\x36\x37\x55\x47\x4E\x3B\x4A\x7A\x56\x23\x48\x4F\x57\x5F\x26\x21\x4B\x3F\x58\x51\x25\x59\x5C\x09\x5A\x2B\x7E\x5E\x24\x40\x60\x7F\x00\x01\x02\x03\x04\x05\x06\x07\x08\x0B\x0C\x0D\x0E\x0F\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1A\x1B\x1C\x1D\x1E\x1F"; 40 | 41 | public static function isNormalized($s, $form = self::NFC) 42 | { 43 | if ($form <= self::NONE || self::NFKC < $form) { 44 | return false; 45 | } 46 | if (!isset($s[strspn($s .= '', self::$ASCII)])) { 47 | return true; 48 | } 49 | if (self::NFC === $form && preg_match('//u', $s) && !preg_match('/[^\x00-\x{2FF}]/u', $s)) { 50 | return true; 51 | } 52 | 53 | return false; // Pretend false as quick checks implementented in PHP won't be so quick 54 | } 55 | 56 | public static function normalize($s, $form = self::NFC) 57 | { 58 | if (!preg_match('//u', $s .= '')) { 59 | return false; 60 | } 61 | 62 | switch ($form) { 63 | case self::NONE: return $s; 64 | case self::NFC: $C = true; $K = false; break; 65 | case self::NFD: $C = false; $K = false; break; 66 | case self::NFKC: $C = true; $K = true; break; 67 | case self::NFKD: $C = false; $K = true; break; 68 | default: return false; 69 | } 70 | 71 | if ('' === $s) { 72 | return ''; 73 | } 74 | 75 | if ($K && null === self::$KD) { 76 | self::$KD = self::getData('compatibilityDecomposition'); 77 | } 78 | 79 | if (null === self::$D) { 80 | self::$D = self::getData('canonicalDecomposition'); 81 | self::$cC = self::getData('combiningClass'); 82 | } 83 | 84 | if (null !== $mbEncoding = (2 /* MB_OVERLOAD_STRING */ & (int) ini_get('mbstring.func_overload')) ? mb_internal_encoding() : null) { 85 | mb_internal_encoding('8bit'); 86 | } 87 | 88 | $r = self::decompose($s, $K); 89 | 90 | if ($C) { 91 | if (null === self::$C) { 92 | self::$C = self::getData('canonicalComposition'); 93 | } 94 | 95 | $r = self::recompose($r); 96 | } 97 | if (null !== $mbEncoding) { 98 | mb_internal_encoding($mbEncoding); 99 | } 100 | 101 | return $r; 102 | } 103 | 104 | private static function recompose($s) 105 | { 106 | $ASCII = self::$ASCII; 107 | $compMap = self::$C; 108 | $combClass = self::$cC; 109 | $ulenMask = self::$ulenMask; 110 | 111 | $result = $tail = ''; 112 | 113 | $i = $s[0] < "\x80" ? 1 : $ulenMask[$s[0] & "\xF0"]; 114 | $len = strlen($s); 115 | 116 | $lastUchr = substr($s, 0, $i); 117 | $lastUcls = isset($combClass[$lastUchr]) ? 256 : 0; 118 | 119 | while ($i < $len) { 120 | if ($s[$i] < "\x80") { 121 | // ASCII chars 122 | 123 | if ($tail) { 124 | $lastUchr .= $tail; 125 | $tail = ''; 126 | } 127 | 128 | if ($j = strspn($s, $ASCII, $i + 1)) { 129 | $lastUchr .= substr($s, $i, $j); 130 | $i += $j; 131 | } 132 | 133 | $result .= $lastUchr; 134 | $lastUchr = $s[$i]; 135 | $lastUcls = 0; 136 | ++$i; 137 | continue; 138 | } 139 | 140 | $ulen = $ulenMask[$s[$i] & "\xF0"]; 141 | $uchr = substr($s, $i, $ulen); 142 | 143 | if ($lastUchr < "\xE1\x84\x80" || "\xE1\x84\x92" < $lastUchr 144 | || $uchr < "\xE1\x85\xA1" || "\xE1\x85\xB5" < $uchr 145 | || $lastUcls) { 146 | // Table lookup and combining chars composition 147 | 148 | $ucls = isset($combClass[$uchr]) ? $combClass[$uchr] : 0; 149 | 150 | if (isset($compMap[$lastUchr.$uchr]) && (!$lastUcls || $lastUcls < $ucls)) { 151 | $lastUchr = $compMap[$lastUchr.$uchr]; 152 | } elseif ($lastUcls = $ucls) { 153 | $tail .= $uchr; 154 | } else { 155 | if ($tail) { 156 | $lastUchr .= $tail; 157 | $tail = ''; 158 | } 159 | 160 | $result .= $lastUchr; 161 | $lastUchr = $uchr; 162 | } 163 | } else { 164 | // Hangul chars 165 | 166 | $L = ord($lastUchr[2]) - 0x80; 167 | $V = ord($uchr[2]) - 0xA1; 168 | $T = 0; 169 | 170 | $uchr = substr($s, $i + $ulen, 3); 171 | 172 | if ("\xE1\x86\xA7" <= $uchr && $uchr <= "\xE1\x87\x82") { 173 | $T = ord($uchr[2]) - 0xA7; 174 | 0 > $T && $T += 0x40; 175 | $ulen += 3; 176 | } 177 | 178 | $L = 0xAC00 + ($L * 21 + $V) * 28 + $T; 179 | $lastUchr = chr(0xE0 | $L >> 12).chr(0x80 | $L >> 6 & 0x3F).chr(0x80 | $L & 0x3F); 180 | } 181 | 182 | $i += $ulen; 183 | } 184 | 185 | return $result.$lastUchr.$tail; 186 | } 187 | 188 | private static function decompose($s, $c) 189 | { 190 | $result = ''; 191 | 192 | $ASCII = self::$ASCII; 193 | $decompMap = self::$D; 194 | $combClass = self::$cC; 195 | $ulenMask = self::$ulenMask; 196 | if ($c) { 197 | $compatMap = self::$KD; 198 | } 199 | 200 | $c = array(); 201 | $i = 0; 202 | $len = strlen($s); 203 | 204 | while ($i < $len) { 205 | if ($s[$i] < "\x80") { 206 | // ASCII chars 207 | 208 | if ($c) { 209 | ksort($c); 210 | $result .= implode('', $c); 211 | $c = array(); 212 | } 213 | 214 | $j = 1 + strspn($s, $ASCII, $i + 1); 215 | $result .= substr($s, $i, $j); 216 | $i += $j; 217 | continue; 218 | } 219 | 220 | $ulen = $ulenMask[$s[$i] & "\xF0"]; 221 | $uchr = substr($s, $i, $ulen); 222 | $i += $ulen; 223 | 224 | if ($uchr < "\xEA\xB0\x80" || "\xED\x9E\xA3" < $uchr) { 225 | // Table lookup 226 | 227 | if ($uchr !== $j = isset($compatMap[$uchr]) ? $compatMap[$uchr] : (isset($decompMap[$uchr]) ? $decompMap[$uchr] : $uchr)) { 228 | $uchr = $j; 229 | 230 | $j = strlen($uchr); 231 | $ulen = $uchr[0] < "\x80" ? 1 : $ulenMask[$uchr[0] & "\xF0"]; 232 | 233 | if ($ulen != $j) { 234 | // Put trailing chars in $s 235 | 236 | $j -= $ulen; 237 | $i -= $j; 238 | 239 | if (0 > $i) { 240 | $s = str_repeat(' ', -$i).$s; 241 | $len -= $i; 242 | $i = 0; 243 | } 244 | 245 | while ($j--) { 246 | $s[$i + $j] = $uchr[$ulen + $j]; 247 | } 248 | 249 | $uchr = substr($uchr, 0, $ulen); 250 | } 251 | } 252 | if (isset($combClass[$uchr])) { 253 | // Combining chars, for sorting 254 | 255 | if (!isset($c[$combClass[$uchr]])) { 256 | $c[$combClass[$uchr]] = ''; 257 | } 258 | $c[$combClass[$uchr]] .= $uchr; 259 | continue; 260 | } 261 | } else { 262 | // Hangul chars 263 | 264 | $uchr = unpack('C*', $uchr); 265 | $j = (($uchr[1] - 224) << 12) + (($uchr[2] - 128) << 6) + $uchr[3] - 0xAC80; 266 | 267 | $uchr = "\xE1\x84".chr(0x80 + (int) ($j / 588)) 268 | ."\xE1\x85".chr(0xA1 + (int) (($j % 588) / 28)); 269 | 270 | if ($j %= 28) { 271 | $uchr .= $j < 25 272 | ? ("\xE1\x86".chr(0xA7 + $j)) 273 | : ("\xE1\x87".chr(0x67 + $j)); 274 | } 275 | } 276 | if ($c) { 277 | ksort($c); 278 | $result .= implode('', $c); 279 | $c = array(); 280 | } 281 | 282 | $result .= $uchr; 283 | } 284 | 285 | if ($c) { 286 | ksort($c); 287 | $result .= implode('', $c); 288 | } 289 | 290 | return $result; 291 | } 292 | 293 | private static function getData($file) 294 | { 295 | if (file_exists($file = __DIR__.'/unidata/'.$file.'.ser')) { 296 | return unserialize(file_get_contents($file)); 297 | } 298 | 299 | return false; 300 | } 301 | } 302 | -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/Xml.php: -------------------------------------------------------------------------------- 1 | > 1, $j = 0; $i < $len; ++$i, ++$j) { 25 | switch (true) { 26 | case $s[$i] < "\x80": $s[$j] = $s[$i]; break; 27 | case $s[$i] < "\xC0": $s[$j] = "\xC2"; $s[++$j] = $s[$i]; break; 28 | default: $s[$j] = "\xC3"; $s[++$j] = chr(ord($s[$i]) - 64); break; 29 | } 30 | } 31 | 32 | return substr($s, 0, $j); 33 | } 34 | 35 | public static function utf8_decode($s) 36 | { 37 | $s .= ''; 38 | $len = strlen($s); 39 | 40 | for ($i = 0, $j = 0; $i < $len; ++$i, ++$j) { 41 | switch ($s[$i] & "\xF0") { 42 | case "\xC0": 43 | case "\xD0": 44 | $c = (ord($s[$i] & "\x1F") << 6) | ord($s[++$i] & "\x3F"); 45 | $s[$j] = $c < 256 ? chr($c) : '?'; 46 | break; 47 | 48 | case "\xF0": ++$i; 49 | case "\xE0": 50 | $s[$j] = '?'; 51 | $i += 2; 52 | break; 53 | 54 | default: 55 | $s[$j] = $s[$i]; 56 | } 57 | } 58 | 59 | return substr($s, 0, $j); 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.big5.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.big5.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.cp037.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.cp037.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.cp1006.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.cp1006.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.cp1026.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.cp1026.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.cp424.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.cp424.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.cp437.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.cp437.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.cp500.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.cp500.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.cp737.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.cp737.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.cp775.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.cp775.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.cp850.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.cp850.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.cp852.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.cp852.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.cp855.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.cp855.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.cp856.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.cp856.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.cp857.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.cp857.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.cp860.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.cp860.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.cp861.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.cp861.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.cp862.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.cp862.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.cp863.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.cp863.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.cp864.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.cp864.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.cp865.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.cp865.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.cp866.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.cp866.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.cp869.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.cp869.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.cp874.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.cp874.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.cp875.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.cp875.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.cp932.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.cp932.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.cp936.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.cp936.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.cp949.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.cp949.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.cp950.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.cp950.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.gsm0338.ser: -------------------------------------------------------------------------------- 1 | a:138:{s:1:"";s:1:"@";s:1:"";s:2:"£";s:1:"";s:1:"$";s:1:"";s:2:"¥";s:1:"";s:2:"è";s:1:"";s:2:"é";s:1:"";s:2:"ù";s:1:"";s:2:"ì";s:1:"";s:2:"ò";s:1:" ";s:2:"ç";s:1:" 2 | ";s:1:" 3 | ";s:1:" ";s:2:"Ø";s:1:" ";s:2:"ø";s:1:" ";s:1:" ";s:1:"";s:2:"Å";s:1:"";s:2:"å";s:1:"";s:2:"Δ";s:1:"";s:1:"_";s:1:"";s:2:"Φ";s:1:"";s:2:"Γ";s:1:"";s:2:"Λ";s:1:"";s:2:"Ω";s:1:"";s:2:"Π";s:1:"";s:2:"Ψ";s:1:"";s:2:"Σ";s:1:"";s:2:"Θ";s:1:"";s:2:"Ξ";s:1:"";s:2:" ";s:2:" 4 | ";s:1:" ";s:2:"";s:1:"^";s:2:"(";s:1:"{";s:2:")";s:1:"}";s:2:"/";s:1:"\";s:2:"<";s:1:"[";s:2:"=";s:1:"~";s:2:">";s:1:"]";s:2:"@";s:1:"|";s:2:"e";s:3:"€";s:1:"";s:2:"Æ";s:1:"";s:2:"æ";s:1:"";s:2:"ß";s:1:"";s:2:"É";s:1:" ";s:1:" ";s:1:"!";s:1:"!";s:1:""";s:1:""";s:1:"#";s:1:"#";s:1:"$";s:2:"¤";s:1:"%";s:1:"%";s:1:"&";s:1:"&";s:1:"'";s:1:"'";s:1:"(";s:1:"(";s:1:")";s:1:")";s:1:"*";s:1:"*";s:1:"+";s:1:"+";s:1:",";s:1:",";s:1:"-";s:1:"-";s:1:".";s:1:".";s:1:"/";s:1:"/";i:0;s:1:"0";i:1;s:1:"1";i:2;s:1:"2";i:3;s:1:"3";i:4;s:1:"4";i:5;s:1:"5";i:6;s:1:"6";i:7;s:1:"7";i:8;s:1:"8";i:9;s:1:"9";s:1:":";s:1:":";s:1:";";s:1:";";s:1:"<";s:1:"<";s:1:"=";s:1:"=";s:1:">";s:1:">";s:1:"?";s:1:"?";s:1:"@";s:2:"¡";s:1:"A";s:1:"A";s:1:"B";s:1:"B";s:1:"C";s:1:"C";s:1:"D";s:1:"D";s:1:"E";s:1:"E";s:1:"F";s:1:"F";s:1:"G";s:1:"G";s:1:"H";s:1:"H";s:1:"I";s:1:"I";s:1:"J";s:1:"J";s:1:"K";s:1:"K";s:1:"L";s:1:"L";s:1:"M";s:1:"M";s:1:"N";s:1:"N";s:1:"O";s:1:"O";s:1:"P";s:1:"P";s:1:"Q";s:1:"Q";s:1:"R";s:1:"R";s:1:"S";s:1:"S";s:1:"T";s:1:"T";s:1:"U";s:1:"U";s:1:"V";s:1:"V";s:1:"W";s:1:"W";s:1:"X";s:1:"X";s:1:"Y";s:1:"Y";s:1:"Z";s:1:"Z";s:1:"[";s:2:"Ä";s:1:"\";s:2:"Ö";s:1:"]";s:2:"Ñ";s:1:"^";s:2:"Ü";s:1:"_";s:2:"§";s:1:"`";s:2:"¿";s:1:"a";s:1:"a";s:1:"b";s:1:"b";s:1:"c";s:1:"c";s:1:"d";s:1:"d";s:1:"e";s:1:"e";s:1:"f";s:1:"f";s:1:"g";s:1:"g";s:1:"h";s:1:"h";s:1:"i";s:1:"i";s:1:"j";s:1:"j";s:1:"k";s:1:"k";s:1:"l";s:1:"l";s:1:"m";s:1:"m";s:1:"n";s:1:"n";s:1:"o";s:1:"o";s:1:"p";s:1:"p";s:1:"q";s:1:"q";s:1:"r";s:1:"r";s:1:"s";s:1:"s";s:1:"t";s:1:"t";s:1:"u";s:1:"u";s:1:"v";s:1:"v";s:1:"w";s:1:"w";s:1:"x";s:1:"x";s:1:"y";s:1:"y";s:1:"z";s:1:"z";s:1:"{";s:2:"ä";s:1:"|";s:2:"ö";s:1:"}";s:2:"ñ";s:1:"~";s:2:"ü";s:1:"";s:2:"à";} -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.iso-8859-1.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.iso-8859-1.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.iso-8859-10.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.iso-8859-10.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.iso-8859-11.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.iso-8859-11.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.iso-8859-13.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.iso-8859-13.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.iso-8859-14.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.iso-8859-14.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.iso-8859-15.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.iso-8859-15.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.iso-8859-16.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.iso-8859-16.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.iso-8859-2.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.iso-8859-2.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.iso-8859-3.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.iso-8859-3.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.iso-8859-4.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.iso-8859-4.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.iso-8859-5.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.iso-8859-5.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.iso-8859-6.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.iso-8859-6.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.iso-8859-7.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.iso-8859-7.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.iso-8859-8.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.iso-8859-8.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.iso-8859-9.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.iso-8859-9.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.koi8-r.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.koi8-r.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.koi8-u.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.koi8-u.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.mazovia.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.mazovia.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.nextstep.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.nextstep.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.stdenc.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.stdenc.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.symbol.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.symbol.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.turkish.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.turkish.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.us-ascii-quotes.ser: -------------------------------------------------------------------------------- 1 | a:128:{s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:" ";s:1:" ";s:1:" 2 | ";s:1:" 3 | ";s:1:" ";s:1:" ";s:1:" ";s:1:" ";s:1:" ";s:1:" ";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:" ";s:1:" ";s:1:"!";s:1:"!";s:1:""";s:1:""";s:1:"#";s:1:"#";s:1:"$";s:1:"$";s:1:"%";s:1:"%";s:1:"&";s:1:"&";s:1:"'";s:3:"’";s:1:"(";s:1:"(";s:1:")";s:1:")";s:1:"*";s:1:"*";s:1:"+";s:1:"+";s:1:",";s:1:",";s:1:"-";s:1:"-";s:1:".";s:1:".";s:1:"/";s:1:"/";i:0;s:1:"0";i:1;s:1:"1";i:2;s:1:"2";i:3;s:1:"3";i:4;s:1:"4";i:5;s:1:"5";i:6;s:1:"6";i:7;s:1:"7";i:8;s:1:"8";i:9;s:1:"9";s:1:":";s:1:":";s:1:";";s:1:";";s:1:"<";s:1:"<";s:1:"=";s:1:"=";s:1:">";s:1:">";s:1:"?";s:1:"?";s:1:"@";s:1:"@";s:1:"A";s:1:"A";s:1:"B";s:1:"B";s:1:"C";s:1:"C";s:1:"D";s:1:"D";s:1:"E";s:1:"E";s:1:"F";s:1:"F";s:1:"G";s:1:"G";s:1:"H";s:1:"H";s:1:"I";s:1:"I";s:1:"J";s:1:"J";s:1:"K";s:1:"K";s:1:"L";s:1:"L";s:1:"M";s:1:"M";s:1:"N";s:1:"N";s:1:"O";s:1:"O";s:1:"P";s:1:"P";s:1:"Q";s:1:"Q";s:1:"R";s:1:"R";s:1:"S";s:1:"S";s:1:"T";s:1:"T";s:1:"U";s:1:"U";s:1:"V";s:1:"V";s:1:"W";s:1:"W";s:1:"X";s:1:"X";s:1:"Y";s:1:"Y";s:1:"Z";s:1:"Z";s:1:"[";s:1:"[";s:1:"\";s:1:"\";s:1:"]";s:1:"]";s:1:"^";s:1:"^";s:1:"_";s:1:"_";s:1:"`";s:3:"‘";s:1:"a";s:1:"a";s:1:"b";s:1:"b";s:1:"c";s:1:"c";s:1:"d";s:1:"d";s:1:"e";s:1:"e";s:1:"f";s:1:"f";s:1:"g";s:1:"g";s:1:"h";s:1:"h";s:1:"i";s:1:"i";s:1:"j";s:1:"j";s:1:"k";s:1:"k";s:1:"l";s:1:"l";s:1:"m";s:1:"m";s:1:"n";s:1:"n";s:1:"o";s:1:"o";s:1:"p";s:1:"p";s:1:"q";s:1:"q";s:1:"r";s:1:"r";s:1:"s";s:1:"s";s:1:"t";s:1:"t";s:1:"u";s:1:"u";s:1:"v";s:1:"v";s:1:"w";s:1:"w";s:1:"x";s:1:"x";s:1:"y";s:1:"y";s:1:"z";s:1:"z";s:1:"{";s:1:"{";s:1:"|";s:1:"|";s:1:"}";s:1:"}";s:1:"~";s:1:"~";s:1:"";s:1:"";} -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.us-ascii.ser: -------------------------------------------------------------------------------- 1 | a:128:{s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:" ";s:1:" ";s:1:" 2 | ";s:1:" 3 | ";s:1:" ";s:1:" ";s:1:" ";s:1:" ";s:1:" ";s:1:" ";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:"";s:1:" ";s:1:" ";s:1:"!";s:1:"!";s:1:""";s:1:""";s:1:"#";s:1:"#";s:1:"$";s:1:"$";s:1:"%";s:1:"%";s:1:"&";s:1:"&";s:1:"'";s:1:"'";s:1:"(";s:1:"(";s:1:")";s:1:")";s:1:"*";s:1:"*";s:1:"+";s:1:"+";s:1:",";s:1:",";s:1:"-";s:1:"-";s:1:".";s:1:".";s:1:"/";s:1:"/";i:0;s:1:"0";i:1;s:1:"1";i:2;s:1:"2";i:3;s:1:"3";i:4;s:1:"4";i:5;s:1:"5";i:6;s:1:"6";i:7;s:1:"7";i:8;s:1:"8";i:9;s:1:"9";s:1:":";s:1:":";s:1:";";s:1:";";s:1:"<";s:1:"<";s:1:"=";s:1:"=";s:1:">";s:1:">";s:1:"?";s:1:"?";s:1:"@";s:1:"@";s:1:"A";s:1:"A";s:1:"B";s:1:"B";s:1:"C";s:1:"C";s:1:"D";s:1:"D";s:1:"E";s:1:"E";s:1:"F";s:1:"F";s:1:"G";s:1:"G";s:1:"H";s:1:"H";s:1:"I";s:1:"I";s:1:"J";s:1:"J";s:1:"K";s:1:"K";s:1:"L";s:1:"L";s:1:"M";s:1:"M";s:1:"N";s:1:"N";s:1:"O";s:1:"O";s:1:"P";s:1:"P";s:1:"Q";s:1:"Q";s:1:"R";s:1:"R";s:1:"S";s:1:"S";s:1:"T";s:1:"T";s:1:"U";s:1:"U";s:1:"V";s:1:"V";s:1:"W";s:1:"W";s:1:"X";s:1:"X";s:1:"Y";s:1:"Y";s:1:"Z";s:1:"Z";s:1:"[";s:1:"[";s:1:"\";s:1:"\";s:1:"]";s:1:"]";s:1:"^";s:1:"^";s:1:"_";s:1:"_";s:1:"`";s:1:"`";s:1:"a";s:1:"a";s:1:"b";s:1:"b";s:1:"c";s:1:"c";s:1:"d";s:1:"d";s:1:"e";s:1:"e";s:1:"f";s:1:"f";s:1:"g";s:1:"g";s:1:"h";s:1:"h";s:1:"i";s:1:"i";s:1:"j";s:1:"j";s:1:"k";s:1:"k";s:1:"l";s:1:"l";s:1:"m";s:1:"m";s:1:"n";s:1:"n";s:1:"o";s:1:"o";s:1:"p";s:1:"p";s:1:"q";s:1:"q";s:1:"r";s:1:"r";s:1:"s";s:1:"s";s:1:"t";s:1:"t";s:1:"u";s:1:"u";s:1:"v";s:1:"v";s:1:"w";s:1:"w";s:1:"x";s:1:"x";s:1:"y";s:1:"y";s:1:"z";s:1:"z";s:1:"{";s:1:"{";s:1:"|";s:1:"|";s:1:"}";s:1:"}";s:1:"~";s:1:"~";s:1:"";s:1:"";} -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.windows-1250.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.windows-1250.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.windows-1251.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.windows-1251.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.windows-1252.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.windows-1252.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.windows-1253.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.windows-1253.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.windows-1254.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.windows-1254.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.windows-1255.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.windows-1255.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.windows-1256.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.windows-1256.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.windows-1257.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.windows-1257.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.windows-1258.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.windows-1258.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.x-mac-ce.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.x-mac-ce.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.x-mac-cyrillic.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.x-mac-cyrillic.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.x-mac-greek.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.x-mac-greek.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.x-mac-icelandic.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.x-mac-icelandic.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.x-mac-roman.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.x-mac-roman.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/from.zdingbat.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/from.zdingbat.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/to.gsm0338.ser: -------------------------------------------------------------------------------- 1 | a:154:{s:1:"";s:1:"";s:2:"Ç";s:1:" ";s:2:"Α";s:1:"A";s:2:"Β";s:1:"B";s:2:"Ε";s:1:"E";s:2:"Η";s:1:"H";s:2:"Ι";s:1:"I";s:2:"Κ";s:1:"K";s:2:"Μ";s:1:"M";s:2:"Ν";s:1:"N";s:2:"Ο";s:1:"O";s:2:"Ρ";s:1:"P";s:2:"Τ";s:1:"T";s:2:"Υ";s:1:"U";s:2:"Χ";s:1:"X";s:2:"Ζ";s:1:"Z";s:1:"@";s:1:"";s:2:"£";s:1:"";s:1:"$";s:1:"";s:2:"¥";s:1:"";s:2:"è";s:1:"";s:2:"é";s:1:"";s:2:"ù";s:1:"";s:2:"ì";s:1:"";s:2:"ò";s:1:"";s:2:"ç";s:1:" ";s:1:" 2 | ";s:1:" 3 | ";s:2:"Ø";s:1:" ";s:2:"ø";s:1:" ";s:1:" ";s:1:" ";s:2:"Å";s:1:"";s:2:"å";s:1:"";s:2:"Δ";s:1:"";s:1:"_";s:1:"";s:2:"Φ";s:1:"";s:2:"Γ";s:1:"";s:2:"Λ";s:1:"";s:2:"Ω";s:1:"";s:2:"Π";s:1:"";s:2:"Ψ";s:1:"";s:2:"Σ";s:1:"";s:2:"Θ";s:1:"";s:2:"Ξ";s:1:"";s:2:" ";s:1:"";s:1:" ";s:2:" 4 | ";s:1:"^";s:2:"";s:1:"{";s:2:"(";s:1:"}";s:2:")";s:1:"\";s:2:"/";s:1:"[";s:2:"<";s:1:"~";s:2:"=";s:1:"]";s:2:">";s:1:"|";s:2:"@";s:3:"€";s:2:"e";s:2:"Æ";s:1:"";s:2:"æ";s:1:"";s:2:"ß";s:1:"";s:2:"É";s:1:"";s:1:" ";s:1:" ";s:1:"!";s:1:"!";s:1:""";s:1:""";s:1:"#";s:1:"#";s:2:"¤";s:1:"$";s:1:"%";s:1:"%";s:1:"&";s:1:"&";s:1:"'";s:1:"'";s:1:"(";s:1:"(";s:1:")";s:1:")";s:1:"*";s:1:"*";s:1:"+";s:1:"+";s:1:",";s:1:",";s:1:"-";s:1:"-";s:1:".";s:1:".";s:1:"/";s:1:"/";i:0;i:0;i:1;i:1;i:2;i:2;i:3;i:3;i:4;i:4;i:5;i:5;i:6;i:6;i:7;i:7;i:8;i:8;i:9;i:9;s:1:":";s:1:":";s:1:";";s:1:";";s:1:"<";s:1:"<";s:1:"=";s:1:"=";s:1:">";s:1:">";s:1:"?";s:1:"?";s:2:"¡";s:1:"@";s:1:"A";s:1:"A";s:1:"B";s:1:"B";s:1:"C";s:1:"C";s:1:"D";s:1:"D";s:1:"E";s:1:"E";s:1:"F";s:1:"F";s:1:"G";s:1:"G";s:1:"H";s:1:"H";s:1:"I";s:1:"I";s:1:"J";s:1:"J";s:1:"K";s:1:"K";s:1:"L";s:1:"L";s:1:"M";s:1:"M";s:1:"N";s:1:"N";s:1:"O";s:1:"O";s:1:"P";s:1:"P";s:1:"Q";s:1:"Q";s:1:"R";s:1:"R";s:1:"S";s:1:"S";s:1:"T";s:1:"T";s:1:"U";s:1:"U";s:1:"V";s:1:"V";s:1:"W";s:1:"W";s:1:"X";s:1:"X";s:1:"Y";s:1:"Y";s:1:"Z";s:1:"Z";s:2:"Ä";s:1:"[";s:2:"Ö";s:1:"\";s:2:"Ñ";s:1:"]";s:2:"Ü";s:1:"^";s:2:"§";s:1:"_";s:2:"¿";s:1:"`";s:1:"a";s:1:"a";s:1:"b";s:1:"b";s:1:"c";s:1:"c";s:1:"d";s:1:"d";s:1:"e";s:1:"e";s:1:"f";s:1:"f";s:1:"g";s:1:"g";s:1:"h";s:1:"h";s:1:"i";s:1:"i";s:1:"j";s:1:"j";s:1:"k";s:1:"k";s:1:"l";s:1:"l";s:1:"m";s:1:"m";s:1:"n";s:1:"n";s:1:"o";s:1:"o";s:1:"p";s:1:"p";s:1:"q";s:1:"q";s:1:"r";s:1:"r";s:1:"s";s:1:"s";s:1:"t";s:1:"t";s:1:"u";s:1:"u";s:1:"v";s:1:"v";s:1:"w";s:1:"w";s:1:"x";s:1:"x";s:1:"y";s:1:"y";s:1:"z";s:1:"z";s:2:"ä";s:1:"{";s:2:"ö";s:1:"|";s:2:"ñ";s:1:"}";s:2:"ü";s:1:"~";s:2:"à";s:1:"";} -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/to.mazovia.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/to.mazovia.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/to.stdenc.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/to.stdenc.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/to.symbol.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/to.symbol.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/charset/to.zdingbat.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/PHP/Shim/charset/to.zdingbat.ser -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/unidata/canonicalComposition.ser: -------------------------------------------------------------------------------- 1 | a:940:{s:3:"À";s:2:"À";s:3:"Á";s:2:"Á";s:3:"Â";s:2:"Â";s:3:"Ã";s:2:"Ã";s:3:"Ä";s:2:"Ä";s:3:"Å";s:2:"Å";s:3:"Ç";s:2:"Ç";s:3:"È";s:2:"È";s:3:"É";s:2:"É";s:3:"Ê";s:2:"Ê";s:3:"Ë";s:2:"Ë";s:3:"Ì";s:2:"Ì";s:3:"Í";s:2:"Í";s:3:"Î";s:2:"Î";s:3:"Ï";s:2:"Ï";s:3:"Ñ";s:2:"Ñ";s:3:"Ò";s:2:"Ò";s:3:"Ó";s:2:"Ó";s:3:"Ô";s:2:"Ô";s:3:"Õ";s:2:"Õ";s:3:"Ö";s:2:"Ö";s:3:"Ù";s:2:"Ù";s:3:"Ú";s:2:"Ú";s:3:"Û";s:2:"Û";s:3:"Ü";s:2:"Ü";s:3:"Ý";s:2:"Ý";s:3:"à";s:2:"à";s:3:"á";s:2:"á";s:3:"â";s:2:"â";s:3:"ã";s:2:"ã";s:3:"ä";s:2:"ä";s:3:"å";s:2:"å";s:3:"ç";s:2:"ç";s:3:"è";s:2:"è";s:3:"é";s:2:"é";s:3:"ê";s:2:"ê";s:3:"ë";s:2:"ë";s:3:"ì";s:2:"ì";s:3:"í";s:2:"í";s:3:"î";s:2:"î";s:3:"ï";s:2:"ï";s:3:"ñ";s:2:"ñ";s:3:"ò";s:2:"ò";s:3:"ó";s:2:"ó";s:3:"ô";s:2:"ô";s:3:"õ";s:2:"õ";s:3:"ö";s:2:"ö";s:3:"ù";s:2:"ù";s:3:"ú";s:2:"ú";s:3:"û";s:2:"û";s:3:"ü";s:2:"ü";s:3:"ý";s:2:"ý";s:3:"ÿ";s:2:"ÿ";s:3:"Ā";s:2:"Ā";s:3:"ā";s:2:"ā";s:3:"Ă";s:2:"Ă";s:3:"ă";s:2:"ă";s:3:"Ą";s:2:"Ą";s:3:"ą";s:2:"ą";s:3:"Ć";s:2:"Ć";s:3:"ć";s:2:"ć";s:3:"Ĉ";s:2:"Ĉ";s:3:"ĉ";s:2:"ĉ";s:3:"Ċ";s:2:"Ċ";s:3:"ċ";s:2:"ċ";s:3:"Č";s:2:"Č";s:3:"č";s:2:"č";s:3:"Ď";s:2:"Ď";s:3:"ď";s:2:"ď";s:3:"Ē";s:2:"Ē";s:3:"ē";s:2:"ē";s:3:"Ĕ";s:2:"Ĕ";s:3:"ĕ";s:2:"ĕ";s:3:"Ė";s:2:"Ė";s:3:"ė";s:2:"ė";s:3:"Ę";s:2:"Ę";s:3:"ę";s:2:"ę";s:3:"Ě";s:2:"Ě";s:3:"ě";s:2:"ě";s:3:"Ĝ";s:2:"Ĝ";s:3:"ĝ";s:2:"ĝ";s:3:"Ğ";s:2:"Ğ";s:3:"ğ";s:2:"ğ";s:3:"Ġ";s:2:"Ġ";s:3:"ġ";s:2:"ġ";s:3:"Ģ";s:2:"Ģ";s:3:"ģ";s:2:"ģ";s:3:"Ĥ";s:2:"Ĥ";s:3:"ĥ";s:2:"ĥ";s:3:"Ĩ";s:2:"Ĩ";s:3:"ĩ";s:2:"ĩ";s:3:"Ī";s:2:"Ī";s:3:"ī";s:2:"ī";s:3:"Ĭ";s:2:"Ĭ";s:3:"ĭ";s:2:"ĭ";s:3:"Į";s:2:"Į";s:3:"į";s:2:"į";s:3:"İ";s:2:"İ";s:3:"Ĵ";s:2:"Ĵ";s:3:"ĵ";s:2:"ĵ";s:3:"Ķ";s:2:"Ķ";s:3:"ķ";s:2:"ķ";s:3:"Ĺ";s:2:"Ĺ";s:3:"ĺ";s:2:"ĺ";s:3:"Ļ";s:2:"Ļ";s:3:"ļ";s:2:"ļ";s:3:"Ľ";s:2:"Ľ";s:3:"ľ";s:2:"ľ";s:3:"Ń";s:2:"Ń";s:3:"ń";s:2:"ń";s:3:"Ņ";s:2:"Ņ";s:3:"ņ";s:2:"ņ";s:3:"Ň";s:2:"Ň";s:3:"ň";s:2:"ň";s:3:"Ō";s:2:"Ō";s:3:"ō";s:2:"ō";s:3:"Ŏ";s:2:"Ŏ";s:3:"ŏ";s:2:"ŏ";s:3:"Ő";s:2:"Ő";s:3:"ő";s:2:"ő";s:3:"Ŕ";s:2:"Ŕ";s:3:"ŕ";s:2:"ŕ";s:3:"Ŗ";s:2:"Ŗ";s:3:"ŗ";s:2:"ŗ";s:3:"Ř";s:2:"Ř";s:3:"ř";s:2:"ř";s:3:"Ś";s:2:"Ś";s:3:"ś";s:2:"ś";s:3:"Ŝ";s:2:"Ŝ";s:3:"ŝ";s:2:"ŝ";s:3:"Ş";s:2:"Ş";s:3:"ş";s:2:"ş";s:3:"Š";s:2:"Š";s:3:"š";s:2:"š";s:3:"Ţ";s:2:"Ţ";s:3:"ţ";s:2:"ţ";s:3:"Ť";s:2:"Ť";s:3:"ť";s:2:"ť";s:3:"Ũ";s:2:"Ũ";s:3:"ũ";s:2:"ũ";s:3:"Ū";s:2:"Ū";s:3:"ū";s:2:"ū";s:3:"Ŭ";s:2:"Ŭ";s:3:"ŭ";s:2:"ŭ";s:3:"Ů";s:2:"Ů";s:3:"ů";s:2:"ů";s:3:"Ű";s:2:"Ű";s:3:"ű";s:2:"ű";s:3:"Ų";s:2:"Ų";s:3:"ų";s:2:"ų";s:3:"Ŵ";s:2:"Ŵ";s:3:"ŵ";s:2:"ŵ";s:3:"Ŷ";s:2:"Ŷ";s:3:"ŷ";s:2:"ŷ";s:3:"Ÿ";s:2:"Ÿ";s:3:"Ź";s:2:"Ź";s:3:"ź";s:2:"ź";s:3:"Ż";s:2:"Ż";s:3:"ż";s:2:"ż";s:3:"Ž";s:2:"Ž";s:3:"ž";s:2:"ž";s:3:"Ơ";s:2:"Ơ";s:3:"ơ";s:2:"ơ";s:3:"Ư";s:2:"Ư";s:3:"ư";s:2:"ư";s:3:"Ǎ";s:2:"Ǎ";s:3:"ǎ";s:2:"ǎ";s:3:"Ǐ";s:2:"Ǐ";s:3:"ǐ";s:2:"ǐ";s:3:"Ǒ";s:2:"Ǒ";s:3:"ǒ";s:2:"ǒ";s:3:"Ǔ";s:2:"Ǔ";s:3:"ǔ";s:2:"ǔ";s:4:"Ǖ";s:2:"Ǖ";s:4:"ǖ";s:2:"ǖ";s:4:"Ǘ";s:2:"Ǘ";s:4:"ǘ";s:2:"ǘ";s:4:"Ǚ";s:2:"Ǚ";s:4:"ǚ";s:2:"ǚ";s:4:"Ǜ";s:2:"Ǜ";s:4:"ǜ";s:2:"ǜ";s:4:"Ǟ";s:2:"Ǟ";s:4:"ǟ";s:2:"ǟ";s:4:"Ǡ";s:2:"Ǡ";s:4:"ǡ";s:2:"ǡ";s:4:"Ǣ";s:2:"Ǣ";s:4:"ǣ";s:2:"ǣ";s:3:"Ǧ";s:2:"Ǧ";s:3:"ǧ";s:2:"ǧ";s:3:"Ǩ";s:2:"Ǩ";s:3:"ǩ";s:2:"ǩ";s:3:"Ǫ";s:2:"Ǫ";s:3:"ǫ";s:2:"ǫ";s:4:"Ǭ";s:2:"Ǭ";s:4:"ǭ";s:2:"ǭ";s:4:"Ǯ";s:2:"Ǯ";s:4:"ǯ";s:2:"ǯ";s:3:"ǰ";s:2:"ǰ";s:3:"Ǵ";s:2:"Ǵ";s:3:"ǵ";s:2:"ǵ";s:3:"Ǹ";s:2:"Ǹ";s:3:"ǹ";s:2:"ǹ";s:4:"Ǻ";s:2:"Ǻ";s:4:"ǻ";s:2:"ǻ";s:4:"Ǽ";s:2:"Ǽ";s:4:"ǽ";s:2:"ǽ";s:4:"Ǿ";s:2:"Ǿ";s:4:"ǿ";s:2:"ǿ";s:3:"Ȁ";s:2:"Ȁ";s:3:"ȁ";s:2:"ȁ";s:3:"Ȃ";s:2:"Ȃ";s:3:"ȃ";s:2:"ȃ";s:3:"Ȅ";s:2:"Ȅ";s:3:"ȅ";s:2:"ȅ";s:3:"Ȇ";s:2:"Ȇ";s:3:"ȇ";s:2:"ȇ";s:3:"Ȉ";s:2:"Ȉ";s:3:"ȉ";s:2:"ȉ";s:3:"Ȋ";s:2:"Ȋ";s:3:"ȋ";s:2:"ȋ";s:3:"Ȍ";s:2:"Ȍ";s:3:"ȍ";s:2:"ȍ";s:3:"Ȏ";s:2:"Ȏ";s:3:"ȏ";s:2:"ȏ";s:3:"Ȑ";s:2:"Ȑ";s:3:"ȑ";s:2:"ȑ";s:3:"Ȓ";s:2:"Ȓ";s:3:"ȓ";s:2:"ȓ";s:3:"Ȕ";s:2:"Ȕ";s:3:"ȕ";s:2:"ȕ";s:3:"Ȗ";s:2:"Ȗ";s:3:"ȗ";s:2:"ȗ";s:3:"Ș";s:2:"Ș";s:3:"ș";s:2:"ș";s:3:"Ț";s:2:"Ț";s:3:"ț";s:2:"ț";s:3:"Ȟ";s:2:"Ȟ";s:3:"ȟ";s:2:"ȟ";s:3:"Ȧ";s:2:"Ȧ";s:3:"ȧ";s:2:"ȧ";s:3:"Ȩ";s:2:"Ȩ";s:3:"ȩ";s:2:"ȩ";s:4:"Ȫ";s:2:"Ȫ";s:4:"ȫ";s:2:"ȫ";s:4:"Ȭ";s:2:"Ȭ";s:4:"ȭ";s:2:"ȭ";s:3:"Ȯ";s:2:"Ȯ";s:3:"ȯ";s:2:"ȯ";s:4:"Ȱ";s:2:"Ȱ";s:4:"ȱ";s:2:"ȱ";s:3:"Ȳ";s:2:"Ȳ";s:3:"ȳ";s:2:"ȳ";s:4:"΅";s:2:"΅";s:4:"Ά";s:2:"Ά";s:4:"Έ";s:2:"Έ";s:4:"Ή";s:2:"Ή";s:4:"Ί";s:2:"Ί";s:4:"Ό";s:2:"Ό";s:4:"Ύ";s:2:"Ύ";s:4:"Ώ";s:2:"Ώ";s:4:"ΐ";s:2:"ΐ";s:4:"Ϊ";s:2:"Ϊ";s:4:"Ϋ";s:2:"Ϋ";s:4:"ά";s:2:"ά";s:4:"έ";s:2:"έ";s:4:"ή";s:2:"ή";s:4:"ί";s:2:"ί";s:4:"ΰ";s:2:"ΰ";s:4:"ϊ";s:2:"ϊ";s:4:"ϋ";s:2:"ϋ";s:4:"ό";s:2:"ό";s:4:"ύ";s:2:"ύ";s:4:"ώ";s:2:"ώ";s:4:"ϓ";s:2:"ϓ";s:4:"ϔ";s:2:"ϔ";s:4:"Ѐ";s:2:"Ѐ";s:4:"Ё";s:2:"Ё";s:4:"Ѓ";s:2:"Ѓ";s:4:"Ї";s:2:"Ї";s:4:"Ќ";s:2:"Ќ";s:4:"Ѝ";s:2:"Ѝ";s:4:"Ў";s:2:"Ў";s:4:"Й";s:2:"Й";s:4:"й";s:2:"й";s:4:"ѐ";s:2:"ѐ";s:4:"ё";s:2:"ё";s:4:"ѓ";s:2:"ѓ";s:4:"ї";s:2:"ї";s:4:"ќ";s:2:"ќ";s:4:"ѝ";s:2:"ѝ";s:4:"ў";s:2:"ў";s:4:"Ѷ";s:2:"Ѷ";s:4:"ѷ";s:2:"ѷ";s:4:"Ӂ";s:2:"Ӂ";s:4:"ӂ";s:2:"ӂ";s:4:"Ӑ";s:2:"Ӑ";s:4:"ӑ";s:2:"ӑ";s:4:"Ӓ";s:2:"Ӓ";s:4:"ӓ";s:2:"ӓ";s:4:"Ӗ";s:2:"Ӗ";s:4:"ӗ";s:2:"ӗ";s:4:"Ӛ";s:2:"Ӛ";s:4:"ӛ";s:2:"ӛ";s:4:"Ӝ";s:2:"Ӝ";s:4:"ӝ";s:2:"ӝ";s:4:"Ӟ";s:2:"Ӟ";s:4:"ӟ";s:2:"ӟ";s:4:"Ӣ";s:2:"Ӣ";s:4:"ӣ";s:2:"ӣ";s:4:"Ӥ";s:2:"Ӥ";s:4:"ӥ";s:2:"ӥ";s:4:"Ӧ";s:2:"Ӧ";s:4:"ӧ";s:2:"ӧ";s:4:"Ӫ";s:2:"Ӫ";s:4:"ӫ";s:2:"ӫ";s:4:"Ӭ";s:2:"Ӭ";s:4:"ӭ";s:2:"ӭ";s:4:"Ӯ";s:2:"Ӯ";s:4:"ӯ";s:2:"ӯ";s:4:"Ӱ";s:2:"Ӱ";s:4:"ӱ";s:2:"ӱ";s:4:"Ӳ";s:2:"Ӳ";s:4:"ӳ";s:2:"ӳ";s:4:"Ӵ";s:2:"Ӵ";s:4:"ӵ";s:2:"ӵ";s:4:"Ӹ";s:2:"Ӹ";s:4:"ӹ";s:2:"ӹ";s:4:"آ";s:2:"آ";s:4:"أ";s:2:"أ";s:4:"ؤ";s:2:"ؤ";s:4:"إ";s:2:"إ";s:4:"ئ";s:2:"ئ";s:4:"ۀ";s:2:"ۀ";s:4:"ۂ";s:2:"ۂ";s:4:"ۓ";s:2:"ۓ";s:6:"ऩ";s:3:"ऩ";s:6:"ऱ";s:3:"ऱ";s:6:"ऴ";s:3:"ऴ";s:6:"ো";s:3:"ো";s:6:"ৌ";s:3:"ৌ";s:6:"ୈ";s:3:"ୈ";s:6:"ୋ";s:3:"ୋ";s:6:"ୌ";s:3:"ୌ";s:6:"ஔ";s:3:"ஔ";s:6:"ொ";s:3:"ொ";s:6:"ோ";s:3:"ோ";s:6:"ௌ";s:3:"ௌ";s:6:"ై";s:3:"ై";s:6:"ೀ";s:3:"ೀ";s:6:"ೇ";s:3:"ೇ";s:6:"ೈ";s:3:"ೈ";s:6:"ೊ";s:3:"ೊ";s:6:"ೋ";s:3:"ೋ";s:6:"ൊ";s:3:"ൊ";s:6:"ോ";s:3:"ോ";s:6:"ൌ";s:3:"ൌ";s:6:"ේ";s:3:"ේ";s:6:"ො";s:3:"ො";s:6:"ෝ";s:3:"ෝ";s:6:"ෞ";s:3:"ෞ";s:6:"ဦ";s:3:"ဦ";s:6:"ᬆ";s:3:"ᬆ";s:6:"ᬈ";s:3:"ᬈ";s:6:"ᬊ";s:3:"ᬊ";s:6:"ᬌ";s:3:"ᬌ";s:6:"ᬎ";s:3:"ᬎ";s:6:"ᬒ";s:3:"ᬒ";s:6:"ᬻ";s:3:"ᬻ";s:6:"ᬽ";s:3:"ᬽ";s:6:"ᭀ";s:3:"ᭀ";s:6:"ᭁ";s:3:"ᭁ";s:6:"ᭃ";s:3:"ᭃ";s:3:"Ḁ";s:3:"Ḁ";s:3:"ḁ";s:3:"ḁ";s:3:"Ḃ";s:3:"Ḃ";s:3:"ḃ";s:3:"ḃ";s:3:"Ḅ";s:3:"Ḅ";s:3:"ḅ";s:3:"ḅ";s:3:"Ḇ";s:3:"Ḇ";s:3:"ḇ";s:3:"ḇ";s:4:"Ḉ";s:3:"Ḉ";s:4:"ḉ";s:3:"ḉ";s:3:"Ḋ";s:3:"Ḋ";s:3:"ḋ";s:3:"ḋ";s:3:"Ḍ";s:3:"Ḍ";s:3:"ḍ";s:3:"ḍ";s:3:"Ḏ";s:3:"Ḏ";s:3:"ḏ";s:3:"ḏ";s:3:"Ḑ";s:3:"Ḑ";s:3:"ḑ";s:3:"ḑ";s:3:"Ḓ";s:3:"Ḓ";s:3:"ḓ";s:3:"ḓ";s:4:"Ḕ";s:3:"Ḕ";s:4:"ḕ";s:3:"ḕ";s:4:"Ḗ";s:3:"Ḗ";s:4:"ḗ";s:3:"ḗ";s:3:"Ḙ";s:3:"Ḙ";s:3:"ḙ";s:3:"ḙ";s:3:"Ḛ";s:3:"Ḛ";s:3:"ḛ";s:3:"ḛ";s:4:"Ḝ";s:3:"Ḝ";s:4:"ḝ";s:3:"ḝ";s:3:"Ḟ";s:3:"Ḟ";s:3:"ḟ";s:3:"ḟ";s:3:"Ḡ";s:3:"Ḡ";s:3:"ḡ";s:3:"ḡ";s:3:"Ḣ";s:3:"Ḣ";s:3:"ḣ";s:3:"ḣ";s:3:"Ḥ";s:3:"Ḥ";s:3:"ḥ";s:3:"ḥ";s:3:"Ḧ";s:3:"Ḧ";s:3:"ḧ";s:3:"ḧ";s:3:"Ḩ";s:3:"Ḩ";s:3:"ḩ";s:3:"ḩ";s:3:"Ḫ";s:3:"Ḫ";s:3:"ḫ";s:3:"ḫ";s:3:"Ḭ";s:3:"Ḭ";s:3:"ḭ";s:3:"ḭ";s:4:"Ḯ";s:3:"Ḯ";s:4:"ḯ";s:3:"ḯ";s:3:"Ḱ";s:3:"Ḱ";s:3:"ḱ";s:3:"ḱ";s:3:"Ḳ";s:3:"Ḳ";s:3:"ḳ";s:3:"ḳ";s:3:"Ḵ";s:3:"Ḵ";s:3:"ḵ";s:3:"ḵ";s:3:"Ḷ";s:3:"Ḷ";s:3:"ḷ";s:3:"ḷ";s:5:"Ḹ";s:3:"Ḹ";s:5:"ḹ";s:3:"ḹ";s:3:"Ḻ";s:3:"Ḻ";s:3:"ḻ";s:3:"ḻ";s:3:"Ḽ";s:3:"Ḽ";s:3:"ḽ";s:3:"ḽ";s:3:"Ḿ";s:3:"Ḿ";s:3:"ḿ";s:3:"ḿ";s:3:"Ṁ";s:3:"Ṁ";s:3:"ṁ";s:3:"ṁ";s:3:"Ṃ";s:3:"Ṃ";s:3:"ṃ";s:3:"ṃ";s:3:"Ṅ";s:3:"Ṅ";s:3:"ṅ";s:3:"ṅ";s:3:"Ṇ";s:3:"Ṇ";s:3:"ṇ";s:3:"ṇ";s:3:"Ṉ";s:3:"Ṉ";s:3:"ṉ";s:3:"ṉ";s:3:"Ṋ";s:3:"Ṋ";s:3:"ṋ";s:3:"ṋ";s:4:"Ṍ";s:3:"Ṍ";s:4:"ṍ";s:3:"ṍ";s:4:"Ṏ";s:3:"Ṏ";s:4:"ṏ";s:3:"ṏ";s:4:"Ṑ";s:3:"Ṑ";s:4:"ṑ";s:3:"ṑ";s:4:"Ṓ";s:3:"Ṓ";s:4:"ṓ";s:3:"ṓ";s:3:"Ṕ";s:3:"Ṕ";s:3:"ṕ";s:3:"ṕ";s:3:"Ṗ";s:3:"Ṗ";s:3:"ṗ";s:3:"ṗ";s:3:"Ṙ";s:3:"Ṙ";s:3:"ṙ";s:3:"ṙ";s:3:"Ṛ";s:3:"Ṛ";s:3:"ṛ";s:3:"ṛ";s:5:"Ṝ";s:3:"Ṝ";s:5:"ṝ";s:3:"ṝ";s:3:"Ṟ";s:3:"Ṟ";s:3:"ṟ";s:3:"ṟ";s:3:"Ṡ";s:3:"Ṡ";s:3:"ṡ";s:3:"ṡ";s:3:"Ṣ";s:3:"Ṣ";s:3:"ṣ";s:3:"ṣ";s:4:"Ṥ";s:3:"Ṥ";s:4:"ṥ";s:3:"ṥ";s:4:"Ṧ";s:3:"Ṧ";s:4:"ṧ";s:3:"ṧ";s:5:"Ṩ";s:3:"Ṩ";s:5:"ṩ";s:3:"ṩ";s:3:"Ṫ";s:3:"Ṫ";s:3:"ṫ";s:3:"ṫ";s:3:"Ṭ";s:3:"Ṭ";s:3:"ṭ";s:3:"ṭ";s:3:"Ṯ";s:3:"Ṯ";s:3:"ṯ";s:3:"ṯ";s:3:"Ṱ";s:3:"Ṱ";s:3:"ṱ";s:3:"ṱ";s:3:"Ṳ";s:3:"Ṳ";s:3:"ṳ";s:3:"ṳ";s:3:"Ṵ";s:3:"Ṵ";s:3:"ṵ";s:3:"ṵ";s:3:"Ṷ";s:3:"Ṷ";s:3:"ṷ";s:3:"ṷ";s:4:"Ṹ";s:3:"Ṹ";s:4:"ṹ";s:3:"ṹ";s:4:"Ṻ";s:3:"Ṻ";s:4:"ṻ";s:3:"ṻ";s:3:"Ṽ";s:3:"Ṽ";s:3:"ṽ";s:3:"ṽ";s:3:"Ṿ";s:3:"Ṿ";s:3:"ṿ";s:3:"ṿ";s:3:"Ẁ";s:3:"Ẁ";s:3:"ẁ";s:3:"ẁ";s:3:"Ẃ";s:3:"Ẃ";s:3:"ẃ";s:3:"ẃ";s:3:"Ẅ";s:3:"Ẅ";s:3:"ẅ";s:3:"ẅ";s:3:"Ẇ";s:3:"Ẇ";s:3:"ẇ";s:3:"ẇ";s:3:"Ẉ";s:3:"Ẉ";s:3:"ẉ";s:3:"ẉ";s:3:"Ẋ";s:3:"Ẋ";s:3:"ẋ";s:3:"ẋ";s:3:"Ẍ";s:3:"Ẍ";s:3:"ẍ";s:3:"ẍ";s:3:"Ẏ";s:3:"Ẏ";s:3:"ẏ";s:3:"ẏ";s:3:"Ẑ";s:3:"Ẑ";s:3:"ẑ";s:3:"ẑ";s:3:"Ẓ";s:3:"Ẓ";s:3:"ẓ";s:3:"ẓ";s:3:"Ẕ";s:3:"Ẕ";s:3:"ẕ";s:3:"ẕ";s:3:"ẖ";s:3:"ẖ";s:3:"ẗ";s:3:"ẗ";s:3:"ẘ";s:3:"ẘ";s:3:"ẙ";s:3:"ẙ";s:4:"ẛ";s:3:"ẛ";s:3:"Ạ";s:3:"Ạ";s:3:"ạ";s:3:"ạ";s:3:"Ả";s:3:"Ả";s:3:"ả";s:3:"ả";s:4:"Ấ";s:3:"Ấ";s:4:"ấ";s:3:"ấ";s:4:"Ầ";s:3:"Ầ";s:4:"ầ";s:3:"ầ";s:4:"Ẩ";s:3:"Ẩ";s:4:"ẩ";s:3:"ẩ";s:4:"Ẫ";s:3:"Ẫ";s:4:"ẫ";s:3:"ẫ";s:5:"Ậ";s:3:"Ậ";s:5:"ậ";s:3:"ậ";s:4:"Ắ";s:3:"Ắ";s:4:"ắ";s:3:"ắ";s:4:"Ằ";s:3:"Ằ";s:4:"ằ";s:3:"ằ";s:4:"Ẳ";s:3:"Ẳ";s:4:"ẳ";s:3:"ẳ";s:4:"Ẵ";s:3:"Ẵ";s:4:"ẵ";s:3:"ẵ";s:5:"Ặ";s:3:"Ặ";s:5:"ặ";s:3:"ặ";s:3:"Ẹ";s:3:"Ẹ";s:3:"ẹ";s:3:"ẹ";s:3:"Ẻ";s:3:"Ẻ";s:3:"ẻ";s:3:"ẻ";s:3:"Ẽ";s:3:"Ẽ";s:3:"ẽ";s:3:"ẽ";s:4:"Ế";s:3:"Ế";s:4:"ế";s:3:"ế";s:4:"Ề";s:3:"Ề";s:4:"ề";s:3:"ề";s:4:"Ể";s:3:"Ể";s:4:"ể";s:3:"ể";s:4:"Ễ";s:3:"Ễ";s:4:"ễ";s:3:"ễ";s:5:"Ệ";s:3:"Ệ";s:5:"ệ";s:3:"ệ";s:3:"Ỉ";s:3:"Ỉ";s:3:"ỉ";s:3:"ỉ";s:3:"Ị";s:3:"Ị";s:3:"ị";s:3:"ị";s:3:"Ọ";s:3:"Ọ";s:3:"ọ";s:3:"ọ";s:3:"Ỏ";s:3:"Ỏ";s:3:"ỏ";s:3:"ỏ";s:4:"Ố";s:3:"Ố";s:4:"ố";s:3:"ố";s:4:"Ồ";s:3:"Ồ";s:4:"ồ";s:3:"ồ";s:4:"Ổ";s:3:"Ổ";s:4:"ổ";s:3:"ổ";s:4:"Ỗ";s:3:"Ỗ";s:4:"ỗ";s:3:"ỗ";s:5:"Ộ";s:3:"Ộ";s:5:"ộ";s:3:"ộ";s:4:"Ớ";s:3:"Ớ";s:4:"ớ";s:3:"ớ";s:4:"Ờ";s:3:"Ờ";s:4:"ờ";s:3:"ờ";s:4:"Ở";s:3:"Ở";s:4:"ở";s:3:"ở";s:4:"Ỡ";s:3:"Ỡ";s:4:"ỡ";s:3:"ỡ";s:4:"Ợ";s:3:"Ợ";s:4:"ợ";s:3:"ợ";s:3:"Ụ";s:3:"Ụ";s:3:"ụ";s:3:"ụ";s:3:"Ủ";s:3:"Ủ";s:3:"ủ";s:3:"ủ";s:4:"Ứ";s:3:"Ứ";s:4:"ứ";s:3:"ứ";s:4:"Ừ";s:3:"Ừ";s:4:"ừ";s:3:"ừ";s:4:"Ử";s:3:"Ử";s:4:"ử";s:3:"ử";s:4:"Ữ";s:3:"Ữ";s:4:"ữ";s:3:"ữ";s:4:"Ự";s:3:"Ự";s:4:"ự";s:3:"ự";s:3:"Ỳ";s:3:"Ỳ";s:3:"ỳ";s:3:"ỳ";s:3:"Ỵ";s:3:"Ỵ";s:3:"ỵ";s:3:"ỵ";s:3:"Ỷ";s:3:"Ỷ";s:3:"ỷ";s:3:"ỷ";s:3:"Ỹ";s:3:"Ỹ";s:3:"ỹ";s:3:"ỹ";s:4:"ἀ";s:3:"ἀ";s:4:"ἁ";s:3:"ἁ";s:5:"ἂ";s:3:"ἂ";s:5:"ἃ";s:3:"ἃ";s:5:"ἄ";s:3:"ἄ";s:5:"ἅ";s:3:"ἅ";s:5:"ἆ";s:3:"ἆ";s:5:"ἇ";s:3:"ἇ";s:4:"Ἀ";s:3:"Ἀ";s:4:"Ἁ";s:3:"Ἁ";s:5:"Ἂ";s:3:"Ἂ";s:5:"Ἃ";s:3:"Ἃ";s:5:"Ἄ";s:3:"Ἄ";s:5:"Ἅ";s:3:"Ἅ";s:5:"Ἆ";s:3:"Ἆ";s:5:"Ἇ";s:3:"Ἇ";s:4:"ἐ";s:3:"ἐ";s:4:"ἑ";s:3:"ἑ";s:5:"ἒ";s:3:"ἒ";s:5:"ἓ";s:3:"ἓ";s:5:"ἔ";s:3:"ἔ";s:5:"ἕ";s:3:"ἕ";s:4:"Ἐ";s:3:"Ἐ";s:4:"Ἑ";s:3:"Ἑ";s:5:"Ἒ";s:3:"Ἒ";s:5:"Ἓ";s:3:"Ἓ";s:5:"Ἔ";s:3:"Ἔ";s:5:"Ἕ";s:3:"Ἕ";s:4:"ἠ";s:3:"ἠ";s:4:"ἡ";s:3:"ἡ";s:5:"ἢ";s:3:"ἢ";s:5:"ἣ";s:3:"ἣ";s:5:"ἤ";s:3:"ἤ";s:5:"ἥ";s:3:"ἥ";s:5:"ἦ";s:3:"ἦ";s:5:"ἧ";s:3:"ἧ";s:4:"Ἠ";s:3:"Ἠ";s:4:"Ἡ";s:3:"Ἡ";s:5:"Ἢ";s:3:"Ἢ";s:5:"Ἣ";s:3:"Ἣ";s:5:"Ἤ";s:3:"Ἤ";s:5:"Ἥ";s:3:"Ἥ";s:5:"Ἦ";s:3:"Ἦ";s:5:"Ἧ";s:3:"Ἧ";s:4:"ἰ";s:3:"ἰ";s:4:"ἱ";s:3:"ἱ";s:5:"ἲ";s:3:"ἲ";s:5:"ἳ";s:3:"ἳ";s:5:"ἴ";s:3:"ἴ";s:5:"ἵ";s:3:"ἵ";s:5:"ἶ";s:3:"ἶ";s:5:"ἷ";s:3:"ἷ";s:4:"Ἰ";s:3:"Ἰ";s:4:"Ἱ";s:3:"Ἱ";s:5:"Ἲ";s:3:"Ἲ";s:5:"Ἳ";s:3:"Ἳ";s:5:"Ἴ";s:3:"Ἴ";s:5:"Ἵ";s:3:"Ἵ";s:5:"Ἶ";s:3:"Ἶ";s:5:"Ἷ";s:3:"Ἷ";s:4:"ὀ";s:3:"ὀ";s:4:"ὁ";s:3:"ὁ";s:5:"ὂ";s:3:"ὂ";s:5:"ὃ";s:3:"ὃ";s:5:"ὄ";s:3:"ὄ";s:5:"ὅ";s:3:"ὅ";s:4:"Ὀ";s:3:"Ὀ";s:4:"Ὁ";s:3:"Ὁ";s:5:"Ὂ";s:3:"Ὂ";s:5:"Ὃ";s:3:"Ὃ";s:5:"Ὄ";s:3:"Ὄ";s:5:"Ὅ";s:3:"Ὅ";s:4:"ὐ";s:3:"ὐ";s:4:"ὑ";s:3:"ὑ";s:5:"ὒ";s:3:"ὒ";s:5:"ὓ";s:3:"ὓ";s:5:"ὔ";s:3:"ὔ";s:5:"ὕ";s:3:"ὕ";s:5:"ὖ";s:3:"ὖ";s:5:"ὗ";s:3:"ὗ";s:4:"Ὑ";s:3:"Ὑ";s:5:"Ὓ";s:3:"Ὓ";s:5:"Ὕ";s:3:"Ὕ";s:5:"Ὗ";s:3:"Ὗ";s:4:"ὠ";s:3:"ὠ";s:4:"ὡ";s:3:"ὡ";s:5:"ὢ";s:3:"ὢ";s:5:"ὣ";s:3:"ὣ";s:5:"ὤ";s:3:"ὤ";s:5:"ὥ";s:3:"ὥ";s:5:"ὦ";s:3:"ὦ";s:5:"ὧ";s:3:"ὧ";s:4:"Ὠ";s:3:"Ὠ";s:4:"Ὡ";s:3:"Ὡ";s:5:"Ὢ";s:3:"Ὢ";s:5:"Ὣ";s:3:"Ὣ";s:5:"Ὤ";s:3:"Ὤ";s:5:"Ὥ";s:3:"Ὥ";s:5:"Ὦ";s:3:"Ὦ";s:5:"Ὧ";s:3:"Ὧ";s:4:"ὰ";s:3:"ὰ";s:4:"ὲ";s:3:"ὲ";s:4:"ὴ";s:3:"ὴ";s:4:"ὶ";s:3:"ὶ";s:4:"ὸ";s:3:"ὸ";s:4:"ὺ";s:3:"ὺ";s:4:"ὼ";s:3:"ὼ";s:5:"ᾀ";s:3:"ᾀ";s:5:"ᾁ";s:3:"ᾁ";s:5:"ᾂ";s:3:"ᾂ";s:5:"ᾃ";s:3:"ᾃ";s:5:"ᾄ";s:3:"ᾄ";s:5:"ᾅ";s:3:"ᾅ";s:5:"ᾆ";s:3:"ᾆ";s:5:"ᾇ";s:3:"ᾇ";s:5:"ᾈ";s:3:"ᾈ";s:5:"ᾉ";s:3:"ᾉ";s:5:"ᾊ";s:3:"ᾊ";s:5:"ᾋ";s:3:"ᾋ";s:5:"ᾌ";s:3:"ᾌ";s:5:"ᾍ";s:3:"ᾍ";s:5:"ᾎ";s:3:"ᾎ";s:5:"ᾏ";s:3:"ᾏ";s:5:"ᾐ";s:3:"ᾐ";s:5:"ᾑ";s:3:"ᾑ";s:5:"ᾒ";s:3:"ᾒ";s:5:"ᾓ";s:3:"ᾓ";s:5:"ᾔ";s:3:"ᾔ";s:5:"ᾕ";s:3:"ᾕ";s:5:"ᾖ";s:3:"ᾖ";s:5:"ᾗ";s:3:"ᾗ";s:5:"ᾘ";s:3:"ᾘ";s:5:"ᾙ";s:3:"ᾙ";s:5:"ᾚ";s:3:"ᾚ";s:5:"ᾛ";s:3:"ᾛ";s:5:"ᾜ";s:3:"ᾜ";s:5:"ᾝ";s:3:"ᾝ";s:5:"ᾞ";s:3:"ᾞ";s:5:"ᾟ";s:3:"ᾟ";s:5:"ᾠ";s:3:"ᾠ";s:5:"ᾡ";s:3:"ᾡ";s:5:"ᾢ";s:3:"ᾢ";s:5:"ᾣ";s:3:"ᾣ";s:5:"ᾤ";s:3:"ᾤ";s:5:"ᾥ";s:3:"ᾥ";s:5:"ᾦ";s:3:"ᾦ";s:5:"ᾧ";s:3:"ᾧ";s:5:"ᾨ";s:3:"ᾨ";s:5:"ᾩ";s:3:"ᾩ";s:5:"ᾪ";s:3:"ᾪ";s:5:"ᾫ";s:3:"ᾫ";s:5:"ᾬ";s:3:"ᾬ";s:5:"ᾭ";s:3:"ᾭ";s:5:"ᾮ";s:3:"ᾮ";s:5:"ᾯ";s:3:"ᾯ";s:4:"ᾰ";s:3:"ᾰ";s:4:"ᾱ";s:3:"ᾱ";s:5:"ᾲ";s:3:"ᾲ";s:4:"ᾳ";s:3:"ᾳ";s:4:"ᾴ";s:3:"ᾴ";s:4:"ᾶ";s:3:"ᾶ";s:5:"ᾷ";s:3:"ᾷ";s:4:"Ᾰ";s:3:"Ᾰ";s:4:"Ᾱ";s:3:"Ᾱ";s:4:"Ὰ";s:3:"Ὰ";s:4:"ᾼ";s:3:"ᾼ";s:4:"῁";s:3:"῁";s:5:"ῂ";s:3:"ῂ";s:4:"ῃ";s:3:"ῃ";s:4:"ῄ";s:3:"ῄ";s:4:"ῆ";s:3:"ῆ";s:5:"ῇ";s:3:"ῇ";s:4:"Ὲ";s:3:"Ὲ";s:4:"Ὴ";s:3:"Ὴ";s:4:"ῌ";s:3:"ῌ";s:5:"῍";s:3:"῍";s:5:"῎";s:3:"῎";s:5:"῏";s:3:"῏";s:4:"ῐ";s:3:"ῐ";s:4:"ῑ";s:3:"ῑ";s:4:"ῒ";s:3:"ῒ";s:4:"ῖ";s:3:"ῖ";s:4:"ῗ";s:3:"ῗ";s:4:"Ῐ";s:3:"Ῐ";s:4:"Ῑ";s:3:"Ῑ";s:4:"Ὶ";s:3:"Ὶ";s:5:"῝";s:3:"῝";s:5:"῞";s:3:"῞";s:5:"῟";s:3:"῟";s:4:"ῠ";s:3:"ῠ";s:4:"ῡ";s:3:"ῡ";s:4:"ῢ";s:3:"ῢ";s:4:"ῤ";s:3:"ῤ";s:4:"ῥ";s:3:"ῥ";s:4:"ῦ";s:3:"ῦ";s:4:"ῧ";s:3:"ῧ";s:4:"Ῠ";s:3:"Ῠ";s:4:"Ῡ";s:3:"Ῡ";s:4:"Ὺ";s:3:"Ὺ";s:4:"Ῥ";s:3:"Ῥ";s:4:"῭";s:3:"῭";s:5:"ῲ";s:3:"ῲ";s:4:"ῳ";s:3:"ῳ";s:4:"ῴ";s:3:"ῴ";s:4:"ῶ";s:3:"ῶ";s:5:"ῷ";s:3:"ῷ";s:4:"Ὸ";s:3:"Ὸ";s:4:"Ὼ";s:3:"Ὼ";s:4:"ῼ";s:3:"ῼ";s:5:"↚";s:3:"↚";s:5:"↛";s:3:"↛";s:5:"↮";s:3:"↮";s:5:"⇍";s:3:"⇍";s:5:"⇎";s:3:"⇎";s:5:"⇏";s:3:"⇏";s:5:"∄";s:3:"∄";s:5:"∉";s:3:"∉";s:5:"∌";s:3:"∌";s:5:"∤";s:3:"∤";s:5:"∦";s:3:"∦";s:5:"≁";s:3:"≁";s:5:"≄";s:3:"≄";s:5:"≇";s:3:"≇";s:5:"≉";s:3:"≉";s:3:"≠";s:3:"≠";s:5:"≢";s:3:"≢";s:5:"≭";s:3:"≭";s:3:"≮";s:3:"≮";s:3:"≯";s:3:"≯";s:5:"≰";s:3:"≰";s:5:"≱";s:3:"≱";s:5:"≴";s:3:"≴";s:5:"≵";s:3:"≵";s:5:"≸";s:3:"≸";s:5:"≹";s:3:"≹";s:5:"⊀";s:3:"⊀";s:5:"⊁";s:3:"⊁";s:5:"⊄";s:3:"⊄";s:5:"⊅";s:3:"⊅";s:5:"⊈";s:3:"⊈";s:5:"⊉";s:3:"⊉";s:5:"⊬";s:3:"⊬";s:5:"⊭";s:3:"⊭";s:5:"⊮";s:3:"⊮";s:5:"⊯";s:3:"⊯";s:5:"⋠";s:3:"⋠";s:5:"⋡";s:3:"⋡";s:5:"⋢";s:3:"⋢";s:5:"⋣";s:3:"⋣";s:5:"⋪";s:3:"⋪";s:5:"⋫";s:3:"⋫";s:5:"⋬";s:3:"⋬";s:5:"⋭";s:3:"⋭";s:6:"が";s:3:"が";s:6:"ぎ";s:3:"ぎ";s:6:"ぐ";s:3:"ぐ";s:6:"げ";s:3:"げ";s:6:"ご";s:3:"ご";s:6:"ざ";s:3:"ざ";s:6:"じ";s:3:"じ";s:6:"ず";s:3:"ず";s:6:"ぜ";s:3:"ぜ";s:6:"ぞ";s:3:"ぞ";s:6:"だ";s:3:"だ";s:6:"ぢ";s:3:"ぢ";s:6:"づ";s:3:"づ";s:6:"で";s:3:"で";s:6:"ど";s:3:"ど";s:6:"ば";s:3:"ば";s:6:"ぱ";s:3:"ぱ";s:6:"び";s:3:"び";s:6:"ぴ";s:3:"ぴ";s:6:"ぶ";s:3:"ぶ";s:6:"ぷ";s:3:"ぷ";s:6:"べ";s:3:"べ";s:6:"ぺ";s:3:"ぺ";s:6:"ぼ";s:3:"ぼ";s:6:"ぽ";s:3:"ぽ";s:6:"ゔ";s:3:"ゔ";s:6:"ゞ";s:3:"ゞ";s:6:"ガ";s:3:"ガ";s:6:"ギ";s:3:"ギ";s:6:"グ";s:3:"グ";s:6:"ゲ";s:3:"ゲ";s:6:"ゴ";s:3:"ゴ";s:6:"ザ";s:3:"ザ";s:6:"ジ";s:3:"ジ";s:6:"ズ";s:3:"ズ";s:6:"ゼ";s:3:"ゼ";s:6:"ゾ";s:3:"ゾ";s:6:"ダ";s:3:"ダ";s:6:"ヂ";s:3:"ヂ";s:6:"ヅ";s:3:"ヅ";s:6:"デ";s:3:"デ";s:6:"ド";s:3:"ド";s:6:"バ";s:3:"バ";s:6:"パ";s:3:"パ";s:6:"ビ";s:3:"ビ";s:6:"ピ";s:3:"ピ";s:6:"ブ";s:3:"ブ";s:6:"プ";s:3:"プ";s:6:"ベ";s:3:"ベ";s:6:"ペ";s:3:"ペ";s:6:"ボ";s:3:"ボ";s:6:"ポ";s:3:"ポ";s:6:"ヴ";s:3:"ヴ";s:6:"ヷ";s:3:"ヷ";s:6:"ヸ";s:3:"ヸ";s:6:"ヹ";s:3:"ヹ";s:6:"ヺ";s:3:"ヺ";s:6:"ヾ";s:3:"ヾ";s:8:"𑂚";s:4:"𑂚";s:8:"𑂜";s:4:"𑂜";s:8:"𑂫";s:4:"𑂫";s:8:"𑄮";s:4:"𑄮";s:8:"𑄯";s:4:"𑄯";s:8:"𑍋";s:4:"𑍋";s:8:"𑍌";s:4:"𑍌";s:8:"𑒻";s:4:"𑒻";s:8:"𑒼";s:4:"𑒼";s:8:"𑒾";s:4:"𑒾";s:8:"𑖺";s:4:"𑖺";s:8:"𑖻";s:4:"𑖻";} -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/unidata/combiningClass.ser: -------------------------------------------------------------------------------- 1 | a:862:{s:2:"̀";i:230;s:2:"́";i:230;s:2:"̂";i:230;s:2:"̃";i:230;s:2:"̄";i:230;s:2:"̅";i:230;s:2:"̆";i:230;s:2:"̇";i:230;s:2:"̈";i:230;s:2:"̉";i:230;s:2:"̊";i:230;s:2:"̋";i:230;s:2:"̌";i:230;s:2:"̍";i:230;s:2:"̎";i:230;s:2:"̏";i:230;s:2:"̐";i:230;s:2:"̑";i:230;s:2:"̒";i:230;s:2:"̓";i:230;s:2:"̔";i:230;s:2:"̕";i:232;s:2:"̖";i:220;s:2:"̗";i:220;s:2:"̘";i:220;s:2:"̙";i:220;s:2:"̚";i:232;s:2:"̛";i:216;s:2:"̜";i:220;s:2:"̝";i:220;s:2:"̞";i:220;s:2:"̟";i:220;s:2:"̠";i:220;s:2:"̡";i:202;s:2:"̢";i:202;s:2:"̣";i:220;s:2:"̤";i:220;s:2:"̥";i:220;s:2:"̦";i:220;s:2:"̧";i:202;s:2:"̨";i:202;s:2:"̩";i:220;s:2:"̪";i:220;s:2:"̫";i:220;s:2:"̬";i:220;s:2:"̭";i:220;s:2:"̮";i:220;s:2:"̯";i:220;s:2:"̰";i:220;s:2:"̱";i:220;s:2:"̲";i:220;s:2:"̳";i:220;s:2:"̴";i:1;s:2:"̵";i:1;s:2:"̶";i:1;s:2:"̷";i:1;s:2:"̸";i:1;s:2:"̹";i:220;s:2:"̺";i:220;s:2:"̻";i:220;s:2:"̼";i:220;s:2:"̽";i:230;s:2:"̾";i:230;s:2:"̿";i:230;s:2:"̀";i:230;s:2:"́";i:230;s:2:"͂";i:230;s:2:"̓";i:230;s:2:"̈́";i:230;s:2:"ͅ";i:240;s:2:"͆";i:230;s:2:"͇";i:220;s:2:"͈";i:220;s:2:"͉";i:220;s:2:"͊";i:230;s:2:"͋";i:230;s:2:"͌";i:230;s:2:"͍";i:220;s:2:"͎";i:220;s:2:"͐";i:230;s:2:"͑";i:230;s:2:"͒";i:230;s:2:"͓";i:220;s:2:"͔";i:220;s:2:"͕";i:220;s:2:"͖";i:220;s:2:"͗";i:230;s:2:"͘";i:232;s:2:"͙";i:220;s:2:"͚";i:220;s:2:"͛";i:230;s:2:"͜";i:233;s:2:"͝";i:234;s:2:"͞";i:234;s:2:"͟";i:233;s:2:"͠";i:234;s:2:"͡";i:234;s:2:"͢";i:233;s:2:"ͣ";i:230;s:2:"ͤ";i:230;s:2:"ͥ";i:230;s:2:"ͦ";i:230;s:2:"ͧ";i:230;s:2:"ͨ";i:230;s:2:"ͩ";i:230;s:2:"ͪ";i:230;s:2:"ͫ";i:230;s:2:"ͬ";i:230;s:2:"ͭ";i:230;s:2:"ͮ";i:230;s:2:"ͯ";i:230;s:2:"҃";i:230;s:2:"҄";i:230;s:2:"҅";i:230;s:2:"҆";i:230;s:2:"҇";i:230;s:2:"֑";i:220;s:2:"֒";i:230;s:2:"֓";i:230;s:2:"֔";i:230;s:2:"֕";i:230;s:2:"֖";i:220;s:2:"֗";i:230;s:2:"֘";i:230;s:2:"֙";i:230;s:2:"֚";i:222;s:2:"֛";i:220;s:2:"֜";i:230;s:2:"֝";i:230;s:2:"֞";i:230;s:2:"֟";i:230;s:2:"֠";i:230;s:2:"֡";i:230;s:2:"֢";i:220;s:2:"֣";i:220;s:2:"֤";i:220;s:2:"֥";i:220;s:2:"֦";i:220;s:2:"֧";i:220;s:2:"֨";i:230;s:2:"֩";i:230;s:2:"֪";i:220;s:2:"֫";i:230;s:2:"֬";i:230;s:2:"֭";i:222;s:2:"֮";i:228;s:2:"֯";i:230;s:2:"ְ";i:10;s:2:"ֱ";i:11;s:2:"ֲ";i:12;s:2:"ֳ";i:13;s:2:"ִ";i:14;s:2:"ֵ";i:15;s:2:"ֶ";i:16;s:2:"ַ";i:17;s:2:"ָ";i:18;s:2:"ֹ";i:19;s:2:"ֺ";i:19;s:2:"ֻ";i:20;s:2:"ּ";i:21;s:2:"ֽ";i:22;s:2:"ֿ";i:23;s:2:"ׁ";i:24;s:2:"ׂ";i:25;s:2:"ׄ";i:230;s:2:"ׅ";i:220;s:2:"ׇ";i:18;s:2:"ؐ";i:230;s:2:"ؑ";i:230;s:2:"ؒ";i:230;s:2:"ؓ";i:230;s:2:"ؔ";i:230;s:2:"ؕ";i:230;s:2:"ؖ";i:230;s:2:"ؗ";i:230;s:2:"ؘ";i:30;s:2:"ؙ";i:31;s:2:"ؚ";i:32;s:2:"ً";i:27;s:2:"ٌ";i:28;s:2:"ٍ";i:29;s:2:"َ";i:30;s:2:"ُ";i:31;s:2:"ِ";i:32;s:2:"ّ";i:33;s:2:"ْ";i:34;s:2:"ٓ";i:230;s:2:"ٔ";i:230;s:2:"ٕ";i:220;s:2:"ٖ";i:220;s:2:"ٗ";i:230;s:2:"٘";i:230;s:2:"ٙ";i:230;s:2:"ٚ";i:230;s:2:"ٛ";i:230;s:2:"ٜ";i:220;s:2:"ٝ";i:230;s:2:"ٞ";i:230;s:2:"ٟ";i:220;s:2:"ٰ";i:35;s:2:"ۖ";i:230;s:2:"ۗ";i:230;s:2:"ۘ";i:230;s:2:"ۙ";i:230;s:2:"ۚ";i:230;s:2:"ۛ";i:230;s:2:"ۜ";i:230;s:2:"۟";i:230;s:2:"۠";i:230;s:2:"ۡ";i:230;s:2:"ۢ";i:230;s:2:"ۣ";i:220;s:2:"ۤ";i:230;s:2:"ۧ";i:230;s:2:"ۨ";i:230;s:2:"۪";i:220;s:2:"۫";i:230;s:2:"۬";i:230;s:2:"ۭ";i:220;s:2:"ܑ";i:36;s:2:"ܰ";i:230;s:2:"ܱ";i:220;s:2:"ܲ";i:230;s:2:"ܳ";i:230;s:2:"ܴ";i:220;s:2:"ܵ";i:230;s:2:"ܶ";i:230;s:2:"ܷ";i:220;s:2:"ܸ";i:220;s:2:"ܹ";i:220;s:2:"ܺ";i:230;s:2:"ܻ";i:220;s:2:"ܼ";i:220;s:2:"ܽ";i:230;s:2:"ܾ";i:220;s:2:"ܿ";i:230;s:2:"݀";i:230;s:2:"݁";i:230;s:2:"݂";i:220;s:2:"݃";i:230;s:2:"݄";i:220;s:2:"݅";i:230;s:2:"݆";i:220;s:2:"݇";i:230;s:2:"݈";i:220;s:2:"݉";i:230;s:2:"݊";i:230;s:2:"߫";i:230;s:2:"߬";i:230;s:2:"߭";i:230;s:2:"߮";i:230;s:2:"߯";i:230;s:2:"߰";i:230;s:2:"߱";i:230;s:2:"߲";i:220;s:2:"߳";i:230;s:2:"߽";i:220;s:3:"ࠖ";i:230;s:3:"ࠗ";i:230;s:3:"࠘";i:230;s:3:"࠙";i:230;s:3:"ࠛ";i:230;s:3:"ࠜ";i:230;s:3:"ࠝ";i:230;s:3:"ࠞ";i:230;s:3:"ࠟ";i:230;s:3:"ࠠ";i:230;s:3:"ࠡ";i:230;s:3:"ࠢ";i:230;s:3:"ࠣ";i:230;s:3:"ࠥ";i:230;s:3:"ࠦ";i:230;s:3:"ࠧ";i:230;s:3:"ࠩ";i:230;s:3:"ࠪ";i:230;s:3:"ࠫ";i:230;s:3:"ࠬ";i:230;s:3:"࠭";i:230;s:3:"࡙";i:220;s:3:"࡚";i:220;s:3:"࡛";i:220;s:3:"࣓";i:220;s:3:"ࣔ";i:230;s:3:"ࣕ";i:230;s:3:"ࣖ";i:230;s:3:"ࣗ";i:230;s:3:"ࣘ";i:230;s:3:"ࣙ";i:230;s:3:"ࣚ";i:230;s:3:"ࣛ";i:230;s:3:"ࣜ";i:230;s:3:"ࣝ";i:230;s:3:"ࣞ";i:230;s:3:"ࣟ";i:230;s:3:"࣠";i:230;s:3:"࣡";i:230;s:3:"ࣣ";i:220;s:3:"ࣤ";i:230;s:3:"ࣥ";i:230;s:3:"ࣦ";i:220;s:3:"ࣧ";i:230;s:3:"ࣨ";i:230;s:3:"ࣩ";i:220;s:3:"࣪";i:230;s:3:"࣫";i:230;s:3:"࣬";i:230;s:3:"࣭";i:220;s:3:"࣮";i:220;s:3:"࣯";i:220;s:3:"ࣰ";i:27;s:3:"ࣱ";i:28;s:3:"ࣲ";i:29;s:3:"ࣳ";i:230;s:3:"ࣴ";i:230;s:3:"ࣵ";i:230;s:3:"ࣶ";i:220;s:3:"ࣷ";i:230;s:3:"ࣸ";i:230;s:3:"ࣹ";i:220;s:3:"ࣺ";i:220;s:3:"ࣻ";i:230;s:3:"ࣼ";i:230;s:3:"ࣽ";i:230;s:3:"ࣾ";i:230;s:3:"ࣿ";i:230;s:3:"़";i:7;s:3:"्";i:9;s:3:"॑";i:230;s:3:"॒";i:220;s:3:"॓";i:230;s:3:"॔";i:230;s:3:"়";i:7;s:3:"্";i:9;s:3:"৾";i:230;s:3:"਼";i:7;s:3:"੍";i:9;s:3:"઼";i:7;s:3:"્";i:9;s:3:"଼";i:7;s:3:"୍";i:9;s:3:"்";i:9;s:3:"్";i:9;s:3:"ౕ";i:84;s:3:"ౖ";i:91;s:3:"಼";i:7;s:3:"್";i:9;s:3:"഻";i:9;s:3:"഼";i:9;s:3:"്";i:9;s:3:"්";i:9;s:3:"ุ";i:103;s:3:"ู";i:103;s:3:"ฺ";i:9;s:3:"่";i:107;s:3:"้";i:107;s:3:"๊";i:107;s:3:"๋";i:107;s:3:"ຸ";i:118;s:3:"ູ";i:118;s:3:"຺";i:9;s:3:"່";i:122;s:3:"້";i:122;s:3:"໊";i:122;s:3:"໋";i:122;s:3:"༘";i:220;s:3:"༙";i:220;s:3:"༵";i:220;s:3:"༷";i:220;s:3:"༹";i:216;s:3:"ཱ";i:129;s:3:"ི";i:130;s:3:"ུ";i:132;s:3:"ེ";i:130;s:3:"ཻ";i:130;s:3:"ོ";i:130;s:3:"ཽ";i:130;s:3:"ྀ";i:130;s:3:"ྂ";i:230;s:3:"ྃ";i:230;s:3:"྄";i:9;s:3:"྆";i:230;s:3:"྇";i:230;s:3:"࿆";i:220;s:3:"့";i:7;s:3:"္";i:9;s:3:"်";i:9;s:3:"ႍ";i:220;s:3:"፝";i:230;s:3:"፞";i:230;s:3:"፟";i:230;s:3:"᜔";i:9;s:3:"᜴";i:9;s:3:"្";i:9;s:3:"៝";i:230;s:3:"ᢩ";i:228;s:3:"᤹";i:222;s:3:"᤺";i:230;s:3:"᤻";i:220;s:3:"ᨗ";i:230;s:3:"ᨘ";i:220;s:3:"᩠";i:9;s:3:"᩵";i:230;s:3:"᩶";i:230;s:3:"᩷";i:230;s:3:"᩸";i:230;s:3:"᩹";i:230;s:3:"᩺";i:230;s:3:"᩻";i:230;s:3:"᩼";i:230;s:3:"᩿";i:220;s:3:"᪰";i:230;s:3:"᪱";i:230;s:3:"᪲";i:230;s:3:"᪳";i:230;s:3:"᪴";i:230;s:3:"᪵";i:220;s:3:"᪶";i:220;s:3:"᪷";i:220;s:3:"᪸";i:220;s:3:"᪹";i:220;s:3:"᪺";i:220;s:3:"᪻";i:230;s:3:"᪼";i:230;s:3:"᪽";i:220;s:3:"᬴";i:7;s:3:"᭄";i:9;s:3:"᭫";i:230;s:3:"᭬";i:220;s:3:"᭭";i:230;s:3:"᭮";i:230;s:3:"᭯";i:230;s:3:"᭰";i:230;s:3:"᭱";i:230;s:3:"᭲";i:230;s:3:"᭳";i:230;s:3:"᮪";i:9;s:3:"᮫";i:9;s:3:"᯦";i:7;s:3:"᯲";i:9;s:3:"᯳";i:9;s:3:"᰷";i:7;s:3:"᳐";i:230;s:3:"᳑";i:230;s:3:"᳒";i:230;s:3:"᳔";i:1;s:3:"᳕";i:220;s:3:"᳖";i:220;s:3:"᳗";i:220;s:3:"᳘";i:220;s:3:"᳙";i:220;s:3:"᳚";i:230;s:3:"᳛";i:230;s:3:"᳜";i:220;s:3:"᳝";i:220;s:3:"᳞";i:220;s:3:"᳟";i:220;s:3:"᳠";i:230;s:3:"᳢";i:1;s:3:"᳣";i:1;s:3:"᳤";i:1;s:3:"᳥";i:1;s:3:"᳦";i:1;s:3:"᳧";i:1;s:3:"᳨";i:1;s:3:"᳭";i:220;s:3:"᳴";i:230;s:3:"᳸";i:230;s:3:"᳹";i:230;s:3:"᷀";i:230;s:3:"᷁";i:230;s:3:"᷂";i:220;s:3:"᷃";i:230;s:3:"᷄";i:230;s:3:"᷅";i:230;s:3:"᷆";i:230;s:3:"᷇";i:230;s:3:"᷈";i:230;s:3:"᷉";i:230;s:3:"᷊";i:220;s:3:"᷋";i:230;s:3:"᷌";i:230;s:3:"᷍";i:234;s:3:"᷎";i:214;s:3:"᷏";i:220;s:3:"᷐";i:202;s:3:"᷑";i:230;s:3:"᷒";i:230;s:3:"ᷓ";i:230;s:3:"ᷔ";i:230;s:3:"ᷕ";i:230;s:3:"ᷖ";i:230;s:3:"ᷗ";i:230;s:3:"ᷘ";i:230;s:3:"ᷙ";i:230;s:3:"ᷚ";i:230;s:3:"ᷛ";i:230;s:3:"ᷜ";i:230;s:3:"ᷝ";i:230;s:3:"ᷞ";i:230;s:3:"ᷟ";i:230;s:3:"ᷠ";i:230;s:3:"ᷡ";i:230;s:3:"ᷢ";i:230;s:3:"ᷣ";i:230;s:3:"ᷤ";i:230;s:3:"ᷥ";i:230;s:3:"ᷦ";i:230;s:3:"ᷧ";i:230;s:3:"ᷨ";i:230;s:3:"ᷩ";i:230;s:3:"ᷪ";i:230;s:3:"ᷫ";i:230;s:3:"ᷬ";i:230;s:3:"ᷭ";i:230;s:3:"ᷮ";i:230;s:3:"ᷯ";i:230;s:3:"ᷰ";i:230;s:3:"ᷱ";i:230;s:3:"ᷲ";i:230;s:3:"ᷳ";i:230;s:3:"ᷴ";i:230;s:3:"᷵";i:230;s:3:"᷶";i:232;s:3:"᷷";i:228;s:3:"᷸";i:228;s:3:"᷹";i:220;s:3:"᷻";i:230;s:3:"᷼";i:233;s:3:"᷽";i:220;s:3:"᷾";i:230;s:3:"᷿";i:220;s:3:"⃐";i:230;s:3:"⃑";i:230;s:3:"⃒";i:1;s:3:"⃓";i:1;s:3:"⃔";i:230;s:3:"⃕";i:230;s:3:"⃖";i:230;s:3:"⃗";i:230;s:3:"⃘";i:1;s:3:"⃙";i:1;s:3:"⃚";i:1;s:3:"⃛";i:230;s:3:"⃜";i:230;s:3:"⃡";i:230;s:3:"⃥";i:1;s:3:"⃦";i:1;s:3:"⃧";i:230;s:3:"⃨";i:220;s:3:"⃩";i:230;s:3:"⃪";i:1;s:3:"⃫";i:1;s:3:"⃬";i:220;s:3:"⃭";i:220;s:3:"⃮";i:220;s:3:"⃯";i:220;s:3:"⃰";i:230;s:3:"⳯";i:230;s:3:"⳰";i:230;s:3:"⳱";i:230;s:3:"⵿";i:9;s:3:"ⷠ";i:230;s:3:"ⷡ";i:230;s:3:"ⷢ";i:230;s:3:"ⷣ";i:230;s:3:"ⷤ";i:230;s:3:"ⷥ";i:230;s:3:"ⷦ";i:230;s:3:"ⷧ";i:230;s:3:"ⷨ";i:230;s:3:"ⷩ";i:230;s:3:"ⷪ";i:230;s:3:"ⷫ";i:230;s:3:"ⷬ";i:230;s:3:"ⷭ";i:230;s:3:"ⷮ";i:230;s:3:"ⷯ";i:230;s:3:"ⷰ";i:230;s:3:"ⷱ";i:230;s:3:"ⷲ";i:230;s:3:"ⷳ";i:230;s:3:"ⷴ";i:230;s:3:"ⷵ";i:230;s:3:"ⷶ";i:230;s:3:"ⷷ";i:230;s:3:"ⷸ";i:230;s:3:"ⷹ";i:230;s:3:"ⷺ";i:230;s:3:"ⷻ";i:230;s:3:"ⷼ";i:230;s:3:"ⷽ";i:230;s:3:"ⷾ";i:230;s:3:"ⷿ";i:230;s:3:"〪";i:218;s:3:"〫";i:228;s:3:"〬";i:232;s:3:"〭";i:222;s:3:"〮";i:224;s:3:"〯";i:224;s:3:"゙";i:8;s:3:"゚";i:8;s:3:"꙯";i:230;s:3:"ꙴ";i:230;s:3:"ꙵ";i:230;s:3:"ꙶ";i:230;s:3:"ꙷ";i:230;s:3:"ꙸ";i:230;s:3:"ꙹ";i:230;s:3:"ꙺ";i:230;s:3:"ꙻ";i:230;s:3:"꙼";i:230;s:3:"꙽";i:230;s:3:"ꚞ";i:230;s:3:"ꚟ";i:230;s:3:"꛰";i:230;s:3:"꛱";i:230;s:3:"꠆";i:9;s:3:"꣄";i:9;s:3:"꣠";i:230;s:3:"꣡";i:230;s:3:"꣢";i:230;s:3:"꣣";i:230;s:3:"꣤";i:230;s:3:"꣥";i:230;s:3:"꣦";i:230;s:3:"꣧";i:230;s:3:"꣨";i:230;s:3:"꣩";i:230;s:3:"꣪";i:230;s:3:"꣫";i:230;s:3:"꣬";i:230;s:3:"꣭";i:230;s:3:"꣮";i:230;s:3:"꣯";i:230;s:3:"꣰";i:230;s:3:"꣱";i:230;s:3:"꤫";i:220;s:3:"꤬";i:220;s:3:"꤭";i:220;s:3:"꥓";i:9;s:3:"꦳";i:7;s:3:"꧀";i:9;s:3:"ꪰ";i:230;s:3:"ꪲ";i:230;s:3:"ꪳ";i:230;s:3:"ꪴ";i:220;s:3:"ꪷ";i:230;s:3:"ꪸ";i:230;s:3:"ꪾ";i:230;s:3:"꪿";i:230;s:3:"꫁";i:230;s:3:"꫶";i:9;s:3:"꯭";i:9;s:3:"ﬞ";i:26;s:3:"︠";i:230;s:3:"︡";i:230;s:3:"︢";i:230;s:3:"︣";i:230;s:3:"︤";i:230;s:3:"︥";i:230;s:3:"︦";i:230;s:3:"︧";i:220;s:3:"︨";i:220;s:3:"︩";i:220;s:3:"︪";i:220;s:3:"︫";i:220;s:3:"︬";i:220;s:3:"︭";i:220;s:3:"︮";i:230;s:3:"︯";i:230;s:4:"𐇽";i:220;s:4:"𐋠";i:220;s:4:"𐍶";i:230;s:4:"𐍷";i:230;s:4:"𐍸";i:230;s:4:"𐍹";i:230;s:4:"𐍺";i:230;s:4:"𐨍";i:220;s:4:"𐨏";i:230;s:4:"𐨸";i:230;s:4:"𐨹";i:1;s:4:"𐨺";i:220;s:4:"𐨿";i:9;s:4:"𐫥";i:230;s:4:"𐫦";i:220;s:4:"𐴤";i:230;s:4:"𐴥";i:230;s:4:"𐴦";i:230;s:4:"𐴧";i:230;s:4:"𐽆";i:220;s:4:"𐽇";i:220;s:4:"𐽈";i:230;s:4:"𐽉";i:230;s:4:"𐽊";i:230;s:4:"𐽋";i:220;s:4:"𐽌";i:230;s:4:"𐽍";i:220;s:4:"𐽎";i:220;s:4:"𐽏";i:220;s:4:"𐽐";i:220;s:4:"𑁆";i:9;s:4:"𑁿";i:9;s:4:"𑂹";i:9;s:4:"𑂺";i:7;s:4:"𑄀";i:230;s:4:"𑄁";i:230;s:4:"𑄂";i:230;s:4:"𑄳";i:9;s:4:"𑄴";i:9;s:4:"𑅳";i:7;s:4:"𑇀";i:9;s:4:"𑇊";i:7;s:4:"𑈵";i:9;s:4:"𑈶";i:7;s:4:"𑋩";i:7;s:4:"𑋪";i:9;s:4:"𑌻";i:7;s:4:"𑌼";i:7;s:4:"𑍍";i:9;s:4:"𑍦";i:230;s:4:"𑍧";i:230;s:4:"𑍨";i:230;s:4:"𑍩";i:230;s:4:"𑍪";i:230;s:4:"𑍫";i:230;s:4:"𑍬";i:230;s:4:"𑍰";i:230;s:4:"𑍱";i:230;s:4:"𑍲";i:230;s:4:"𑍳";i:230;s:4:"𑍴";i:230;s:4:"𑑂";i:9;s:4:"𑑆";i:7;s:4:"𑑞";i:230;s:4:"𑓂";i:9;s:4:"𑓃";i:7;s:4:"𑖿";i:9;s:4:"𑗀";i:7;s:4:"𑘿";i:9;s:4:"𑚶";i:9;s:4:"𑚷";i:7;s:4:"𑜫";i:9;s:4:"𑠹";i:9;s:4:"𑠺";i:7;s:4:"𑧠";i:9;s:4:"𑨴";i:9;s:4:"𑩇";i:9;s:4:"𑪙";i:9;s:4:"𑰿";i:9;s:4:"𑵂";i:7;s:4:"𑵄";i:9;s:4:"𑵅";i:9;s:4:"𑶗";i:9;s:4:"𖫰";i:1;s:4:"𖫱";i:1;s:4:"𖫲";i:1;s:4:"𖫳";i:1;s:4:"𖫴";i:1;s:4:"𖬰";i:230;s:4:"𖬱";i:230;s:4:"𖬲";i:230;s:4:"𖬳";i:230;s:4:"𖬴";i:230;s:4:"𖬵";i:230;s:4:"𖬶";i:230;s:4:"𛲞";i:1;s:4:"𝅥";i:216;s:4:"𝅦";i:216;s:4:"𝅧";i:1;s:4:"𝅨";i:1;s:4:"𝅩";i:1;s:4:"𝅭";i:226;s:4:"𝅮";i:216;s:4:"𝅯";i:216;s:4:"𝅰";i:216;s:4:"𝅱";i:216;s:4:"𝅲";i:216;s:4:"𝅻";i:220;s:4:"𝅼";i:220;s:4:"𝅽";i:220;s:4:"𝅾";i:220;s:4:"𝅿";i:220;s:4:"𝆀";i:220;s:4:"𝆁";i:220;s:4:"𝆂";i:220;s:4:"𝆅";i:230;s:4:"𝆆";i:230;s:4:"𝆇";i:230;s:4:"𝆈";i:230;s:4:"𝆉";i:230;s:4:"𝆊";i:220;s:4:"𝆋";i:220;s:4:"𝆪";i:230;s:4:"𝆫";i:230;s:4:"𝆬";i:230;s:4:"𝆭";i:230;s:4:"𝉂";i:230;s:4:"𝉃";i:230;s:4:"𝉄";i:230;s:4:"𞀀";i:230;s:4:"𞀁";i:230;s:4:"𞀂";i:230;s:4:"𞀃";i:230;s:4:"𞀄";i:230;s:4:"𞀅";i:230;s:4:"𞀆";i:230;s:4:"𞀈";i:230;s:4:"𞀉";i:230;s:4:"𞀊";i:230;s:4:"𞀋";i:230;s:4:"𞀌";i:230;s:4:"𞀍";i:230;s:4:"𞀎";i:230;s:4:"𞀏";i:230;s:4:"𞀐";i:230;s:4:"𞀑";i:230;s:4:"𞀒";i:230;s:4:"𞀓";i:230;s:4:"𞀔";i:230;s:4:"𞀕";i:230;s:4:"𞀖";i:230;s:4:"𞀗";i:230;s:4:"𞀘";i:230;s:4:"𞀛";i:230;s:4:"𞀜";i:230;s:4:"𞀝";i:230;s:4:"𞀞";i:230;s:4:"𞀟";i:230;s:4:"𞀠";i:230;s:4:"𞀡";i:230;s:4:"𞀣";i:230;s:4:"𞀤";i:230;s:4:"𞀦";i:230;s:4:"𞀧";i:230;s:4:"𞀨";i:230;s:4:"𞀩";i:230;s:4:"𞀪";i:230;s:4:"𞄰";i:230;s:4:"𞄱";i:230;s:4:"𞄲";i:230;s:4:"𞄳";i:230;s:4:"𞄴";i:230;s:4:"𞄵";i:230;s:4:"𞄶";i:230;s:4:"𞋬";i:230;s:4:"𞋭";i:230;s:4:"𞋮";i:230;s:4:"𞋯";i:230;s:4:"𞣐";i:220;s:4:"𞣑";i:220;s:4:"𞣒";i:220;s:4:"𞣓";i:220;s:4:"𞣔";i:220;s:4:"𞣕";i:220;s:4:"𞣖";i:220;s:4:"𞥄";i:230;s:4:"𞥅";i:230;s:4:"𞥆";i:230;s:4:"𞥇";i:230;s:4:"𞥈";i:230;s:4:"𞥉";i:230;s:4:"𞥊";i:7;} -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/unidata/lowerCase.ser: -------------------------------------------------------------------------------- 1 | a:1390:{s:1:"A";s:1:"a";s:1:"B";s:1:"b";s:1:"C";s:1:"c";s:1:"D";s:1:"d";s:1:"E";s:1:"e";s:1:"F";s:1:"f";s:1:"G";s:1:"g";s:1:"H";s:1:"h";s:1:"I";s:1:"i";s:1:"J";s:1:"j";s:1:"K";s:1:"k";s:1:"L";s:1:"l";s:1:"M";s:1:"m";s:1:"N";s:1:"n";s:1:"O";s:1:"o";s:1:"P";s:1:"p";s:1:"Q";s:1:"q";s:1:"R";s:1:"r";s:1:"S";s:1:"s";s:1:"T";s:1:"t";s:1:"U";s:1:"u";s:1:"V";s:1:"v";s:1:"W";s:1:"w";s:1:"X";s:1:"x";s:1:"Y";s:1:"y";s:1:"Z";s:1:"z";s:2:"À";s:2:"à";s:2:"Á";s:2:"á";s:2:"Â";s:2:"â";s:2:"Ã";s:2:"ã";s:2:"Ä";s:2:"ä";s:2:"Å";s:2:"å";s:2:"Æ";s:2:"æ";s:2:"Ç";s:2:"ç";s:2:"È";s:2:"è";s:2:"É";s:2:"é";s:2:"Ê";s:2:"ê";s:2:"Ë";s:2:"ë";s:2:"Ì";s:2:"ì";s:2:"Í";s:2:"í";s:2:"Î";s:2:"î";s:2:"Ï";s:2:"ï";s:2:"Ð";s:2:"ð";s:2:"Ñ";s:2:"ñ";s:2:"Ò";s:2:"ò";s:2:"Ó";s:2:"ó";s:2:"Ô";s:2:"ô";s:2:"Õ";s:2:"õ";s:2:"Ö";s:2:"ö";s:2:"Ø";s:2:"ø";s:2:"Ù";s:2:"ù";s:2:"Ú";s:2:"ú";s:2:"Û";s:2:"û";s:2:"Ü";s:2:"ü";s:2:"Ý";s:2:"ý";s:2:"Þ";s:2:"þ";s:2:"Ā";s:2:"ā";s:2:"Ă";s:2:"ă";s:2:"Ą";s:2:"ą";s:2:"Ć";s:2:"ć";s:2:"Ĉ";s:2:"ĉ";s:2:"Ċ";s:2:"ċ";s:2:"Č";s:2:"č";s:2:"Ď";s:2:"ď";s:2:"Đ";s:2:"đ";s:2:"Ē";s:2:"ē";s:2:"Ĕ";s:2:"ĕ";s:2:"Ė";s:2:"ė";s:2:"Ę";s:2:"ę";s:2:"Ě";s:2:"ě";s:2:"Ĝ";s:2:"ĝ";s:2:"Ğ";s:2:"ğ";s:2:"Ġ";s:2:"ġ";s:2:"Ģ";s:2:"ģ";s:2:"Ĥ";s:2:"ĥ";s:2:"Ħ";s:2:"ħ";s:2:"Ĩ";s:2:"ĩ";s:2:"Ī";s:2:"ī";s:2:"Ĭ";s:2:"ĭ";s:2:"Į";s:2:"į";s:2:"İ";s:1:"i";s:2:"IJ";s:2:"ij";s:2:"Ĵ";s:2:"ĵ";s:2:"Ķ";s:2:"ķ";s:2:"Ĺ";s:2:"ĺ";s:2:"Ļ";s:2:"ļ";s:2:"Ľ";s:2:"ľ";s:2:"Ŀ";s:2:"ŀ";s:2:"Ł";s:2:"ł";s:2:"Ń";s:2:"ń";s:2:"Ņ";s:2:"ņ";s:2:"Ň";s:2:"ň";s:2:"Ŋ";s:2:"ŋ";s:2:"Ō";s:2:"ō";s:2:"Ŏ";s:2:"ŏ";s:2:"Ő";s:2:"ő";s:2:"Œ";s:2:"œ";s:2:"Ŕ";s:2:"ŕ";s:2:"Ŗ";s:2:"ŗ";s:2:"Ř";s:2:"ř";s:2:"Ś";s:2:"ś";s:2:"Ŝ";s:2:"ŝ";s:2:"Ş";s:2:"ş";s:2:"Š";s:2:"š";s:2:"Ţ";s:2:"ţ";s:2:"Ť";s:2:"ť";s:2:"Ŧ";s:2:"ŧ";s:2:"Ũ";s:2:"ũ";s:2:"Ū";s:2:"ū";s:2:"Ŭ";s:2:"ŭ";s:2:"Ů";s:2:"ů";s:2:"Ű";s:2:"ű";s:2:"Ų";s:2:"ų";s:2:"Ŵ";s:2:"ŵ";s:2:"Ŷ";s:2:"ŷ";s:2:"Ÿ";s:2:"ÿ";s:2:"Ź";s:2:"ź";s:2:"Ż";s:2:"ż";s:2:"Ž";s:2:"ž";s:2:"Ɓ";s:2:"ɓ";s:2:"Ƃ";s:2:"ƃ";s:2:"Ƅ";s:2:"ƅ";s:2:"Ɔ";s:2:"ɔ";s:2:"Ƈ";s:2:"ƈ";s:2:"Ɖ";s:2:"ɖ";s:2:"Ɗ";s:2:"ɗ";s:2:"Ƌ";s:2:"ƌ";s:2:"Ǝ";s:2:"ǝ";s:2:"Ə";s:2:"ə";s:2:"Ɛ";s:2:"ɛ";s:2:"Ƒ";s:2:"ƒ";s:2:"Ɠ";s:2:"ɠ";s:2:"Ɣ";s:2:"ɣ";s:2:"Ɩ";s:2:"ɩ";s:2:"Ɨ";s:2:"ɨ";s:2:"Ƙ";s:2:"ƙ";s:2:"Ɯ";s:2:"ɯ";s:2:"Ɲ";s:2:"ɲ";s:2:"Ɵ";s:2:"ɵ";s:2:"Ơ";s:2:"ơ";s:2:"Ƣ";s:2:"ƣ";s:2:"Ƥ";s:2:"ƥ";s:2:"Ʀ";s:2:"ʀ";s:2:"Ƨ";s:2:"ƨ";s:2:"Ʃ";s:2:"ʃ";s:2:"Ƭ";s:2:"ƭ";s:2:"Ʈ";s:2:"ʈ";s:2:"Ư";s:2:"ư";s:2:"Ʊ";s:2:"ʊ";s:2:"Ʋ";s:2:"ʋ";s:2:"Ƴ";s:2:"ƴ";s:2:"Ƶ";s:2:"ƶ";s:2:"Ʒ";s:2:"ʒ";s:2:"Ƹ";s:2:"ƹ";s:2:"Ƽ";s:2:"ƽ";s:2:"DŽ";s:2:"dž";s:2:"Dž";s:2:"dž";s:2:"LJ";s:2:"lj";s:2:"Lj";s:2:"lj";s:2:"NJ";s:2:"nj";s:2:"Nj";s:2:"nj";s:2:"Ǎ";s:2:"ǎ";s:2:"Ǐ";s:2:"ǐ";s:2:"Ǒ";s:2:"ǒ";s:2:"Ǔ";s:2:"ǔ";s:2:"Ǖ";s:2:"ǖ";s:2:"Ǘ";s:2:"ǘ";s:2:"Ǚ";s:2:"ǚ";s:2:"Ǜ";s:2:"ǜ";s:2:"Ǟ";s:2:"ǟ";s:2:"Ǡ";s:2:"ǡ";s:2:"Ǣ";s:2:"ǣ";s:2:"Ǥ";s:2:"ǥ";s:2:"Ǧ";s:2:"ǧ";s:2:"Ǩ";s:2:"ǩ";s:2:"Ǫ";s:2:"ǫ";s:2:"Ǭ";s:2:"ǭ";s:2:"Ǯ";s:2:"ǯ";s:2:"DZ";s:2:"dz";s:2:"Dz";s:2:"dz";s:2:"Ǵ";s:2:"ǵ";s:2:"Ƕ";s:2:"ƕ";s:2:"Ƿ";s:2:"ƿ";s:2:"Ǹ";s:2:"ǹ";s:2:"Ǻ";s:2:"ǻ";s:2:"Ǽ";s:2:"ǽ";s:2:"Ǿ";s:2:"ǿ";s:2:"Ȁ";s:2:"ȁ";s:2:"Ȃ";s:2:"ȃ";s:2:"Ȅ";s:2:"ȅ";s:2:"Ȇ";s:2:"ȇ";s:2:"Ȉ";s:2:"ȉ";s:2:"Ȋ";s:2:"ȋ";s:2:"Ȍ";s:2:"ȍ";s:2:"Ȏ";s:2:"ȏ";s:2:"Ȑ";s:2:"ȑ";s:2:"Ȓ";s:2:"ȓ";s:2:"Ȕ";s:2:"ȕ";s:2:"Ȗ";s:2:"ȗ";s:2:"Ș";s:2:"ș";s:2:"Ț";s:2:"ț";s:2:"Ȝ";s:2:"ȝ";s:2:"Ȟ";s:2:"ȟ";s:2:"Ƞ";s:2:"ƞ";s:2:"Ȣ";s:2:"ȣ";s:2:"Ȥ";s:2:"ȥ";s:2:"Ȧ";s:2:"ȧ";s:2:"Ȩ";s:2:"ȩ";s:2:"Ȫ";s:2:"ȫ";s:2:"Ȭ";s:2:"ȭ";s:2:"Ȯ";s:2:"ȯ";s:2:"Ȱ";s:2:"ȱ";s:2:"Ȳ";s:2:"ȳ";s:2:"Ⱥ";s:3:"ⱥ";s:2:"Ȼ";s:2:"ȼ";s:2:"Ƚ";s:2:"ƚ";s:2:"Ⱦ";s:3:"ⱦ";s:2:"Ɂ";s:2:"ɂ";s:2:"Ƀ";s:2:"ƀ";s:2:"Ʉ";s:2:"ʉ";s:2:"Ʌ";s:2:"ʌ";s:2:"Ɇ";s:2:"ɇ";s:2:"Ɉ";s:2:"ɉ";s:2:"Ɋ";s:2:"ɋ";s:2:"Ɍ";s:2:"ɍ";s:2:"Ɏ";s:2:"ɏ";s:2:"Ͱ";s:2:"ͱ";s:2:"Ͳ";s:2:"ͳ";s:2:"Ͷ";s:2:"ͷ";s:2:"Ϳ";s:2:"ϳ";s:2:"Ά";s:2:"ά";s:2:"Έ";s:2:"έ";s:2:"Ή";s:2:"ή";s:2:"Ί";s:2:"ί";s:2:"Ό";s:2:"ό";s:2:"Ύ";s:2:"ύ";s:2:"Ώ";s:2:"ώ";s:2:"Α";s:2:"α";s:2:"Β";s:2:"β";s:2:"Γ";s:2:"γ";s:2:"Δ";s:2:"δ";s:2:"Ε";s:2:"ε";s:2:"Ζ";s:2:"ζ";s:2:"Η";s:2:"η";s:2:"Θ";s:2:"θ";s:2:"Ι";s:2:"ι";s:2:"Κ";s:2:"κ";s:2:"Λ";s:2:"λ";s:2:"Μ";s:2:"μ";s:2:"Ν";s:2:"ν";s:2:"Ξ";s:2:"ξ";s:2:"Ο";s:2:"ο";s:2:"Π";s:2:"π";s:2:"Ρ";s:2:"ρ";s:2:"Σ";s:2:"σ";s:2:"Τ";s:2:"τ";s:2:"Υ";s:2:"υ";s:2:"Φ";s:2:"φ";s:2:"Χ";s:2:"χ";s:2:"Ψ";s:2:"ψ";s:2:"Ω";s:2:"ω";s:2:"Ϊ";s:2:"ϊ";s:2:"Ϋ";s:2:"ϋ";s:2:"Ϗ";s:2:"ϗ";s:2:"Ϙ";s:2:"ϙ";s:2:"Ϛ";s:2:"ϛ";s:2:"Ϝ";s:2:"ϝ";s:2:"Ϟ";s:2:"ϟ";s:2:"Ϡ";s:2:"ϡ";s:2:"Ϣ";s:2:"ϣ";s:2:"Ϥ";s:2:"ϥ";s:2:"Ϧ";s:2:"ϧ";s:2:"Ϩ";s:2:"ϩ";s:2:"Ϫ";s:2:"ϫ";s:2:"Ϭ";s:2:"ϭ";s:2:"Ϯ";s:2:"ϯ";s:2:"ϴ";s:2:"θ";s:2:"Ϸ";s:2:"ϸ";s:2:"Ϲ";s:2:"ϲ";s:2:"Ϻ";s:2:"ϻ";s:2:"Ͻ";s:2:"ͻ";s:2:"Ͼ";s:2:"ͼ";s:2:"Ͽ";s:2:"ͽ";s:2:"Ѐ";s:2:"ѐ";s:2:"Ё";s:2:"ё";s:2:"Ђ";s:2:"ђ";s:2:"Ѓ";s:2:"ѓ";s:2:"Є";s:2:"є";s:2:"Ѕ";s:2:"ѕ";s:2:"І";s:2:"і";s:2:"Ї";s:2:"ї";s:2:"Ј";s:2:"ј";s:2:"Љ";s:2:"љ";s:2:"Њ";s:2:"њ";s:2:"Ћ";s:2:"ћ";s:2:"Ќ";s:2:"ќ";s:2:"Ѝ";s:2:"ѝ";s:2:"Ў";s:2:"ў";s:2:"Џ";s:2:"џ";s:2:"А";s:2:"а";s:2:"Б";s:2:"б";s:2:"В";s:2:"в";s:2:"Г";s:2:"г";s:2:"Д";s:2:"д";s:2:"Е";s:2:"е";s:2:"Ж";s:2:"ж";s:2:"З";s:2:"з";s:2:"И";s:2:"и";s:2:"Й";s:2:"й";s:2:"К";s:2:"к";s:2:"Л";s:2:"л";s:2:"М";s:2:"м";s:2:"Н";s:2:"н";s:2:"О";s:2:"о";s:2:"П";s:2:"п";s:2:"Р";s:2:"р";s:2:"С";s:2:"с";s:2:"Т";s:2:"т";s:2:"У";s:2:"у";s:2:"Ф";s:2:"ф";s:2:"Х";s:2:"х";s:2:"Ц";s:2:"ц";s:2:"Ч";s:2:"ч";s:2:"Ш";s:2:"ш";s:2:"Щ";s:2:"щ";s:2:"Ъ";s:2:"ъ";s:2:"Ы";s:2:"ы";s:2:"Ь";s:2:"ь";s:2:"Э";s:2:"э";s:2:"Ю";s:2:"ю";s:2:"Я";s:2:"я";s:2:"Ѡ";s:2:"ѡ";s:2:"Ѣ";s:2:"ѣ";s:2:"Ѥ";s:2:"ѥ";s:2:"Ѧ";s:2:"ѧ";s:2:"Ѩ";s:2:"ѩ";s:2:"Ѫ";s:2:"ѫ";s:2:"Ѭ";s:2:"ѭ";s:2:"Ѯ";s:2:"ѯ";s:2:"Ѱ";s:2:"ѱ";s:2:"Ѳ";s:2:"ѳ";s:2:"Ѵ";s:2:"ѵ";s:2:"Ѷ";s:2:"ѷ";s:2:"Ѹ";s:2:"ѹ";s:2:"Ѻ";s:2:"ѻ";s:2:"Ѽ";s:2:"ѽ";s:2:"Ѿ";s:2:"ѿ";s:2:"Ҁ";s:2:"ҁ";s:2:"Ҋ";s:2:"ҋ";s:2:"Ҍ";s:2:"ҍ";s:2:"Ҏ";s:2:"ҏ";s:2:"Ґ";s:2:"ґ";s:2:"Ғ";s:2:"ғ";s:2:"Ҕ";s:2:"ҕ";s:2:"Җ";s:2:"җ";s:2:"Ҙ";s:2:"ҙ";s:2:"Қ";s:2:"қ";s:2:"Ҝ";s:2:"ҝ";s:2:"Ҟ";s:2:"ҟ";s:2:"Ҡ";s:2:"ҡ";s:2:"Ң";s:2:"ң";s:2:"Ҥ";s:2:"ҥ";s:2:"Ҧ";s:2:"ҧ";s:2:"Ҩ";s:2:"ҩ";s:2:"Ҫ";s:2:"ҫ";s:2:"Ҭ";s:2:"ҭ";s:2:"Ү";s:2:"ү";s:2:"Ұ";s:2:"ұ";s:2:"Ҳ";s:2:"ҳ";s:2:"Ҵ";s:2:"ҵ";s:2:"Ҷ";s:2:"ҷ";s:2:"Ҹ";s:2:"ҹ";s:2:"Һ";s:2:"һ";s:2:"Ҽ";s:2:"ҽ";s:2:"Ҿ";s:2:"ҿ";s:2:"Ӏ";s:2:"ӏ";s:2:"Ӂ";s:2:"ӂ";s:2:"Ӄ";s:2:"ӄ";s:2:"Ӆ";s:2:"ӆ";s:2:"Ӈ";s:2:"ӈ";s:2:"Ӊ";s:2:"ӊ";s:2:"Ӌ";s:2:"ӌ";s:2:"Ӎ";s:2:"ӎ";s:2:"Ӑ";s:2:"ӑ";s:2:"Ӓ";s:2:"ӓ";s:2:"Ӕ";s:2:"ӕ";s:2:"Ӗ";s:2:"ӗ";s:2:"Ә";s:2:"ә";s:2:"Ӛ";s:2:"ӛ";s:2:"Ӝ";s:2:"ӝ";s:2:"Ӟ";s:2:"ӟ";s:2:"Ӡ";s:2:"ӡ";s:2:"Ӣ";s:2:"ӣ";s:2:"Ӥ";s:2:"ӥ";s:2:"Ӧ";s:2:"ӧ";s:2:"Ө";s:2:"ө";s:2:"Ӫ";s:2:"ӫ";s:2:"Ӭ";s:2:"ӭ";s:2:"Ӯ";s:2:"ӯ";s:2:"Ӱ";s:2:"ӱ";s:2:"Ӳ";s:2:"ӳ";s:2:"Ӵ";s:2:"ӵ";s:2:"Ӷ";s:2:"ӷ";s:2:"Ӹ";s:2:"ӹ";s:2:"Ӻ";s:2:"ӻ";s:2:"Ӽ";s:2:"ӽ";s:2:"Ӿ";s:2:"ӿ";s:2:"Ԁ";s:2:"ԁ";s:2:"Ԃ";s:2:"ԃ";s:2:"Ԅ";s:2:"ԅ";s:2:"Ԇ";s:2:"ԇ";s:2:"Ԉ";s:2:"ԉ";s:2:"Ԋ";s:2:"ԋ";s:2:"Ԍ";s:2:"ԍ";s:2:"Ԏ";s:2:"ԏ";s:2:"Ԑ";s:2:"ԑ";s:2:"Ԓ";s:2:"ԓ";s:2:"Ԕ";s:2:"ԕ";s:2:"Ԗ";s:2:"ԗ";s:2:"Ԙ";s:2:"ԙ";s:2:"Ԛ";s:2:"ԛ";s:2:"Ԝ";s:2:"ԝ";s:2:"Ԟ";s:2:"ԟ";s:2:"Ԡ";s:2:"ԡ";s:2:"Ԣ";s:2:"ԣ";s:2:"Ԥ";s:2:"ԥ";s:2:"Ԧ";s:2:"ԧ";s:2:"Ԩ";s:2:"ԩ";s:2:"Ԫ";s:2:"ԫ";s:2:"Ԭ";s:2:"ԭ";s:2:"Ԯ";s:2:"ԯ";s:2:"Ա";s:2:"ա";s:2:"Բ";s:2:"բ";s:2:"Գ";s:2:"գ";s:2:"Դ";s:2:"դ";s:2:"Ե";s:2:"ե";s:2:"Զ";s:2:"զ";s:2:"Է";s:2:"է";s:2:"Ը";s:2:"ը";s:2:"Թ";s:2:"թ";s:2:"Ժ";s:2:"ժ";s:2:"Ի";s:2:"ի";s:2:"Լ";s:2:"լ";s:2:"Խ";s:2:"խ";s:2:"Ծ";s:2:"ծ";s:2:"Կ";s:2:"կ";s:2:"Հ";s:2:"հ";s:2:"Ձ";s:2:"ձ";s:2:"Ղ";s:2:"ղ";s:2:"Ճ";s:2:"ճ";s:2:"Մ";s:2:"մ";s:2:"Յ";s:2:"յ";s:2:"Ն";s:2:"ն";s:2:"Շ";s:2:"շ";s:2:"Ո";s:2:"ո";s:2:"Չ";s:2:"չ";s:2:"Պ";s:2:"պ";s:2:"Ջ";s:2:"ջ";s:2:"Ռ";s:2:"ռ";s:2:"Ս";s:2:"ս";s:2:"Վ";s:2:"վ";s:2:"Տ";s:2:"տ";s:2:"Ր";s:2:"ր";s:2:"Ց";s:2:"ց";s:2:"Ւ";s:2:"ւ";s:2:"Փ";s:2:"փ";s:2:"Ք";s:2:"ք";s:2:"Օ";s:2:"օ";s:2:"Ֆ";s:2:"ֆ";s:3:"Ⴀ";s:3:"ⴀ";s:3:"Ⴁ";s:3:"ⴁ";s:3:"Ⴂ";s:3:"ⴂ";s:3:"Ⴃ";s:3:"ⴃ";s:3:"Ⴄ";s:3:"ⴄ";s:3:"Ⴅ";s:3:"ⴅ";s:3:"Ⴆ";s:3:"ⴆ";s:3:"Ⴇ";s:3:"ⴇ";s:3:"Ⴈ";s:3:"ⴈ";s:3:"Ⴉ";s:3:"ⴉ";s:3:"Ⴊ";s:3:"ⴊ";s:3:"Ⴋ";s:3:"ⴋ";s:3:"Ⴌ";s:3:"ⴌ";s:3:"Ⴍ";s:3:"ⴍ";s:3:"Ⴎ";s:3:"ⴎ";s:3:"Ⴏ";s:3:"ⴏ";s:3:"Ⴐ";s:3:"ⴐ";s:3:"Ⴑ";s:3:"ⴑ";s:3:"Ⴒ";s:3:"ⴒ";s:3:"Ⴓ";s:3:"ⴓ";s:3:"Ⴔ";s:3:"ⴔ";s:3:"Ⴕ";s:3:"ⴕ";s:3:"Ⴖ";s:3:"ⴖ";s:3:"Ⴗ";s:3:"ⴗ";s:3:"Ⴘ";s:3:"ⴘ";s:3:"Ⴙ";s:3:"ⴙ";s:3:"Ⴚ";s:3:"ⴚ";s:3:"Ⴛ";s:3:"ⴛ";s:3:"Ⴜ";s:3:"ⴜ";s:3:"Ⴝ";s:3:"ⴝ";s:3:"Ⴞ";s:3:"ⴞ";s:3:"Ⴟ";s:3:"ⴟ";s:3:"Ⴠ";s:3:"ⴠ";s:3:"Ⴡ";s:3:"ⴡ";s:3:"Ⴢ";s:3:"ⴢ";s:3:"Ⴣ";s:3:"ⴣ";s:3:"Ⴤ";s:3:"ⴤ";s:3:"Ⴥ";s:3:"ⴥ";s:3:"Ⴧ";s:3:"ⴧ";s:3:"Ⴭ";s:3:"ⴭ";s:3:"Ꭰ";s:3:"ꭰ";s:3:"Ꭱ";s:3:"ꭱ";s:3:"Ꭲ";s:3:"ꭲ";s:3:"Ꭳ";s:3:"ꭳ";s:3:"Ꭴ";s:3:"ꭴ";s:3:"Ꭵ";s:3:"ꭵ";s:3:"Ꭶ";s:3:"ꭶ";s:3:"Ꭷ";s:3:"ꭷ";s:3:"Ꭸ";s:3:"ꭸ";s:3:"Ꭹ";s:3:"ꭹ";s:3:"Ꭺ";s:3:"ꭺ";s:3:"Ꭻ";s:3:"ꭻ";s:3:"Ꭼ";s:3:"ꭼ";s:3:"Ꭽ";s:3:"ꭽ";s:3:"Ꭾ";s:3:"ꭾ";s:3:"Ꭿ";s:3:"ꭿ";s:3:"Ꮀ";s:3:"ꮀ";s:3:"Ꮁ";s:3:"ꮁ";s:3:"Ꮂ";s:3:"ꮂ";s:3:"Ꮃ";s:3:"ꮃ";s:3:"Ꮄ";s:3:"ꮄ";s:3:"Ꮅ";s:3:"ꮅ";s:3:"Ꮆ";s:3:"ꮆ";s:3:"Ꮇ";s:3:"ꮇ";s:3:"Ꮈ";s:3:"ꮈ";s:3:"Ꮉ";s:3:"ꮉ";s:3:"Ꮊ";s:3:"ꮊ";s:3:"Ꮋ";s:3:"ꮋ";s:3:"Ꮌ";s:3:"ꮌ";s:3:"Ꮍ";s:3:"ꮍ";s:3:"Ꮎ";s:3:"ꮎ";s:3:"Ꮏ";s:3:"ꮏ";s:3:"Ꮐ";s:3:"ꮐ";s:3:"Ꮑ";s:3:"ꮑ";s:3:"Ꮒ";s:3:"ꮒ";s:3:"Ꮓ";s:3:"ꮓ";s:3:"Ꮔ";s:3:"ꮔ";s:3:"Ꮕ";s:3:"ꮕ";s:3:"Ꮖ";s:3:"ꮖ";s:3:"Ꮗ";s:3:"ꮗ";s:3:"Ꮘ";s:3:"ꮘ";s:3:"Ꮙ";s:3:"ꮙ";s:3:"Ꮚ";s:3:"ꮚ";s:3:"Ꮛ";s:3:"ꮛ";s:3:"Ꮜ";s:3:"ꮜ";s:3:"Ꮝ";s:3:"ꮝ";s:3:"Ꮞ";s:3:"ꮞ";s:3:"Ꮟ";s:3:"ꮟ";s:3:"Ꮠ";s:3:"ꮠ";s:3:"Ꮡ";s:3:"ꮡ";s:3:"Ꮢ";s:3:"ꮢ";s:3:"Ꮣ";s:3:"ꮣ";s:3:"Ꮤ";s:3:"ꮤ";s:3:"Ꮥ";s:3:"ꮥ";s:3:"Ꮦ";s:3:"ꮦ";s:3:"Ꮧ";s:3:"ꮧ";s:3:"Ꮨ";s:3:"ꮨ";s:3:"Ꮩ";s:3:"ꮩ";s:3:"Ꮪ";s:3:"ꮪ";s:3:"Ꮫ";s:3:"ꮫ";s:3:"Ꮬ";s:3:"ꮬ";s:3:"Ꮭ";s:3:"ꮭ";s:3:"Ꮮ";s:3:"ꮮ";s:3:"Ꮯ";s:3:"ꮯ";s:3:"Ꮰ";s:3:"ꮰ";s:3:"Ꮱ";s:3:"ꮱ";s:3:"Ꮲ";s:3:"ꮲ";s:3:"Ꮳ";s:3:"ꮳ";s:3:"Ꮴ";s:3:"ꮴ";s:3:"Ꮵ";s:3:"ꮵ";s:3:"Ꮶ";s:3:"ꮶ";s:3:"Ꮷ";s:3:"ꮷ";s:3:"Ꮸ";s:3:"ꮸ";s:3:"Ꮹ";s:3:"ꮹ";s:3:"Ꮺ";s:3:"ꮺ";s:3:"Ꮻ";s:3:"ꮻ";s:3:"Ꮼ";s:3:"ꮼ";s:3:"Ꮽ";s:3:"ꮽ";s:3:"Ꮾ";s:3:"ꮾ";s:3:"Ꮿ";s:3:"ꮿ";s:3:"Ᏸ";s:3:"ᏸ";s:3:"Ᏹ";s:3:"ᏹ";s:3:"Ᏺ";s:3:"ᏺ";s:3:"Ᏻ";s:3:"ᏻ";s:3:"Ᏼ";s:3:"ᏼ";s:3:"Ᏽ";s:3:"ᏽ";s:3:"Ა";s:3:"ა";s:3:"Ბ";s:3:"ბ";s:3:"Გ";s:3:"გ";s:3:"Დ";s:3:"დ";s:3:"Ე";s:3:"ე";s:3:"Ვ";s:3:"ვ";s:3:"Ზ";s:3:"ზ";s:3:"Თ";s:3:"თ";s:3:"Ი";s:3:"ი";s:3:"Კ";s:3:"კ";s:3:"Ლ";s:3:"ლ";s:3:"Მ";s:3:"მ";s:3:"Ნ";s:3:"ნ";s:3:"Ო";s:3:"ო";s:3:"Პ";s:3:"პ";s:3:"Ჟ";s:3:"ჟ";s:3:"Რ";s:3:"რ";s:3:"Ს";s:3:"ს";s:3:"Ტ";s:3:"ტ";s:3:"Უ";s:3:"უ";s:3:"Ფ";s:3:"ფ";s:3:"Ქ";s:3:"ქ";s:3:"Ღ";s:3:"ღ";s:3:"Ყ";s:3:"ყ";s:3:"Შ";s:3:"შ";s:3:"Ჩ";s:3:"ჩ";s:3:"Ც";s:3:"ც";s:3:"Ძ";s:3:"ძ";s:3:"Წ";s:3:"წ";s:3:"Ჭ";s:3:"ჭ";s:3:"Ხ";s:3:"ხ";s:3:"Ჯ";s:3:"ჯ";s:3:"Ჰ";s:3:"ჰ";s:3:"Ჱ";s:3:"ჱ";s:3:"Ჲ";s:3:"ჲ";s:3:"Ჳ";s:3:"ჳ";s:3:"Ჴ";s:3:"ჴ";s:3:"Ჵ";s:3:"ჵ";s:3:"Ჶ";s:3:"ჶ";s:3:"Ჷ";s:3:"ჷ";s:3:"Ჸ";s:3:"ჸ";s:3:"Ჹ";s:3:"ჹ";s:3:"Ჺ";s:3:"ჺ";s:3:"Ჽ";s:3:"ჽ";s:3:"Ჾ";s:3:"ჾ";s:3:"Ჿ";s:3:"ჿ";s:3:"Ḁ";s:3:"ḁ";s:3:"Ḃ";s:3:"ḃ";s:3:"Ḅ";s:3:"ḅ";s:3:"Ḇ";s:3:"ḇ";s:3:"Ḉ";s:3:"ḉ";s:3:"Ḋ";s:3:"ḋ";s:3:"Ḍ";s:3:"ḍ";s:3:"Ḏ";s:3:"ḏ";s:3:"Ḑ";s:3:"ḑ";s:3:"Ḓ";s:3:"ḓ";s:3:"Ḕ";s:3:"ḕ";s:3:"Ḗ";s:3:"ḗ";s:3:"Ḙ";s:3:"ḙ";s:3:"Ḛ";s:3:"ḛ";s:3:"Ḝ";s:3:"ḝ";s:3:"Ḟ";s:3:"ḟ";s:3:"Ḡ";s:3:"ḡ";s:3:"Ḣ";s:3:"ḣ";s:3:"Ḥ";s:3:"ḥ";s:3:"Ḧ";s:3:"ḧ";s:3:"Ḩ";s:3:"ḩ";s:3:"Ḫ";s:3:"ḫ";s:3:"Ḭ";s:3:"ḭ";s:3:"Ḯ";s:3:"ḯ";s:3:"Ḱ";s:3:"ḱ";s:3:"Ḳ";s:3:"ḳ";s:3:"Ḵ";s:3:"ḵ";s:3:"Ḷ";s:3:"ḷ";s:3:"Ḹ";s:3:"ḹ";s:3:"Ḻ";s:3:"ḻ";s:3:"Ḽ";s:3:"ḽ";s:3:"Ḿ";s:3:"ḿ";s:3:"Ṁ";s:3:"ṁ";s:3:"Ṃ";s:3:"ṃ";s:3:"Ṅ";s:3:"ṅ";s:3:"Ṇ";s:3:"ṇ";s:3:"Ṉ";s:3:"ṉ";s:3:"Ṋ";s:3:"ṋ";s:3:"Ṍ";s:3:"ṍ";s:3:"Ṏ";s:3:"ṏ";s:3:"Ṑ";s:3:"ṑ";s:3:"Ṓ";s:3:"ṓ";s:3:"Ṕ";s:3:"ṕ";s:3:"Ṗ";s:3:"ṗ";s:3:"Ṙ";s:3:"ṙ";s:3:"Ṛ";s:3:"ṛ";s:3:"Ṝ";s:3:"ṝ";s:3:"Ṟ";s:3:"ṟ";s:3:"Ṡ";s:3:"ṡ";s:3:"Ṣ";s:3:"ṣ";s:3:"Ṥ";s:3:"ṥ";s:3:"Ṧ";s:3:"ṧ";s:3:"Ṩ";s:3:"ṩ";s:3:"Ṫ";s:3:"ṫ";s:3:"Ṭ";s:3:"ṭ";s:3:"Ṯ";s:3:"ṯ";s:3:"Ṱ";s:3:"ṱ";s:3:"Ṳ";s:3:"ṳ";s:3:"Ṵ";s:3:"ṵ";s:3:"Ṷ";s:3:"ṷ";s:3:"Ṹ";s:3:"ṹ";s:3:"Ṻ";s:3:"ṻ";s:3:"Ṽ";s:3:"ṽ";s:3:"Ṿ";s:3:"ṿ";s:3:"Ẁ";s:3:"ẁ";s:3:"Ẃ";s:3:"ẃ";s:3:"Ẅ";s:3:"ẅ";s:3:"Ẇ";s:3:"ẇ";s:3:"Ẉ";s:3:"ẉ";s:3:"Ẋ";s:3:"ẋ";s:3:"Ẍ";s:3:"ẍ";s:3:"Ẏ";s:3:"ẏ";s:3:"Ẑ";s:3:"ẑ";s:3:"Ẓ";s:3:"ẓ";s:3:"Ẕ";s:3:"ẕ";s:3:"ẞ";s:2:"ß";s:3:"Ạ";s:3:"ạ";s:3:"Ả";s:3:"ả";s:3:"Ấ";s:3:"ấ";s:3:"Ầ";s:3:"ầ";s:3:"Ẩ";s:3:"ẩ";s:3:"Ẫ";s:3:"ẫ";s:3:"Ậ";s:3:"ậ";s:3:"Ắ";s:3:"ắ";s:3:"Ằ";s:3:"ằ";s:3:"Ẳ";s:3:"ẳ";s:3:"Ẵ";s:3:"ẵ";s:3:"Ặ";s:3:"ặ";s:3:"Ẹ";s:3:"ẹ";s:3:"Ẻ";s:3:"ẻ";s:3:"Ẽ";s:3:"ẽ";s:3:"Ế";s:3:"ế";s:3:"Ề";s:3:"ề";s:3:"Ể";s:3:"ể";s:3:"Ễ";s:3:"ễ";s:3:"Ệ";s:3:"ệ";s:3:"Ỉ";s:3:"ỉ";s:3:"Ị";s:3:"ị";s:3:"Ọ";s:3:"ọ";s:3:"Ỏ";s:3:"ỏ";s:3:"Ố";s:3:"ố";s:3:"Ồ";s:3:"ồ";s:3:"Ổ";s:3:"ổ";s:3:"Ỗ";s:3:"ỗ";s:3:"Ộ";s:3:"ộ";s:3:"Ớ";s:3:"ớ";s:3:"Ờ";s:3:"ờ";s:3:"Ở";s:3:"ở";s:3:"Ỡ";s:3:"ỡ";s:3:"Ợ";s:3:"ợ";s:3:"Ụ";s:3:"ụ";s:3:"Ủ";s:3:"ủ";s:3:"Ứ";s:3:"ứ";s:3:"Ừ";s:3:"ừ";s:3:"Ử";s:3:"ử";s:3:"Ữ";s:3:"ữ";s:3:"Ự";s:3:"ự";s:3:"Ỳ";s:3:"ỳ";s:3:"Ỵ";s:3:"ỵ";s:3:"Ỷ";s:3:"ỷ";s:3:"Ỹ";s:3:"ỹ";s:3:"Ỻ";s:3:"ỻ";s:3:"Ỽ";s:3:"ỽ";s:3:"Ỿ";s:3:"ỿ";s:3:"Ἀ";s:3:"ἀ";s:3:"Ἁ";s:3:"ἁ";s:3:"Ἂ";s:3:"ἂ";s:3:"Ἃ";s:3:"ἃ";s:3:"Ἄ";s:3:"ἄ";s:3:"Ἅ";s:3:"ἅ";s:3:"Ἆ";s:3:"ἆ";s:3:"Ἇ";s:3:"ἇ";s:3:"Ἐ";s:3:"ἐ";s:3:"Ἑ";s:3:"ἑ";s:3:"Ἒ";s:3:"ἒ";s:3:"Ἓ";s:3:"ἓ";s:3:"Ἔ";s:3:"ἔ";s:3:"Ἕ";s:3:"ἕ";s:3:"Ἠ";s:3:"ἠ";s:3:"Ἡ";s:3:"ἡ";s:3:"Ἢ";s:3:"ἢ";s:3:"Ἣ";s:3:"ἣ";s:3:"Ἤ";s:3:"ἤ";s:3:"Ἥ";s:3:"ἥ";s:3:"Ἦ";s:3:"ἦ";s:3:"Ἧ";s:3:"ἧ";s:3:"Ἰ";s:3:"ἰ";s:3:"Ἱ";s:3:"ἱ";s:3:"Ἲ";s:3:"ἲ";s:3:"Ἳ";s:3:"ἳ";s:3:"Ἴ";s:3:"ἴ";s:3:"Ἵ";s:3:"ἵ";s:3:"Ἶ";s:3:"ἶ";s:3:"Ἷ";s:3:"ἷ";s:3:"Ὀ";s:3:"ὀ";s:3:"Ὁ";s:3:"ὁ";s:3:"Ὂ";s:3:"ὂ";s:3:"Ὃ";s:3:"ὃ";s:3:"Ὄ";s:3:"ὄ";s:3:"Ὅ";s:3:"ὅ";s:3:"Ὑ";s:3:"ὑ";s:3:"Ὓ";s:3:"ὓ";s:3:"Ὕ";s:3:"ὕ";s:3:"Ὗ";s:3:"ὗ";s:3:"Ὠ";s:3:"ὠ";s:3:"Ὡ";s:3:"ὡ";s:3:"Ὢ";s:3:"ὢ";s:3:"Ὣ";s:3:"ὣ";s:3:"Ὤ";s:3:"ὤ";s:3:"Ὥ";s:3:"ὥ";s:3:"Ὦ";s:3:"ὦ";s:3:"Ὧ";s:3:"ὧ";s:3:"ᾈ";s:3:"ᾀ";s:3:"ᾉ";s:3:"ᾁ";s:3:"ᾊ";s:3:"ᾂ";s:3:"ᾋ";s:3:"ᾃ";s:3:"ᾌ";s:3:"ᾄ";s:3:"ᾍ";s:3:"ᾅ";s:3:"ᾎ";s:3:"ᾆ";s:3:"ᾏ";s:3:"ᾇ";s:3:"ᾘ";s:3:"ᾐ";s:3:"ᾙ";s:3:"ᾑ";s:3:"ᾚ";s:3:"ᾒ";s:3:"ᾛ";s:3:"ᾓ";s:3:"ᾜ";s:3:"ᾔ";s:3:"ᾝ";s:3:"ᾕ";s:3:"ᾞ";s:3:"ᾖ";s:3:"ᾟ";s:3:"ᾗ";s:3:"ᾨ";s:3:"ᾠ";s:3:"ᾩ";s:3:"ᾡ";s:3:"ᾪ";s:3:"ᾢ";s:3:"ᾫ";s:3:"ᾣ";s:3:"ᾬ";s:3:"ᾤ";s:3:"ᾭ";s:3:"ᾥ";s:3:"ᾮ";s:3:"ᾦ";s:3:"ᾯ";s:3:"ᾧ";s:3:"Ᾰ";s:3:"ᾰ";s:3:"Ᾱ";s:3:"ᾱ";s:3:"Ὰ";s:3:"ὰ";s:3:"Ά";s:3:"ά";s:3:"ᾼ";s:3:"ᾳ";s:3:"Ὲ";s:3:"ὲ";s:3:"Έ";s:3:"έ";s:3:"Ὴ";s:3:"ὴ";s:3:"Ή";s:3:"ή";s:3:"ῌ";s:3:"ῃ";s:3:"Ῐ";s:3:"ῐ";s:3:"Ῑ";s:3:"ῑ";s:3:"Ὶ";s:3:"ὶ";s:3:"Ί";s:3:"ί";s:3:"Ῠ";s:3:"ῠ";s:3:"Ῡ";s:3:"ῡ";s:3:"Ὺ";s:3:"ὺ";s:3:"Ύ";s:3:"ύ";s:3:"Ῥ";s:3:"ῥ";s:3:"Ὸ";s:3:"ὸ";s:3:"Ό";s:3:"ό";s:3:"Ὼ";s:3:"ὼ";s:3:"Ώ";s:3:"ώ";s:3:"ῼ";s:3:"ῳ";s:3:"Ω";s:2:"ω";s:3:"K";s:1:"k";s:3:"Å";s:2:"å";s:3:"Ⅎ";s:3:"ⅎ";s:3:"Ⅰ";s:3:"ⅰ";s:3:"Ⅱ";s:3:"ⅱ";s:3:"Ⅲ";s:3:"ⅲ";s:3:"Ⅳ";s:3:"ⅳ";s:3:"Ⅴ";s:3:"ⅴ";s:3:"Ⅵ";s:3:"ⅵ";s:3:"Ⅶ";s:3:"ⅶ";s:3:"Ⅷ";s:3:"ⅷ";s:3:"Ⅸ";s:3:"ⅸ";s:3:"Ⅹ";s:3:"ⅹ";s:3:"Ⅺ";s:3:"ⅺ";s:3:"Ⅻ";s:3:"ⅻ";s:3:"Ⅼ";s:3:"ⅼ";s:3:"Ⅽ";s:3:"ⅽ";s:3:"Ⅾ";s:3:"ⅾ";s:3:"Ⅿ";s:3:"ⅿ";s:3:"Ↄ";s:3:"ↄ";s:3:"Ⓐ";s:3:"ⓐ";s:3:"Ⓑ";s:3:"ⓑ";s:3:"Ⓒ";s:3:"ⓒ";s:3:"Ⓓ";s:3:"ⓓ";s:3:"Ⓔ";s:3:"ⓔ";s:3:"Ⓕ";s:3:"ⓕ";s:3:"Ⓖ";s:3:"ⓖ";s:3:"Ⓗ";s:3:"ⓗ";s:3:"Ⓘ";s:3:"ⓘ";s:3:"Ⓙ";s:3:"ⓙ";s:3:"Ⓚ";s:3:"ⓚ";s:3:"Ⓛ";s:3:"ⓛ";s:3:"Ⓜ";s:3:"ⓜ";s:3:"Ⓝ";s:3:"ⓝ";s:3:"Ⓞ";s:3:"ⓞ";s:3:"Ⓟ";s:3:"ⓟ";s:3:"Ⓠ";s:3:"ⓠ";s:3:"Ⓡ";s:3:"ⓡ";s:3:"Ⓢ";s:3:"ⓢ";s:3:"Ⓣ";s:3:"ⓣ";s:3:"Ⓤ";s:3:"ⓤ";s:3:"Ⓥ";s:3:"ⓥ";s:3:"Ⓦ";s:3:"ⓦ";s:3:"Ⓧ";s:3:"ⓧ";s:3:"Ⓨ";s:3:"ⓨ";s:3:"Ⓩ";s:3:"ⓩ";s:3:"Ⰰ";s:3:"ⰰ";s:3:"Ⰱ";s:3:"ⰱ";s:3:"Ⰲ";s:3:"ⰲ";s:3:"Ⰳ";s:3:"ⰳ";s:3:"Ⰴ";s:3:"ⰴ";s:3:"Ⰵ";s:3:"ⰵ";s:3:"Ⰶ";s:3:"ⰶ";s:3:"Ⰷ";s:3:"ⰷ";s:3:"Ⰸ";s:3:"ⰸ";s:3:"Ⰹ";s:3:"ⰹ";s:3:"Ⰺ";s:3:"ⰺ";s:3:"Ⰻ";s:3:"ⰻ";s:3:"Ⰼ";s:3:"ⰼ";s:3:"Ⰽ";s:3:"ⰽ";s:3:"Ⰾ";s:3:"ⰾ";s:3:"Ⰿ";s:3:"ⰿ";s:3:"Ⱀ";s:3:"ⱀ";s:3:"Ⱁ";s:3:"ⱁ";s:3:"Ⱂ";s:3:"ⱂ";s:3:"Ⱃ";s:3:"ⱃ";s:3:"Ⱄ";s:3:"ⱄ";s:3:"Ⱅ";s:3:"ⱅ";s:3:"Ⱆ";s:3:"ⱆ";s:3:"Ⱇ";s:3:"ⱇ";s:3:"Ⱈ";s:3:"ⱈ";s:3:"Ⱉ";s:3:"ⱉ";s:3:"Ⱊ";s:3:"ⱊ";s:3:"Ⱋ";s:3:"ⱋ";s:3:"Ⱌ";s:3:"ⱌ";s:3:"Ⱍ";s:3:"ⱍ";s:3:"Ⱎ";s:3:"ⱎ";s:3:"Ⱏ";s:3:"ⱏ";s:3:"Ⱐ";s:3:"ⱐ";s:3:"Ⱑ";s:3:"ⱑ";s:3:"Ⱒ";s:3:"ⱒ";s:3:"Ⱓ";s:3:"ⱓ";s:3:"Ⱔ";s:3:"ⱔ";s:3:"Ⱕ";s:3:"ⱕ";s:3:"Ⱖ";s:3:"ⱖ";s:3:"Ⱗ";s:3:"ⱗ";s:3:"Ⱘ";s:3:"ⱘ";s:3:"Ⱙ";s:3:"ⱙ";s:3:"Ⱚ";s:3:"ⱚ";s:3:"Ⱛ";s:3:"ⱛ";s:3:"Ⱜ";s:3:"ⱜ";s:3:"Ⱝ";s:3:"ⱝ";s:3:"Ⱞ";s:3:"ⱞ";s:3:"Ⱡ";s:3:"ⱡ";s:3:"Ɫ";s:2:"ɫ";s:3:"Ᵽ";s:3:"ᵽ";s:3:"Ɽ";s:2:"ɽ";s:3:"Ⱨ";s:3:"ⱨ";s:3:"Ⱪ";s:3:"ⱪ";s:3:"Ⱬ";s:3:"ⱬ";s:3:"Ɑ";s:2:"ɑ";s:3:"Ɱ";s:2:"ɱ";s:3:"Ɐ";s:2:"ɐ";s:3:"Ɒ";s:2:"ɒ";s:3:"Ⱳ";s:3:"ⱳ";s:3:"Ⱶ";s:3:"ⱶ";s:3:"Ȿ";s:2:"ȿ";s:3:"Ɀ";s:2:"ɀ";s:3:"Ⲁ";s:3:"ⲁ";s:3:"Ⲃ";s:3:"ⲃ";s:3:"Ⲅ";s:3:"ⲅ";s:3:"Ⲇ";s:3:"ⲇ";s:3:"Ⲉ";s:3:"ⲉ";s:3:"Ⲋ";s:3:"ⲋ";s:3:"Ⲍ";s:3:"ⲍ";s:3:"Ⲏ";s:3:"ⲏ";s:3:"Ⲑ";s:3:"ⲑ";s:3:"Ⲓ";s:3:"ⲓ";s:3:"Ⲕ";s:3:"ⲕ";s:3:"Ⲗ";s:3:"ⲗ";s:3:"Ⲙ";s:3:"ⲙ";s:3:"Ⲛ";s:3:"ⲛ";s:3:"Ⲝ";s:3:"ⲝ";s:3:"Ⲟ";s:3:"ⲟ";s:3:"Ⲡ";s:3:"ⲡ";s:3:"Ⲣ";s:3:"ⲣ";s:3:"Ⲥ";s:3:"ⲥ";s:3:"Ⲧ";s:3:"ⲧ";s:3:"Ⲩ";s:3:"ⲩ";s:3:"Ⲫ";s:3:"ⲫ";s:3:"Ⲭ";s:3:"ⲭ";s:3:"Ⲯ";s:3:"ⲯ";s:3:"Ⲱ";s:3:"ⲱ";s:3:"Ⲳ";s:3:"ⲳ";s:3:"Ⲵ";s:3:"ⲵ";s:3:"Ⲷ";s:3:"ⲷ";s:3:"Ⲹ";s:3:"ⲹ";s:3:"Ⲻ";s:3:"ⲻ";s:3:"Ⲽ";s:3:"ⲽ";s:3:"Ⲿ";s:3:"ⲿ";s:3:"Ⳁ";s:3:"ⳁ";s:3:"Ⳃ";s:3:"ⳃ";s:3:"Ⳅ";s:3:"ⳅ";s:3:"Ⳇ";s:3:"ⳇ";s:3:"Ⳉ";s:3:"ⳉ";s:3:"Ⳋ";s:3:"ⳋ";s:3:"Ⳍ";s:3:"ⳍ";s:3:"Ⳏ";s:3:"ⳏ";s:3:"Ⳑ";s:3:"ⳑ";s:3:"Ⳓ";s:3:"ⳓ";s:3:"Ⳕ";s:3:"ⳕ";s:3:"Ⳗ";s:3:"ⳗ";s:3:"Ⳙ";s:3:"ⳙ";s:3:"Ⳛ";s:3:"ⳛ";s:3:"Ⳝ";s:3:"ⳝ";s:3:"Ⳟ";s:3:"ⳟ";s:3:"Ⳡ";s:3:"ⳡ";s:3:"Ⳣ";s:3:"ⳣ";s:3:"Ⳬ";s:3:"ⳬ";s:3:"Ⳮ";s:3:"ⳮ";s:3:"Ⳳ";s:3:"ⳳ";s:3:"Ꙁ";s:3:"ꙁ";s:3:"Ꙃ";s:3:"ꙃ";s:3:"Ꙅ";s:3:"ꙅ";s:3:"Ꙇ";s:3:"ꙇ";s:3:"Ꙉ";s:3:"ꙉ";s:3:"Ꙋ";s:3:"ꙋ";s:3:"Ꙍ";s:3:"ꙍ";s:3:"Ꙏ";s:3:"ꙏ";s:3:"Ꙑ";s:3:"ꙑ";s:3:"Ꙓ";s:3:"ꙓ";s:3:"Ꙕ";s:3:"ꙕ";s:3:"Ꙗ";s:3:"ꙗ";s:3:"Ꙙ";s:3:"ꙙ";s:3:"Ꙛ";s:3:"ꙛ";s:3:"Ꙝ";s:3:"ꙝ";s:3:"Ꙟ";s:3:"ꙟ";s:3:"Ꙡ";s:3:"ꙡ";s:3:"Ꙣ";s:3:"ꙣ";s:3:"Ꙥ";s:3:"ꙥ";s:3:"Ꙧ";s:3:"ꙧ";s:3:"Ꙩ";s:3:"ꙩ";s:3:"Ꙫ";s:3:"ꙫ";s:3:"Ꙭ";s:3:"ꙭ";s:3:"Ꚁ";s:3:"ꚁ";s:3:"Ꚃ";s:3:"ꚃ";s:3:"Ꚅ";s:3:"ꚅ";s:3:"Ꚇ";s:3:"ꚇ";s:3:"Ꚉ";s:3:"ꚉ";s:3:"Ꚋ";s:3:"ꚋ";s:3:"Ꚍ";s:3:"ꚍ";s:3:"Ꚏ";s:3:"ꚏ";s:3:"Ꚑ";s:3:"ꚑ";s:3:"Ꚓ";s:3:"ꚓ";s:3:"Ꚕ";s:3:"ꚕ";s:3:"Ꚗ";s:3:"ꚗ";s:3:"Ꚙ";s:3:"ꚙ";s:3:"Ꚛ";s:3:"ꚛ";s:3:"Ꜣ";s:3:"ꜣ";s:3:"Ꜥ";s:3:"ꜥ";s:3:"Ꜧ";s:3:"ꜧ";s:3:"Ꜩ";s:3:"ꜩ";s:3:"Ꜫ";s:3:"ꜫ";s:3:"Ꜭ";s:3:"ꜭ";s:3:"Ꜯ";s:3:"ꜯ";s:3:"Ꜳ";s:3:"ꜳ";s:3:"Ꜵ";s:3:"ꜵ";s:3:"Ꜷ";s:3:"ꜷ";s:3:"Ꜹ";s:3:"ꜹ";s:3:"Ꜻ";s:3:"ꜻ";s:3:"Ꜽ";s:3:"ꜽ";s:3:"Ꜿ";s:3:"ꜿ";s:3:"Ꝁ";s:3:"ꝁ";s:3:"Ꝃ";s:3:"ꝃ";s:3:"Ꝅ";s:3:"ꝅ";s:3:"Ꝇ";s:3:"ꝇ";s:3:"Ꝉ";s:3:"ꝉ";s:3:"Ꝋ";s:3:"ꝋ";s:3:"Ꝍ";s:3:"ꝍ";s:3:"Ꝏ";s:3:"ꝏ";s:3:"Ꝑ";s:3:"ꝑ";s:3:"Ꝓ";s:3:"ꝓ";s:3:"Ꝕ";s:3:"ꝕ";s:3:"Ꝗ";s:3:"ꝗ";s:3:"Ꝙ";s:3:"ꝙ";s:3:"Ꝛ";s:3:"ꝛ";s:3:"Ꝝ";s:3:"ꝝ";s:3:"Ꝟ";s:3:"ꝟ";s:3:"Ꝡ";s:3:"ꝡ";s:3:"Ꝣ";s:3:"ꝣ";s:3:"Ꝥ";s:3:"ꝥ";s:3:"Ꝧ";s:3:"ꝧ";s:3:"Ꝩ";s:3:"ꝩ";s:3:"Ꝫ";s:3:"ꝫ";s:3:"Ꝭ";s:3:"ꝭ";s:3:"Ꝯ";s:3:"ꝯ";s:3:"Ꝺ";s:3:"ꝺ";s:3:"Ꝼ";s:3:"ꝼ";s:3:"Ᵹ";s:3:"ᵹ";s:3:"Ꝿ";s:3:"ꝿ";s:3:"Ꞁ";s:3:"ꞁ";s:3:"Ꞃ";s:3:"ꞃ";s:3:"Ꞅ";s:3:"ꞅ";s:3:"Ꞇ";s:3:"ꞇ";s:3:"Ꞌ";s:3:"ꞌ";s:3:"Ɥ";s:2:"ɥ";s:3:"Ꞑ";s:3:"ꞑ";s:3:"Ꞓ";s:3:"ꞓ";s:3:"Ꞗ";s:3:"ꞗ";s:3:"Ꞙ";s:3:"ꞙ";s:3:"Ꞛ";s:3:"ꞛ";s:3:"Ꞝ";s:3:"ꞝ";s:3:"Ꞟ";s:3:"ꞟ";s:3:"Ꞡ";s:3:"ꞡ";s:3:"Ꞣ";s:3:"ꞣ";s:3:"Ꞥ";s:3:"ꞥ";s:3:"Ꞧ";s:3:"ꞧ";s:3:"Ꞩ";s:3:"ꞩ";s:3:"Ɦ";s:2:"ɦ";s:3:"Ɜ";s:2:"ɜ";s:3:"Ɡ";s:2:"ɡ";s:3:"Ɬ";s:2:"ɬ";s:3:"Ɪ";s:2:"ɪ";s:3:"Ʞ";s:2:"ʞ";s:3:"Ʇ";s:2:"ʇ";s:3:"Ʝ";s:2:"ʝ";s:3:"Ꭓ";s:3:"ꭓ";s:3:"Ꞵ";s:3:"ꞵ";s:3:"Ꞷ";s:3:"ꞷ";s:3:"Ꞹ";s:3:"ꞹ";s:3:"Ꞻ";s:3:"ꞻ";s:3:"Ꞽ";s:3:"ꞽ";s:3:"Ꞿ";s:3:"ꞿ";s:3:"Ꟃ";s:3:"ꟃ";s:3:"Ꞔ";s:3:"ꞔ";s:3:"Ʂ";s:2:"ʂ";s:3:"Ᶎ";s:3:"ᶎ";s:3:"A";s:3:"a";s:3:"B";s:3:"b";s:3:"C";s:3:"c";s:3:"D";s:3:"d";s:3:"E";s:3:"e";s:3:"F";s:3:"f";s:3:"G";s:3:"g";s:3:"H";s:3:"h";s:3:"I";s:3:"i";s:3:"J";s:3:"j";s:3:"K";s:3:"k";s:3:"L";s:3:"l";s:3:"M";s:3:"m";s:3:"N";s:3:"n";s:3:"O";s:3:"o";s:3:"P";s:3:"p";s:3:"Q";s:3:"q";s:3:"R";s:3:"r";s:3:"S";s:3:"s";s:3:"T";s:3:"t";s:3:"U";s:3:"u";s:3:"V";s:3:"v";s:3:"W";s:3:"w";s:3:"X";s:3:"x";s:3:"Y";s:3:"y";s:3:"Z";s:3:"z";s:4:"𐐀";s:4:"𐐨";s:4:"𐐁";s:4:"𐐩";s:4:"𐐂";s:4:"𐐪";s:4:"𐐃";s:4:"𐐫";s:4:"𐐄";s:4:"𐐬";s:4:"𐐅";s:4:"𐐭";s:4:"𐐆";s:4:"𐐮";s:4:"𐐇";s:4:"𐐯";s:4:"𐐈";s:4:"𐐰";s:4:"𐐉";s:4:"𐐱";s:4:"𐐊";s:4:"𐐲";s:4:"𐐋";s:4:"𐐳";s:4:"𐐌";s:4:"𐐴";s:4:"𐐍";s:4:"𐐵";s:4:"𐐎";s:4:"𐐶";s:4:"𐐏";s:4:"𐐷";s:4:"𐐐";s:4:"𐐸";s:4:"𐐑";s:4:"𐐹";s:4:"𐐒";s:4:"𐐺";s:4:"𐐓";s:4:"𐐻";s:4:"𐐔";s:4:"𐐼";s:4:"𐐕";s:4:"𐐽";s:4:"𐐖";s:4:"𐐾";s:4:"𐐗";s:4:"𐐿";s:4:"𐐘";s:4:"𐑀";s:4:"𐐙";s:4:"𐑁";s:4:"𐐚";s:4:"𐑂";s:4:"𐐛";s:4:"𐑃";s:4:"𐐜";s:4:"𐑄";s:4:"𐐝";s:4:"𐑅";s:4:"𐐞";s:4:"𐑆";s:4:"𐐟";s:4:"𐑇";s:4:"𐐠";s:4:"𐑈";s:4:"𐐡";s:4:"𐑉";s:4:"𐐢";s:4:"𐑊";s:4:"𐐣";s:4:"𐑋";s:4:"𐐤";s:4:"𐑌";s:4:"𐐥";s:4:"𐑍";s:4:"𐐦";s:4:"𐑎";s:4:"𐐧";s:4:"𐑏";s:4:"𐒰";s:4:"𐓘";s:4:"𐒱";s:4:"𐓙";s:4:"𐒲";s:4:"𐓚";s:4:"𐒳";s:4:"𐓛";s:4:"𐒴";s:4:"𐓜";s:4:"𐒵";s:4:"𐓝";s:4:"𐒶";s:4:"𐓞";s:4:"𐒷";s:4:"𐓟";s:4:"𐒸";s:4:"𐓠";s:4:"𐒹";s:4:"𐓡";s:4:"𐒺";s:4:"𐓢";s:4:"𐒻";s:4:"𐓣";s:4:"𐒼";s:4:"𐓤";s:4:"𐒽";s:4:"𐓥";s:4:"𐒾";s:4:"𐓦";s:4:"𐒿";s:4:"𐓧";s:4:"𐓀";s:4:"𐓨";s:4:"𐓁";s:4:"𐓩";s:4:"𐓂";s:4:"𐓪";s:4:"𐓃";s:4:"𐓫";s:4:"𐓄";s:4:"𐓬";s:4:"𐓅";s:4:"𐓭";s:4:"𐓆";s:4:"𐓮";s:4:"𐓇";s:4:"𐓯";s:4:"𐓈";s:4:"𐓰";s:4:"𐓉";s:4:"𐓱";s:4:"𐓊";s:4:"𐓲";s:4:"𐓋";s:4:"𐓳";s:4:"𐓌";s:4:"𐓴";s:4:"𐓍";s:4:"𐓵";s:4:"𐓎";s:4:"𐓶";s:4:"𐓏";s:4:"𐓷";s:4:"𐓐";s:4:"𐓸";s:4:"𐓑";s:4:"𐓹";s:4:"𐓒";s:4:"𐓺";s:4:"𐓓";s:4:"𐓻";s:4:"𐲀";s:4:"𐳀";s:4:"𐲁";s:4:"𐳁";s:4:"𐲂";s:4:"𐳂";s:4:"𐲃";s:4:"𐳃";s:4:"𐲄";s:4:"𐳄";s:4:"𐲅";s:4:"𐳅";s:4:"𐲆";s:4:"𐳆";s:4:"𐲇";s:4:"𐳇";s:4:"𐲈";s:4:"𐳈";s:4:"𐲉";s:4:"𐳉";s:4:"𐲊";s:4:"𐳊";s:4:"𐲋";s:4:"𐳋";s:4:"𐲌";s:4:"𐳌";s:4:"𐲍";s:4:"𐳍";s:4:"𐲎";s:4:"𐳎";s:4:"𐲏";s:4:"𐳏";s:4:"𐲐";s:4:"𐳐";s:4:"𐲑";s:4:"𐳑";s:4:"𐲒";s:4:"𐳒";s:4:"𐲓";s:4:"𐳓";s:4:"𐲔";s:4:"𐳔";s:4:"𐲕";s:4:"𐳕";s:4:"𐲖";s:4:"𐳖";s:4:"𐲗";s:4:"𐳗";s:4:"𐲘";s:4:"𐳘";s:4:"𐲙";s:4:"𐳙";s:4:"𐲚";s:4:"𐳚";s:4:"𐲛";s:4:"𐳛";s:4:"𐲜";s:4:"𐳜";s:4:"𐲝";s:4:"𐳝";s:4:"𐲞";s:4:"𐳞";s:4:"𐲟";s:4:"𐳟";s:4:"𐲠";s:4:"𐳠";s:4:"𐲡";s:4:"𐳡";s:4:"𐲢";s:4:"𐳢";s:4:"𐲣";s:4:"𐳣";s:4:"𐲤";s:4:"𐳤";s:4:"𐲥";s:4:"𐳥";s:4:"𐲦";s:4:"𐳦";s:4:"𐲧";s:4:"𐳧";s:4:"𐲨";s:4:"𐳨";s:4:"𐲩";s:4:"𐳩";s:4:"𐲪";s:4:"𐳪";s:4:"𐲫";s:4:"𐳫";s:4:"𐲬";s:4:"𐳬";s:4:"𐲭";s:4:"𐳭";s:4:"𐲮";s:4:"𐳮";s:4:"𐲯";s:4:"𐳯";s:4:"𐲰";s:4:"𐳰";s:4:"𐲱";s:4:"𐳱";s:4:"𐲲";s:4:"𐳲";s:4:"𑢠";s:4:"𑣀";s:4:"𑢡";s:4:"𑣁";s:4:"𑢢";s:4:"𑣂";s:4:"𑢣";s:4:"𑣃";s:4:"𑢤";s:4:"𑣄";s:4:"𑢥";s:4:"𑣅";s:4:"𑢦";s:4:"𑣆";s:4:"𑢧";s:4:"𑣇";s:4:"𑢨";s:4:"𑣈";s:4:"𑢩";s:4:"𑣉";s:4:"𑢪";s:4:"𑣊";s:4:"𑢫";s:4:"𑣋";s:4:"𑢬";s:4:"𑣌";s:4:"𑢭";s:4:"𑣍";s:4:"𑢮";s:4:"𑣎";s:4:"𑢯";s:4:"𑣏";s:4:"𑢰";s:4:"𑣐";s:4:"𑢱";s:4:"𑣑";s:4:"𑢲";s:4:"𑣒";s:4:"𑢳";s:4:"𑣓";s:4:"𑢴";s:4:"𑣔";s:4:"𑢵";s:4:"𑣕";s:4:"𑢶";s:4:"𑣖";s:4:"𑢷";s:4:"𑣗";s:4:"𑢸";s:4:"𑣘";s:4:"𑢹";s:4:"𑣙";s:4:"𑢺";s:4:"𑣚";s:4:"𑢻";s:4:"𑣛";s:4:"𑢼";s:4:"𑣜";s:4:"𑢽";s:4:"𑣝";s:4:"𑢾";s:4:"𑣞";s:4:"𑢿";s:4:"𑣟";s:4:"𖹀";s:4:"𖹠";s:4:"𖹁";s:4:"𖹡";s:4:"𖹂";s:4:"𖹢";s:4:"𖹃";s:4:"𖹣";s:4:"𖹄";s:4:"𖹤";s:4:"𖹅";s:4:"𖹥";s:4:"𖹆";s:4:"𖹦";s:4:"𖹇";s:4:"𖹧";s:4:"𖹈";s:4:"𖹨";s:4:"𖹉";s:4:"𖹩";s:4:"𖹊";s:4:"𖹪";s:4:"𖹋";s:4:"𖹫";s:4:"𖹌";s:4:"𖹬";s:4:"𖹍";s:4:"𖹭";s:4:"𖹎";s:4:"𖹮";s:4:"𖹏";s:4:"𖹯";s:4:"𖹐";s:4:"𖹰";s:4:"𖹑";s:4:"𖹱";s:4:"𖹒";s:4:"𖹲";s:4:"𖹓";s:4:"𖹳";s:4:"𖹔";s:4:"𖹴";s:4:"𖹕";s:4:"𖹵";s:4:"𖹖";s:4:"𖹶";s:4:"𖹗";s:4:"𖹷";s:4:"𖹘";s:4:"𖹸";s:4:"𖹙";s:4:"𖹹";s:4:"𖹚";s:4:"𖹺";s:4:"𖹛";s:4:"𖹻";s:4:"𖹜";s:4:"𖹼";s:4:"𖹝";s:4:"𖹽";s:4:"𖹞";s:4:"𖹾";s:4:"𖹟";s:4:"𖹿";s:4:"𞤀";s:4:"𞤢";s:4:"𞤁";s:4:"𞤣";s:4:"𞤂";s:4:"𞤤";s:4:"𞤃";s:4:"𞤥";s:4:"𞤄";s:4:"𞤦";s:4:"𞤅";s:4:"𞤧";s:4:"𞤆";s:4:"𞤨";s:4:"𞤇";s:4:"𞤩";s:4:"𞤈";s:4:"𞤪";s:4:"𞤉";s:4:"𞤫";s:4:"𞤊";s:4:"𞤬";s:4:"𞤋";s:4:"𞤭";s:4:"𞤌";s:4:"𞤮";s:4:"𞤍";s:4:"𞤯";s:4:"𞤎";s:4:"𞤰";s:4:"𞤏";s:4:"𞤱";s:4:"𞤐";s:4:"𞤲";s:4:"𞤑";s:4:"𞤳";s:4:"𞤒";s:4:"𞤴";s:4:"𞤓";s:4:"𞤵";s:4:"𞤔";s:4:"𞤶";s:4:"𞤕";s:4:"𞤷";s:4:"𞤖";s:4:"𞤸";s:4:"𞤗";s:4:"𞤹";s:4:"𞤘";s:4:"𞤺";s:4:"𞤙";s:4:"𞤻";s:4:"𞤚";s:4:"𞤼";s:4:"𞤛";s:4:"𞤽";s:4:"𞤜";s:4:"𞤾";s:4:"𞤝";s:4:"𞤿";s:4:"𞤞";s:4:"𞥀";s:4:"𞤟";s:4:"𞥁";s:4:"𞤠";s:4:"𞥂";s:4:"𞤡";s:4:"𞥃";} -------------------------------------------------------------------------------- /src/Patchwork/PHP/Shim/unidata/upperCase.ser: -------------------------------------------------------------------------------- 1 | a:1407:{s:1:"a";s:1:"A";s:1:"b";s:1:"B";s:1:"c";s:1:"C";s:1:"d";s:1:"D";s:1:"e";s:1:"E";s:1:"f";s:1:"F";s:1:"g";s:1:"G";s:1:"h";s:1:"H";s:1:"i";s:1:"I";s:1:"j";s:1:"J";s:1:"k";s:1:"K";s:1:"l";s:1:"L";s:1:"m";s:1:"M";s:1:"n";s:1:"N";s:1:"o";s:1:"O";s:1:"p";s:1:"P";s:1:"q";s:1:"Q";s:1:"r";s:1:"R";s:1:"s";s:1:"S";s:1:"t";s:1:"T";s:1:"u";s:1:"U";s:1:"v";s:1:"V";s:1:"w";s:1:"W";s:1:"x";s:1:"X";s:1:"y";s:1:"Y";s:1:"z";s:1:"Z";s:2:"µ";s:2:"Μ";s:2:"à";s:2:"À";s:2:"á";s:2:"Á";s:2:"â";s:2:"Â";s:2:"ã";s:2:"Ã";s:2:"ä";s:2:"Ä";s:2:"å";s:2:"Å";s:2:"æ";s:2:"Æ";s:2:"ç";s:2:"Ç";s:2:"è";s:2:"È";s:2:"é";s:2:"É";s:2:"ê";s:2:"Ê";s:2:"ë";s:2:"Ë";s:2:"ì";s:2:"Ì";s:2:"í";s:2:"Í";s:2:"î";s:2:"Î";s:2:"ï";s:2:"Ï";s:2:"ð";s:2:"Ð";s:2:"ñ";s:2:"Ñ";s:2:"ò";s:2:"Ò";s:2:"ó";s:2:"Ó";s:2:"ô";s:2:"Ô";s:2:"õ";s:2:"Õ";s:2:"ö";s:2:"Ö";s:2:"ø";s:2:"Ø";s:2:"ù";s:2:"Ù";s:2:"ú";s:2:"Ú";s:2:"û";s:2:"Û";s:2:"ü";s:2:"Ü";s:2:"ý";s:2:"Ý";s:2:"þ";s:2:"Þ";s:2:"ÿ";s:2:"Ÿ";s:2:"ā";s:2:"Ā";s:2:"ă";s:2:"Ă";s:2:"ą";s:2:"Ą";s:2:"ć";s:2:"Ć";s:2:"ĉ";s:2:"Ĉ";s:2:"ċ";s:2:"Ċ";s:2:"č";s:2:"Č";s:2:"ď";s:2:"Ď";s:2:"đ";s:2:"Đ";s:2:"ē";s:2:"Ē";s:2:"ĕ";s:2:"Ĕ";s:2:"ė";s:2:"Ė";s:2:"ę";s:2:"Ę";s:2:"ě";s:2:"Ě";s:2:"ĝ";s:2:"Ĝ";s:2:"ğ";s:2:"Ğ";s:2:"ġ";s:2:"Ġ";s:2:"ģ";s:2:"Ģ";s:2:"ĥ";s:2:"Ĥ";s:2:"ħ";s:2:"Ħ";s:2:"ĩ";s:2:"Ĩ";s:2:"ī";s:2:"Ī";s:2:"ĭ";s:2:"Ĭ";s:2:"į";s:2:"Į";s:2:"ı";s:1:"I";s:2:"ij";s:2:"IJ";s:2:"ĵ";s:2:"Ĵ";s:2:"ķ";s:2:"Ķ";s:2:"ĺ";s:2:"Ĺ";s:2:"ļ";s:2:"Ļ";s:2:"ľ";s:2:"Ľ";s:2:"ŀ";s:2:"Ŀ";s:2:"ł";s:2:"Ł";s:2:"ń";s:2:"Ń";s:2:"ņ";s:2:"Ņ";s:2:"ň";s:2:"Ň";s:2:"ŋ";s:2:"Ŋ";s:2:"ō";s:2:"Ō";s:2:"ŏ";s:2:"Ŏ";s:2:"ő";s:2:"Ő";s:2:"œ";s:2:"Œ";s:2:"ŕ";s:2:"Ŕ";s:2:"ŗ";s:2:"Ŗ";s:2:"ř";s:2:"Ř";s:2:"ś";s:2:"Ś";s:2:"ŝ";s:2:"Ŝ";s:2:"ş";s:2:"Ş";s:2:"š";s:2:"Š";s:2:"ţ";s:2:"Ţ";s:2:"ť";s:2:"Ť";s:2:"ŧ";s:2:"Ŧ";s:2:"ũ";s:2:"Ũ";s:2:"ū";s:2:"Ū";s:2:"ŭ";s:2:"Ŭ";s:2:"ů";s:2:"Ů";s:2:"ű";s:2:"Ű";s:2:"ų";s:2:"Ų";s:2:"ŵ";s:2:"Ŵ";s:2:"ŷ";s:2:"Ŷ";s:2:"ź";s:2:"Ź";s:2:"ż";s:2:"Ż";s:2:"ž";s:2:"Ž";s:2:"ſ";s:1:"S";s:2:"ƀ";s:2:"Ƀ";s:2:"ƃ";s:2:"Ƃ";s:2:"ƅ";s:2:"Ƅ";s:2:"ƈ";s:2:"Ƈ";s:2:"ƌ";s:2:"Ƌ";s:2:"ƒ";s:2:"Ƒ";s:2:"ƕ";s:2:"Ƕ";s:2:"ƙ";s:2:"Ƙ";s:2:"ƚ";s:2:"Ƚ";s:2:"ƞ";s:2:"Ƞ";s:2:"ơ";s:2:"Ơ";s:2:"ƣ";s:2:"Ƣ";s:2:"ƥ";s:2:"Ƥ";s:2:"ƨ";s:2:"Ƨ";s:2:"ƭ";s:2:"Ƭ";s:2:"ư";s:2:"Ư";s:2:"ƴ";s:2:"Ƴ";s:2:"ƶ";s:2:"Ƶ";s:2:"ƹ";s:2:"Ƹ";s:2:"ƽ";s:2:"Ƽ";s:2:"ƿ";s:2:"Ƿ";s:2:"Dž";s:2:"DŽ";s:2:"dž";s:2:"DŽ";s:2:"Lj";s:2:"LJ";s:2:"lj";s:2:"LJ";s:2:"Nj";s:2:"NJ";s:2:"nj";s:2:"NJ";s:2:"ǎ";s:2:"Ǎ";s:2:"ǐ";s:2:"Ǐ";s:2:"ǒ";s:2:"Ǒ";s:2:"ǔ";s:2:"Ǔ";s:2:"ǖ";s:2:"Ǖ";s:2:"ǘ";s:2:"Ǘ";s:2:"ǚ";s:2:"Ǚ";s:2:"ǜ";s:2:"Ǜ";s:2:"ǝ";s:2:"Ǝ";s:2:"ǟ";s:2:"Ǟ";s:2:"ǡ";s:2:"Ǡ";s:2:"ǣ";s:2:"Ǣ";s:2:"ǥ";s:2:"Ǥ";s:2:"ǧ";s:2:"Ǧ";s:2:"ǩ";s:2:"Ǩ";s:2:"ǫ";s:2:"Ǫ";s:2:"ǭ";s:2:"Ǭ";s:2:"ǯ";s:2:"Ǯ";s:2:"Dz";s:2:"DZ";s:2:"dz";s:2:"DZ";s:2:"ǵ";s:2:"Ǵ";s:2:"ǹ";s:2:"Ǹ";s:2:"ǻ";s:2:"Ǻ";s:2:"ǽ";s:2:"Ǽ";s:2:"ǿ";s:2:"Ǿ";s:2:"ȁ";s:2:"Ȁ";s:2:"ȃ";s:2:"Ȃ";s:2:"ȅ";s:2:"Ȅ";s:2:"ȇ";s:2:"Ȇ";s:2:"ȉ";s:2:"Ȉ";s:2:"ȋ";s:2:"Ȋ";s:2:"ȍ";s:2:"Ȍ";s:2:"ȏ";s:2:"Ȏ";s:2:"ȑ";s:2:"Ȑ";s:2:"ȓ";s:2:"Ȓ";s:2:"ȕ";s:2:"Ȕ";s:2:"ȗ";s:2:"Ȗ";s:2:"ș";s:2:"Ș";s:2:"ț";s:2:"Ț";s:2:"ȝ";s:2:"Ȝ";s:2:"ȟ";s:2:"Ȟ";s:2:"ȣ";s:2:"Ȣ";s:2:"ȥ";s:2:"Ȥ";s:2:"ȧ";s:2:"Ȧ";s:2:"ȩ";s:2:"Ȩ";s:2:"ȫ";s:2:"Ȫ";s:2:"ȭ";s:2:"Ȭ";s:2:"ȯ";s:2:"Ȯ";s:2:"ȱ";s:2:"Ȱ";s:2:"ȳ";s:2:"Ȳ";s:2:"ȼ";s:2:"Ȼ";s:2:"ȿ";s:3:"Ȿ";s:2:"ɀ";s:3:"Ɀ";s:2:"ɂ";s:2:"Ɂ";s:2:"ɇ";s:2:"Ɇ";s:2:"ɉ";s:2:"Ɉ";s:2:"ɋ";s:2:"Ɋ";s:2:"ɍ";s:2:"Ɍ";s:2:"ɏ";s:2:"Ɏ";s:2:"ɐ";s:3:"Ɐ";s:2:"ɑ";s:3:"Ɑ";s:2:"ɒ";s:3:"Ɒ";s:2:"ɓ";s:2:"Ɓ";s:2:"ɔ";s:2:"Ɔ";s:2:"ɖ";s:2:"Ɖ";s:2:"ɗ";s:2:"Ɗ";s:2:"ə";s:2:"Ə";s:2:"ɛ";s:2:"Ɛ";s:2:"ɜ";s:3:"Ɜ";s:2:"ɠ";s:2:"Ɠ";s:2:"ɡ";s:3:"Ɡ";s:2:"ɣ";s:2:"Ɣ";s:2:"ɥ";s:3:"Ɥ";s:2:"ɦ";s:3:"Ɦ";s:2:"ɨ";s:2:"Ɨ";s:2:"ɩ";s:2:"Ɩ";s:2:"ɪ";s:3:"Ɪ";s:2:"ɫ";s:3:"Ɫ";s:2:"ɬ";s:3:"Ɬ";s:2:"ɯ";s:2:"Ɯ";s:2:"ɱ";s:3:"Ɱ";s:2:"ɲ";s:2:"Ɲ";s:2:"ɵ";s:2:"Ɵ";s:2:"ɽ";s:3:"Ɽ";s:2:"ʀ";s:2:"Ʀ";s:2:"ʂ";s:3:"Ʂ";s:2:"ʃ";s:2:"Ʃ";s:2:"ʇ";s:3:"Ʇ";s:2:"ʈ";s:2:"Ʈ";s:2:"ʉ";s:2:"Ʉ";s:2:"ʊ";s:2:"Ʊ";s:2:"ʋ";s:2:"Ʋ";s:2:"ʌ";s:2:"Ʌ";s:2:"ʒ";s:2:"Ʒ";s:2:"ʝ";s:3:"Ʝ";s:2:"ʞ";s:3:"Ʞ";s:2:"ͅ";s:2:"Ι";s:2:"ͱ";s:2:"Ͱ";s:2:"ͳ";s:2:"Ͳ";s:2:"ͷ";s:2:"Ͷ";s:2:"ͻ";s:2:"Ͻ";s:2:"ͼ";s:2:"Ͼ";s:2:"ͽ";s:2:"Ͽ";s:2:"ά";s:2:"Ά";s:2:"έ";s:2:"Έ";s:2:"ή";s:2:"Ή";s:2:"ί";s:2:"Ί";s:2:"α";s:2:"Α";s:2:"β";s:2:"Β";s:2:"γ";s:2:"Γ";s:2:"δ";s:2:"Δ";s:2:"ε";s:2:"Ε";s:2:"ζ";s:2:"Ζ";s:2:"η";s:2:"Η";s:2:"θ";s:2:"Θ";s:2:"ι";s:2:"Ι";s:2:"κ";s:2:"Κ";s:2:"λ";s:2:"Λ";s:2:"μ";s:2:"Μ";s:2:"ν";s:2:"Ν";s:2:"ξ";s:2:"Ξ";s:2:"ο";s:2:"Ο";s:2:"π";s:2:"Π";s:2:"ρ";s:2:"Ρ";s:2:"ς";s:2:"Σ";s:2:"σ";s:2:"Σ";s:2:"τ";s:2:"Τ";s:2:"υ";s:2:"Υ";s:2:"φ";s:2:"Φ";s:2:"χ";s:2:"Χ";s:2:"ψ";s:2:"Ψ";s:2:"ω";s:2:"Ω";s:2:"ϊ";s:2:"Ϊ";s:2:"ϋ";s:2:"Ϋ";s:2:"ό";s:2:"Ό";s:2:"ύ";s:2:"Ύ";s:2:"ώ";s:2:"Ώ";s:2:"ϐ";s:2:"Β";s:2:"ϑ";s:2:"Θ";s:2:"ϕ";s:2:"Φ";s:2:"ϖ";s:2:"Π";s:2:"ϗ";s:2:"Ϗ";s:2:"ϙ";s:2:"Ϙ";s:2:"ϛ";s:2:"Ϛ";s:2:"ϝ";s:2:"Ϝ";s:2:"ϟ";s:2:"Ϟ";s:2:"ϡ";s:2:"Ϡ";s:2:"ϣ";s:2:"Ϣ";s:2:"ϥ";s:2:"Ϥ";s:2:"ϧ";s:2:"Ϧ";s:2:"ϩ";s:2:"Ϩ";s:2:"ϫ";s:2:"Ϫ";s:2:"ϭ";s:2:"Ϭ";s:2:"ϯ";s:2:"Ϯ";s:2:"ϰ";s:2:"Κ";s:2:"ϱ";s:2:"Ρ";s:2:"ϲ";s:2:"Ϲ";s:2:"ϳ";s:2:"Ϳ";s:2:"ϵ";s:2:"Ε";s:2:"ϸ";s:2:"Ϸ";s:2:"ϻ";s:2:"Ϻ";s:2:"а";s:2:"А";s:2:"б";s:2:"Б";s:2:"в";s:2:"В";s:2:"г";s:2:"Г";s:2:"д";s:2:"Д";s:2:"е";s:2:"Е";s:2:"ж";s:2:"Ж";s:2:"з";s:2:"З";s:2:"и";s:2:"И";s:2:"й";s:2:"Й";s:2:"к";s:2:"К";s:2:"л";s:2:"Л";s:2:"м";s:2:"М";s:2:"н";s:2:"Н";s:2:"о";s:2:"О";s:2:"п";s:2:"П";s:2:"р";s:2:"Р";s:2:"с";s:2:"С";s:2:"т";s:2:"Т";s:2:"у";s:2:"У";s:2:"ф";s:2:"Ф";s:2:"х";s:2:"Х";s:2:"ц";s:2:"Ц";s:2:"ч";s:2:"Ч";s:2:"ш";s:2:"Ш";s:2:"щ";s:2:"Щ";s:2:"ъ";s:2:"Ъ";s:2:"ы";s:2:"Ы";s:2:"ь";s:2:"Ь";s:2:"э";s:2:"Э";s:2:"ю";s:2:"Ю";s:2:"я";s:2:"Я";s:2:"ѐ";s:2:"Ѐ";s:2:"ё";s:2:"Ё";s:2:"ђ";s:2:"Ђ";s:2:"ѓ";s:2:"Ѓ";s:2:"є";s:2:"Є";s:2:"ѕ";s:2:"Ѕ";s:2:"і";s:2:"І";s:2:"ї";s:2:"Ї";s:2:"ј";s:2:"Ј";s:2:"љ";s:2:"Љ";s:2:"њ";s:2:"Њ";s:2:"ћ";s:2:"Ћ";s:2:"ќ";s:2:"Ќ";s:2:"ѝ";s:2:"Ѝ";s:2:"ў";s:2:"Ў";s:2:"џ";s:2:"Џ";s:2:"ѡ";s:2:"Ѡ";s:2:"ѣ";s:2:"Ѣ";s:2:"ѥ";s:2:"Ѥ";s:2:"ѧ";s:2:"Ѧ";s:2:"ѩ";s:2:"Ѩ";s:2:"ѫ";s:2:"Ѫ";s:2:"ѭ";s:2:"Ѭ";s:2:"ѯ";s:2:"Ѯ";s:2:"ѱ";s:2:"Ѱ";s:2:"ѳ";s:2:"Ѳ";s:2:"ѵ";s:2:"Ѵ";s:2:"ѷ";s:2:"Ѷ";s:2:"ѹ";s:2:"Ѹ";s:2:"ѻ";s:2:"Ѻ";s:2:"ѽ";s:2:"Ѽ";s:2:"ѿ";s:2:"Ѿ";s:2:"ҁ";s:2:"Ҁ";s:2:"ҋ";s:2:"Ҋ";s:2:"ҍ";s:2:"Ҍ";s:2:"ҏ";s:2:"Ҏ";s:2:"ґ";s:2:"Ґ";s:2:"ғ";s:2:"Ғ";s:2:"ҕ";s:2:"Ҕ";s:2:"җ";s:2:"Җ";s:2:"ҙ";s:2:"Ҙ";s:2:"қ";s:2:"Қ";s:2:"ҝ";s:2:"Ҝ";s:2:"ҟ";s:2:"Ҟ";s:2:"ҡ";s:2:"Ҡ";s:2:"ң";s:2:"Ң";s:2:"ҥ";s:2:"Ҥ";s:2:"ҧ";s:2:"Ҧ";s:2:"ҩ";s:2:"Ҩ";s:2:"ҫ";s:2:"Ҫ";s:2:"ҭ";s:2:"Ҭ";s:2:"ү";s:2:"Ү";s:2:"ұ";s:2:"Ұ";s:2:"ҳ";s:2:"Ҳ";s:2:"ҵ";s:2:"Ҵ";s:2:"ҷ";s:2:"Ҷ";s:2:"ҹ";s:2:"Ҹ";s:2:"һ";s:2:"Һ";s:2:"ҽ";s:2:"Ҽ";s:2:"ҿ";s:2:"Ҿ";s:2:"ӂ";s:2:"Ӂ";s:2:"ӄ";s:2:"Ӄ";s:2:"ӆ";s:2:"Ӆ";s:2:"ӈ";s:2:"Ӈ";s:2:"ӊ";s:2:"Ӊ";s:2:"ӌ";s:2:"Ӌ";s:2:"ӎ";s:2:"Ӎ";s:2:"ӏ";s:2:"Ӏ";s:2:"ӑ";s:2:"Ӑ";s:2:"ӓ";s:2:"Ӓ";s:2:"ӕ";s:2:"Ӕ";s:2:"ӗ";s:2:"Ӗ";s:2:"ә";s:2:"Ә";s:2:"ӛ";s:2:"Ӛ";s:2:"ӝ";s:2:"Ӝ";s:2:"ӟ";s:2:"Ӟ";s:2:"ӡ";s:2:"Ӡ";s:2:"ӣ";s:2:"Ӣ";s:2:"ӥ";s:2:"Ӥ";s:2:"ӧ";s:2:"Ӧ";s:2:"ө";s:2:"Ө";s:2:"ӫ";s:2:"Ӫ";s:2:"ӭ";s:2:"Ӭ";s:2:"ӯ";s:2:"Ӯ";s:2:"ӱ";s:2:"Ӱ";s:2:"ӳ";s:2:"Ӳ";s:2:"ӵ";s:2:"Ӵ";s:2:"ӷ";s:2:"Ӷ";s:2:"ӹ";s:2:"Ӹ";s:2:"ӻ";s:2:"Ӻ";s:2:"ӽ";s:2:"Ӽ";s:2:"ӿ";s:2:"Ӿ";s:2:"ԁ";s:2:"Ԁ";s:2:"ԃ";s:2:"Ԃ";s:2:"ԅ";s:2:"Ԅ";s:2:"ԇ";s:2:"Ԇ";s:2:"ԉ";s:2:"Ԉ";s:2:"ԋ";s:2:"Ԋ";s:2:"ԍ";s:2:"Ԍ";s:2:"ԏ";s:2:"Ԏ";s:2:"ԑ";s:2:"Ԑ";s:2:"ԓ";s:2:"Ԓ";s:2:"ԕ";s:2:"Ԕ";s:2:"ԗ";s:2:"Ԗ";s:2:"ԙ";s:2:"Ԙ";s:2:"ԛ";s:2:"Ԛ";s:2:"ԝ";s:2:"Ԝ";s:2:"ԟ";s:2:"Ԟ";s:2:"ԡ";s:2:"Ԡ";s:2:"ԣ";s:2:"Ԣ";s:2:"ԥ";s:2:"Ԥ";s:2:"ԧ";s:2:"Ԧ";s:2:"ԩ";s:2:"Ԩ";s:2:"ԫ";s:2:"Ԫ";s:2:"ԭ";s:2:"Ԭ";s:2:"ԯ";s:2:"Ԯ";s:2:"ա";s:2:"Ա";s:2:"բ";s:2:"Բ";s:2:"գ";s:2:"Գ";s:2:"դ";s:2:"Դ";s:2:"ե";s:2:"Ե";s:2:"զ";s:2:"Զ";s:2:"է";s:2:"Է";s:2:"ը";s:2:"Ը";s:2:"թ";s:2:"Թ";s:2:"ժ";s:2:"Ժ";s:2:"ի";s:2:"Ի";s:2:"լ";s:2:"Լ";s:2:"խ";s:2:"Խ";s:2:"ծ";s:2:"Ծ";s:2:"կ";s:2:"Կ";s:2:"հ";s:2:"Հ";s:2:"ձ";s:2:"Ձ";s:2:"ղ";s:2:"Ղ";s:2:"ճ";s:2:"Ճ";s:2:"մ";s:2:"Մ";s:2:"յ";s:2:"Յ";s:2:"ն";s:2:"Ն";s:2:"շ";s:2:"Շ";s:2:"ո";s:2:"Ո";s:2:"չ";s:2:"Չ";s:2:"պ";s:2:"Պ";s:2:"ջ";s:2:"Ջ";s:2:"ռ";s:2:"Ռ";s:2:"ս";s:2:"Ս";s:2:"վ";s:2:"Վ";s:2:"տ";s:2:"Տ";s:2:"ր";s:2:"Ր";s:2:"ց";s:2:"Ց";s:2:"ւ";s:2:"Ւ";s:2:"փ";s:2:"Փ";s:2:"ք";s:2:"Ք";s:2:"օ";s:2:"Օ";s:2:"ֆ";s:2:"Ֆ";s:3:"ა";s:3:"Ა";s:3:"ბ";s:3:"Ბ";s:3:"გ";s:3:"Გ";s:3:"დ";s:3:"Დ";s:3:"ე";s:3:"Ე";s:3:"ვ";s:3:"Ვ";s:3:"ზ";s:3:"Ზ";s:3:"თ";s:3:"Თ";s:3:"ი";s:3:"Ი";s:3:"კ";s:3:"Კ";s:3:"ლ";s:3:"Ლ";s:3:"მ";s:3:"Მ";s:3:"ნ";s:3:"Ნ";s:3:"ო";s:3:"Ო";s:3:"პ";s:3:"Პ";s:3:"ჟ";s:3:"Ჟ";s:3:"რ";s:3:"Რ";s:3:"ს";s:3:"Ს";s:3:"ტ";s:3:"Ტ";s:3:"უ";s:3:"Უ";s:3:"ფ";s:3:"Ფ";s:3:"ქ";s:3:"Ქ";s:3:"ღ";s:3:"Ღ";s:3:"ყ";s:3:"Ყ";s:3:"შ";s:3:"Შ";s:3:"ჩ";s:3:"Ჩ";s:3:"ც";s:3:"Ც";s:3:"ძ";s:3:"Ძ";s:3:"წ";s:3:"Წ";s:3:"ჭ";s:3:"Ჭ";s:3:"ხ";s:3:"Ხ";s:3:"ჯ";s:3:"Ჯ";s:3:"ჰ";s:3:"Ჰ";s:3:"ჱ";s:3:"Ჱ";s:3:"ჲ";s:3:"Ჲ";s:3:"ჳ";s:3:"Ჳ";s:3:"ჴ";s:3:"Ჴ";s:3:"ჵ";s:3:"Ჵ";s:3:"ჶ";s:3:"Ჶ";s:3:"ჷ";s:3:"Ჷ";s:3:"ჸ";s:3:"Ჸ";s:3:"ჹ";s:3:"Ჹ";s:3:"ჺ";s:3:"Ჺ";s:3:"ჽ";s:3:"Ჽ";s:3:"ჾ";s:3:"Ჾ";s:3:"ჿ";s:3:"Ჿ";s:3:"ᏸ";s:3:"Ᏸ";s:3:"ᏹ";s:3:"Ᏹ";s:3:"ᏺ";s:3:"Ᏺ";s:3:"ᏻ";s:3:"Ᏻ";s:3:"ᏼ";s:3:"Ᏼ";s:3:"ᏽ";s:3:"Ᏽ";s:3:"ᲀ";s:2:"В";s:3:"ᲁ";s:2:"Д";s:3:"ᲂ";s:2:"О";s:3:"ᲃ";s:2:"С";s:3:"ᲄ";s:2:"Т";s:3:"ᲅ";s:2:"Т";s:3:"ᲆ";s:2:"Ъ";s:3:"ᲇ";s:2:"Ѣ";s:3:"ᲈ";s:3:"Ꙋ";s:3:"ᵹ";s:3:"Ᵹ";s:3:"ᵽ";s:3:"Ᵽ";s:3:"ᶎ";s:3:"Ᶎ";s:3:"ḁ";s:3:"Ḁ";s:3:"ḃ";s:3:"Ḃ";s:3:"ḅ";s:3:"Ḅ";s:3:"ḇ";s:3:"Ḇ";s:3:"ḉ";s:3:"Ḉ";s:3:"ḋ";s:3:"Ḋ";s:3:"ḍ";s:3:"Ḍ";s:3:"ḏ";s:3:"Ḏ";s:3:"ḑ";s:3:"Ḑ";s:3:"ḓ";s:3:"Ḓ";s:3:"ḕ";s:3:"Ḕ";s:3:"ḗ";s:3:"Ḗ";s:3:"ḙ";s:3:"Ḙ";s:3:"ḛ";s:3:"Ḛ";s:3:"ḝ";s:3:"Ḝ";s:3:"ḟ";s:3:"Ḟ";s:3:"ḡ";s:3:"Ḡ";s:3:"ḣ";s:3:"Ḣ";s:3:"ḥ";s:3:"Ḥ";s:3:"ḧ";s:3:"Ḧ";s:3:"ḩ";s:3:"Ḩ";s:3:"ḫ";s:3:"Ḫ";s:3:"ḭ";s:3:"Ḭ";s:3:"ḯ";s:3:"Ḯ";s:3:"ḱ";s:3:"Ḱ";s:3:"ḳ";s:3:"Ḳ";s:3:"ḵ";s:3:"Ḵ";s:3:"ḷ";s:3:"Ḷ";s:3:"ḹ";s:3:"Ḹ";s:3:"ḻ";s:3:"Ḻ";s:3:"ḽ";s:3:"Ḽ";s:3:"ḿ";s:3:"Ḿ";s:3:"ṁ";s:3:"Ṁ";s:3:"ṃ";s:3:"Ṃ";s:3:"ṅ";s:3:"Ṅ";s:3:"ṇ";s:3:"Ṇ";s:3:"ṉ";s:3:"Ṉ";s:3:"ṋ";s:3:"Ṋ";s:3:"ṍ";s:3:"Ṍ";s:3:"ṏ";s:3:"Ṏ";s:3:"ṑ";s:3:"Ṑ";s:3:"ṓ";s:3:"Ṓ";s:3:"ṕ";s:3:"Ṕ";s:3:"ṗ";s:3:"Ṗ";s:3:"ṙ";s:3:"Ṙ";s:3:"ṛ";s:3:"Ṛ";s:3:"ṝ";s:3:"Ṝ";s:3:"ṟ";s:3:"Ṟ";s:3:"ṡ";s:3:"Ṡ";s:3:"ṣ";s:3:"Ṣ";s:3:"ṥ";s:3:"Ṥ";s:3:"ṧ";s:3:"Ṧ";s:3:"ṩ";s:3:"Ṩ";s:3:"ṫ";s:3:"Ṫ";s:3:"ṭ";s:3:"Ṭ";s:3:"ṯ";s:3:"Ṯ";s:3:"ṱ";s:3:"Ṱ";s:3:"ṳ";s:3:"Ṳ";s:3:"ṵ";s:3:"Ṵ";s:3:"ṷ";s:3:"Ṷ";s:3:"ṹ";s:3:"Ṹ";s:3:"ṻ";s:3:"Ṻ";s:3:"ṽ";s:3:"Ṽ";s:3:"ṿ";s:3:"Ṿ";s:3:"ẁ";s:3:"Ẁ";s:3:"ẃ";s:3:"Ẃ";s:3:"ẅ";s:3:"Ẅ";s:3:"ẇ";s:3:"Ẇ";s:3:"ẉ";s:3:"Ẉ";s:3:"ẋ";s:3:"Ẋ";s:3:"ẍ";s:3:"Ẍ";s:3:"ẏ";s:3:"Ẏ";s:3:"ẑ";s:3:"Ẑ";s:3:"ẓ";s:3:"Ẓ";s:3:"ẕ";s:3:"Ẕ";s:3:"ẛ";s:3:"Ṡ";s:3:"ạ";s:3:"Ạ";s:3:"ả";s:3:"Ả";s:3:"ấ";s:3:"Ấ";s:3:"ầ";s:3:"Ầ";s:3:"ẩ";s:3:"Ẩ";s:3:"ẫ";s:3:"Ẫ";s:3:"ậ";s:3:"Ậ";s:3:"ắ";s:3:"Ắ";s:3:"ằ";s:3:"Ằ";s:3:"ẳ";s:3:"Ẳ";s:3:"ẵ";s:3:"Ẵ";s:3:"ặ";s:3:"Ặ";s:3:"ẹ";s:3:"Ẹ";s:3:"ẻ";s:3:"Ẻ";s:3:"ẽ";s:3:"Ẽ";s:3:"ế";s:3:"Ế";s:3:"ề";s:3:"Ề";s:3:"ể";s:3:"Ể";s:3:"ễ";s:3:"Ễ";s:3:"ệ";s:3:"Ệ";s:3:"ỉ";s:3:"Ỉ";s:3:"ị";s:3:"Ị";s:3:"ọ";s:3:"Ọ";s:3:"ỏ";s:3:"Ỏ";s:3:"ố";s:3:"Ố";s:3:"ồ";s:3:"Ồ";s:3:"ổ";s:3:"Ổ";s:3:"ỗ";s:3:"Ỗ";s:3:"ộ";s:3:"Ộ";s:3:"ớ";s:3:"Ớ";s:3:"ờ";s:3:"Ờ";s:3:"ở";s:3:"Ở";s:3:"ỡ";s:3:"Ỡ";s:3:"ợ";s:3:"Ợ";s:3:"ụ";s:3:"Ụ";s:3:"ủ";s:3:"Ủ";s:3:"ứ";s:3:"Ứ";s:3:"ừ";s:3:"Ừ";s:3:"ử";s:3:"Ử";s:3:"ữ";s:3:"Ữ";s:3:"ự";s:3:"Ự";s:3:"ỳ";s:3:"Ỳ";s:3:"ỵ";s:3:"Ỵ";s:3:"ỷ";s:3:"Ỷ";s:3:"ỹ";s:3:"Ỹ";s:3:"ỻ";s:3:"Ỻ";s:3:"ỽ";s:3:"Ỽ";s:3:"ỿ";s:3:"Ỿ";s:3:"ἀ";s:3:"Ἀ";s:3:"ἁ";s:3:"Ἁ";s:3:"ἂ";s:3:"Ἂ";s:3:"ἃ";s:3:"Ἃ";s:3:"ἄ";s:3:"Ἄ";s:3:"ἅ";s:3:"Ἅ";s:3:"ἆ";s:3:"Ἆ";s:3:"ἇ";s:3:"Ἇ";s:3:"ἐ";s:3:"Ἐ";s:3:"ἑ";s:3:"Ἑ";s:3:"ἒ";s:3:"Ἒ";s:3:"ἓ";s:3:"Ἓ";s:3:"ἔ";s:3:"Ἔ";s:3:"ἕ";s:3:"Ἕ";s:3:"ἠ";s:3:"Ἠ";s:3:"ἡ";s:3:"Ἡ";s:3:"ἢ";s:3:"Ἢ";s:3:"ἣ";s:3:"Ἣ";s:3:"ἤ";s:3:"Ἤ";s:3:"ἥ";s:3:"Ἥ";s:3:"ἦ";s:3:"Ἦ";s:3:"ἧ";s:3:"Ἧ";s:3:"ἰ";s:3:"Ἰ";s:3:"ἱ";s:3:"Ἱ";s:3:"ἲ";s:3:"Ἲ";s:3:"ἳ";s:3:"Ἳ";s:3:"ἴ";s:3:"Ἴ";s:3:"ἵ";s:3:"Ἵ";s:3:"ἶ";s:3:"Ἶ";s:3:"ἷ";s:3:"Ἷ";s:3:"ὀ";s:3:"Ὀ";s:3:"ὁ";s:3:"Ὁ";s:3:"ὂ";s:3:"Ὂ";s:3:"ὃ";s:3:"Ὃ";s:3:"ὄ";s:3:"Ὄ";s:3:"ὅ";s:3:"Ὅ";s:3:"ὑ";s:3:"Ὑ";s:3:"ὓ";s:3:"Ὓ";s:3:"ὕ";s:3:"Ὕ";s:3:"ὗ";s:3:"Ὗ";s:3:"ὠ";s:3:"Ὠ";s:3:"ὡ";s:3:"Ὡ";s:3:"ὢ";s:3:"Ὢ";s:3:"ὣ";s:3:"Ὣ";s:3:"ὤ";s:3:"Ὤ";s:3:"ὥ";s:3:"Ὥ";s:3:"ὦ";s:3:"Ὦ";s:3:"ὧ";s:3:"Ὧ";s:3:"ὰ";s:3:"Ὰ";s:3:"ά";s:3:"Ά";s:3:"ὲ";s:3:"Ὲ";s:3:"έ";s:3:"Έ";s:3:"ὴ";s:3:"Ὴ";s:3:"ή";s:3:"Ή";s:3:"ὶ";s:3:"Ὶ";s:3:"ί";s:3:"Ί";s:3:"ὸ";s:3:"Ὸ";s:3:"ό";s:3:"Ό";s:3:"ὺ";s:3:"Ὺ";s:3:"ύ";s:3:"Ύ";s:3:"ὼ";s:3:"Ὼ";s:3:"ώ";s:3:"Ώ";s:3:"ᾀ";s:3:"ᾈ";s:3:"ᾁ";s:3:"ᾉ";s:3:"ᾂ";s:3:"ᾊ";s:3:"ᾃ";s:3:"ᾋ";s:3:"ᾄ";s:3:"ᾌ";s:3:"ᾅ";s:3:"ᾍ";s:3:"ᾆ";s:3:"ᾎ";s:3:"ᾇ";s:3:"ᾏ";s:3:"ᾐ";s:3:"ᾘ";s:3:"ᾑ";s:3:"ᾙ";s:3:"ᾒ";s:3:"ᾚ";s:3:"ᾓ";s:3:"ᾛ";s:3:"ᾔ";s:3:"ᾜ";s:3:"ᾕ";s:3:"ᾝ";s:3:"ᾖ";s:3:"ᾞ";s:3:"ᾗ";s:3:"ᾟ";s:3:"ᾠ";s:3:"ᾨ";s:3:"ᾡ";s:3:"ᾩ";s:3:"ᾢ";s:3:"ᾪ";s:3:"ᾣ";s:3:"ᾫ";s:3:"ᾤ";s:3:"ᾬ";s:3:"ᾥ";s:3:"ᾭ";s:3:"ᾦ";s:3:"ᾮ";s:3:"ᾧ";s:3:"ᾯ";s:3:"ᾰ";s:3:"Ᾰ";s:3:"ᾱ";s:3:"Ᾱ";s:3:"ᾳ";s:3:"ᾼ";s:3:"ι";s:2:"Ι";s:3:"ῃ";s:3:"ῌ";s:3:"ῐ";s:3:"Ῐ";s:3:"ῑ";s:3:"Ῑ";s:3:"ῠ";s:3:"Ῠ";s:3:"ῡ";s:3:"Ῡ";s:3:"ῥ";s:3:"Ῥ";s:3:"ῳ";s:3:"ῼ";s:3:"ⅎ";s:3:"Ⅎ";s:3:"ⅰ";s:3:"Ⅰ";s:3:"ⅱ";s:3:"Ⅱ";s:3:"ⅲ";s:3:"Ⅲ";s:3:"ⅳ";s:3:"Ⅳ";s:3:"ⅴ";s:3:"Ⅴ";s:3:"ⅵ";s:3:"Ⅵ";s:3:"ⅶ";s:3:"Ⅶ";s:3:"ⅷ";s:3:"Ⅷ";s:3:"ⅸ";s:3:"Ⅸ";s:3:"ⅹ";s:3:"Ⅹ";s:3:"ⅺ";s:3:"Ⅺ";s:3:"ⅻ";s:3:"Ⅻ";s:3:"ⅼ";s:3:"Ⅼ";s:3:"ⅽ";s:3:"Ⅽ";s:3:"ⅾ";s:3:"Ⅾ";s:3:"ⅿ";s:3:"Ⅿ";s:3:"ↄ";s:3:"Ↄ";s:3:"ⓐ";s:3:"Ⓐ";s:3:"ⓑ";s:3:"Ⓑ";s:3:"ⓒ";s:3:"Ⓒ";s:3:"ⓓ";s:3:"Ⓓ";s:3:"ⓔ";s:3:"Ⓔ";s:3:"ⓕ";s:3:"Ⓕ";s:3:"ⓖ";s:3:"Ⓖ";s:3:"ⓗ";s:3:"Ⓗ";s:3:"ⓘ";s:3:"Ⓘ";s:3:"ⓙ";s:3:"Ⓙ";s:3:"ⓚ";s:3:"Ⓚ";s:3:"ⓛ";s:3:"Ⓛ";s:3:"ⓜ";s:3:"Ⓜ";s:3:"ⓝ";s:3:"Ⓝ";s:3:"ⓞ";s:3:"Ⓞ";s:3:"ⓟ";s:3:"Ⓟ";s:3:"ⓠ";s:3:"Ⓠ";s:3:"ⓡ";s:3:"Ⓡ";s:3:"ⓢ";s:3:"Ⓢ";s:3:"ⓣ";s:3:"Ⓣ";s:3:"ⓤ";s:3:"Ⓤ";s:3:"ⓥ";s:3:"Ⓥ";s:3:"ⓦ";s:3:"Ⓦ";s:3:"ⓧ";s:3:"Ⓧ";s:3:"ⓨ";s:3:"Ⓨ";s:3:"ⓩ";s:3:"Ⓩ";s:3:"ⰰ";s:3:"Ⰰ";s:3:"ⰱ";s:3:"Ⰱ";s:3:"ⰲ";s:3:"Ⰲ";s:3:"ⰳ";s:3:"Ⰳ";s:3:"ⰴ";s:3:"Ⰴ";s:3:"ⰵ";s:3:"Ⰵ";s:3:"ⰶ";s:3:"Ⰶ";s:3:"ⰷ";s:3:"Ⰷ";s:3:"ⰸ";s:3:"Ⰸ";s:3:"ⰹ";s:3:"Ⰹ";s:3:"ⰺ";s:3:"Ⰺ";s:3:"ⰻ";s:3:"Ⰻ";s:3:"ⰼ";s:3:"Ⰼ";s:3:"ⰽ";s:3:"Ⰽ";s:3:"ⰾ";s:3:"Ⰾ";s:3:"ⰿ";s:3:"Ⰿ";s:3:"ⱀ";s:3:"Ⱀ";s:3:"ⱁ";s:3:"Ⱁ";s:3:"ⱂ";s:3:"Ⱂ";s:3:"ⱃ";s:3:"Ⱃ";s:3:"ⱄ";s:3:"Ⱄ";s:3:"ⱅ";s:3:"Ⱅ";s:3:"ⱆ";s:3:"Ⱆ";s:3:"ⱇ";s:3:"Ⱇ";s:3:"ⱈ";s:3:"Ⱈ";s:3:"ⱉ";s:3:"Ⱉ";s:3:"ⱊ";s:3:"Ⱊ";s:3:"ⱋ";s:3:"Ⱋ";s:3:"ⱌ";s:3:"Ⱌ";s:3:"ⱍ";s:3:"Ⱍ";s:3:"ⱎ";s:3:"Ⱎ";s:3:"ⱏ";s:3:"Ⱏ";s:3:"ⱐ";s:3:"Ⱐ";s:3:"ⱑ";s:3:"Ⱑ";s:3:"ⱒ";s:3:"Ⱒ";s:3:"ⱓ";s:3:"Ⱓ";s:3:"ⱔ";s:3:"Ⱔ";s:3:"ⱕ";s:3:"Ⱕ";s:3:"ⱖ";s:3:"Ⱖ";s:3:"ⱗ";s:3:"Ⱗ";s:3:"ⱘ";s:3:"Ⱘ";s:3:"ⱙ";s:3:"Ⱙ";s:3:"ⱚ";s:3:"Ⱚ";s:3:"ⱛ";s:3:"Ⱛ";s:3:"ⱜ";s:3:"Ⱜ";s:3:"ⱝ";s:3:"Ⱝ";s:3:"ⱞ";s:3:"Ⱞ";s:3:"ⱡ";s:3:"Ⱡ";s:3:"ⱥ";s:2:"Ⱥ";s:3:"ⱦ";s:2:"Ⱦ";s:3:"ⱨ";s:3:"Ⱨ";s:3:"ⱪ";s:3:"Ⱪ";s:3:"ⱬ";s:3:"Ⱬ";s:3:"ⱳ";s:3:"Ⱳ";s:3:"ⱶ";s:3:"Ⱶ";s:3:"ⲁ";s:3:"Ⲁ";s:3:"ⲃ";s:3:"Ⲃ";s:3:"ⲅ";s:3:"Ⲅ";s:3:"ⲇ";s:3:"Ⲇ";s:3:"ⲉ";s:3:"Ⲉ";s:3:"ⲋ";s:3:"Ⲋ";s:3:"ⲍ";s:3:"Ⲍ";s:3:"ⲏ";s:3:"Ⲏ";s:3:"ⲑ";s:3:"Ⲑ";s:3:"ⲓ";s:3:"Ⲓ";s:3:"ⲕ";s:3:"Ⲕ";s:3:"ⲗ";s:3:"Ⲗ";s:3:"ⲙ";s:3:"Ⲙ";s:3:"ⲛ";s:3:"Ⲛ";s:3:"ⲝ";s:3:"Ⲝ";s:3:"ⲟ";s:3:"Ⲟ";s:3:"ⲡ";s:3:"Ⲡ";s:3:"ⲣ";s:3:"Ⲣ";s:3:"ⲥ";s:3:"Ⲥ";s:3:"ⲧ";s:3:"Ⲧ";s:3:"ⲩ";s:3:"Ⲩ";s:3:"ⲫ";s:3:"Ⲫ";s:3:"ⲭ";s:3:"Ⲭ";s:3:"ⲯ";s:3:"Ⲯ";s:3:"ⲱ";s:3:"Ⲱ";s:3:"ⲳ";s:3:"Ⲳ";s:3:"ⲵ";s:3:"Ⲵ";s:3:"ⲷ";s:3:"Ⲷ";s:3:"ⲹ";s:3:"Ⲹ";s:3:"ⲻ";s:3:"Ⲻ";s:3:"ⲽ";s:3:"Ⲽ";s:3:"ⲿ";s:3:"Ⲿ";s:3:"ⳁ";s:3:"Ⳁ";s:3:"ⳃ";s:3:"Ⳃ";s:3:"ⳅ";s:3:"Ⳅ";s:3:"ⳇ";s:3:"Ⳇ";s:3:"ⳉ";s:3:"Ⳉ";s:3:"ⳋ";s:3:"Ⳋ";s:3:"ⳍ";s:3:"Ⳍ";s:3:"ⳏ";s:3:"Ⳏ";s:3:"ⳑ";s:3:"Ⳑ";s:3:"ⳓ";s:3:"Ⳓ";s:3:"ⳕ";s:3:"Ⳕ";s:3:"ⳗ";s:3:"Ⳗ";s:3:"ⳙ";s:3:"Ⳙ";s:3:"ⳛ";s:3:"Ⳛ";s:3:"ⳝ";s:3:"Ⳝ";s:3:"ⳟ";s:3:"Ⳟ";s:3:"ⳡ";s:3:"Ⳡ";s:3:"ⳣ";s:3:"Ⳣ";s:3:"ⳬ";s:3:"Ⳬ";s:3:"ⳮ";s:3:"Ⳮ";s:3:"ⳳ";s:3:"Ⳳ";s:3:"ⴀ";s:3:"Ⴀ";s:3:"ⴁ";s:3:"Ⴁ";s:3:"ⴂ";s:3:"Ⴂ";s:3:"ⴃ";s:3:"Ⴃ";s:3:"ⴄ";s:3:"Ⴄ";s:3:"ⴅ";s:3:"Ⴅ";s:3:"ⴆ";s:3:"Ⴆ";s:3:"ⴇ";s:3:"Ⴇ";s:3:"ⴈ";s:3:"Ⴈ";s:3:"ⴉ";s:3:"Ⴉ";s:3:"ⴊ";s:3:"Ⴊ";s:3:"ⴋ";s:3:"Ⴋ";s:3:"ⴌ";s:3:"Ⴌ";s:3:"ⴍ";s:3:"Ⴍ";s:3:"ⴎ";s:3:"Ⴎ";s:3:"ⴏ";s:3:"Ⴏ";s:3:"ⴐ";s:3:"Ⴐ";s:3:"ⴑ";s:3:"Ⴑ";s:3:"ⴒ";s:3:"Ⴒ";s:3:"ⴓ";s:3:"Ⴓ";s:3:"ⴔ";s:3:"Ⴔ";s:3:"ⴕ";s:3:"Ⴕ";s:3:"ⴖ";s:3:"Ⴖ";s:3:"ⴗ";s:3:"Ⴗ";s:3:"ⴘ";s:3:"Ⴘ";s:3:"ⴙ";s:3:"Ⴙ";s:3:"ⴚ";s:3:"Ⴚ";s:3:"ⴛ";s:3:"Ⴛ";s:3:"ⴜ";s:3:"Ⴜ";s:3:"ⴝ";s:3:"Ⴝ";s:3:"ⴞ";s:3:"Ⴞ";s:3:"ⴟ";s:3:"Ⴟ";s:3:"ⴠ";s:3:"Ⴠ";s:3:"ⴡ";s:3:"Ⴡ";s:3:"ⴢ";s:3:"Ⴢ";s:3:"ⴣ";s:3:"Ⴣ";s:3:"ⴤ";s:3:"Ⴤ";s:3:"ⴥ";s:3:"Ⴥ";s:3:"ⴧ";s:3:"Ⴧ";s:3:"ⴭ";s:3:"Ⴭ";s:3:"ꙁ";s:3:"Ꙁ";s:3:"ꙃ";s:3:"Ꙃ";s:3:"ꙅ";s:3:"Ꙅ";s:3:"ꙇ";s:3:"Ꙇ";s:3:"ꙉ";s:3:"Ꙉ";s:3:"ꙋ";s:3:"Ꙋ";s:3:"ꙍ";s:3:"Ꙍ";s:3:"ꙏ";s:3:"Ꙏ";s:3:"ꙑ";s:3:"Ꙑ";s:3:"ꙓ";s:3:"Ꙓ";s:3:"ꙕ";s:3:"Ꙕ";s:3:"ꙗ";s:3:"Ꙗ";s:3:"ꙙ";s:3:"Ꙙ";s:3:"ꙛ";s:3:"Ꙛ";s:3:"ꙝ";s:3:"Ꙝ";s:3:"ꙟ";s:3:"Ꙟ";s:3:"ꙡ";s:3:"Ꙡ";s:3:"ꙣ";s:3:"Ꙣ";s:3:"ꙥ";s:3:"Ꙥ";s:3:"ꙧ";s:3:"Ꙧ";s:3:"ꙩ";s:3:"Ꙩ";s:3:"ꙫ";s:3:"Ꙫ";s:3:"ꙭ";s:3:"Ꙭ";s:3:"ꚁ";s:3:"Ꚁ";s:3:"ꚃ";s:3:"Ꚃ";s:3:"ꚅ";s:3:"Ꚅ";s:3:"ꚇ";s:3:"Ꚇ";s:3:"ꚉ";s:3:"Ꚉ";s:3:"ꚋ";s:3:"Ꚋ";s:3:"ꚍ";s:3:"Ꚍ";s:3:"ꚏ";s:3:"Ꚏ";s:3:"ꚑ";s:3:"Ꚑ";s:3:"ꚓ";s:3:"Ꚓ";s:3:"ꚕ";s:3:"Ꚕ";s:3:"ꚗ";s:3:"Ꚗ";s:3:"ꚙ";s:3:"Ꚙ";s:3:"ꚛ";s:3:"Ꚛ";s:3:"ꜣ";s:3:"Ꜣ";s:3:"ꜥ";s:3:"Ꜥ";s:3:"ꜧ";s:3:"Ꜧ";s:3:"ꜩ";s:3:"Ꜩ";s:3:"ꜫ";s:3:"Ꜫ";s:3:"ꜭ";s:3:"Ꜭ";s:3:"ꜯ";s:3:"Ꜯ";s:3:"ꜳ";s:3:"Ꜳ";s:3:"ꜵ";s:3:"Ꜵ";s:3:"ꜷ";s:3:"Ꜷ";s:3:"ꜹ";s:3:"Ꜹ";s:3:"ꜻ";s:3:"Ꜻ";s:3:"ꜽ";s:3:"Ꜽ";s:3:"ꜿ";s:3:"Ꜿ";s:3:"ꝁ";s:3:"Ꝁ";s:3:"ꝃ";s:3:"Ꝃ";s:3:"ꝅ";s:3:"Ꝅ";s:3:"ꝇ";s:3:"Ꝇ";s:3:"ꝉ";s:3:"Ꝉ";s:3:"ꝋ";s:3:"Ꝋ";s:3:"ꝍ";s:3:"Ꝍ";s:3:"ꝏ";s:3:"Ꝏ";s:3:"ꝑ";s:3:"Ꝑ";s:3:"ꝓ";s:3:"Ꝓ";s:3:"ꝕ";s:3:"Ꝕ";s:3:"ꝗ";s:3:"Ꝗ";s:3:"ꝙ";s:3:"Ꝙ";s:3:"ꝛ";s:3:"Ꝛ";s:3:"ꝝ";s:3:"Ꝝ";s:3:"ꝟ";s:3:"Ꝟ";s:3:"ꝡ";s:3:"Ꝡ";s:3:"ꝣ";s:3:"Ꝣ";s:3:"ꝥ";s:3:"Ꝥ";s:3:"ꝧ";s:3:"Ꝧ";s:3:"ꝩ";s:3:"Ꝩ";s:3:"ꝫ";s:3:"Ꝫ";s:3:"ꝭ";s:3:"Ꝭ";s:3:"ꝯ";s:3:"Ꝯ";s:3:"ꝺ";s:3:"Ꝺ";s:3:"ꝼ";s:3:"Ꝼ";s:3:"ꝿ";s:3:"Ꝿ";s:3:"ꞁ";s:3:"Ꞁ";s:3:"ꞃ";s:3:"Ꞃ";s:3:"ꞅ";s:3:"Ꞅ";s:3:"ꞇ";s:3:"Ꞇ";s:3:"ꞌ";s:3:"Ꞌ";s:3:"ꞑ";s:3:"Ꞑ";s:3:"ꞓ";s:3:"Ꞓ";s:3:"ꞔ";s:3:"Ꞔ";s:3:"ꞗ";s:3:"Ꞗ";s:3:"ꞙ";s:3:"Ꞙ";s:3:"ꞛ";s:3:"Ꞛ";s:3:"ꞝ";s:3:"Ꞝ";s:3:"ꞟ";s:3:"Ꞟ";s:3:"ꞡ";s:3:"Ꞡ";s:3:"ꞣ";s:3:"Ꞣ";s:3:"ꞥ";s:3:"Ꞥ";s:3:"ꞧ";s:3:"Ꞧ";s:3:"ꞩ";s:3:"Ꞩ";s:3:"ꞵ";s:3:"Ꞵ";s:3:"ꞷ";s:3:"Ꞷ";s:3:"ꞹ";s:3:"Ꞹ";s:3:"ꞻ";s:3:"Ꞻ";s:3:"ꞽ";s:3:"Ꞽ";s:3:"ꞿ";s:3:"Ꞿ";s:3:"ꟃ";s:3:"Ꟃ";s:3:"ꭓ";s:3:"Ꭓ";s:3:"ꭰ";s:3:"Ꭰ";s:3:"ꭱ";s:3:"Ꭱ";s:3:"ꭲ";s:3:"Ꭲ";s:3:"ꭳ";s:3:"Ꭳ";s:3:"ꭴ";s:3:"Ꭴ";s:3:"ꭵ";s:3:"Ꭵ";s:3:"ꭶ";s:3:"Ꭶ";s:3:"ꭷ";s:3:"Ꭷ";s:3:"ꭸ";s:3:"Ꭸ";s:3:"ꭹ";s:3:"Ꭹ";s:3:"ꭺ";s:3:"Ꭺ";s:3:"ꭻ";s:3:"Ꭻ";s:3:"ꭼ";s:3:"Ꭼ";s:3:"ꭽ";s:3:"Ꭽ";s:3:"ꭾ";s:3:"Ꭾ";s:3:"ꭿ";s:3:"Ꭿ";s:3:"ꮀ";s:3:"Ꮀ";s:3:"ꮁ";s:3:"Ꮁ";s:3:"ꮂ";s:3:"Ꮂ";s:3:"ꮃ";s:3:"Ꮃ";s:3:"ꮄ";s:3:"Ꮄ";s:3:"ꮅ";s:3:"Ꮅ";s:3:"ꮆ";s:3:"Ꮆ";s:3:"ꮇ";s:3:"Ꮇ";s:3:"ꮈ";s:3:"Ꮈ";s:3:"ꮉ";s:3:"Ꮉ";s:3:"ꮊ";s:3:"Ꮊ";s:3:"ꮋ";s:3:"Ꮋ";s:3:"ꮌ";s:3:"Ꮌ";s:3:"ꮍ";s:3:"Ꮍ";s:3:"ꮎ";s:3:"Ꮎ";s:3:"ꮏ";s:3:"Ꮏ";s:3:"ꮐ";s:3:"Ꮐ";s:3:"ꮑ";s:3:"Ꮑ";s:3:"ꮒ";s:3:"Ꮒ";s:3:"ꮓ";s:3:"Ꮓ";s:3:"ꮔ";s:3:"Ꮔ";s:3:"ꮕ";s:3:"Ꮕ";s:3:"ꮖ";s:3:"Ꮖ";s:3:"ꮗ";s:3:"Ꮗ";s:3:"ꮘ";s:3:"Ꮘ";s:3:"ꮙ";s:3:"Ꮙ";s:3:"ꮚ";s:3:"Ꮚ";s:3:"ꮛ";s:3:"Ꮛ";s:3:"ꮜ";s:3:"Ꮜ";s:3:"ꮝ";s:3:"Ꮝ";s:3:"ꮞ";s:3:"Ꮞ";s:3:"ꮟ";s:3:"Ꮟ";s:3:"ꮠ";s:3:"Ꮠ";s:3:"ꮡ";s:3:"Ꮡ";s:3:"ꮢ";s:3:"Ꮢ";s:3:"ꮣ";s:3:"Ꮣ";s:3:"ꮤ";s:3:"Ꮤ";s:3:"ꮥ";s:3:"Ꮥ";s:3:"ꮦ";s:3:"Ꮦ";s:3:"ꮧ";s:3:"Ꮧ";s:3:"ꮨ";s:3:"Ꮨ";s:3:"ꮩ";s:3:"Ꮩ";s:3:"ꮪ";s:3:"Ꮪ";s:3:"ꮫ";s:3:"Ꮫ";s:3:"ꮬ";s:3:"Ꮬ";s:3:"ꮭ";s:3:"Ꮭ";s:3:"ꮮ";s:3:"Ꮮ";s:3:"ꮯ";s:3:"Ꮯ";s:3:"ꮰ";s:3:"Ꮰ";s:3:"ꮱ";s:3:"Ꮱ";s:3:"ꮲ";s:3:"Ꮲ";s:3:"ꮳ";s:3:"Ꮳ";s:3:"ꮴ";s:3:"Ꮴ";s:3:"ꮵ";s:3:"Ꮵ";s:3:"ꮶ";s:3:"Ꮶ";s:3:"ꮷ";s:3:"Ꮷ";s:3:"ꮸ";s:3:"Ꮸ";s:3:"ꮹ";s:3:"Ꮹ";s:3:"ꮺ";s:3:"Ꮺ";s:3:"ꮻ";s:3:"Ꮻ";s:3:"ꮼ";s:3:"Ꮼ";s:3:"ꮽ";s:3:"Ꮽ";s:3:"ꮾ";s:3:"Ꮾ";s:3:"ꮿ";s:3:"Ꮿ";s:3:"a";s:3:"A";s:3:"b";s:3:"B";s:3:"c";s:3:"C";s:3:"d";s:3:"D";s:3:"e";s:3:"E";s:3:"f";s:3:"F";s:3:"g";s:3:"G";s:3:"h";s:3:"H";s:3:"i";s:3:"I";s:3:"j";s:3:"J";s:3:"k";s:3:"K";s:3:"l";s:3:"L";s:3:"m";s:3:"M";s:3:"n";s:3:"N";s:3:"o";s:3:"O";s:3:"p";s:3:"P";s:3:"q";s:3:"Q";s:3:"r";s:3:"R";s:3:"s";s:3:"S";s:3:"t";s:3:"T";s:3:"u";s:3:"U";s:3:"v";s:3:"V";s:3:"w";s:3:"W";s:3:"x";s:3:"X";s:3:"y";s:3:"Y";s:3:"z";s:3:"Z";s:4:"𐐨";s:4:"𐐀";s:4:"𐐩";s:4:"𐐁";s:4:"𐐪";s:4:"𐐂";s:4:"𐐫";s:4:"𐐃";s:4:"𐐬";s:4:"𐐄";s:4:"𐐭";s:4:"𐐅";s:4:"𐐮";s:4:"𐐆";s:4:"𐐯";s:4:"𐐇";s:4:"𐐰";s:4:"𐐈";s:4:"𐐱";s:4:"𐐉";s:4:"𐐲";s:4:"𐐊";s:4:"𐐳";s:4:"𐐋";s:4:"𐐴";s:4:"𐐌";s:4:"𐐵";s:4:"𐐍";s:4:"𐐶";s:4:"𐐎";s:4:"𐐷";s:4:"𐐏";s:4:"𐐸";s:4:"𐐐";s:4:"𐐹";s:4:"𐐑";s:4:"𐐺";s:4:"𐐒";s:4:"𐐻";s:4:"𐐓";s:4:"𐐼";s:4:"𐐔";s:4:"𐐽";s:4:"𐐕";s:4:"𐐾";s:4:"𐐖";s:4:"𐐿";s:4:"𐐗";s:4:"𐑀";s:4:"𐐘";s:4:"𐑁";s:4:"𐐙";s:4:"𐑂";s:4:"𐐚";s:4:"𐑃";s:4:"𐐛";s:4:"𐑄";s:4:"𐐜";s:4:"𐑅";s:4:"𐐝";s:4:"𐑆";s:4:"𐐞";s:4:"𐑇";s:4:"𐐟";s:4:"𐑈";s:4:"𐐠";s:4:"𐑉";s:4:"𐐡";s:4:"𐑊";s:4:"𐐢";s:4:"𐑋";s:4:"𐐣";s:4:"𐑌";s:4:"𐐤";s:4:"𐑍";s:4:"𐐥";s:4:"𐑎";s:4:"𐐦";s:4:"𐑏";s:4:"𐐧";s:4:"𐓘";s:4:"𐒰";s:4:"𐓙";s:4:"𐒱";s:4:"𐓚";s:4:"𐒲";s:4:"𐓛";s:4:"𐒳";s:4:"𐓜";s:4:"𐒴";s:4:"𐓝";s:4:"𐒵";s:4:"𐓞";s:4:"𐒶";s:4:"𐓟";s:4:"𐒷";s:4:"𐓠";s:4:"𐒸";s:4:"𐓡";s:4:"𐒹";s:4:"𐓢";s:4:"𐒺";s:4:"𐓣";s:4:"𐒻";s:4:"𐓤";s:4:"𐒼";s:4:"𐓥";s:4:"𐒽";s:4:"𐓦";s:4:"𐒾";s:4:"𐓧";s:4:"𐒿";s:4:"𐓨";s:4:"𐓀";s:4:"𐓩";s:4:"𐓁";s:4:"𐓪";s:4:"𐓂";s:4:"𐓫";s:4:"𐓃";s:4:"𐓬";s:4:"𐓄";s:4:"𐓭";s:4:"𐓅";s:4:"𐓮";s:4:"𐓆";s:4:"𐓯";s:4:"𐓇";s:4:"𐓰";s:4:"𐓈";s:4:"𐓱";s:4:"𐓉";s:4:"𐓲";s:4:"𐓊";s:4:"𐓳";s:4:"𐓋";s:4:"𐓴";s:4:"𐓌";s:4:"𐓵";s:4:"𐓍";s:4:"𐓶";s:4:"𐓎";s:4:"𐓷";s:4:"𐓏";s:4:"𐓸";s:4:"𐓐";s:4:"𐓹";s:4:"𐓑";s:4:"𐓺";s:4:"𐓒";s:4:"𐓻";s:4:"𐓓";s:4:"𐳀";s:4:"𐲀";s:4:"𐳁";s:4:"𐲁";s:4:"𐳂";s:4:"𐲂";s:4:"𐳃";s:4:"𐲃";s:4:"𐳄";s:4:"𐲄";s:4:"𐳅";s:4:"𐲅";s:4:"𐳆";s:4:"𐲆";s:4:"𐳇";s:4:"𐲇";s:4:"𐳈";s:4:"𐲈";s:4:"𐳉";s:4:"𐲉";s:4:"𐳊";s:4:"𐲊";s:4:"𐳋";s:4:"𐲋";s:4:"𐳌";s:4:"𐲌";s:4:"𐳍";s:4:"𐲍";s:4:"𐳎";s:4:"𐲎";s:4:"𐳏";s:4:"𐲏";s:4:"𐳐";s:4:"𐲐";s:4:"𐳑";s:4:"𐲑";s:4:"𐳒";s:4:"𐲒";s:4:"𐳓";s:4:"𐲓";s:4:"𐳔";s:4:"𐲔";s:4:"𐳕";s:4:"𐲕";s:4:"𐳖";s:4:"𐲖";s:4:"𐳗";s:4:"𐲗";s:4:"𐳘";s:4:"𐲘";s:4:"𐳙";s:4:"𐲙";s:4:"𐳚";s:4:"𐲚";s:4:"𐳛";s:4:"𐲛";s:4:"𐳜";s:4:"𐲜";s:4:"𐳝";s:4:"𐲝";s:4:"𐳞";s:4:"𐲞";s:4:"𐳟";s:4:"𐲟";s:4:"𐳠";s:4:"𐲠";s:4:"𐳡";s:4:"𐲡";s:4:"𐳢";s:4:"𐲢";s:4:"𐳣";s:4:"𐲣";s:4:"𐳤";s:4:"𐲤";s:4:"𐳥";s:4:"𐲥";s:4:"𐳦";s:4:"𐲦";s:4:"𐳧";s:4:"𐲧";s:4:"𐳨";s:4:"𐲨";s:4:"𐳩";s:4:"𐲩";s:4:"𐳪";s:4:"𐲪";s:4:"𐳫";s:4:"𐲫";s:4:"𐳬";s:4:"𐲬";s:4:"𐳭";s:4:"𐲭";s:4:"𐳮";s:4:"𐲮";s:4:"𐳯";s:4:"𐲯";s:4:"𐳰";s:4:"𐲰";s:4:"𐳱";s:4:"𐲱";s:4:"𐳲";s:4:"𐲲";s:4:"𑣀";s:4:"𑢠";s:4:"𑣁";s:4:"𑢡";s:4:"𑣂";s:4:"𑢢";s:4:"𑣃";s:4:"𑢣";s:4:"𑣄";s:4:"𑢤";s:4:"𑣅";s:4:"𑢥";s:4:"𑣆";s:4:"𑢦";s:4:"𑣇";s:4:"𑢧";s:4:"𑣈";s:4:"𑢨";s:4:"𑣉";s:4:"𑢩";s:4:"𑣊";s:4:"𑢪";s:4:"𑣋";s:4:"𑢫";s:4:"𑣌";s:4:"𑢬";s:4:"𑣍";s:4:"𑢭";s:4:"𑣎";s:4:"𑢮";s:4:"𑣏";s:4:"𑢯";s:4:"𑣐";s:4:"𑢰";s:4:"𑣑";s:4:"𑢱";s:4:"𑣒";s:4:"𑢲";s:4:"𑣓";s:4:"𑢳";s:4:"𑣔";s:4:"𑢴";s:4:"𑣕";s:4:"𑢵";s:4:"𑣖";s:4:"𑢶";s:4:"𑣗";s:4:"𑢷";s:4:"𑣘";s:4:"𑢸";s:4:"𑣙";s:4:"𑢹";s:4:"𑣚";s:4:"𑢺";s:4:"𑣛";s:4:"𑢻";s:4:"𑣜";s:4:"𑢼";s:4:"𑣝";s:4:"𑢽";s:4:"𑣞";s:4:"𑢾";s:4:"𑣟";s:4:"𑢿";s:4:"𖹠";s:4:"𖹀";s:4:"𖹡";s:4:"𖹁";s:4:"𖹢";s:4:"𖹂";s:4:"𖹣";s:4:"𖹃";s:4:"𖹤";s:4:"𖹄";s:4:"𖹥";s:4:"𖹅";s:4:"𖹦";s:4:"𖹆";s:4:"𖹧";s:4:"𖹇";s:4:"𖹨";s:4:"𖹈";s:4:"𖹩";s:4:"𖹉";s:4:"𖹪";s:4:"𖹊";s:4:"𖹫";s:4:"𖹋";s:4:"𖹬";s:4:"𖹌";s:4:"𖹭";s:4:"𖹍";s:4:"𖹮";s:4:"𖹎";s:4:"𖹯";s:4:"𖹏";s:4:"𖹰";s:4:"𖹐";s:4:"𖹱";s:4:"𖹑";s:4:"𖹲";s:4:"𖹒";s:4:"𖹳";s:4:"𖹓";s:4:"𖹴";s:4:"𖹔";s:4:"𖹵";s:4:"𖹕";s:4:"𖹶";s:4:"𖹖";s:4:"𖹷";s:4:"𖹗";s:4:"𖹸";s:4:"𖹘";s:4:"𖹹";s:4:"𖹙";s:4:"𖹺";s:4:"𖹚";s:4:"𖹻";s:4:"𖹛";s:4:"𖹼";s:4:"𖹜";s:4:"𖹽";s:4:"𖹝";s:4:"𖹾";s:4:"𖹞";s:4:"𖹿";s:4:"𖹟";s:4:"𞤢";s:4:"𞤀";s:4:"𞤣";s:4:"𞤁";s:4:"𞤤";s:4:"𞤂";s:4:"𞤥";s:4:"𞤃";s:4:"𞤦";s:4:"𞤄";s:4:"𞤧";s:4:"𞤅";s:4:"𞤨";s:4:"𞤆";s:4:"𞤩";s:4:"𞤇";s:4:"𞤪";s:4:"𞤈";s:4:"𞤫";s:4:"𞤉";s:4:"𞤬";s:4:"𞤊";s:4:"𞤭";s:4:"𞤋";s:4:"𞤮";s:4:"𞤌";s:4:"𞤯";s:4:"𞤍";s:4:"𞤰";s:4:"𞤎";s:4:"𞤱";s:4:"𞤏";s:4:"𞤲";s:4:"𞤐";s:4:"𞤳";s:4:"𞤑";s:4:"𞤴";s:4:"𞤒";s:4:"𞤵";s:4:"𞤓";s:4:"𞤶";s:4:"𞤔";s:4:"𞤷";s:4:"𞤕";s:4:"𞤸";s:4:"𞤖";s:4:"𞤹";s:4:"𞤗";s:4:"𞤺";s:4:"𞤘";s:4:"𞤻";s:4:"𞤙";s:4:"𞤼";s:4:"𞤚";s:4:"𞤽";s:4:"𞤛";s:4:"𞤾";s:4:"𞤜";s:4:"𞤿";s:4:"𞤝";s:4:"𞥀";s:4:"𞤞";s:4:"𞥁";s:4:"𞤟";s:4:"𞥂";s:4:"𞤠";s:4:"𞥃";s:4:"𞤡";} -------------------------------------------------------------------------------- /src/Patchwork/TurkishUtf8.php: -------------------------------------------------------------------------------- 1 | $s) { 116 | if ('' === $s .= '') { 117 | $s = '/^(?<=.)$/'; 118 | } else { 119 | $s = preg_quote($s, '/'); 120 | $s = strtr($s, array( 121 | 'i' => '(?-i:[iİ])', 122 | 'İ' => '(?-i:[iİ])', 123 | 'ı' => '(?-i:[ıI])', 124 | 'I' => '(?-i:[ıI])', 125 | )); 126 | $s = "/{$s}/ui"; 127 | } 128 | 129 | $search[$i] = $s; 130 | } 131 | 132 | $subject = preg_replace($search, $replace, $subject, -1, $replace); 133 | $count = $replace; 134 | 135 | return $subject; 136 | } 137 | 138 | public static function ucfirst($s) 139 | { 140 | if ('i' === substr($s, 0, 1)) { 141 | return 'İ'.substr($s, 1); 142 | } else { 143 | return parent::ucfirst($s); 144 | } 145 | } 146 | 147 | public static function ucwords($s) 148 | { 149 | if (false !== strpos($s, 'i')) { 150 | $s = preg_replace('/\bi/u', 'İ', $s); 151 | } 152 | 153 | return parent::ucwords($s); 154 | } 155 | } 156 | -------------------------------------------------------------------------------- /src/Patchwork/Utf8/BestFit.php: -------------------------------------------------------------------------------- 1 | 2, "\xD0" => 2, "\xE0" => 3, "\xF0" => 4); 28 | 29 | $s .= ''; 30 | $cp = (string) (int) $cp; 31 | $result = '9' === $cp[0] ? $s.$s : $s; 32 | 33 | if ('932' === $cp && 2 === func_num_args()) { 34 | $placeholder = "\x81\x45"; // Katakana Middle Dot in CP932 35 | } 36 | 37 | if (!isset($map[$cp])) { 38 | $i = static::getData('to.bestfit'.$cp); 39 | if (false === $i) { 40 | return false; 41 | } 42 | $map[$cp] = $i; 43 | } 44 | 45 | $i = $j = 0; 46 | $cp = $map[$cp]; 47 | 48 | while ($i < $len) { 49 | if ($s[$i] < "\x80") { 50 | $uchr = $s[$i++]; 51 | } else { 52 | $ulen = $ulen_mask[$s[$i] & "\xF0"]; 53 | $uchr = substr($s, $i, $ulen); 54 | $i += $ulen; 55 | } 56 | 57 | if (isset($cp[$uchr])) { 58 | $uchr = $cp[$uchr]; 59 | } else { 60 | $uchr = $placeholder; 61 | } 62 | 63 | isset($uchr[0]) and $result[$j++] = $uchr[0]; 64 | isset($uchr[1]) and $result[$j++] = $uchr[1]; 65 | } 66 | 67 | return substr($result, 0, $j); 68 | } 69 | 70 | protected static function getData($file) 71 | { 72 | $file = __DIR__.'/data/'.$file.'.ser'; 73 | if (file_exists($file)) { 74 | return unserialize(file_get_contents($file)); 75 | } else { 76 | return false; 77 | } 78 | } 79 | } 80 | -------------------------------------------------------------------------------- /src/Patchwork/Utf8/Bootup.php: -------------------------------------------------------------------------------- 1 | = '8.32' ? '\X' : s\Intl::GRAPHEME_CLUSTER_RX); 115 | 116 | if (!function_exists('grapheme_strlen')) { 117 | extension_loaded('iconv') or static::initIconv(); 118 | extension_loaded('mbstring') or static::initMbstring(); 119 | 120 | require __DIR__.'/Bootup/intl.php'; 121 | } 122 | } 123 | 124 | public static function initLocale() 125 | { 126 | // With non-UTF-8 locale, basename() bugs. 127 | // Be aware that setlocale() can be slow. 128 | // You'd better properly configure your LANG environment variable to an UTF-8 locale. 129 | 130 | if ('' === basename('§')) { 131 | setlocale(LC_ALL, 'C.UTF-8', 'C'); 132 | setlocale(LC_CTYPE, 'en_US.UTF-8', 'fr_FR.UTF-8', 'es_ES.UTF-8', 'de_DE.UTF-8', 'ru_RU.UTF-8', 'pt_BR.UTF-8', 'it_IT.UTF-8', 'ja_JP.UTF-8', 'zh_CN.UTF-8', '0'); 133 | } 134 | } 135 | 136 | public static function filterRequestUri($uri = null, $exit = true) 137 | { 138 | if (!isset($uri)) { 139 | if (!isset($_SERVER['REQUEST_URI'])) { 140 | return; 141 | } else { 142 | $uri = $_SERVER['REQUEST_URI']; 143 | } 144 | } 145 | 146 | // Ensures the URL is well formed UTF-8 147 | // When not, assumes Windows-1252 and redirects to the corresponding UTF-8 encoded URL 148 | 149 | if (!preg_match('//u', urldecode($uri))) { 150 | $uri = preg_replace_callback( 151 | '/[\x80-\xFF]+/', 152 | function ($m) {return urlencode($m[0]);}, 153 | $uri 154 | ); 155 | 156 | $uri = preg_replace_callback( 157 | '/(?:%[89A-F][0-9A-F])+/i', 158 | function ($m) {return urlencode(u::utf8_encode(urldecode($m[0])));}, 159 | $uri 160 | ); 161 | 162 | if ($exit) { 163 | header('HTTP/1.1 301 Moved Permanently'); 164 | header('Location: '.$uri); 165 | 166 | exit; // TODO: remove this in 1.2 (BC) 167 | } 168 | } 169 | 170 | return $uri; 171 | } 172 | 173 | public static function filterRequestInputs($normalization_form = 4 /* n::NFC */, $leading_combining = '◌') 174 | { 175 | // Ensures inputs are well formed UTF-8 176 | // When not, assumes Windows-1252 and converts to UTF-8 177 | // Tests only values, not keys 178 | 179 | $a = array(&$_FILES, &$_ENV, &$_GET, &$_POST, &$_COOKIE, &$_SERVER, &$_REQUEST); 180 | 181 | foreach ($a[0] as &$r) { 182 | $a[] = array(&$r['name'], &$r['type']); 183 | } 184 | unset($a[0]); 185 | 186 | $len = count($a) + 1; 187 | for ($i = 1; $i < $len; ++$i) { 188 | foreach ($a[$i] as &$r) { 189 | $s = $r; // $r is a ref, $s a copy 190 | if (is_array($s)) { 191 | $a[$len++] = &$r; 192 | } else { 193 | $r = static::filterString($s, $normalization_form, $leading_combining); 194 | } 195 | } 196 | 197 | unset($a[$i]); 198 | } 199 | } 200 | 201 | public static function filterString($s, $normalization_form = 4 /* n::NFC */, $leading_combining = '◌') 202 | { 203 | if (false !== strpos($s, "\r")) { 204 | // Workaround https://bugs.php.net/65732 205 | $s = str_replace("\r\n", "\n", $s); 206 | $s = strtr($s, "\r", "\n"); 207 | } 208 | 209 | if (preg_match('/[\x80-\xFF]/', $s)) { 210 | if (n::isNormalized($s, $normalization_form)) { 211 | $n = '-'; 212 | } else { 213 | $n = n::normalize($s, $normalization_form); 214 | if (isset($n[0])) { 215 | $s = $n; 216 | } else { 217 | $s = u::utf8_encode($s); 218 | } 219 | } 220 | 221 | if ($s[0] >= "\x80" && isset($n[0], $leading_combining[0]) && preg_match('/^\p{Mn}/u', $s)) { 222 | // Prevent leading combining chars 223 | // for NFC-safe concatenations. 224 | $s = $leading_combining.$s; 225 | } 226 | } 227 | 228 | return $s; 229 | } 230 | } 231 | -------------------------------------------------------------------------------- /src/Patchwork/Utf8/Bootup/iconv.php: -------------------------------------------------------------------------------- 1 | FileExists($path)) { 33 | $fs->GetFile($path)->Attributes |= 2; 34 | } elseif ($fs->FolderExists($path)) { 35 | $fs->GetFolder($path)->Attributes |= 2; 36 | } else { 37 | return false; 38 | } 39 | 40 | return true; 41 | } 42 | 43 | public static function fs($path, $is_utf8 = true) 44 | { 45 | static $fs; 46 | 47 | if (!class_exists('COM', false)) { 48 | throw new \RuntimeException('The `wfio` or `com_dotnet` extension is required to handle UTF-8 filesystem access on Windows'); 49 | } 50 | 51 | isset($fs) or $fs = new \COM('Scripting.FileSystemObject', null, CP_UTF8); 52 | 53 | $path = explode('://', $path, 2); 54 | $path = $path[(int) isset($path[1])]; 55 | $path = strtr($path, '/', '\\'); 56 | $pre = ''; 57 | 58 | if (!isset($path[0]) || ('/' !== $path[0] && '\\' !== $path[0] && false === strpos($path, ':'))) { 59 | $pre = getcwd().'\\'; 60 | } 61 | 62 | $pre = new \VARIANT($pre); 63 | 64 | if ($is_utf8) { 65 | $path = new \VARIANT($path, VT_BSTR, CP_UTF8); 66 | } else { 67 | $path = new \VARIANT($path); 68 | } 69 | 70 | return array($fs, $fs->getAbsolutePathName(variant_cat($pre, $path))); 71 | } 72 | 73 | public function dir_closedir() 74 | { 75 | $this->handle = null; 76 | 77 | return true; 78 | } 79 | 80 | public function dir_opendir($path, $options) 81 | { 82 | list($fs, $path) = self::fs($path); 83 | if (!$fs->FolderExists($path)) { 84 | return false; 85 | } 86 | 87 | $dir = $fs->GetFolder($path); 88 | 89 | try { 90 | $f = array('.', '..'); 91 | 92 | foreach ($dir->SubFolders() as $v) { 93 | $f[] = $v->Name; 94 | } 95 | foreach ($dir->Files as $v) { 96 | $f[] = $v->Name; 97 | } 98 | } catch (\Exception $f) { 99 | $f = array(); 100 | } 101 | 102 | $this->handle = $f; 103 | 104 | return true; 105 | } 106 | 107 | public function dir_readdir() 108 | { 109 | if (($c = current($this->handle)) !== false) { 110 | next($this->handle); 111 | return $c; 112 | } 113 | 114 | return false; 115 | } 116 | 117 | public function dir_rewinddir() 118 | { 119 | reset($this->handle); 120 | 121 | return true; 122 | } 123 | 124 | public function mkdir($path, $mode, $options) 125 | { 126 | list($fs, $path) = self::fs($path); 127 | 128 | try { 129 | if ($options & STREAM_MKDIR_RECURSIVE) { 130 | $path = $fs->GetAbsolutePathName($path); 131 | 132 | $path = explode('\\', $path); 133 | 134 | if (isset($path[3]) && '' === $path[0].$path[1]) { 135 | $pre = '\\\\'.$path[2].'\\'.$path[3].'\\'; 136 | $i = 4; 137 | } elseif (isset($path[1])) { 138 | $pre = $path[0].'\\'; 139 | $i = 1; 140 | } else { 141 | $pre = ''; 142 | $i = 0; 143 | } 144 | 145 | while (isset($path[$i]) && $fs->FolderExists($pre.$path[$i])) { 146 | $pre .= $path[$i++].'\\'; 147 | } 148 | 149 | if (!isset($path[$i])) { 150 | return false; 151 | } 152 | 153 | while (isset($path[$i])) { 154 | $fs->CreateFolder($pre .= $path[$i++].'\\'); 155 | } 156 | 157 | return true; 158 | } else { 159 | $fs->CreateFolder($path); 160 | } 161 | 162 | return true; 163 | } catch (\Exception $e) { 164 | return false; 165 | } 166 | } 167 | 168 | public function rename($from, $to) 169 | { 170 | list($fs, $to) = self::fs($to); 171 | 172 | if ($fs->FileExists($to) || $fs->FolderExists($to)) { 173 | return false; 174 | } 175 | 176 | list(, $from) = self::fs($from); 177 | 178 | try { 179 | if ($fs->FileExists($from)) { 180 | $fs->MoveFile($from, $to); 181 | 182 | return true; 183 | } 184 | 185 | if ($fs->FolderExists($from)) { 186 | $fs->MoveFolder($from, $to); 187 | 188 | return true; 189 | } 190 | } catch (\Exception $e) { 191 | } 192 | 193 | return false; 194 | } 195 | 196 | public function rmdir($path, $options) 197 | { 198 | list($fs, $path) = self::fs($path); 199 | 200 | if ($fs->FolderExists($path)) { 201 | return rmdir($fs->GetFolder($path)->ShortPath); 202 | } 203 | 204 | return false; 205 | } 206 | 207 | public function stream_close() 208 | { 209 | fclose($this->handle); 210 | $this->handle = null; 211 | } 212 | 213 | public function stream_eof() 214 | { 215 | return feof($this->handle); 216 | } 217 | 218 | public function stream_flush() 219 | { 220 | return fflush($this->handle); 221 | } 222 | 223 | public function stream_lock($operation) 224 | { 225 | return flock($this->handle, $operation); 226 | } 227 | 228 | public function stream_metadata($path, $option, $value) 229 | { 230 | list($fs, $path) = self::fs($path); 231 | 232 | if ($fs->FileExists($path)) { 233 | $f = $fs->GetFile($path); 234 | } elseif ($fs->FileExists($path)) { 235 | $f = $fs->GetFolder($path); 236 | } else { 237 | $f = false; 238 | } 239 | 240 | if (STREAM_META_TOUCH === $option) { 241 | if ($f) { 242 | return touch($f->ShortPath); 243 | } 244 | 245 | try { 246 | $fs->OpenTextFile($path, 8, true, 0)->Close(); 247 | 248 | return true; 249 | } catch (\Exception $e) { 250 | } 251 | } 252 | 253 | if (!$f) { 254 | return false; 255 | } 256 | 257 | switch ($option) { 258 | case STREAM_META_ACCESS: return chmod($f->ShortPath, $value); 259 | case STREAM_META_OWNER: 260 | case STREAM_META_OWNER_NAME: return chown($f->ShortPath, $value); 261 | case STREAM_META_GROUP: 262 | case STREAM_META_GROUP_NAME: return chgrp($f->ShortPath, $value); 263 | default: return false; 264 | } 265 | } 266 | 267 | public function stream_open($path, $mode, $options, &$opened_path) 268 | { 269 | $mode .= ''; 270 | list($fs, $path) = self::fs($path); 271 | 272 | if ($fs->FolderExists($path)) { 273 | return false; 274 | } 275 | 276 | try { 277 | if ('x' === $m = substr($mode, 0, 1)) { 278 | $fs->CreateTextFile($path, false)->Close(); 279 | $f = $fs->GetFile($path); 280 | $mode[0] = 'w'; 281 | } else { 282 | $f = $fs->GetFile($path); 283 | } 284 | } catch (\Exception $f) { 285 | try { 286 | switch ($m) { 287 | case 'w': 288 | case 'c': 289 | case 'a': 290 | $h = $fs->CreateTextFile($path, true); 291 | $f = $fs->GetFile($path); 292 | $h->Close(); 293 | break; 294 | 295 | default: return false; 296 | } 297 | } catch (\Exception $e) { 298 | return false; 299 | } 300 | } 301 | 302 | if (!(STREAM_REPORT_ERRORS & $options)) { 303 | set_error_handler('var_dump', 0); 304 | $e = error_reporting(0); 305 | } 306 | 307 | $this->handle = fopen($f->ShortPath, $mode); 308 | 309 | if (!(STREAM_REPORT_ERRORS & $options)) { 310 | error_reporting($e); 311 | restore_error_handler(); 312 | } 313 | 314 | if ($this->handle) { 315 | return true; 316 | } 317 | if (isset($h)) { 318 | $f->Delete(true); 319 | } 320 | 321 | return false; 322 | } 323 | 324 | public function stream_read($count) 325 | { 326 | return fread($this->handle, $count); 327 | } 328 | 329 | public function stream_seek($offset, $whence = SEEK_SET) 330 | { 331 | return fseek($this->handle, $offset, $whence); 332 | } 333 | 334 | public function stream_set_option($option, $arg1, $arg2) 335 | { 336 | switch ($option) { 337 | case STREAM_OPTION_BLOCKING: return stream_set_blocking($this->handle, $arg1); 338 | case STREAM_OPTION_READ_TIMEOUT: return stream_set_timeout($this->handle, $arg1, $arg2); 339 | case STREAM_OPTION_WRITE_BUFFER: return stream_set_write_buffer($this->handle, $arg1, $arg2); 340 | default: return false; 341 | } 342 | } 343 | 344 | public function stream_stat() 345 | { 346 | return fstat($this->handle); 347 | } 348 | 349 | public function stream_tell() 350 | { 351 | return ftell($this->handle); 352 | } 353 | 354 | public function stream_truncate($new_size) 355 | { 356 | return ftruncate($this->handle, $new_size); 357 | } 358 | 359 | public function stream_write($data) 360 | { 361 | return fwrite($this->handle, $data, strlen($data)); 362 | } 363 | 364 | public function unlink($path) 365 | { 366 | list($fs, $path) = self::fs($path); 367 | 368 | if ($fs->FileExists($path)) { 369 | return unlink($fs->GetFile($path)->ShortPath); 370 | } 371 | 372 | return false; 373 | } 374 | 375 | public function url_stat($path, $flags) 376 | { 377 | list($fs, $path) = self::fs($path); 378 | 379 | if ($fs->FileExists($path)) { 380 | $f = $fs->GetFile($path); 381 | } elseif ($fs->FolderExists($path)) { 382 | $f = $fs->GetFolder($path); 383 | } else { 384 | return false; 385 | } 386 | 387 | if (STREAM_URL_STAT_QUIET & $flags) { 388 | set_error_handler('var_dump', 0); 389 | $e = error_reporting(0); 390 | } 391 | 392 | if (STREAM_URL_STAT_LINK & $flags) { 393 | $f = @lstat($f->ShortPath) ?: stat($f->ShortPath); 394 | } else { 395 | $f = stat($f->ShortPath); 396 | } 397 | 398 | if (STREAM_URL_STAT_QUIET & $flags) { 399 | error_reporting($e); 400 | restore_error_handler(); 401 | } 402 | 403 | return $f; 404 | } 405 | } 406 | -------------------------------------------------------------------------------- /src/Patchwork/Utf8/data/caseFolding_full.ser: -------------------------------------------------------------------------------- 1 | a:2:{i:0;a:104:{i:0;s:2:"ß";i:1;s:2:"İ";i:2;s:2:"ʼn";i:3;s:2:"ǰ";i:4;s:2:"ΐ";i:5;s:2:"ΰ";i:6;s:2:"և";i:7;s:3:"ẖ";i:8;s:3:"ẗ";i:9;s:3:"ẘ";i:10;s:3:"ẙ";i:11;s:3:"ẚ";i:12;s:3:"ẞ";i:13;s:3:"ὐ";i:14;s:3:"ὒ";i:15;s:3:"ὔ";i:16;s:3:"ὖ";i:17;s:3:"ᾀ";i:18;s:3:"ᾁ";i:19;s:3:"ᾂ";i:20;s:3:"ᾃ";i:21;s:3:"ᾄ";i:22;s:3:"ᾅ";i:23;s:3:"ᾆ";i:24;s:3:"ᾇ";i:25;s:3:"ᾈ";i:26;s:3:"ᾉ";i:27;s:3:"ᾊ";i:28;s:3:"ᾋ";i:29;s:3:"ᾌ";i:30;s:3:"ᾍ";i:31;s:3:"ᾎ";i:32;s:3:"ᾏ";i:33;s:3:"ᾐ";i:34;s:3:"ᾑ";i:35;s:3:"ᾒ";i:36;s:3:"ᾓ";i:37;s:3:"ᾔ";i:38;s:3:"ᾕ";i:39;s:3:"ᾖ";i:40;s:3:"ᾗ";i:41;s:3:"ᾘ";i:42;s:3:"ᾙ";i:43;s:3:"ᾚ";i:44;s:3:"ᾛ";i:45;s:3:"ᾜ";i:46;s:3:"ᾝ";i:47;s:3:"ᾞ";i:48;s:3:"ᾟ";i:49;s:3:"ᾠ";i:50;s:3:"ᾡ";i:51;s:3:"ᾢ";i:52;s:3:"ᾣ";i:53;s:3:"ᾤ";i:54;s:3:"ᾥ";i:55;s:3:"ᾦ";i:56;s:3:"ᾧ";i:57;s:3:"ᾨ";i:58;s:3:"ᾩ";i:59;s:3:"ᾪ";i:60;s:3:"ᾫ";i:61;s:3:"ᾬ";i:62;s:3:"ᾭ";i:63;s:3:"ᾮ";i:64;s:3:"ᾯ";i:65;s:3:"ᾲ";i:66;s:3:"ᾳ";i:67;s:3:"ᾴ";i:68;s:3:"ᾶ";i:69;s:3:"ᾷ";i:70;s:3:"ᾼ";i:71;s:3:"ῂ";i:72;s:3:"ῃ";i:73;s:3:"ῄ";i:74;s:3:"ῆ";i:75;s:3:"ῇ";i:76;s:3:"ῌ";i:77;s:3:"ῒ";i:78;s:3:"ΐ";i:79;s:3:"ῖ";i:80;s:3:"ῗ";i:81;s:3:"ῢ";i:82;s:3:"ΰ";i:83;s:3:"ῤ";i:84;s:3:"ῦ";i:85;s:3:"ῧ";i:86;s:3:"ῲ";i:87;s:3:"ῳ";i:88;s:3:"ῴ";i:89;s:3:"ῶ";i:90;s:3:"ῷ";i:91;s:3:"ῼ";i:92;s:3:"ff";i:93;s:3:"fi";i:94;s:3:"fl";i:95;s:3:"ffi";i:96;s:3:"ffl";i:97;s:3:"ſt";i:98;s:3:"st";i:99;s:3:"ﬓ";i:100;s:3:"ﬔ";i:101;s:3:"ﬕ";i:102;s:3:"ﬖ";i:103;s:3:"ﬗ";}i:1;a:104:{i:0;s:2:"ss";i:1;s:3:"i̇";i:2;s:3:"ʼn";i:3;s:3:"ǰ";i:4;s:6:"ΐ";i:5;s:6:"ΰ";i:6;s:4:"եւ";i:7;s:3:"ẖ";i:8;s:3:"ẗ";i:9;s:3:"ẘ";i:10;s:3:"ẙ";i:11;s:3:"aʾ";i:12;s:2:"ss";i:13;s:4:"ὐ";i:14;s:6:"ὒ";i:15;s:6:"ὔ";i:16;s:6:"ὖ";i:17;s:5:"ἀι";i:18;s:5:"ἁι";i:19;s:5:"ἂι";i:20;s:5:"ἃι";i:21;s:5:"ἄι";i:22;s:5:"ἅι";i:23;s:5:"ἆι";i:24;s:5:"ἇι";i:25;s:5:"ἀι";i:26;s:5:"ἁι";i:27;s:5:"ἂι";i:28;s:5:"ἃι";i:29;s:5:"ἄι";i:30;s:5:"ἅι";i:31;s:5:"ἆι";i:32;s:5:"ἇι";i:33;s:5:"ἠι";i:34;s:5:"ἡι";i:35;s:5:"ἢι";i:36;s:5:"ἣι";i:37;s:5:"ἤι";i:38;s:5:"ἥι";i:39;s:5:"ἦι";i:40;s:5:"ἧι";i:41;s:5:"ἠι";i:42;s:5:"ἡι";i:43;s:5:"ἢι";i:44;s:5:"ἣι";i:45;s:5:"ἤι";i:46;s:5:"ἥι";i:47;s:5:"ἦι";i:48;s:5:"ἧι";i:49;s:5:"ὠι";i:50;s:5:"ὡι";i:51;s:5:"ὢι";i:52;s:5:"ὣι";i:53;s:5:"ὤι";i:54;s:5:"ὥι";i:55;s:5:"ὦι";i:56;s:5:"ὧι";i:57;s:5:"ὠι";i:58;s:5:"ὡι";i:59;s:5:"ὢι";i:60;s:5:"ὣι";i:61;s:5:"ὤι";i:62;s:5:"ὥι";i:63;s:5:"ὦι";i:64;s:5:"ὧι";i:65;s:5:"ὰι";i:66;s:4:"αι";i:67;s:4:"άι";i:68;s:4:"ᾶ";i:69;s:6:"ᾶι";i:70;s:4:"αι";i:71;s:5:"ὴι";i:72;s:4:"ηι";i:73;s:4:"ήι";i:74;s:4:"ῆ";i:75;s:6:"ῆι";i:76;s:4:"ηι";i:77;s:6:"ῒ";i:78;s:6:"ΐ";i:79;s:4:"ῖ";i:80;s:6:"ῗ";i:81;s:6:"ῢ";i:82;s:6:"ΰ";i:83;s:4:"ῤ";i:84;s:4:"ῦ";i:85;s:6:"ῧ";i:86;s:5:"ὼι";i:87;s:4:"ωι";i:88;s:4:"ώι";i:89;s:4:"ῶ";i:90;s:6:"ῶι";i:91;s:4:"ωι";i:92;s:2:"ff";i:93;s:2:"fi";i:94;s:2:"fl";i:95;s:3:"ffi";i:96;s:3:"ffl";i:97;s:2:"st";i:98;s:2:"st";i:99;s:4:"մն";i:100;s:4:"մե";i:101;s:4:"մի";i:102;s:4:"վն";i:103;s:4:"մխ";}} -------------------------------------------------------------------------------- /src/Patchwork/Utf8/data/to.bestfit1250.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/Utf8/data/to.bestfit1250.ser -------------------------------------------------------------------------------- /src/Patchwork/Utf8/data/to.bestfit1251.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/Utf8/data/to.bestfit1251.ser -------------------------------------------------------------------------------- /src/Patchwork/Utf8/data/to.bestfit1252.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/Utf8/data/to.bestfit1252.ser -------------------------------------------------------------------------------- /src/Patchwork/Utf8/data/to.bestfit1253.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/Utf8/data/to.bestfit1253.ser -------------------------------------------------------------------------------- /src/Patchwork/Utf8/data/to.bestfit1254.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/Utf8/data/to.bestfit1254.ser -------------------------------------------------------------------------------- /src/Patchwork/Utf8/data/to.bestfit1255.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/Utf8/data/to.bestfit1255.ser -------------------------------------------------------------------------------- /src/Patchwork/Utf8/data/to.bestfit1256.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/Utf8/data/to.bestfit1256.ser -------------------------------------------------------------------------------- /src/Patchwork/Utf8/data/to.bestfit1257.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/Utf8/data/to.bestfit1257.ser -------------------------------------------------------------------------------- /src/Patchwork/Utf8/data/to.bestfit1258.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/Utf8/data/to.bestfit1258.ser -------------------------------------------------------------------------------- /src/Patchwork/Utf8/data/to.bestfit874.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/Utf8/data/to.bestfit874.ser -------------------------------------------------------------------------------- /src/Patchwork/Utf8/data/to.bestfit932.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/Utf8/data/to.bestfit932.ser -------------------------------------------------------------------------------- /src/Patchwork/Utf8/data/to.bestfit936.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/Utf8/data/to.bestfit936.ser -------------------------------------------------------------------------------- /src/Patchwork/Utf8/data/to.bestfit949.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/Utf8/data/to.bestfit949.ser -------------------------------------------------------------------------------- /src/Patchwork/Utf8/data/to.bestfit950.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchwork/utf8/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5/src/Patchwork/Utf8/data/to.bestfit950.ser -------------------------------------------------------------------------------- /src/Patchwork/Utf8/data/translit_extra.ser: -------------------------------------------------------------------------------- 1 | a:224:{s:2:"Ð";s:1:"D";s:2:"Ø";s:1:"O";s:2:"Þ";s:2:"TH";s:2:"ð";s:1:"d";s:2:"ø";s:1:"o";s:2:"þ";s:2:"th";s:2:"Đ";s:1:"D";s:2:"đ";s:1:"d";s:2:"Ħ";s:1:"H";s:2:"ħ";s:1:"h";s:2:"ı";s:1:"i";s:2:"ĸ";s:1:"q";s:2:"Ŋ";s:1:"N";s:2:"ŋ";s:1:"n";s:2:"Ŧ";s:1:"T";s:2:"ŧ";s:1:"t";s:2:"ƀ";s:1:"b";s:2:"Ɓ";s:1:"B";s:2:"Ƃ";s:1:"B";s:2:"ƃ";s:1:"b";s:2:"Ƈ";s:1:"C";s:2:"ƈ";s:1:"c";s:2:"Ɖ";s:1:"D";s:2:"Ɗ";s:1:"D";s:2:"Ƌ";s:1:"D";s:2:"ƌ";s:1:"d";s:2:"Ɛ";s:1:"E";s:2:"Ƒ";s:1:"F";s:2:"ƒ";s:1:"f";s:2:"Ɠ";s:1:"G";s:2:"ƕ";s:2:"hv";s:2:"Ɩ";s:1:"I";s:2:"Ɨ";s:1:"I";s:2:"Ƙ";s:1:"K";s:2:"ƙ";s:1:"k";s:2:"ƚ";s:1:"l";s:2:"Ɲ";s:1:"N";s:2:"ƞ";s:1:"n";s:2:"Ƣ";s:2:"OI";s:2:"ƣ";s:2:"oi";s:2:"Ƥ";s:1:"P";s:2:"ƥ";s:1:"p";s:2:"ƫ";s:1:"t";s:2:"Ƭ";s:1:"T";s:2:"ƭ";s:1:"t";s:2:"Ʈ";s:1:"T";s:2:"Ʋ";s:1:"V";s:2:"Ƴ";s:1:"Y";s:2:"ƴ";s:1:"y";s:2:"Ƶ";s:1:"Z";s:2:"ƶ";s:1:"z";s:2:"Ǥ";s:1:"G";s:2:"ǥ";s:1:"g";s:2:"ȡ";s:1:"d";s:2:"Ȥ";s:1:"Z";s:2:"ȥ";s:1:"z";s:2:"ȴ";s:1:"l";s:2:"ȵ";s:1:"n";s:2:"ȶ";s:1:"t";s:2:"ȷ";s:1:"j";s:2:"ȸ";s:2:"db";s:2:"ȹ";s:2:"qp";s:2:"Ⱥ";s:1:"A";s:2:"Ȼ";s:1:"C";s:2:"ȼ";s:1:"c";s:2:"Ƚ";s:1:"L";s:2:"Ⱦ";s:1:"T";s:2:"ȿ";s:1:"s";s:2:"ɀ";s:1:"z";s:2:"Ƀ";s:1:"B";s:2:"Ʉ";s:1:"U";s:2:"Ɇ";s:1:"E";s:2:"ɇ";s:1:"e";s:2:"Ɉ";s:1:"J";s:2:"ɉ";s:1:"j";s:2:"Ɍ";s:1:"R";s:2:"ɍ";s:1:"r";s:2:"Ɏ";s:1:"Y";s:2:"ɏ";s:1:"y";s:2:"ɓ";s:1:"b";s:2:"ɕ";s:1:"c";s:2:"ɖ";s:1:"d";s:2:"ɗ";s:1:"d";s:2:"ɛ";s:1:"e";s:2:"ɟ";s:1:"j";s:2:"ɠ";s:1:"g";s:2:"ɡ";s:1:"g";s:2:"ɢ";s:1:"G";s:2:"ɦ";s:1:"h";s:2:"ɧ";s:1:"h";s:2:"ɨ";s:1:"i";s:2:"ɪ";s:1:"I";s:2:"ɫ";s:1:"l";s:2:"ɬ";s:1:"l";s:2:"ɭ";s:1:"l";s:2:"ɱ";s:1:"m";s:2:"ɲ";s:1:"n";s:2:"ɳ";s:1:"n";s:2:"ɴ";s:1:"N";s:2:"ɶ";s:2:"OE";s:2:"ɼ";s:1:"r";s:2:"ɽ";s:1:"r";s:2:"ɾ";s:1:"r";s:2:"ʀ";s:1:"R";s:2:"ʂ";s:1:"s";s:2:"ʈ";s:1:"t";s:2:"ʉ";s:1:"u";s:2:"ʋ";s:1:"v";s:2:"ʏ";s:1:"Y";s:2:"ʐ";s:1:"z";s:2:"ʑ";s:1:"z";s:2:"ʙ";s:1:"B";s:2:"ʛ";s:1:"G";s:2:"ʜ";s:1:"H";s:2:"ʝ";s:1:"j";s:2:"ʟ";s:1:"L";s:2:"ʠ";s:1:"q";s:2:"ʣ";s:2:"dz";s:2:"ʥ";s:2:"dz";s:2:"ʦ";s:2:"ts";s:2:"ʪ";s:2:"ls";s:2:"ʫ";s:2:"lz";s:3:"ᴀ";s:1:"A";s:3:"ᴁ";s:2:"AE";s:3:"ᴃ";s:1:"B";s:3:"ᴄ";s:1:"C";s:3:"ᴅ";s:1:"D";s:3:"ᴆ";s:1:"D";s:3:"ᴇ";s:1:"E";s:3:"ᴊ";s:1:"J";s:3:"ᴋ";s:1:"K";s:3:"ᴌ";s:1:"L";s:3:"ᴍ";s:1:"M";s:3:"ᴏ";s:1:"O";s:3:"ᴘ";s:1:"P";s:3:"ᴛ";s:1:"T";s:3:"ᴜ";s:1:"U";s:3:"ᴠ";s:1:"V";s:3:"ᴡ";s:1:"W";s:3:"ᴢ";s:1:"Z";s:3:"ᵫ";s:2:"ue";s:3:"ᵬ";s:1:"b";s:3:"ᵭ";s:1:"d";s:3:"ᵮ";s:1:"f";s:3:"ᵯ";s:1:"m";s:3:"ᵰ";s:1:"n";s:3:"ᵱ";s:1:"p";s:3:"ᵲ";s:1:"r";s:3:"ᵳ";s:1:"r";s:3:"ᵴ";s:1:"s";s:3:"ᵵ";s:1:"t";s:3:"ᵶ";s:1:"z";s:3:"ᵺ";s:2:"th";s:3:"ᵻ";s:1:"I";s:3:"ᵽ";s:1:"p";s:3:"ᵾ";s:1:"U";s:3:"ᶀ";s:1:"b";s:3:"ᶁ";s:1:"d";s:3:"ᶂ";s:1:"f";s:3:"ᶃ";s:1:"g";s:3:"ᶄ";s:1:"k";s:3:"ᶅ";s:1:"l";s:3:"ᶆ";s:1:"m";s:3:"ᶇ";s:1:"n";s:3:"ᶈ";s:1:"p";s:3:"ᶉ";s:1:"r";s:3:"ᶊ";s:1:"s";s:3:"ᶌ";s:1:"v";s:3:"ᶍ";s:1:"x";s:3:"ᶎ";s:1:"z";s:3:"ᶏ";s:1:"a";s:3:"ᶑ";s:1:"d";s:3:"ᶒ";s:1:"e";s:3:"ᶓ";s:1:"e";s:3:"ᶖ";s:1:"i";s:3:"ᶙ";s:1:"u";s:3:"ẜ";s:1:"s";s:3:"ẝ";s:1:"s";s:3:"ẞ";s:2:"SS";s:3:"Ỻ";s:2:"LL";s:3:"ỻ";s:2:"ll";s:3:"Ỽ";s:1:"V";s:3:"ỽ";s:1:"v";s:3:"Ỿ";s:1:"Y";s:3:"ỿ";s:1:"y";s:3:"₠";s:2:"CE";s:3:"₢";s:2:"Cr";s:3:"₣";s:3:"Fr.";s:3:"₤";s:2:"L.";s:3:"₧";s:3:"Pts";s:3:"₹";s:2:"Rs";s:3:"℞";s:2:"Rx";s:3:"〇";s:1:"0";s:3:"′";s:1:"'";s:3:"〝";s:1:""";s:3:"〞";s:1:""";s:3:"‖";s:2:"||";s:3:"⁅";s:1:"[";s:3:"⁆";s:1:"]";s:3:"⁎";s:1:"*";s:3:"、";s:1:",";s:3:"。";s:1:".";s:3:"〈";s:1:"<";s:3:"〉";s:1:">";s:3:"《";s:2:"<<";s:3:"》";s:2:">>";s:3:"〔";s:1:"[";s:3:"〕";s:1:"]";s:3:"〘";s:1:"[";s:3:"〙";s:1:"]";s:3:"〚";s:1:"[";s:3:"〛";s:1:"]";s:3:"︑";s:1:",";s:3:"︒";s:1:".";s:3:"︹";s:1:"[";s:3:"︺";s:1:"]";s:3:"︽";s:2:"<<";s:3:"︾";s:2:">>";s:3:"︿";s:1:"<";s:3:"﹀";s:1:">";s:2:"÷";s:1:"/";s:3:"∥";s:2:"||";s:3:"⦅";s:2:"((";s:3:"⦆";s:2:"))";} --------------------------------------------------------------------------------