From 844919016ceccb8bab4309bc37771f1e97ba3373 Mon Sep 17 00:00:00 2001 From: Graham Date: Sun, 12 Mar 2017 16:34:21 -0400 Subject: [PATCH] Refactoring, part 1 Changes made over the past week or so after using this in Lithium. Some modules are missing and there is no makefile now. --- LICENSE.doominati | 340 ------------- LICENSE.gdcc | 345 ------------- LICENSE.gdcc-lib | 502 ------------------- LICENSE => LICENSE.lithos3 | 0 fonts/SmallFont/ɢ.png | Bin 584 -> 0 bytes fonts/SmallFont/ᴜ.png | Bin 769 -> 0 bytes fonts/SmallFont/♥.png | Bin 1172 -> 0 bytes fonts/SmallFont/、.png | Bin 1155 -> 0 bytes fonts/SmallFont/。.png | Bin 1150 -> 0 bytes fonts/SmallFont/〜.png | Bin 1171 -> 0 bytes fonts/SmallFont/え.png | Bin 232 -> 0 bytes fonts/SmallFont/が.png | Bin 248 -> 0 bytes fonts/SmallFont/き.png | Bin 242 -> 0 bytes fonts/SmallFont/じ.png | Bin 231 -> 0 bytes fonts/SmallFont/ず.png | Bin 245 -> 0 bytes fonts/SmallFont/せ.png | Bin 240 -> 0 bytes fonts/SmallFont/ぞ.png | Bin 253 -> 0 bytes fonts/SmallFont/た.png | Bin 243 -> 0 bytes fonts/SmallFont/て.png | Bin 220 -> 0 bytes fonts/SmallFont/ど.png | Bin 245 -> 0 bytes fonts/SmallFont/な.png | Bin 250 -> 0 bytes fonts/SmallFont/に.png | Bin 243 -> 0 bytes fonts/SmallFont/ぬ.png | Bin 266 -> 0 bytes fonts/SmallFont/の.png | Bin 248 -> 0 bytes fonts/SmallFont/は.png | Bin 254 -> 0 bytes fonts/SmallFont/ひ.png | Bin 254 -> 0 bytes fonts/SmallFont/へ.png | Bin 201 -> 0 bytes fonts/SmallFont/ほ.png | Bin 260 -> 0 bytes fonts/SmallFont/む.png | Bin 234 -> 0 bytes fonts/SmallFont/も.png | Bin 238 -> 0 bytes fonts/SmallFont/ら.png | Bin 226 -> 0 bytes fonts/SmallFont/り.png | Bin 245 -> 0 bytes fonts/SmallFont/る.png | Bin 243 -> 0 bytes fonts/SmallFont/れ.png | Bin 256 -> 0 bytes fonts/SmallFont/を.png | Bin 243 -> 0 bytes fonts/SmallFont/ァ.png | Bin 1167 -> 0 bytes fonts/SmallFont/ア.png | Bin 1167 -> 0 bytes fonts/SmallFont/ィ.png | Bin 1163 -> 0 bytes fonts/SmallFont/イ.png | Bin 1167 -> 0 bytes fonts/SmallFont/ゥ.png | Bin 1166 -> 0 bytes fonts/SmallFont/ウ.png | Bin 1168 -> 0 bytes fonts/SmallFont/ェ.png | Bin 1155 -> 0 bytes fonts/SmallFont/エ.png | Bin 1162 -> 0 bytes fonts/SmallFont/ォ.png | Bin 1170 -> 0 bytes fonts/SmallFont/オ.png | Bin 1168 -> 0 bytes fonts/SmallFont/カ.png | Bin 1170 -> 0 bytes fonts/SmallFont/キ.png | Bin 1171 -> 0 bytes fonts/SmallFont/ク.png | Bin 1168 -> 0 bytes fonts/SmallFont/ケ.png | Bin 1169 -> 0 bytes fonts/SmallFont/コ.png | Bin 1159 -> 0 bytes fonts/SmallFont/サ.png | Bin 1168 -> 0 bytes fonts/SmallFont/シ.png | Bin 1168 -> 0 bytes fonts/SmallFont/ス.png | Bin 1168 -> 0 bytes fonts/SmallFont/セ.png | Bin 1168 -> 0 bytes fonts/SmallFont/ソ.png | Bin 1168 -> 0 bytes fonts/SmallFont/タ.png | Bin 1168 -> 0 bytes fonts/SmallFont/チ.png | Bin 1170 -> 0 bytes fonts/SmallFont/ッ.png | Bin 1164 -> 0 bytes fonts/SmallFont/ツ.png | Bin 1168 -> 0 bytes fonts/SmallFont/テ.png | Bin 1168 -> 0 bytes fonts/SmallFont/ト.png | Bin 1160 -> 0 bytes fonts/SmallFont/ド.png | Bin 939 -> 0 bytes fonts/SmallFont/ナ.png | Bin 1169 -> 0 bytes fonts/SmallFont/ニ.png | Bin 1160 -> 0 bytes fonts/SmallFont/ヌ.png | Bin 1166 -> 0 bytes fonts/SmallFont/ネ.png | Bin 1169 -> 0 bytes fonts/SmallFont/ノ.png | Bin 1165 -> 0 bytes fonts/SmallFont/ハ.png | Bin 1168 -> 0 bytes fonts/SmallFont/ヒ.png | Bin 1169 -> 0 bytes fonts/SmallFont/フ.png | Bin 1166 -> 0 bytes fonts/SmallFont/ヘ.png | Bin 1170 -> 0 bytes fonts/SmallFont/ホ.png | Bin 1163 -> 0 bytes fonts/SmallFont/マ.png | Bin 1167 -> 0 bytes fonts/SmallFont/ミ.png | Bin 1159 -> 0 bytes fonts/SmallFont/ム.png | Bin 1169 -> 0 bytes fonts/SmallFont/メ.png | Bin 1169 -> 0 bytes fonts/SmallFont/モ.png | Bin 1157 -> 0 bytes fonts/SmallFont/ャ.png | Bin 1168 -> 0 bytes fonts/SmallFont/ヤ.png | Bin 1168 -> 0 bytes fonts/SmallFont/ュ.png | Bin 1166 -> 0 bytes fonts/SmallFont/ユ.png | Bin 1168 -> 0 bytes fonts/SmallFont/ョ.png | Bin 1159 -> 0 bytes fonts/SmallFont/ヨ.png | Bin 1153 -> 0 bytes fonts/SmallFont/ラ.png | Bin 1160 -> 0 bytes fonts/SmallFont/リ.png | Bin 1163 -> 0 bytes fonts/SmallFont/ル.png | Bin 1168 -> 0 bytes fonts/SmallFont/レ.png | Bin 1165 -> 0 bytes fonts/SmallFont/ロ.png | Bin 1159 -> 0 bytes fonts/SmallFont/ワ.png | Bin 1167 -> 0 bytes fonts/SmallFont/ヲ.png | Bin 1161 -> 0 bytes fonts/SmallFont/ン.png | Bin 1170 -> 0 bytes fonts/SmallFont/・.png | Bin 345 -> 0 bytes fonts/SmallFont/ー.png | Bin 1154 -> 0 bytes fonts/SmallFont/世.png | Bin 247 -> 0 bytes fonts/SmallFont/今.png | Bin 243 -> 0 bytes fonts/SmallFont/夢.png | Bin 275 -> 0 bytes fonts/SmallFont/奥.png | Bin 275 -> 0 bytes fonts/SmallFont/山.png | Bin 227 -> 0 bytes fonts/SmallFont/常.png | Bin 292 -> 0 bytes fonts/SmallFont/我.png | Bin 283 -> 0 bytes fonts/SmallFont/散.png | Bin 305 -> 0 bytes fonts/SmallFont/日.png | Bin 222 -> 0 bytes fonts/SmallFont/有.png | Bin 249 -> 0 bytes fonts/SmallFont/浅.png | Bin 293 -> 0 bytes fonts/SmallFont/為.png | Bin 274 -> 0 bytes fonts/SmallFont/色.png | Bin 246 -> 0 bytes fonts/SmallFont/見.png | Bin 247 -> 0 bytes fonts/SmallFont/越.png | Bin 302 -> 0 bytes fonts/SmallFont/酔.png | Bin 290 -> 0 bytes fonts/SmallFont/(.png | Bin 1156 -> 0 bytes fonts/SmallFont/).png | Bin 1159 -> 0 bytes lithos_c/inc/Lth.h | 35 ++ lithos_c/{lithos3 => }/inc/Lth_hashmap.h | 32 +- lithos_c/{lithos3 => }/inc/Lth_linklist.h | 8 +- lithos_c/{lithos3 => }/inc/Lth_manifest.h | 25 +- lithos_c/{lithos3 => }/inc/Lth_stdlib.h | 16 +- lithos_c/{lithos3 => }/inc/Lth_token.h | 6 +- lithos_c/{lithos3 => }/inc/Lth_tokenstream.h | 12 +- lithos_c/{lithos3 => }/inc/Lth_types.h | 19 +- lithos_c/lithos3/Makefile | 102 ---- lithos_c/lithos3/inc/Lth.h | 62 --- lithos_c/lithos3/inc/Lth_assert.h | 27 - lithos_c/lithos3/inc/Lth_callback.h | 74 --- lithos_c/lithos3/inc/Lth_context.h | 72 --- lithos_c/lithos3/inc/Lth_control.h | 82 --- lithos_c/lithos3/inc/Lth_draw.h | 38 -- lithos_c/lithos3/inc/Lth_font.h | 89 ---- lithos_c/lithos3/inc/Lth_stdfix.h | 20 - lithos_c/lithos3/inc/Lth_window.h | 39 -- lithos_c/lithos3/inc/Lth_winman.h | 45 -- lithos_c/lithos3/src/context.c | 114 ----- lithos_c/lithos3/src/control.c | 120 ----- lithos_c/lithos3/src/draw.c | 76 --- lithos_c/lithos3/src/fontnew.c | 250 --------- lithos_c/lithos3/src/fontrun.c | 330 ------------ lithos_c/lithos3/src/window.c | 87 ---- lithos_c/lithos3/src/winman.c | 68 --- lithos_c/{lithos3 => }/src/manifest.c | 77 +-- lithos_c/{lithos3 => }/src/stdlib.c | 58 +-- lithos_c/{lithos3 => }/src/token.c | 11 +- lithos_c/{lithos3 => }/src/tokenstream.c | 44 +- lithos_fs/fonts/SmallFontJP.lthm | 274 ---------- lithos_tools/classlayout.txt | 5 - loadacs.txt | 1 - 144 files changed, 201 insertions(+), 3304 deletions(-) delete mode 100644 LICENSE.doominati delete mode 100644 LICENSE.gdcc delete mode 100644 LICENSE.gdcc-lib rename LICENSE => LICENSE.lithos3 (100%) delete mode 100644 fonts/SmallFont/ɢ.png delete mode 100644 fonts/SmallFont/ᴜ.png delete mode 100644 fonts/SmallFont/♥.png delete mode 100644 fonts/SmallFont/、.png delete mode 100644 fonts/SmallFont/。.png delete mode 100644 fonts/SmallFont/〜.png delete mode 100644 fonts/SmallFont/え.png delete mode 100644 fonts/SmallFont/が.png delete mode 100644 fonts/SmallFont/き.png delete mode 100644 fonts/SmallFont/じ.png delete mode 100644 fonts/SmallFont/ず.png delete mode 100644 fonts/SmallFont/せ.png delete mode 100644 fonts/SmallFont/ぞ.png delete mode 100644 fonts/SmallFont/た.png delete mode 100644 fonts/SmallFont/て.png delete mode 100644 fonts/SmallFont/ど.png delete mode 100644 fonts/SmallFont/な.png delete mode 100644 fonts/SmallFont/に.png delete mode 100644 fonts/SmallFont/ぬ.png delete mode 100644 fonts/SmallFont/の.png delete mode 100644 fonts/SmallFont/は.png delete mode 100644 fonts/SmallFont/ひ.png delete mode 100644 fonts/SmallFont/へ.png delete mode 100644 fonts/SmallFont/ほ.png delete mode 100644 fonts/SmallFont/む.png delete mode 100644 fonts/SmallFont/も.png delete mode 100644 fonts/SmallFont/ら.png delete mode 100644 fonts/SmallFont/り.png delete mode 100644 fonts/SmallFont/る.png delete mode 100644 fonts/SmallFont/れ.png delete mode 100644 fonts/SmallFont/を.png delete mode 100644 fonts/SmallFont/ァ.png delete mode 100644 fonts/SmallFont/ア.png delete mode 100644 fonts/SmallFont/ィ.png delete mode 100644 fonts/SmallFont/イ.png delete mode 100644 fonts/SmallFont/ゥ.png delete mode 100644 fonts/SmallFont/ウ.png delete mode 100644 fonts/SmallFont/ェ.png delete mode 100644 fonts/SmallFont/エ.png delete mode 100644 fonts/SmallFont/ォ.png delete mode 100644 fonts/SmallFont/オ.png delete mode 100644 fonts/SmallFont/カ.png delete mode 100644 fonts/SmallFont/キ.png delete mode 100644 fonts/SmallFont/ク.png delete mode 100644 fonts/SmallFont/ケ.png delete mode 100644 fonts/SmallFont/コ.png delete mode 100644 fonts/SmallFont/サ.png delete mode 100644 fonts/SmallFont/シ.png delete mode 100644 fonts/SmallFont/ス.png delete mode 100644 fonts/SmallFont/セ.png delete mode 100644 fonts/SmallFont/ソ.png delete mode 100644 fonts/SmallFont/タ.png delete mode 100644 fonts/SmallFont/チ.png delete mode 100644 fonts/SmallFont/ッ.png delete mode 100644 fonts/SmallFont/ツ.png delete mode 100644 fonts/SmallFont/テ.png delete mode 100644 fonts/SmallFont/ト.png delete mode 100644 fonts/SmallFont/ド.png delete mode 100644 fonts/SmallFont/ナ.png delete mode 100644 fonts/SmallFont/ニ.png delete mode 100644 fonts/SmallFont/ヌ.png delete mode 100644 fonts/SmallFont/ネ.png delete mode 100644 fonts/SmallFont/ノ.png delete mode 100644 fonts/SmallFont/ハ.png delete mode 100644 fonts/SmallFont/ヒ.png delete mode 100644 fonts/SmallFont/フ.png delete mode 100644 fonts/SmallFont/ヘ.png delete mode 100644 fonts/SmallFont/ホ.png delete mode 100644 fonts/SmallFont/マ.png delete mode 100644 fonts/SmallFont/ミ.png delete mode 100644 fonts/SmallFont/ム.png delete mode 100644 fonts/SmallFont/メ.png delete mode 100644 fonts/SmallFont/モ.png delete mode 100644 fonts/SmallFont/ャ.png delete mode 100644 fonts/SmallFont/ヤ.png delete mode 100644 fonts/SmallFont/ュ.png delete mode 100644 fonts/SmallFont/ユ.png delete mode 100644 fonts/SmallFont/ョ.png delete mode 100644 fonts/SmallFont/ヨ.png delete mode 100644 fonts/SmallFont/ラ.png delete mode 100644 fonts/SmallFont/リ.png delete mode 100644 fonts/SmallFont/ル.png delete mode 100644 fonts/SmallFont/レ.png delete mode 100644 fonts/SmallFont/ロ.png delete mode 100644 fonts/SmallFont/ワ.png delete mode 100644 fonts/SmallFont/ヲ.png delete mode 100644 fonts/SmallFont/ン.png delete mode 100644 fonts/SmallFont/・.png delete mode 100644 fonts/SmallFont/ー.png delete mode 100644 fonts/SmallFont/世.png delete mode 100644 fonts/SmallFont/今.png delete mode 100644 fonts/SmallFont/夢.png delete mode 100644 fonts/SmallFont/奥.png delete mode 100644 fonts/SmallFont/山.png delete mode 100644 fonts/SmallFont/常.png delete mode 100644 fonts/SmallFont/我.png delete mode 100644 fonts/SmallFont/散.png delete mode 100644 fonts/SmallFont/日.png delete mode 100644 fonts/SmallFont/有.png delete mode 100644 fonts/SmallFont/浅.png delete mode 100644 fonts/SmallFont/為.png delete mode 100644 fonts/SmallFont/色.png delete mode 100644 fonts/SmallFont/見.png delete mode 100644 fonts/SmallFont/越.png delete mode 100644 fonts/SmallFont/酔.png delete mode 100644 fonts/SmallFont/(.png delete mode 100644 fonts/SmallFont/).png create mode 100644 lithos_c/inc/Lth.h rename lithos_c/{lithos3 => }/inc/Lth_hashmap.h (79%) rename lithos_c/{lithos3 => }/inc/Lth_linklist.h (95%) rename lithos_c/{lithos3 => }/inc/Lth_manifest.h (81%) rename lithos_c/{lithos3 => }/inc/Lth_stdlib.h (82%) rename lithos_c/{lithos3 => }/inc/Lth_token.h (93%) rename lithos_c/{lithos3 => }/inc/Lth_tokenstream.h (81%) rename lithos_c/{lithos3 => }/inc/Lth_types.h (83%) delete mode 100644 lithos_c/lithos3/Makefile delete mode 100644 lithos_c/lithos3/inc/Lth.h delete mode 100644 lithos_c/lithos3/inc/Lth_assert.h delete mode 100644 lithos_c/lithos3/inc/Lth_callback.h delete mode 100644 lithos_c/lithos3/inc/Lth_context.h delete mode 100644 lithos_c/lithos3/inc/Lth_control.h delete mode 100644 lithos_c/lithos3/inc/Lth_draw.h delete mode 100644 lithos_c/lithos3/inc/Lth_font.h delete mode 100644 lithos_c/lithos3/inc/Lth_stdfix.h delete mode 100644 lithos_c/lithos3/inc/Lth_window.h delete mode 100644 lithos_c/lithos3/inc/Lth_winman.h delete mode 100644 lithos_c/lithos3/src/context.c delete mode 100644 lithos_c/lithos3/src/control.c delete mode 100644 lithos_c/lithos3/src/draw.c delete mode 100644 lithos_c/lithos3/src/fontnew.c delete mode 100644 lithos_c/lithos3/src/fontrun.c delete mode 100644 lithos_c/lithos3/src/window.c delete mode 100644 lithos_c/lithos3/src/winman.c rename lithos_c/{lithos3 => }/src/manifest.c (88%) rename lithos_c/{lithos3 => }/src/stdlib.c (82%) rename lithos_c/{lithos3 => }/src/token.c (93%) rename lithos_c/{lithos3 => }/src/tokenstream.c (79%) delete mode 100644 lithos_fs/fonts/SmallFontJP.lthm delete mode 100644 lithos_tools/classlayout.txt delete mode 100644 loadacs.txt diff --git a/LICENSE.doominati b/LICENSE.doominati deleted file mode 100644 index bcdb36d..0000000 --- a/LICENSE.doominati +++ /dev/null @@ -1,340 +0,0 @@ - - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. diff --git a/LICENSE.gdcc b/LICENSE.gdcc deleted file mode 100644 index fd5c35c..0000000 --- a/LICENSE.gdcc +++ /dev/null @@ -1,345 +0,0 @@ - -This program is licensed under the GNU General Public License version 2 as -described below. Permission is not granted for use under any other version. - -------------------------------------------------------------------------------- - - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. diff --git a/LICENSE.gdcc-lib b/LICENSE.gdcc-lib deleted file mode 100644 index 4362b49..0000000 --- a/LICENSE.gdcc-lib +++ /dev/null @@ -1,502 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 2.1, February 1999 - - Copyright (C) 1991, 1999 Free Software Foundation, Inc. - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - -[This is the first released version of the Lesser GPL. It also counts - as the successor of the GNU Library Public License, version 2, hence - the version number 2.1.] - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software--to make sure the software is free for all its users. - - This license, the Lesser General Public License, applies to some -specially designated software packages--typically libraries--of the -Free Software Foundation and other authors who decide to use it. You -can use it too, but we suggest you first think carefully about whether -this license or the ordinary General Public License is the better -strategy to use in any particular case, based on the explanations below. - - When we speak of free software, we are referring to freedom of use, -not price. Our General Public Licenses are designed to make sure that -you have the freedom to distribute copies of free software (and charge -for this service if you wish); that you receive source code or can get -it if you want it; that you can change the software and use pieces of -it in new free programs; and that you are informed that you can do -these things. - - To protect your rights, we need to make restrictions that forbid -distributors to deny you these rights or to ask you to surrender these -rights. These restrictions translate to certain responsibilities for -you if you distribute copies of the library or if you modify it. - - For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link other code with the library, you must provide -complete object files to the recipients, so that they can relink them -with the library after making changes to the library and recompiling -it. And you must show them these terms so they know their rights. - - We protect your rights with a two-step method: (1) we copyright the -library, and (2) we offer you this license, which gives you legal -permission to copy, distribute and/or modify the library. - - To protect each distributor, we want to make it very clear that -there is no warranty for the free library. Also, if the library is -modified by someone else and passed on, the recipients should know -that what they have is not the original version, so that the original -author's reputation will not be affected by problems that might be -introduced by others. - - Finally, software patents pose a constant threat to the existence of -any free program. We wish to make sure that a company cannot -effectively restrict the users of a free program by obtaining a -restrictive license from a patent holder. Therefore, we insist that -any patent license obtained for a version of the library must be -consistent with the full freedom of use specified in this license. - - Most GNU software, including some libraries, is covered by the -ordinary GNU General Public License. This license, the GNU Lesser -General Public License, applies to certain designated libraries, and -is quite different from the ordinary General Public License. We use -this license for certain libraries in order to permit linking those -libraries into non-free programs. - - When a program is linked with a library, whether statically or using -a shared library, the combination of the two is legally speaking a -combined work, a derivative of the original library. The ordinary -General Public License therefore permits such linking only if the -entire combination fits its criteria of freedom. The Lesser General -Public License permits more lax criteria for linking other code with -the library. - - We call this license the "Lesser" General Public License because it -does Less to protect the user's freedom than the ordinary General -Public License. It also provides other free software developers Less -of an advantage over competing non-free programs. These disadvantages -are the reason we use the ordinary General Public License for many -libraries. However, the Lesser license provides advantages in certain -special circumstances. - - For example, on rare occasions, there may be a special need to -encourage the widest possible use of a certain library, so that it becomes -a de-facto standard. To achieve this, non-free programs must be -allowed to use the library. A more frequent case is that a free -library does the same job as widely used non-free libraries. In this -case, there is little to gain by limiting the free library to free -software only, so we use the Lesser General Public License. - - In other cases, permission to use a particular library in non-free -programs enables a greater number of people to use a large body of -free software. For example, permission to use the GNU C Library in -non-free programs enables many more people to use the whole GNU -operating system, as well as its variant, the GNU/Linux operating -system. - - Although the Lesser General Public License is Less protective of the -users' freedom, it does ensure that the user of a program that is -linked with the Library has the freedom and the wherewithal to run -that program using a modified version of the Library. - - The precise terms and conditions for copying, distribution and -modification follow. Pay close attention to the difference between a -"work based on the library" and a "work that uses the library". The -former contains code derived from the library, whereas the latter must -be combined with the library in order to run. - - GNU LESSER GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any software library or other -program which contains a notice placed by the copyright holder or -other authorized party saying it may be distributed under the terms of -this Lesser General Public License (also called "this License"). -Each licensee is addressed as "you". - - A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. - - The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) - - "Source code" for a work means the preferred form of the work for -making modifications to it. For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control compilation -and installation of the library. - - Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it). Whether that is true depends on what the Library does -and what the program that uses the Library does. - - 1. You may copy and distribute verbatim copies of the Library's -complete source code as you receive it, in any medium, provided that -you conspicuously and appropriately publish on each copy an -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the -Library. - - You may charge a fee for the physical act of transferring a copy, -and you may at your option offer warranty protection in exchange for a -fee. - - 2. You may modify your copy or copies of the Library or any portion -of it, thus forming a work based on the Library, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) The modified work must itself be a software library. - - b) You must cause the files modified to carry prominent notices - stating that you changed the files and the date of any change. - - c) You must cause the whole of the work to be licensed at no - charge to all third parties under the terms of this License. - - d) If a facility in the modified Library refers to a function or a - table of data to be supplied by an application program that uses - the facility, other than as an argument passed when the facility - is invoked, then you must make a good faith effort to ensure that, - in the event an application does not supply such function or - table, the facility still operates, and performs whatever part of - its purpose remains meaningful. - - (For example, a function in a library to compute square roots has - a purpose that is entirely well-defined independent of the - application. Therefore, Subsection 2d requires that any - application-supplied function or table used by this function must - be optional: if the application does not supply it, the square - root function must still compute square roots.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. - - Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - - This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. - - 4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you accompany -it with the complete corresponding machine-readable source code, which -must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange. - - If distribution of object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the -source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. - - 5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. - - However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. - - When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. - - If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - - Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section 6. -Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. - - 6. As an exception to the Sections above, you may also combine or -link a "work that uses the Library" with the Library to produce a -work containing portions of the Library, and distribute that work -under terms of your choice, provided that the terms permit -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. - - You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: - - a) Accompany the work with the complete corresponding - machine-readable source code for the Library including whatever - changes were used in the work (which must be distributed under - Sections 1 and 2 above); and, if the work is an executable linked - with the Library, with the complete machine-readable "work that - uses the Library", as object code and/or source code, so that the - user can modify the Library and then relink to produce a modified - executable containing the modified Library. (It is understood - that the user who changes the contents of definitions files in the - Library will not necessarily be able to recompile the application - to use the modified definitions.) - - b) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (1) uses at run time a - copy of the library already present on the user's computer system, - rather than copying library functions into the executable, and (2) - will operate properly with a modified version of the library, if - the user installs one, as long as the modified version is - interface-compatible with the version that the work was made with. - - c) Accompany the work with a written offer, valid for at - least three years, to give the same user the materials - specified in Subsection 6a, above, for a charge no more - than the cost of performing this distribution. - - d) If distribution of the work is made by offering access to copy - from a designated place, offer equivalent access to copy the above - specified materials from the same place. - - e) Verify that the user has already received a copy of these - materials or that you have already sent this user a copy. - - For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it. However, as a special exception, -the materials to be distributed need not include anything that is -normally distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. - - It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. - - 7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - - a) Accompany the combined library with a copy of the same work - based on the Library, uncombined with any other library - facilities. This must be distributed under the terms of the - Sections above. - - b) Give prominent notice with the combined library of the fact - that part of it is a work based on the Library, and explaining - where to find the accompanying uncombined form of the same work. - - 8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License. Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library is void, and will automatically terminate your -rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. - - 9. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - - 10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties with -this License. - - 11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply, -and the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License may add -an explicit geographical distribution limitation excluding those countries, -so that distribution is permitted only in or among countries not thus -excluded. In such case, this License incorporates the limitation as if -written in the body of this License. - - 13. The Free Software Foundation may publish revised and/or new -versions of the Lesser General Public License from time to time. -Such new versions will be similar in spirit to the present version, -but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. - - 14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission. For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this. Our -decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing -and reuse of software generally. - - NO WARRANTY - - 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Libraries - - If you develop a new library, and you want it to be of the greatest -possible use to the public, we recommend making it free software that -everyone can redistribute and change. You can do so by permitting -redistribution under these terms (or, alternatively, under the terms of the -ordinary General Public License). - - To apply these terms, attach the following notices to the library. It is -safest to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least the -"copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -Also add information on how to contact you by electronic and paper mail. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the library, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - library `Frob' (a library for tweaking knobs) written by James Random Hacker. - - , 1 April 1990 - Ty Coon, President of Vice - -That's all there is to it! diff --git a/LICENSE b/LICENSE.lithos3 similarity index 100% rename from LICENSE rename to LICENSE.lithos3 diff --git a/fonts/SmallFont/ɢ.png b/fonts/SmallFont/ɢ.png deleted file mode 100644 index cc525f12f6dc0e4f7eb6fca86440667b795bbf52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 584 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10!al$!#P$FG|1)RK1oG0- z(pIfn_3quf^78V~(9pXK4F8Rd&zv~}ly-4(`G4jNP*ECC1Sp=CHWP@9jXOFz9)?x4 z0W~uwdAqwXbg;^L06FX>p1!W^54c4c7?d*}guMYuvw6BWhFF}g4Z1CMSb<}5&N_?d z@BaT^>nxI;uA8o(&D6>G{Fl-L7IS^3lkXc89ti4ve#oa5(y>f#O{w1rfjd`@-sBJ# zmz#dI=f0xOToa2Pk(g?xVi{epyLm@>`+HWLYj~u_%X9wwnG2lVEK#bLN)PAz`by5ni)EHRl$+F>U-9%=@ZTsCt2pi4 z&Ffx0ynSzX@2*$ve?%nqMTS)-Z2DJtcUz-ItlcNRdu1u64=zcDS-iPhD!tBWZJq6M z&Ifq~Qot}`P%UwdC`m~yNwrEYN(E93Mh1pvx`u|jMus5<23A01Y^rNu3S|7vY{@~< bkei>9nO2EgLyw8g1&|ePwX1sLi(zSDcNEa_1 zI&`X;nhs7=jWyGUMKd{}XiX{F1ue&~P=`F7{r@Kq5mCj)Wv46;QYvJ<<`o8eWo&Sh-}BQbHvqR>9|NsYVTVi;Jdxk8k1q z*eCkh)9pqwxr5Q+05X~18%nLy3S+q*zM+purBZz5;i|8J{-}=TO$DYA`L@A%53g9Y zT7}m3dZg27tgb||VhKh@Jhp|&iC}gCo4pE7mkoa3gdnkmZ>zDOs7Q{5x#d5K6&!=N zZ$9Ae?Z=F#?&@hqNr{Sq3k3!qzQ)rhLxSjn#j;f+F(5*TV7_6hG@_-g4h?5&q0^P| z(OKttW59aXFK~V?gyLc)>KYtW6sEDXxWY<5*VTmf&c^KA&dv`EJn&-ni@0rbU(SN+ ztC!D*={#TP?SNd)EO*R!1Z^FSn4A5In>YIDD3Lcp_%fM{_2IZcW_2zm2TrTI)WT6~z84*9*=ToTVI)R1AIsirn4@{OUAv00000NkvXXu0mjf%}s8B diff --git a/fonts/SmallFont/♥.png b/fonts/SmallFont/♥.png deleted file mode 100644 index 4caaf63ce18930f6475b85eb79f8134b683893e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1172 zcmd^7v8&`{5TElQd0uz~Nf9+giWFM}O_3rfy+3nN2y(4MX~MmHfg$w<3$+GgP`@ind>&TJu%H% z*GHOGD#}on3rXsWVlD_7&nFxgvuwyPU7GeO%A+WUqHF*YzyQGg7N4$gGso2omkrKq zY)hOCu*si|)59p}tozhr?mF+ikbo&1SP&trm;Ld_Hg6b~>FlO*0;k>$nNTn*_vo5e3}JO>~=%j3rxq=Ok2@SN!2@u@qXj3XU5}Fo}@zQ zu|0!|B_LemW`naCmL;Ys`abG93IYNg0G9BASRIBGfumDhy=kiA0)n37Ul!m@%gg0K$5U;jLL7vLIva`)UJsTcZur~NIFRlV}@?e_`GG<#*& z;H$4+Bf+=MPH)~je)#6%rxUnw{L;;DfBF6Xdyf|PfByWzli%$BUjE}@@9m3kKK(Kl fPmlgGKltc}S6~0)pMQx=0M2fmpML+&hoAiq+m>)8 diff --git a/fonts/SmallFont/、.png b/fonts/SmallFont/、.png deleted file mode 100644 index 60f3dc42cfd787c3a91e1da7f6c58835e5b35f59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1155 zcmd^7F{`9j6h50r;>()H6b4)(!NOt!76vRV3`o|uxG#q1vMxxlaD&AZ76uGRkcS~I z49gT2Qw)g#izzH5nZjZSQyAF7Vjx49Vh9#fY?3LanBo;%p4_*8BbRgT;huBPcP{t) zUOu@tF7AJH9{?_{9$!8s@%+xu&&YoJ=k;#@XYl09XOGB{XK8jonWl+|9LF&XL(?=x zQIf(7;(+C;0SlHY8nU2?94?n{>iTv*Kh9={Jl~JUeUfaWXdMKd@3*eIa-7Dp7KTx2 z+FVr&S)NH!E{YRD$ap^GxR_-lh6x6P5lwp(kFU4bceq{Qropbl zw!qaCo9s=UoaWJ?2=-HdH*q(ay-uw*F`LM!Lwz1-g|FtGGIr$DmSRf`jG?Csw#J(Z zr%9|VGNLdzolb|tVZYz^eZSpq*XwoHb#2=&m&>MU>bkC~sw~UdY&M-vCzDB*Woeqm zaU6zW5Cp#OyRPdvj%8VfVd%Q9s;Z(Wk|Yg>LqQN?48zlCwD-J?}exgb`8-|1zqNn)DI(P6j-ir*p6ygvSx^iHbjh$y|Y{CuL^0A@P*5a zbt)2paE*PBs}&XnCJA~TY8vu90-OL|1MC3S04+cRPyrMG6Mz&T0vG|f0E9Ba*WrL& zhjop4j!}fRjfz54L|}*!7=l3nNOuMh0N8hPk3H^I*cI3$ICn8uG39O}_81QKqruLj z*ADf{f~5fq{p~w(hu9$IhykL3C?GpFaEttl!VN(RcLsy1xAN I;qxE<1NaGJeEL4yaAD4@X<4W{*=!4wZ3GI%i56b~Lu@sLsv9z47ubRPiDuO3}Kq37AHpWUVV&0p7l0NjPgUq5|FuadwD9OF0+B8sBO^E}J4 z48y3pBrBXCF`NLdq1c*iDk9EiZzq$R@%T6z9ja>I@9*+_lcp;|mQl0_g1PT^t~<5u z)-=b4QES>rRVzgq$Z{!3g(zl%kn%j?xR_-_h6xzPV;C2}2Cx9|xW_je+%0i4$90Fx z78fGC;4fd9%`~5M%zKKF1=OZE^?nr1W_4Tr(^9R$vxwHEa6QQPEae(@*Mx4D)D^1|{+H$jw40@vYc1Lr3>5 z%`?@ejH=8liIat9>}i3mxQ1+LVqQc^>c_+lBHQx~+to~4(aj!WdffTjx%IkMr@2%I zeBWYH1t{0J+u?kUb&YwBVTh)Ql7s*!fHweJfEB<3paW(~NZu=g0xSiv QkfR%xTc#{gpgxkm5 zHe^>m^V)@(4O8pgoVZ2o5GzE2Xd}vq(3;TbFjS#0Q*rhzRn%o(6jvrsNK43{|D1mXa0i}0x%O!4f4zP){#EEx-TUs*Hk9)!vE40Tl|TLID*fC_w=gDnt-D?MAoJu{ur%N>HIADqN^gKmirP zh(rMs98lrHNfc1wfC`ZqqQV3hCLBQlLriet!i9?qapA(n7FWK^-rvY$-VE;z-}i?3 zzHgq~7#H^++y{V*>qnPQ$$5U4=ci=9{rl!OfKzz#_}LXHd6s57lxdoX$Z;IQFf>h5 z6eTIVAa+=u>abv`q9F^K$l+}Es;+M*lf!tt&-2}2uuYP66fJ|G_5FqG&K;+*tf^sC znl@3@LYBvpl#Aj}5Hg-mIWA_|h+%?Gr$^HsMY$AZQan)d3 z;iAC#2%GFxog638z6f?Be=~GfnY~P{MPfFQQHS~@&HmS5;M(<#;?EjYh-aFw3$u zP2)HY!!QT}-}hbDbsWdCEW0B=;%FL^GwCj zWm}WV%+F&x3(VNldbaEuqNNJD%q6KGMourVT;H%A)v#pE5EZS97#+6GX0E>|q-nwz zE;G=nNCcuaZnrp}V^Ls|py#2cA#N1vUvzT+CHWx!Z_6gq>Zl zv+?MqL%pzIX24W`{Z8BjAc2tgGDfBkduF~A9Y@$|+fSO4qyS^ZZeUv=;EN1qavY343Z z;D;aIBF*=%FF$;C{=NVF>o?9m>i7Ha>t1^L-5>DNm+$ubXK$W-Cd1Y5zrKC;$p@#8 ZRk)JwQPV%aeTM+y`s(KLmxs^4`VVPTXW#$; diff --git a/fonts/SmallFont/え.png b/fonts/SmallFont/え.png deleted file mode 100644 index e8c595544d777977bb3d815aa872bb48ae43ef2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 232 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UOiAAEE)4(M`_JqL@;D1TB8wRq zxP?KOkzv*x37{Z*iKnkC`vY!KW-)%3XNHYHp-N8|#}JR>Z>JpOJD|YfT-*Ks|LHeb zJzkC7k;g7x@LIWb>-lLbdo2o9vFPzG;xS@T_MCNK>8nt4j;Q1R4iqgDzTjWhS@voP z+xHlOZ=XV#TY1#Y95v4s&*-mw@$ttT)in=Z2$jt{zr|Vp(T8ojWqzK$S@r2t`={%? aUzxlY%gA5wc)11W2nJ7AKbLh*2~7Y309f1r diff --git a/fonts/SmallFont/が.png b/fonts/SmallFont/が.png deleted file mode 100644 index a90a517a82db91004a23cf46c1480793cb7cc829..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 248 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UOiAAEE)4(M`_JqL@;D1TB8wRq zxP?KOkzv*x37{Z*iKnkC`vY!KW(B>*$s1Myg*rW5978;gzYTHZJD|WJ{OJGwJ9m4! zj+Ld{boFQ1D#A6Ts9$$)M)`|-iC+(&WXLcxX)t`$lrMVOWbVO*S*BC;TG^x2z1+Bt zXcm-+xmDPI*vzT)h3P(fa*BqLo1Ffy17)nGfdywgE6V2B-mckiV8PTdlQC8P$e*{D pMarTXWf;tudDgP2RlL{a{}>}>x%B4xoj^x1c)I$ztaD0e0st>zR4M=f diff --git a/fonts/SmallFont/き.png b/fonts/SmallFont/き.png deleted file mode 100644 index 66e3d1b83cc5d62b865be190ae2a894bfc654b75..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 242 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UOiAAEE)4(M`_JqL@;D1TB8wRq zxP?KOkzv*x37{Z*iKnkC`vY!KW?93u;;#>ZLd~8ojv*e$?}iu(9dY1@Dtq@oUM*Iw zHO(<-?%J+JFQV#mVnPmmV^m=g;A#K0<97qMgRao$E4MtmQ(o2?J!4tG{5z$$bw^!N z(rv>hSJcEji{2Yd*bP0l+XkK{1H`> diff --git a/fonts/SmallFont/じ.png b/fonts/SmallFont/じ.png deleted file mode 100644 index b5a7772657795a8a7b5d8c0b6773a9470741088a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UOiAAEE)4(M`_JqL@;D1TB8wRq zxP?KOkzv*x37{Z*iKnkC`vY!KW;q^FvscDIp$bnI#}JR>Z$ljU8WeaI_x}H1WGi)c zjr3=S9&5&hOM9jn+J&!Ty3stJ(?ogZUGIwwQx_&|e_b<$fBnOG3RwQS(82EKA%7J68y*UJR2u3H~& ZoqJ7O_vxEMnLsx%c)I$ztaD0e0syRPQR)By diff --git a/fonts/SmallFont/ず.png b/fonts/SmallFont/ず.png deleted file mode 100644 index d835382e0602726dc2ae90ec35a38887514c251f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 245 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UOiAAEE)4(M`_JqL@;D1TB8wRq zxP?KOkzv*x37{Z*iKnkC`vY!KW_jaX-rxLzLT#Qdjv*e$pH4l<)nLHmJbTms|4%DE zB&nC>hC6OhZ`JXYb9RlBk4UOiAAEE)4(M`_JqL@;D1TB8wRq zxP?KOkzv*x37{Z*iKnkC`vY!KW+lFk)1Mvyg&I9w978;gzYX!^I$*$YhUNeNr!N-@ zWULNUZWOaxF7UlD^X>872addV*spQPv_8W_ar;VUt^ABGj%!^04$jAR{)}WY7Odr) z@cQpuW{nUfGxqKquNnmXRP3uK@<_b*obPtzl#ELH!aJ-jtIeu{_ObsmJ7jRIty*Da hYjMk(b>G|z8CK{>>3cKZ`VDjpgQu&X%Q~loCIDgxR7U^+ diff --git a/fonts/SmallFont/ぞ.png b/fonts/SmallFont/ぞ.png deleted file mode 100644 index ddf79392d68502ae2b348c7f74293cc03be698a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 253 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UOiAAEE)4(M`_JqL@;D1TB8wRq zxP?KOkzv*x37{Z*iKnkC`vY!KW)%bZ4<2WMLVcbtjv*e$--hfKYEa-&w*B{i`r{={ z;R;)t`N|$G@SMMJ%68uF@?CX%@(ma(ANsv;O_VOUzA8dwck$z7Cjq`qi`))W=BXWT zi`Q6kW37BOPg3W3&K=DwcIv+1oN1W(k=6`r7t5k4UOiAAEE)4(M`_JqL@;D1TB8wRq zxP?KOkzv*x37{Z*iKnkC`vY!KW-05F&$}#uLM@&yjv*e$?@sX+I-tPe?5X~Jf6=bD zSAKE6SoUVlL3YKABMUENJqq1@kJ*KHftErU!v?McE(b)8%=xsfX_M29C8uXP%+|_p zVb9fJe84cHV&aQ(h5svy4;=Rj_tCp2DZb^f+YSakb>8L7PmdHRFwAE=v^{XWaMtQO mFB87?9w=t)f7P-7IPcsrF|YH1vpxac!{F)a=d#Wzp$Py-?pdP% diff --git a/fonts/SmallFont/て.png b/fonts/SmallFont/て.png deleted file mode 100644 index 73e2b6678c0c3506bd4eb8df731050e2335f6c94..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 220 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UOiAAEE)4(M`_JqL@;D1TB8wRq zxP?KOkzv*x37{Z*iKnkC`vY!KW-0b(9p6Ceay?xfLp+YZ4RI7=P~_lB|NlR=%3(8C z;n~%Uo=>9IUnsMjf1E>7AoWoHFBjES%3tCRm=?C2XPI+OvH3eoh>KQF)a7MqMJE-v zarC%^8U2@U{Hm;VIeea>LP8z$GvyCvD?-k;EbaSUyC8pkcwO#2Wnty4XBSojEoSg^ L^>bP0l+XkKV&+T+ diff --git a/fonts/SmallFont/ど.png b/fonts/SmallFont/ど.png deleted file mode 100644 index 0118cd56a8698056b1266974b0c963940eb8b749..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 245 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UOiAAEE)4(M`_JqL@;D1TB8wRq zxP?KOkzv*x37{Z*iKnkC`vY!KW=Z`Y0=#WNp*Bw!#}JR>Z$ljU4k&OeZu?(9Q?|^= zNJC<}>@iMJua%4w@AJ**w7s_`--zSDRc?kew#lEkcrKMJW3`y~+h#jM*k?!Y8w@+_ z&+cMKG4{|%_GfnTV)?pq{)M`?rWanl+{d*S@N)`m0%hnyBS#GWHk;<|Jwp|5re0zpUXO@geCx%e^Ji> diff --git a/fonts/SmallFont/な.png b/fonts/SmallFont/な.png deleted file mode 100644 index 7197f1618ae5f9256eae51f57bd7564b072f441e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 250 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UOiAAEE)4(M`_JqL@;D1TB8wRq zxP?KOkzv*x37{Z*iKnkC`vY!KW*Ni!j3WzxLfxJ&jv*e$uLe8v9Z=xdeB^)q&fRBI zIJ7G^x%(~@u{!qkz_Z?m=h?(Aq@H==AJlYzU%{;pp$CeEHD~R)*zoAi8E%8fb$gB} zt*K|+$n=HJ^Ywe5Et~(XW~lyR!yRI?_N?C-yrg}jx#q@>+SRFzroy#b tUP@lO=ak5jwlwWO+f?fZkr(t1GC%N>HG1`>Y%$PT44$rjF6*2UngDImVYL7N diff --git a/fonts/SmallFont/に.png b/fonts/SmallFont/に.png deleted file mode 100644 index e72cd71d250a6ed6859ab626ae89bacc0f3dea70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UOiAAEE)4(M`_JqL@;D1TB8wRq zxP?KOkzv*x37{Z*iKnkC`vY!KW(i)C>{?}@P>ZLFV~EG`w^I)CH7M{nM?d=izsOdi zm+LT}-mw#%f)%finLUWNDcg0^vq5TFYqV7QsTE0|7xhfo&0w?W2Djoj4Sn_x%nYY; zWdAhyGc0o2G<$c+Jati?zG+5}wz6$-DtIQ&;jnH|_LHwZNy`qKADQRWy8Q*O$h?vh l;R3Z;GvfNf9#miBaxaxJUpDdKKA?LTJYD@<);T3K0RWk;RuljL diff --git a/fonts/SmallFont/ぬ.png b/fonts/SmallFont/ぬ.png deleted file mode 100644 index 9aa66fde395f48f7011ab47c1a2490f6727c7158..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 266 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UOiAAEE)4(M`_JqL@;D1TB8wRq zxP?KOkzv*x37{Z*iKnkC`vY!KW_cbS-P=V#q1m1;jv*e$-%c?UYc}9<{#m*A|J193 z+xzOQiah=?Oy@3>VVUAFJ@+$glkT6C*pgCn%l%Z8)4lzy4XjJm8uzD9 z<+%CpwCS{8hT?1PZ%vHcXc6$tug5IWarUgK{v45dpBSbrc_5Lp@9`^>b7z;lv&dHG z=P>9B5ZUzL&pPdi%kq{yeW$$dd>W&4Qreo#Z{chc*iL+Y#m)UgN7MRm94pY744$rj JF6*2UngEoUViW)X diff --git a/fonts/SmallFont/の.png b/fonts/SmallFont/の.png deleted file mode 100644 index 9fc64bf303f1e44d201cac51c94b72291e958260..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 248 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UOiAAEE)4(M`_JqL@;D1TB8wRq zxP?KOkzv*x37{Z*iKnkC`vY!KW^wjlwT@3fp-xX1#}JR>Z$nP=9Z=xdobvzw>AQ)Y z?V6%9BFiM)i|*-#2lpE6V&5)N!XD1m(l2*l)@RKY z)oWUwDPFc;tQ_Jxr`5=Nv9Gw(bX09E;}&to0NI4k9A`W|$`9-@u#ow5;@pvHm3z;k oX7SXRcjPmQ`icCPcCgD-_q`>n&TMXQ8t5nnPgg&ebxsLQ0An;#jsO4v diff --git a/fonts/SmallFont/は.png b/fonts/SmallFont/は.png deleted file mode 100644 index ce1e2cbfccb7da72f0db10885203da64fe6562ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 254 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UOiAAEE)4(M`_JqL@;D1TB8wRq zxP?KOkzv*x37{Z*iKnkC`vY!KW=ZB#ClXVELj9gDjv*e$--br>9Z=v{eB^ih&fif^ zA^~Ze+>Pu6y;n9Uy*KCDoIK;ez2v_g3??iwCT~AY=T!{Uo1&|9mRIjX=DK&A%MEQd zEGVg3wLA9{^Bs-`cF7I*PA$#6u=n*pi_J>Ovzsn2afo4>W>gfj(Q4&g>C|5g94qGU xOSpUR?6D0q5`V6i?r@1n3Ho^J{)a+qhK^|p#>^}tj6kO`c)I$ztaD0e0suz*T%G^` diff --git a/fonts/SmallFont/ひ.png b/fonts/SmallFont/ひ.png deleted file mode 100644 index 51615c787c7d42a82a78e354ce3b9efc7215bbd3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 254 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UOiAAEE)4(M`_JqL@;D1TB8wRq zxP?KOkzv*x37{Z*iKnkC`vY!KW)r{0+*wrWb%xqfj$^%=<-CqDmUwws_?QLV3;!nC*KsIctOtems$i!Vey@age& zs5s!&u+Uw<;5(mPnOeH>)d|H7s^4B{Jz$=bl;-ktYRwlp1JeYfiTN#J5^qh7j@_7K wq0WEGMQC~O_s0k8R@bID%s#bnf_)Qr@+)P1*I7%>1D(d;>FVdQ&MBb@09mG7LI3~& diff --git a/fonts/SmallFont/へ.png b/fonts/SmallFont/へ.png deleted file mode 100644 index ca8eef15e8306d043d34c338c90bef849687a4af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 201 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UOiAAEE)4(M`_JqL@;D1TB8wRq zxP?KOkzv*x37{Z*iKnkC`vY!KW(7`_nXCtaLQ$SBjv*e$-%d8DU|*9O^8y tJ+-JHu;M2B^!49P6@Hq%n1i8!c}WDnz&>s57eHGWJYD@<);T3K0RXHCL2Cd2 diff --git a/fonts/SmallFont/ほ.png b/fonts/SmallFont/ほ.png deleted file mode 100644 index 0fadbfc934e67c2b6003912f00c7c3d6ad034e8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 260 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UOiAAEE)4(M`_JqL@;D1TB8wRq zxP?KOkzv*x37{Z*iKnkC`vY!KW?8Yrl@47%p{brOjv*e$?}i){Yf#`ww)_8o`t_yh zKULVTEqpY^Rd`$D&F9Q_JAX@e?dj&vNk68qJK5w()PiWO=e#naCtO%J$haExO0dh! z%U?0!$wIb0iEY8L7Z|2Jd=w~J$HTxYur=TU`(E}V3qn6`-kzr>W3a_IhG9oG%i*#` zL5)G&-z-%PTLV;_xHLUmj8ApzC2ukHP(BzZCtWKf?V6}F-2&)922WQ%mvv4FO#n*k BR{{V4 diff --git a/fonts/SmallFont/む.png b/fonts/SmallFont/む.png deleted file mode 100644 index 7a9353131f7ae849a473a221ca54a6f55b68c3c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 234 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UOiAAEE)4(M`_JqL@;D1TB8wRq zxP?KOkzv*x37{Z*iKnkC`vY!KW)-1R6F4=2Le-uwjv*e$?}j+?9Z=v{{OAAqyUZ>+ zMw@;5k}|kiH+wg`eO+C?(I)Yt216_lOURch23y~W@>72CY(BX9z2Nk4UOiAAEE)4(M`_JqL@;D1TB8wRq zxP?KOkzv*x37{Z*iKnkC`vY!KW@T13CMivzP`#&%V~EG`w;_&v2MjnSE&Ko9Xt%C! z+NzN0Zw&lxeb_tRwag<|9vvdVKy@u^-p^Xlk4UOiAAEE)4(M`_JqL@;D1TB8wRq zxP?KOkzv*x37{Z*iKnkC`vY!KW@$qM&7gFkP_d_rV~EG`x04;Y4j6E-%$@MR{^mTc zr3o?0d#Ak76>z^2yIKC!S?&Ao44F(^9Mg`zVZ8TuCG#S|3*`>!>}%(W#0vBmFtGZ5 zY$K5rN To<2|qTF>C=>gTe~DWM4fhYd|& diff --git a/fonts/SmallFont/り.png b/fonts/SmallFont/り.png deleted file mode 100644 index 1a93393a251cd9e6dc3357d6cf88b4b6e229a4b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 245 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UOiAAEE)4(M`_JqL@;D1TB8wRq zxP?KOkzv*x37{Z*iKnkC`vY!KW+hdXa_$8{p*Bw!#}JR>Z$nP=H5hO#KJx$n)2fSy z@2t+LFf3}ma7ol?vwc9y8m;oJq3ch*3E0*i`;fU*=fSrVyI4Zf`$annHYYP3&*7H4 zG113CHcm*vYVXx!?;2a*G5pfpec><%<09!s8~NA%H@+pTxKeB{(p{@o%zEY{gQS|? m#^A!2uB=z|N}~_5KVqqWA!6X1aKjMjA_h-aKbLh*2~7aClvnKl diff --git a/fonts/SmallFont/る.png b/fonts/SmallFont/る.png deleted file mode 100644 index bc7a5303fdafa308e8f8a7f89c997ca0b4134006..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UOiAAEE)4(M`_JqL@;D1TB8wRq zxP?KOkzv*x37{Z*iKnkC`vY!KW;w-xm)qQcLM@&yjv*e$-%dHmcR+!|IePQ||EXoM zAuO+KbR^vmF*`9n@J`!s@g&POm31tewy-T-ZJvIC>&KOdLo3w`?59;%)bZc3c=s@n zshcw_^|j=(f-*Zd&NG^ci}Uw(zTx_Cz&1uxR7LWy;k1wk%(L}EO^(d$IAp)zeqr#u lj(w-D^uN5Z_%H7P-rOoV#cOv0l!5MH@O1TaS?83{1OU?VR@DFi diff --git a/fonts/SmallFont/れ.png b/fonts/SmallFont/れ.png deleted file mode 100644 index cbad6c28fccaf108f16e0f96787bd1c801c073c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 256 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UOiAAEE)4(M`_JqL@;D1TB8wRq zxP?KOkzv*x37{Z*iKnkC`vY!KW*JfEY=uIg&_quc#}JR>cS9Wc4k&PJZu?)q)B4SV zJihLflSX}9OLbd<_DNm|&R$o;C%_ebs)3)ukts=N#$*Gbbe@J_gA9h+^jA;MGRIs> zRsW-@u-)T?j?l6_3)HrKe;RaiaoxKa9?$1XG2eIk5u8xMq|EUBo#Wn#Q>y3d>iX@{ xPIu%Lk4;OuS-sZyz#r8^4D087H95flh#@0K*4bQ3F9qm022WQ%mvv4FO#q3}R`~z` diff --git a/fonts/SmallFont/を.png b/fonts/SmallFont/を.png deleted file mode 100644 index 1d4d271037857d8ec34611256d3c5cb253d221d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UOiAAEE)4(M`_JqL@;D1TB8wRq zxP?KOkzv*x37{Z*iKnkC`vY!KW<`;>mWW88P>ZLFV~EG`w;`wb4k&OeKKB3r(|6l) z0w)~Gl~fnyI)9u+G_FZn(m)g(v@wtHIjhUBD zO9wGetQ7ifz<)7fu1m`DLY7>u_lFj~o5-xE9wI)2-z=e4Ixsq2^Y6u{dm~TqR`I@2 lRxnZ$Ik)hf|NbdYn9iJ5mR#?+M;hoJ22WQ%mvv4FO#mvyRipp_ diff --git a/fonts/SmallFont/ァ.png b/fonts/SmallFont/ァ.png deleted file mode 100644 index 5216df79c23946d170a7683a778bb37dbc4e3417..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1167 zcmd^7F{|WM6h6xqd2aR*BuK;*DN>9QmMo-55iw}ql6^*A9-9Y20!D~1MT9IwOpzk6 zDaK{MAOkySge*HkictqlG0GH!Y%#^4gG@0+kSSIiWY8&Iv3AG%_HTH&=U&daeBZg; z?|XQDW**;o?FIlGpWZ#WN6w?GJi1Qy%iqp^0=N$6?_Jy>rNGe~Ls^!Eh&<1;EKAcg zMNzUUh!VpI6vKh7Nv0y|5|7jA^YQp{G};e`yQ0|kdTpAn<9Hc{iy)YL-pq9y+n$(a zt?MIAD-~rZ%Y`KMMKKqIjOP=Mi&-{gm@ZBG6y;HrLs2$>319%=ev8l6*e-BA!&QTe z8s{a>2H51!$LV1d@5*pH2sV9hl{?GKo~Kq5o8!nBg?brig|GHpC3ED&mO``R8=|8N zmdfigr%0?MGKa%qx7%&E+qP}j>-BQETr3vz`FuK^Hcc}gkL$Xws%khK4hDmMzn|xM zmSstjL{SumVGsnK=ee$H+qP+%hGA%$rmCte%biX~6vYIi=+NzMeShV8bK9AiR;3#Q zRnKKLmgGR}IJ{tRoWigoO>@+|E~Zs)GR*2Csd`bFg@ZKc$6g+~X<#S56}d*&(S1vG z4aL#rDi4ap$wMpg^{%6MretfPq3~%IM6ufqZ7(n#S2JxzHzif?AjbRF-OP-qr94T6 z(qnrD6-z+0#lLO7{};1sH((8goZ3aLpTTlLFWJ=fO9o>-{NM5ixQg@M;;a$X8dK$?IUK} zWi~#&bg8E{Oih>=FW!k8#0IfI3=vI45fN$~DisDY^h9FLjv@1^$jUrTM!c|+1|S27 z02}~m0#*j@EKCU$SFoy}j3BJT@Yg?%-vzh^pWHih$kqQkzSI7c$XC5||L*%lWtzRp zYw*?Auaf2)rzdY;9DRA~;m_P1GomaKfHTJN`a#}hO#UR5qX|xS(c`0 zilSsy5G95aD24-DlT1a_B_5~K=i~9^XtW;=cSW)7^)_j`isMBXwm~rWyqW7ZwmmV; zTGvOKRw~L+mJ3Phi()Pa8P6vi7qe{0FkPDVDaxZLhoWo%6Tkq#{T83CaMR*yhRX)q z8s{a>2H51!$LV1d@5*pH2-baXnLCTjo~Kq5o8!nBg?brig|GHpC3ED&mO``R8=|8N zmdfigr%0?MGKa%qx7%&E+s$UPTCEm~MccOX`FuK^Hcc}gkL$Xws%khK4hDmMzn|xM zmSstjL{SumVGsnK=ee$H+qP+%hGA%$rmCte%biX~6vYIi=+NzMeShhCbK9AiR;3#Q zRnKKLmgGR}IJ{tRoWigoO>@+|E~Zs)GR*2Csd`bFg@ZKc$6g+~X<#S56}d*&(S1vG z4aL#rDi4ap$wMpg^{%6MretfPq3~%IM6ufqZ7(n#S2JxzHzif?AjbQRyPg?OOL>wC zrN{ORDwcp~jhhY5W>}V(rs(^q>nI2aZ~%A)um)HF%mEsJ8lVK|17rX(Ko`IRAd(Ti zb~|ia9FMUmFpkl2P*sVG2n|_;hHwx9g3bX#0OxA%euL{7wk0+xjyxPU9{PNDlH90AgXJ@Bmf8(EbZULOa-OujbCZ)j9979=_g@`=Qvn)%~ zG(}OeDu@!p2^7PDtx2XL>JpE$+4H7(I++~C<9$)=27_&yuH$$ahKnHRJa6v0t!+-BoMTrL)iuIpyAS=+Wv)6{icRn>Sr9*suB;V{qh zEX$H4iJ~YB!ypJe&vRYZwr$fi4a3khO;uG{mV3RPD2fS2(Xrp(`TolFI@_6=R;3#w zRnKKLmgGR}IlN$SoWigoO>`b=)R@8 zhT`aQl?O%Q0r94fA z(qjh(6-z+0#_bm8b1X|tQ}lh*brb{yI08HY*Z?d6I)E0S1}FiB02x3G&$!Y#J;IjAL{hR8`_4LPHjzAsmE&pmTr_z zpV|2I(xo2TFf(Clym}{Y5L?6oF+?;GMMS7|s8krqFc673dxp%bA}jMW8S%GJ>!U!$1E${}kW^zP-M3$kl5dziR(U++mlq%3J9`w|{{h~7|L@I)`s>9D{-awDzx)cW-~R6O0rSfTf4q0{?Dw;0 UU(CNg5CB}>zPkABll$NQ4_+r|vj6}9 diff --git a/fonts/SmallFont/イ.png b/fonts/SmallFont/イ.png deleted file mode 100644 index 88c687b0c49fa0b66417c627d73b13ca2af117f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1167 zcmd^7F^l6?5T4D3(`LnDhzc!Hp+W=`ROmnf6)KdA_M+QUSRJPW5me}c2!^OoKmiqE zQHTm(FhPY2lPE-m3l%1Df(jE%P;rF1+l~OREGsi6%AR?L=I=Omy^lOc)TBtc6q+-_cuwhilRjjw7%cC?%Z)|%bFTS zrD-3l;dKSjTk2Abb2)HQItzjHbq$g27nHL`z^j$;ikpa9G5k= z6*dLVhgfGXC&^(P?TTPK^w$G-nc0ifY7(=Kj7g}E1Fi7Y+*A6FoZ3=siGk7ebivkm zQ{gm;l|@DrI)}qyx7%&E+s$UPTCEm~MccMb)68bGx~?aaNmW&4S&l}d;cz$@46-as z(=?9bFbsnr@O|HPUB_`O%Q6f@*L77@6-ALGsoU)ef)HaE9(uj4=Pez#vFxc~mYP0P zv`kVWQSybZ&G9)Envh?XkoGMA)&7&*Pba(%;gRKt=rLsYabVzl2l>$(2CkfsS= zxJ+NCA`uAJxY^)*jzxh|(BB%H2flKJ09J zowY|V9O}6RGXtjjt2uFvSR>|$0iuB@AVQ@T1vi&s)o0VDtc zfCV5yz*5JZi3usiB`ixQLI|oL`17B$hX6M=xq+aXullrenR`u2w4?ZC*)6A_O z!S_F$li+)o7x$i=eCI!X^Ns84>yPf-{r%_<`0uOtpZ)sj@v}Pvc=!C?=fB+j;Nkhv Zw|}30_V)NkvUh;X`&Sn~fB5w4{{i8UXTksg diff --git a/fonts/SmallFont/ゥ.png b/fonts/SmallFont/ゥ.png deleted file mode 100644 index c81d86521e7f9eeda4e13a4e9c64648524ae5b8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1166 zcmd^7F{|5F6h1F0)$0=vl`2I|G-y!41q~Wh&>)JE>Ltpn%F`nXh@yfX)!;#c3Myz2 z4?$Eg!Gi`5rd2_M2Ms1Qtp*PsG^F6cP!~KHYN&^l8tTDAhS2HsCVwM`d+z0&%lDnj z{l2G{7v|~7of7~!J%4!ih@2G3JpFB>8tVhWgA72pP{O92c`}$S_@+_9@DvD2JkK029Cf!2K3qtZ*~O)eM&n z&TDK-oDHzaUyaklDBhLfb`Y%l-ZFOZhe30dadnDOsmq3 zfvV@S8cT8@b{t+XI8I?$k)}DSt&3^Zn+&tMNUB~`X5kN*Mn0vrHd0IUHP04+cRPy>_zeSi!g2IvBK07NpP z*KUXNIgZCz6d1?oIH;<`MTCYdLPIzR0YT>gA%OFG?tX*o8O}>=QXF|$XqfRYV{RWY z+b*;A>4i%@w_$3+#CY>gTq8D!1!9P3B8rGm>rkmMkfA3Mb9M}wS4CFlX)@xCl{5eu zKm_0bNE5I!aA#pkptyu(1!V+b9frUEefkB!5q$UP!Xa00bv)Dlk;qrQ_wB>4h{`nk zI*;JTpFSeZPtMQoJwE;+xcVO6eQ~h<(|X&&f$I^ z_sfTu=Gomh?gGHs#e?%Ja-QD$=^e7){BijUz#Vw_!K3@+DsVK%P?lvOBG2C?1NQ65D(6lDXL00saac6hzUZHMbQu3GGB zT$DH;VVgg1(&HrFm*H*{Y=+({cb1vGNUb(Do5+}idKqYiuMS)#bL7O9LbK-^qN59z z%Ih+xNUS6>$K!Fo-|u$2?RL9fub0bZ*L910mio!4qg23}U*L7{%Hcito3{BHiRh4DA*XxO*m|zqg`~98ouUv0oJ5$rDbYrCI zxva*L9Ed%K7YvS57*?cdj#|{ktQt(mSzRR6AS$zPlm^4t%R@H}?8LVs*XTRCZ>g@K zIJ#WrL6JClXeGYhcNEW*Y)v#2KFxwCcKf021*YR_rmg6vr0PAy_^@?1bK_|#Pg9}v z*nvUC5)iI&yT$n&%M#NReIIol1pxt$0M`H;fF-~JparM_N`N6i1`q@E0XzUg8R2Wc z$F9Ss!J@!8M#n)_B`P8?#0U(*AONH~2M7V2+rEb_ZsypP*rqt~u+T8$Z({BcF}psq z@#&>YJ+)zG!qj*%CvFg1!~!uyG!aEasCB4R7|AdYi8y#9}|{o_SR3} zn{Qty!M85X-+grY^_#=rUW0dDJ^AANiu?2J>&f!ok7xgQUw!u7uRneC^3NaM``3D$ YiO*gM9zS_@`?bKu{mb(o-uvXqf4^pIWdHyG diff --git a/fonts/SmallFont/ェ.png b/fonts/SmallFont/ェ.png deleted file mode 100644 index b3ce710928818014feaed00734ebac545c8bb36d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1155 zcmd^7F{|5F6h7gFr`L#A4Js&9q#87M(4aw34I0!&FX+9fJca0iC>j*d;6Z~5DrgWy zrGl8^L4#XNqkskv8bseHHgYA9Hqf9_VUn813U4p$Tj+o?pvyB zD2^^yc~B%y9$Ja7_Z`JEC0i2>g-^2}irs!_dx7b=nrSP#DXDr7F+ObF&D?lZ%F|RR zJ$7JFu>^!`+-`9`$FjsUMc+qVM?pYoOg2%TincXQDU3o#KS_vjDHhzhlttr znT<~`UFww$GZUu9`*-37u|+HpLqro%M1)$0N`;XO1CfZcXUM!NvNBJT5$~m>0muL% z00%&lfR%xJ3scgHD_B)fMiACv_{$&X4*_n$*N?9qQu<%7m)f5a`Kk}Ty8M!`OtbI& z7Ce7(mn839U3`9X_G9qm_Q~nZL*e!}zdbwWKl}dQ(~my6{1ATl_3YDse*gPtauKc` MTwnZj|H-%i0e_=oRsaA1 diff --git a/fonts/SmallFont/エ.png b/fonts/SmallFont/エ.png deleted file mode 100644 index dda58283a9ed0aab6d15985c3d72dff353bc3a9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1162 zcmd^7F{|5F6h7&L=q2LS6b%a1pg{!>8Uz(ogP@|-3(Bj?Q-}ge(4c?{9z;<=1r4Ir zqY9YfK@<|2(!Gni4WIVkuf1{Uk?%|$u&v!2O z`@Vg6X`J1C_bvdOT|78{MB?d1^4 zilQWi7sMXRQ#}?eRWxKl6FFQgUe9LN)9GO{+2{FgIP8*S6Gf{aXnntN-KFEymNhqw zO4FvQTFCN5l5$ZT2|~v6DaXYu8!=4K>kVkyqbQf6Y>Kh~3;-Pf4?BFh!LG&464y1h z6*dJf$5>~tXUTCI?TcVH_O~No|^OS%zWgx~{6Kq9~Fi_4|E65Mm6&<6yA!ytU&tmOVGjQq#wZ zmPtw^O1{vyIbLU3xyJ}J%~DO3FUsM3l2&F%nj1HZ%UFt6iX`b+f z%M5iY5`l1yU5Cph76m2=dLC*T@;m|@0bT-Z0agGFKn+j<6aXWD6d(c^0Js2zGQ!t> zk8O*y8Rj`g5!yB?3Q-Y(Ax2;b1_2=589)GF-^@L9xLsmfV4dL9#azXdyN=jH*xL#t{G-RG-}}#=zjgboQ+WS_tE&&6e0K8W`FHR9arN`xS3lkUg@%6?Z@+4v Te*QJN4;S|@&wu;)**E_I_;F}w diff --git a/fonts/SmallFont/ォ.png b/fonts/SmallFont/ォ.png deleted file mode 100644 index f88ca2b0f6bd570d71dc3d04d8cbba7346cce871..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1170 zcmd^7F{|WM6h6xqd2V=)5FuiU6cGlE5+Oy36k*MKWS`NO$7UgDiU=vDNRgE+qzDq$ z2*WZ(z$pedD=DT(G3XR2Mj0^Rs#6R)$OxmP7-Scxm|}`oEC_PEZ~w*~?zxw9F5h=9 z_xm1PoEyhCUcUhV$7i=rZj1!~ znxZI4;RUh7@>GWfOBD@S&_oVrvuBgZ<#@awjdppy?f2UxSx3<_2o}EIxbEC>YRj4$ zMx|+ERV`$BBuTj_4g?|N`IO^gmW>!D=yZBC?NO9VQ8q*<26 z@utFQ5-W?0D0B{o!)~|RZntgQuGj13a=BP6nx>h}W_4XpCX=eF%Ca1dM#JH7Fc@T6 zmZoVO$6*)-LE!to>$;BPSe9iNhOXiNm94l6$By1Fg)~nThCiLZe!U~!z?v@ zsA!p_M55#iU7O=|mX$k!E*4VZ^|&l zd!3C(FCFT!1v3Mt`tx_<2C+uW5d%a6Q9y)BgHnN^1bu;+v#U#-A}|t1lM&CYqyk6) z0ssp@nt-K_I};NE#TBedC_)ITAo%U+@%sSR;NIRNA_*xW!Wr-B|?Mm?K zeGl(m8mA|(p8&w=#qG0uh5 z6eTIVAa+=u>abv`q9F^K$l+}EY%;kTkN2a|F3;P3ze$o!6s>|_>H7=UojXo#SyRKP zG;OS^g)EOGDHp|oAY?qBa$L-^5yJ$XPLHNNigGE+rYH-*0MG$&-{O-EHcQ;hab4rG z!bO4eA=cTmNpcuRyCP_Z{&wK5GkcXzjp48tG@eBXCn*Kr)nvJAt}bzN0eMNuS4>UO(=AjBAkhhDGsytU&lEPHC0rKS%R zEt8Z;lzgFUbG**7a)%LUnxz(1J}djvQCj73*$;~}7$*K8a55NT=k`cXj zJ6tYtGQm8@C_>vtMIkOCG-MGP!a)cKIs*s*?CZJv2Dfuu7FZ`Zb}?5m<*p)jA9mVa zXY0``hk9(m%z&x>{GGT(tPyj>0MS4c5TVkbRA4AUUm)h}>Jq02jKtAo#B(dD01|)z zzygpaV5#HI#DqX`4eJt$5P~WQe*gRQ4!{lg;BhXK&v>{`&mOUvI*#mw)@~;ZMH^-<~}E@6WFu9R2&sOW8^L#*ZHfZ+*J{ a;%G?>-_4W@YTkb)_On&MJZMDdVP4<0Jt7MLx*ivYAd_#0} z!BTl$<`jvQMCNcf>~_2DcH6e?dc9sQmy5+>KA%sg)23<0<8fWrRaFg#!@*$C@AvaO z&$28@k|>J8Fbsmg^E}seZQC|Y(=ZH8(^OTJWx3Poh@zNa6dk(Vt?#c~Z*Dsi)2ei1 zpz67-#*!R}9fubTj#C&`q-l)rBvmgevv80G{n*PxHx2B>w<6c*I=XME zuAw-(T;)NLIC*F#zTR~d&y;LUG!#C~f+%*oq3s2x<7%d@=%%FV9mIIwx|^Bttdu9I zPg27!;HU(xqZZJ zyUfO?moD|phN%e? zJc4h(dy_QZIXnH}{_&IdzIl8N-hJ)Lm*0Cg#XsJE<7eaa&j+8q_4bFqKMJq>_jK^^ dm%si!VtP+rFOsKUwFC!ex6e<1y!GkVF9Cb|Z7cu) diff --git a/fonts/SmallFont/キ.png b/fonts/SmallFont/キ.png deleted file mode 100644 index 71f84d25e8f7d5be249e3e483702392cb0c5f14e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1171 zcmd^7F{|5F6h7e%dWrH-L4!&(Xwcw66b%~GB8t+d7nE0(r|=X|iv|@`aEk^N6wshS z5JBDGfCdjHQ9-31G&rpXK~3=>+CW_})D%-Zc<_)?7Yz0AhK#580UW`Dj~?D5rNGe~Ls^!Eh&<1;EKAcg zMNzUUh!VpI6vKh7Nv0y|5|7jA>+$$%G};e`yQ0|kdYd#|#qlBx=RweV-pq9y+n$(a zt?MIAD-~rZ%Y`KMMKKqIjOP=Mi&-{gm@ZBG6y;HrLs2$>319%=ev7YGxS8W>hRX)$ zHMS+r2H51U$LV1d@5*pH2-baXnLCTjZd0p?&2eOmLcI*M!dH8)k~wl>OQG5E4bjmB zOXYQ$QzTXrnZx0*+wHd7?PjxCtyYW0Vm_a@Z9AP#o2D6$$8}v-RW%$A2ZKSs-_P?r z%d#X%q9_W(FbD$A^IX@pZQC?W!!R^WQ&m-#mB{>i~4lfuSr!cHY(;U^-#kA^8hFM)CRWB;DaF7Q5*vmsV4eZ3XBG>3Tx^Jnj zp*Xr+AKn4&4bOAg7A{o(Z zx5N1y$73uCjAL{hR8`_4LPHjzAsmE&pmTr_z`35g-{5+N^AejBM;;a$X8cvm?IUK} zW!65uaH*FzOih>=Z{CS(#0IfI3=vI45fN$~DisDY^h9FLjv@1^$jUrTM!d0-1|S27 z02}~m0#*j@EKCU$m$0m$j3BJT@b|w?J_NV{k1j79a`nHC@3p@r@>Ms#y#EPNnP#u^ z20Z`fZPI+_{Op5=$IssH|9lhf-u~s$cQ5|^x@*0se|7h>qaXiVeEZwe=w0^L7nk{| b?zxw9F5h=9 z_xm0{xG+vn-Z}w*)ARdh56O9algGEne*OE!&j7dJ!H1XkNXfG_+o4R;L`06`7>1!~ znxZI4;RUh7@>GWfOBD@S&_oWW(-(DpJs$5zqg|eF`~6LltfFWU1g-DSU3ca$<9{vMfiV(Qr5%3X1wn{03=h5D*7KH*JGbnKVV0Uc zRJ2S|B2n^%uFdf}%gP-_plOzxSNXK;Pey5#$7Me((qNeQgUHPSC-JS=Gebx3*_vl6 zjxO7pRAzo2+gV`7p4PKv*AOjL&}A-3{V;NRf#v#!?Wl$&Ylf(3UBqa=an>{aX(3G# zzHphoPDLURt#Px#*$j&UlLS2vH4S+l0S*Aq0M-BtfH^<|PyrMG1Ar7D0_Xv_07NpP z*KUVxi*=28j!}fRjfz5CL}^|&l zd!4mMFC6Nr1ychi`pb9X8nHpl5d%a6Q9y)BgHnN^1bu;+v#U#-A}|t1lMyeiqyk6) z0ssp@nt-K_I};NE#U(6DC_)ITAo%Ui(+>cS;IoGpHo5v=#}Ddrk$lzdPw#(3RHm7m zJc94Of0H!dIX`>v^7z}kgD0;8y!Paqx9j+qum8T&ULAQKfAQ0!cdy>~>aV-MUjF;# bKd+p;diuvF&+l9j6rA6?IQ#MaN1y)(#0VMa;x00ffq+>A zCSV;36NWB28X=1=vM5?1LXm<+2I-<;kqTXO(Zv(H=%UD547fSoH-E#!J@<0X<@?U% ze&6Fe7gp=$>o)KE8L0mLkvcZN|23L=*&p<2aUO z8HQ0bQIgxd$h3KIblFlRLl$s4eK8(ijYfyza9SG>o{H#vIxVu@6SB1ah!=| z)rK+B^-@)bic-jOUy^cB%mg9f`IzHKyWM5kfMI-waT&$|umDT|JnZmtjoSsTXSix` zQRBSC*#MjT#W+2V;(bYWgK*RLSGl{)oOxtb52XAjXHSx0#vGOJ$OZ zrO)+DCYFI}joU5GW>}V(rWgch7$}Mea0Ivn*Z?d6<^T;q4NwB~0WyFXpbOvwP|2uX z`#mleI38nBU>u|CqNY(7Q5w1^4dtK&6rBSQ0QY+CVT+p?E=p`t9Qj!2myzWx9(gi+^PQ8=?|=2ivme9X{=EMg_s``o aUuJJVZT<9K@^7EQ;QZFb*$*Fn@#sG-d~G8D diff --git a/fonts/SmallFont/コ.png b/fonts/SmallFont/コ.png deleted file mode 100644 index a9523741eba9312767f44c68c1aa456950b1af46..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1159 zcmd^7F^l6?5T471)9#7I2`Ut#LJ2AyP@zJF3PF^M_RwvVtd`S(I82D2`XHeL;)2pR5*zX6($%W!WAkEae@m&T&TDZ7cN|Ead6G#?fs2BX5R2--hA_T z-}n6b$~b@U{sRCwzkGc0gv8T3KRqG)?O#{F0-V70=T9GzBhS)ok1|aY5jl=y7>1^4 zilQWi7sMXRQ#}?eRWxKl6FFQgUd?8=)9GO{+2?sT9PW~26Gf{aXnntN-KFEymNhqw zO4FvQTFCN5l5$ZT2|~v6DaXYu8!=4K>kVkyqbQf6Y>Kh~3;-Pf4;{YT;I75Z64y1h z6*dJf$5>~tX323H?Terr``eMb&g@lcHHleA#w^sQfmZlx?kPh@PHic+#K7o#x?pR( zsc@Ra$|55Qz2ot?-|xGw+wFFn&1SV)wQbup&0?{r>v}euRaI4%)bz2U zWs(w!k}vdaj@MaM?lA&Qvs6>%i*h)hq*Wf5!>~w$apI36Hw&D^w_?u>9erSHo~byx zY->`P`FU(-ff;++z?NM@v{XTtxg_<&$QcBd>l?PC8kVdXqN4Q?qr=YGF7+3MG*9@# zWrjKxi9oo<-42&aEDB5#^gPrw3<5y9Gk^fVzMFg4;dY5_fpvmY7jqR;?lxi%VXqtX zwjRB5s23J244CV0-icep8Zk!<5Di2D5h@Kz1;!E#1tQMAE^&&$NE}T@ypfU$AOQ#f zEC5LYmOAcDOh_xPVO>HILQn<4AODto|#KuR8nk@iW3Q&D{At z_~FO*Nbf)DAZ@&2tq$XuX diff --git a/fonts/SmallFont/サ.png b/fonts/SmallFont/サ.png deleted file mode 100644 index d97e7fb660be20c3c2e5731bcbe29ed4d02d11ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1168 zcmd^7F{|5F6h4no^zzh)3mQ}+h-fsptp*JmG-yy$y@&Fu@{~paQ8cKa!Gi`B6c9y& zpc+i;L4ylUqksk%G?>b8b@(BL7Z9t`#HhS2HszWj|G?zxw9F5h=9 z_xrxOe`%ba+&Te((~Em&56F3ZoyRxGe)Y%YGk_a#|Ko?}q~uwe?NFv^A|l6e48zbg zO;MDj@PgQ3d8)&LrHY0uXd;KR*~`h~YCPVLM!P)U_WNy;tfOcd1dZ=6TzBp`wPj5W zqtdjosur?5lB8S|2ZE6Ce9Cb#%SH?nbUHnn_9)7wD4U`z00Te=!2K3qtg&ryJ;zmz zO@)gB=R>Tsmy_f$j&?<`9r~MryUOfkYAq78j*LmDj{~jn)!bA1j-1+3Y>9!<^>o43 zcvImtiIqi06gr2)VYl0Dx7)UD*X#9ixonzdu~^Jzv%0P)lSx%oWm%3!qv3Ek7!0y3 zOVc!t<1h?^An<+PbzR4CEXy(sL)UdxRTV{%B&pl&3W5-07#@1Pt>>*AcVXF6!z?v@ zsA!p_M55#iU7O=|mX$ksPb9apN`ThkIQ~oq`@%p2a%fvPU2g!XNHd6vo+6D z99_0Gsm%O5wzI&DJ*{WUt|3~gpvzp6`eEes0?YLc+ffZm)(lb6x`@%fbvASTc_B>` zzHphoPDLURt+8!!KF6ZKBtg$ZO+%hXfCIn_fDOPBU;$7AQ~(9Q03Zd30D1r}0FjL7 zwcBCS;ADb%j!}fRjfz5CL}% diff --git a/fonts/SmallFont/シ.png b/fonts/SmallFont/シ.png deleted file mode 100644 index 8d18ce5a713de62f71f9fb929e5a263341ccb05d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1168 zcmd^7F{|WM6h4nF@^<4RYKn*{BE-j_DYB3vMT($#OZFL=teah-|`fKxnSJCFD6-|%qHy_|FTzH_UxeQ<}A0!MQUWmy&?@;uM7EKSoC zMaillN(?7Z3q1*bKZ??kqFAO|2$2Cy_A@^)k>3U+ud}=E#XHg=WV$L`N4a zmDgoXkyuG&j>qGEzu)b4+wFF}UN4u+#bVL6?QAw{nr1SY)OB4|)o3&t4u^xmAkXtG z%aSCCq9_c*AP79qb6wZAZPPRj!_YKMRaIG*JDrXwiU~&1vDe%A{>t@Q+nJhHr5i(4 z&t)~17?H1>AEK5vN^nKKI6a)k~0z3uS04xDofCiujC;zvN^DXbdst|g@mDc-h?rfE z+4%I*rJmR@Ghu2xe(9O$$Lg#*3CkY6cJKP5g|f^6e$8P z#h`-(i7;w}6jP)KIzoy;1{`FCDFz&5iYW%1Vi%_vVTy+=*c|WMzp;mV?&X}z_npiA zzAqkLnP+$3xC;Phmlx-c$a#93r+3JH^XJts0C(WwhmRkSQs8Kgp)AWnM4snamZfQ$ zq9|DvM2X=9is8W4BvTP}iO1>mdE4HM$A{5qUlhB+V4J4vI9`U~A_(T5H*?+2wkM|9 z==xaGDn%K|av@1WQOpG)EX(0=nCE$x zWl54mQ51$@5Cop*xvp#5wrQG%VQ8ABs;Vr@y*sOB_LYkc8jwaRu!fx`abG93IYNg0iFVE0G0rAfDWJmr~rll89)rs2k-!hWJIt1 z9v2I2TPzBUV{{x;RpKH-Ll&VS9E5$Fs8!08ZfZM^_HHda2__?Qe;E)vKRfd`wiP+1osU z?|*omG~c;AzyJ93yL(^$b^`C6UVr+w8~tu*?|$@F_Uzup{a3#I`ky!d{gv~}ZzjT5 Xf4%1aeEr`ILBZvNtMi}U|K$3Ap=@k# diff --git a/fonts/SmallFont/セ.png b/fonts/SmallFont/セ.png deleted file mode 100644 index 0f71d60aac91fcf11d67d3a596c9a06fd624b454..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1168 zcmd^7F{|WM6h4my^W410fGHwINReW|peX`Ih!EGjCHsuLEStq3DI%npB1MD&(ds&Ih@a**Y(YGdYDZ1dA=JCyCm5}(JBa*zTdj;!f_hQni)o= zX;W1#WO*V;X!<6@SL7$)fT1~lzaluJ=IMOgp_fDV9%9bRv+TjFMc>jsw< zwgoQ6*ksS^{V*DiP=O(9qQ9SD||Kgl%XT1wiH`pVDvp*ur=OP zI89<@kr9R7@p#$=Tmvs$f|%VpcP^ZC4Kn!2v5sw&HJGMS9WyLcj$>JtVHmoutE#FfiX=(>eqRuT7{l;580=7<5JfhZtCr9r8{Sc0KI%-Po^P7xT1qsfRDR#E{Z00Dpn zAWgth$GwROf#Mq0B@`h9RS^97_xT3^C-B*$E1O*Xuj6O+ACY|3%bz~@n5axMw|N3T z{P-$qzHxbR@A2u=H^2Sj9Ns%SdHU~1$FGmSviH6^d*}2?{{0_sefPTc`%iqtH}8Ia X{mPTKm9v)!3NG(oUHtO?Ctv;tn=WcP diff --git a/fonts/SmallFont/ソ.png b/fonts/SmallFont/ソ.png deleted file mode 100644 index 0e6998ae3f24d8a5e57713b3eec3ed9e7ec67f1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1168 zcmd^7F{|WM6h6x<^4$1{k|M4tf`nzj6j4${2y9&Q*6iEJ%VV<;Bt={zOc5aq5mKZG z7-7&UQcN*ugcMT*3G1+=7-Wh8w-{l-K}MKjkSTU`iYcae$by2$`}S{mxaVHZxqRQb z-0%D9;@mvB{^oT6I61p}dY_!fS9yFy_RC+-e*`#!i;o`MA*I04979=_g@`=Qvn)%~ zG(}OeDu@!p2^7PDtx2XL>JpEW$&04B9F6wF;jSpQz1}8GS8==u!+8+QJa6i{t!NYflOtBXn18xOO(NUB~`X5kN*Mn0vrII0jvQQ05gCVpav)b`T!X~4A2Ge0ElEn zuiXykb8H$c3XEfP98^`}B0@tJp&=ZEfS_}L5Wu;byWik?it`fN6h|Hw8fN@u%O|gHcU(y8!z99Ys40@KnxL0L=h2c9V!(DGW0}Z&W<7Ts>sSbO-8)5k_I3H zhyWY_X#!RT?kr3R6qm59po}1_!|<2qC-(rZ!RPnS9dh-*j>p=c68WlE9^L(zs7$k0 zc@4h(?hVp>`|R}ggX3>*{(Sp&c;~gB-oNAkmD6a}n;pu@Wf~uf`3!+s)1q~WR zs=)*oG-xob3W9jh;Ika^P&K{m#kn`jwPi~X_`j7LU0dB+NN0$#sDR4B$P?lvOBG2Rp#`6is#Vi{#Opm60it;GRp(q=`1TX;bu*0i0ZWp+o;i|<& zgYyb!CARsiae5rZ`zqX(!DisCa%Y*@^VDi%a~v6?P_F{5@YTMnWR9HJQfPL4Lv(b( zQh8nG6p58Y=6F2r_xs&$x7}{n>-BQETr3vz`FuK^wrx8ekDI2c>v}jGmSs5@4DvkB zvMfoGD2l=`41&P(JlAz?+cr(pFbqx8R8^H_x!diEqL^S59ecf<@2^~MZaWjxs&%7O z^;}kCNe;xW!wUw-DGV#pG)K*wVp{hn!>lQix*t_pSf;@s_VUn813U4p$TfP7?pvyB zD2^`Ic~B%y9$Ja7_Z-DDC0i2>g-^2}irrpldx7b=nrSP#DXDrFF+ObF&CGaS$&*y5 zJhpF8u>?eG+-`9;!>YnGMc+qVM?pY_UFx|FQxhh}>v!S?u|+HpLqro%M1)3%T7^=EzDUg3HDq2DS(&HFh}Txq0Av6W zfCC^+z}mpQg(-pJ3RX2#5rj<`{`R8t0l+Qz^5WbfSO4qyLHkD{U-iZp4?iR-)9g*& zf^WZjlQiEuJH2;#^3A(XpLF2;lV4uE^U?m-d;Png{q@PSa((&orS$iozrTHT_uuA% Z`Lx4)KKkkVuL%my9-N>4c>m+C{sSG9ZuI~F diff --git a/fonts/SmallFont/チ.png b/fonts/SmallFont/チ.png deleted file mode 100644 index ea96e0a0308e929b34a14358958bcefa335d8625..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1170 zcmd^7F^l6y6n@LXX>(%nf)13N3Kc3`=s*D#DpV+0?VWa`usTi$BB;=T0xnc2pnw7@ zbessz;R6*eoJ0W?E>xJrg$gIQP;mqo4l%(27b;v_hzl1kwm1lcm)ZLpdCZ&Pz2W=b zFyHs`@wIV!_x@b~IK8^OctXyT+dMfY`^_KMzW^M=<4>PHBqh(%Y=<&U6A?L%V;F{} zX^NsGg%`vQ%TpZ|ELAjQK@&Ng&E8HXH{1)WF1AzAXxZ*_oujZc8cjVNTVoMB+uBQvO z#+wSKNvtd~qR=@U4!hlMyWO^JyI!xC%jIIRXqsj=o7HtanM|sxD$8;-8V!fT!C;VO zS(>JC9EV{T1cC4SuIoCEV_BAA7`m>js;Vf8BuU+FR}h34!|>4SZ9Q-0xQ%5`4YSnr zp`vAy5{Z&8bZw5;Syt{a0!_12Q{}U=KOLo29+&;FNP}VG4N1(xd@wxb%BtQn%BbrGX|>ul!w>q43) zeBm;Eor**tT4USde2ztdNrIk-nua`&00)3K02_cMKm$+%Q~(9Q03Zd30D1r}0FjL7 zwcFuhfs+a5IYtrMHYy5n5uqWA&=3wnK+qXL0ASzF-M6@zzJ87R(Ho>hIo(8^jthM+^`RL;(>h4N3)u67&UP&aN(Tioi%5O-8)4k_sRJ z2mmYqX#$oy?o3Pw6j!h+p$H+Ug5dYRPCo%Sf-j$3+vMth9Y3mni{z```{MF5qB70g z<`I1V!~3N9;OgSzrzhX}&;F#2AKiKM@99VI`SYK-=ieSZfP3fPeE8ynS7*Qeb9U!a b76cf5b@toKukW1`99%uTzWC|<*^B=G1cYcI diff --git a/fonts/SmallFont/ッ.png b/fonts/SmallFont/ッ.png deleted file mode 100644 index 7958adf088078014bafb53c3628e9af4d24192d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1164 zcmd^7v8&r=5Wgg)dW|q1G^j*_0)m>LL4yVrG>BF&RbEw|LKF}|gC3~Gg9Zgu(4avj zD!9P`Q9PJd1q~iFh}MG!Q#^P`L4!+8@!&y&hm?Bo;NcBfTCU&AztNAo@8i4Ues|pO z_wwO5OXKv|Me87FeShV;OUG#}Yi<~o zrp;8fkmac)<)SzigpB7?j*D3~Vwj-cAJVi(Q7%Q<6lDPz06G93_xNUuU5nc#ZW?SW zTot&SV3WPAlhZ6Z6v2Mt@5b&Xv)8G$O3WrQ>QJ8rTH&j?r;HpqwWZh+17qOng01nU z!f6sKi;O7rPp8x2aM@Q6xzk3K)_S`T_O`j-Q zCMl69`NF{Fc%5bCJ|oaHORcJWQI6)*w94ah6c%YPN&Io-W`UFVR_vLfqYrJ(GZjad zZA~gOKacG!Fk?>}+OlhimMZ8nm!y6eIm5tmeZzKC!;&>aRI~wNbnKknQh!}Y^Mo&4 zW~5V*2!w0wI$SQXC@@LT^H9@}=Mmrp@CIN9um)HGGyoMq0Wbzg0V04QfD1qaf-l598FrhladM`0SEvr z00{z?Ivz|+NGWb$Q$i6!PzAvsfAu~GxCLK7xwJ{@e|>&d{}#!rK6w7<8DW`bZu}Pf z_|u0Z_|e7rCr{6Q@UOnT{r<-~fBTzPy{qqjhZnv34?g?1cmLjR@ZhU2--Bo0)6boM Rgqw}S#ly?$fID#g>BD>EDR4B$P?lvOBG2-t#JN<|sTav@0rQOpG)an)d3 z-BQEY}bb1Ok{pO#hZhWvQy5mHX^vXd#jNU2M_FAYRX-}TaF_;z*vmsV4eZ3XBG>3Sx^Jnj zp*Xr+Z#S##%al6I&9Lo~Z6n!6c9R&dajsVXAHULY21waE(1C#&*fD9l8=mB^Dgfha{ zevfU7lL;0D#xXh$swz_UFxX~GZUu9%RO;}*dP{&A)<*WB0{Z0rNU5#zDUH`HDq2DS(&HFh?i2*0Av6W zfCC^&z{KBM9p-{Qd8#1GSEfQ2w8NIMbR#T6sZt&7FiT5(t$3z=wieoU3Bplvpn86f5XE)_j1nV`_AQl z-{Xs(aeCv88vt;6e&_5iIZv+g-&xCE*z(}teIg{ znl@3@LYBvpl#Aj}5Hg-mIWA_|h+%?Gr%%%!MY$AZQ8@gmv~}nj9z5z6f?Be=~GfnY~P{CNb;Cn1=c!&v}q!R#jD&<#;?EjYh-aFw3$u zP2)HY!!QT}-}hbDbsWdCEW;9Ivyi++hToW~rvi=jC8FPOCgF2Vs#0qr@LZZWcI+Z^fP&I(pyMJX3LW z+18{o^Yhrw0yFlszAd|kXsLoOb4lulk<$+>*EeiOH7r>(L`CZ&Mu)AlS?Es-X_oMX z%M5fX5`k!q+bu2@SQMBf=y|AV$nywr1b7ax0ayYw05w1bPyh@8Qh*4c58wh2$%tP2 zJ+>`Qr`Tm{Z@2|nTHy?g|%UM18<;~yT?|n!A!QA@b*^_7QH5XsDpZ{A> Z>8G!L`_@;|Hv|Rew|i$lfAqz}{{Wz&YUBU_ diff --git a/fonts/SmallFont/ト.png b/fonts/SmallFont/ト.png deleted file mode 100644 index 1c6bfb4dfd0bd005532781295b665d27f768b4d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1160 zcmd^7F{`9j6h4m)>)Vxwg#nkf5MnV8EG&drSeV4OxG#q1@?4N$VZa9#76uGh2oYj2 z2~$XzVn_^FOkv?BQ&>zf#SpfbVj#0H#S|7(Y{(Qt7{Ug&Jh{7nBbRgT;huBPcP{t) zet33cUOasK5CAT&pI+UPc%S(B`8~4#{ped#xChU^c>aVO1&-zz%Cam(IP zijq}9lo(E+7!GVrG8Ivmc%0AQw(Xng^f;Lu%5py(_F1+~l64fVf?(-+3)k&zduE!A zu1__sQk01-my$FR#X=Bro=-V0VcCdbLYnp|%A+WUqHF*YzyQGG9$#;_s%SqBb|Y_7IP2VAW>%M&ZEQ>$-rF7z{*FOfim6VYv7Gjq5FKXJ%TpZj4pE zkkv$z199N+g28bL!-_P`QOl;B*TdN)Z_2bD##J7TvtX2XMdW6Io%&Yn8lj{6mg*Xc zqsw&>l&MohR_g1aqj;udYoej>SsuiR8%DMln2xKNwxXMost*v8WAE-3#>+~cWkTh# zLxV~rAY5bL<6?nTg;|EakGhV6fB+|e*8n?!HNX;}184v$fDu3rkN|`L9sr??@O3!g zYK3i!Wr<0Gj)SU7R77Bi5g39&07!QM5CJ&v<{o?8EpSy~m*LdIQp22olW@nF*@w)| zr`Im^(uTPSGvoa`afjF;mWUCei6|mMqeHF2ScaiU#5pizUKLrHr^$%-Qqllq01Xayt})5wTJ1yzkm4s{eM3G^QY$4Gp8x zw7#kqvfPuTTogNkknw!VaWTtA3==dOEt>Wy%B3iqqAUOdKnK9>8lNq2HO0jk=QU0% zoD?|jVx7GhB)fjJDS~y^Uv}JiX3tV10`! zrfD3oQ{rdeuI<)gAa?4?y6m+i1fgKpw?A~y@1#J6J43?02?Yo4h% zx@>DwnfZBaXMq`eTFaJQL$p*um$@YM!^mj`mg^g~qZ*d18KR;!5u@$OS&sFmg)~g~ z!e!bz6^TH!#?=bPV=M|x67)ROG~{^%*a18PSOUxdCIB@+1yBHV08)SmpatLp5Xp#M zn+;B9j`aSrnmiV%V-2nzGb-{kn(!@CzY-2V5k`}^Vx(>Q_0*WWoK#TyUK zJ|l0YnSES??|-;Sn$*MdPfw|Tj&5GR_2K33|Ly-(^Zew_y~Cyd$HAlLw||3om)mdO uy7eo3`OVKaZoK*adj}spf!8lTI)Dek@$;|yKYc|YaDIAm^5e&!KY9s&CUZvs diff --git a/fonts/SmallFont/ナ.png b/fonts/SmallFont/ナ.png deleted file mode 100644 index d72c2187353bb65f1e876d3e7e9c373ba247c3c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1169 zcmd^7F{|WM6h6-_^4$0wBuJJ`ks|0I5mKZ`ks_{nkL=sX%d%Mr5->uFDI!FO7$ic( zpu_GIDW(|KtfZJC#h`pq&hMT+Am{OQ9^WAQ)gKo>1Kfc7A3QuGCC}1qhcZnQ5jl=y7>1^4 zilQWi7sL+BQyms8RWxKl6FHpCo=+xMbjmxCRJ6HWjPv+hQr}tFvzkj zP187z!!Qhj!1sOEbsfjCEXyzqUDs7rRTM>%q;9t>2ttfuc$uRj?yZR%YIm-!7%X$k(&ih;#;w2hK}B|HP2KW zUA8r;%=|pIv%ri!t!K-wAzG@S%UqKBVdV4z%k>T0Q4LGh3{la#h|zxItmpb=Ax#s$ zaGAbNMIsQbakIhs9E$>z1U(Nm4S5~`4gk*p)&L8D2A~G001AKsKnf56^Z;A{A{o(Z zx5Ku@$prHpqX=yq6@|En(2zxF2nQh`=nNnLu&?LtH@Kc-TVS2w*u`AMl)H-9ec0Ld zI%|(!IMk&DGXtjj%Xi`$u|~`h14IK+K!i$zQh}iaeSw&>t4o|BFcL?T5ihNz0!RP? z01H5xfTfN*6B7c(B`ixQLI|oL`2C-gdjLo9*@Fw4T>Y=(2lZc(eATO;-u;lMOf%Pc z1m8WqMVjLI>79qiPtG3Sc^%$+?dZ3`mwz*}KQHgydgGN(vbVqg>FKZOU*>=INAJwv b{o<`(PQLx>^KafHFgQQEIQ{YckH3Ba9=mK7 diff --git a/fonts/SmallFont/ニ.png b/fonts/SmallFont/ニ.png deleted file mode 100644 index 23680ac34b320aef6e07465e811be3cfc3ce6273..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1160 zcmd^7v8&r=5Wgf)y+(a#P>Vt|2&%z@2Biq9fFNqC_o}=qJcTGAiUtKVc+jAL3K~RF zTNO+&MS}^ZRY8LX4W>0zgDDhYKbL<3+=9oCo}QDhz|kB-S(b%}JkPT%OVcz( zQL-wC62l1;!-1_yrXuPRkMsH4>GWzcIgH2qqSy@vU7Bvy{8FaYqd!`B<^THGvf-C$ee zvc$y*oBZuGJx=0%8SX~GcId5hXO-E@)M{dL8X1#NF9WUc)q$&Ij-1$1X!d+VbacT| zd0pldiIqg=cs%a+``vEWb=_vOS*=!W+b);O`F!3q&2&1g>$<9{@pwEMjfTTvp66MX zB}o!RQ5c3n5O|*Fx~^^8rfC|6p=p|`sL}eC^(qI^SdFZBro%mMd8huCiE!8y? zN0+NSC=w?Rt;E;+j^de;t%-)hr&$oiZa=iWz;s;Av=!ZyRK157A3ArtFkY4NEEP(R z9T-$B0pS|E4i^h7OH5PrebjXn1Ozw&yaw0;tN@k(4L}W00t^8%fEb_;-~kZI2w(d> zwk=MlSQHq?=s2jVL`4LK7=a-e1b|fM03m>L-S^Ppc7bh)O^Oo_3k@^=D&`Imv+FZk zpI*7tD;wq}%#3$);uf(%ED%FP6H!EjT8B!7kqiToh_h$NyehIXPm>n!q@)4J03rYf zK!SjkfqM&6Qi^L>S5QU})?xVfo71lVZooHBE*+BkU!UK!e*M0+j z`SlJ7etdEE`O}l1gJ(b9eDBL|@4+XZ!uJpUIC=EbgAeb0_Yyw(>l~hc_QCf4%{OHK P02k+%XTN{(?1%pV)Es0b diff --git a/fonts/SmallFont/ヌ.png b/fonts/SmallFont/ヌ.png deleted file mode 100644 index 8cd8326f7b3d7501e227b60a75d8b75f358958bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1166 zcmd^9F{|5F6h4m(dX0FvRD()22&%yawP?_wL4#=Y9?FZtQ;0%E5k&zF8Z@Xy1q~Vm zRjCOc6zah=Drhi4rK0s9iYbN)lED;1O!45sgNKxw;=#ikGM?U-ztPJ*_j1qS`_AQl zANR?FE930;2e$#>?DFpUL$aUV#OW=vUjKFVJHRb?aR1Q-Ir1#c_9)Xd5s~9KhGA%$ zrYK5MctPy3Jk?{tQbj`+G?ByE>`l{LPbP=)cwZE|!C;%F>o{J9;llSj*PS~~Ygtpn zs5Nb(s--NCC8-d_p&;ZupK)BmvN6MiysSzT(jvC%~OB-Bb@Ej(r5$eArAmKYj+PZw;B zHx*8kSXpF5p?5qU_xt^Bx7%*F>-BoMTrL)iuIpyAS=+Wv)6{icRn>Sr9*suB;V{qh zEX$H4iJ~YBL*MsZ*L57nvMj?ebX`|fRZ$d4lKTC=AP5OY(J=^ip0{$`&a$V5S!w!6 z(Q-+NMadWXHplBMEB6?Irdg`1i&-_8jRX9tMvflXnrAAG zF58+^<$jUad1xk{7TB_Dh?XkoGM8q46gxp^xxQgLs$t2RAu3uQF+Oaa&0K$3O4F1t zU1p$Du?R$K+-`9`$FjsUMbAS`L!L)~Bfx8b4Zsqh184zifD&K`kO9O10e}lYBqMt5 z_qbSK(_m3x9HVWcq7WAm8ZrqD;UEMAodbjb_D$cz7B_QTl-Q;?aj{S__MW&wY!M5@5Ya#s5TVwfQeY&(Kp^Jq>k_93jKtBT#ak<>01|)z zzygpYV5Q^U#FRjB1*;0m2*NrHU;TY{58wp8et2b*(*Jt=qW&Y2r+VkhyPp%4Y33$Q z;MtGwljKL2=bt`0{o#}0pJ(J7dGYwe&ysWd`Sd&el@P$mw?Ex^_lvJyeE;+D#*el%RP__8EOyHY-6=L`X43ga{FWqzIT| zTt-MS#jr+*Fh!722T3t3Qv}^&ia`e%VTu$}?CKx`PVtJ@2*>;OZ+N)pUe39E-?`lH zdvN!{JiYbmEdV$@zjJnvoF~_La+BIMX?(Ux-{Ly@hS|LLC|{M!gU+lo|$H? z>k~~Y6=f{Tg(M9{F&Bi4=M#>LSvF*tK27@+$<9{@pwEMjfTTvp66MX zB}o!RQ5c3n5O|*Fx~^^8rfC|6p=p|`sLRHIQJICKG#JKS9=d5@C%zTAM&HqWOLYy! z(d8-+ip0r7EAjQdqj;udYoej>X%=gn*!PfDpjBo_pwUyTE0MO^Oo_3k@^=GUg5uv+FZk zpI*7tV;kls%#3I6#4TcjSRjUoCZdQ4wGNdEBN+xFF=x+^c~xX(o+cxnSxEzs0Ym@} zfHVOs1NRoD1d3}|S5QU})?xVD)6@3=Zop^vE*x_8zm6ZYza;WiFMN9EBcd|RUgr(? z`kPlsQ#wC;=l;pVw;%lcGQ4q;|8n;IKVN>>N!8QWzJ2cR?;id1{PwHY|NZ0F5B}7+ a7vDU-^!dY2-nt?%IKO>y_T#%BfAJrXpl>z+ diff --git a/fonts/SmallFont/ノ.png b/fonts/SmallFont/ノ.png deleted file mode 100644 index 028026e59585c0c78708fb5099c4cc8911ea3b3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1165 zcmd^7F{|WM6h4nv2IxA+iAj z1{`FHfK!YbA;lB{qfU`xkU@fMF~WeOPBBGhV+ zPLo(!WJIBNJRbM^{cgAGx^A=CtX8Y#a@n@+d_HfQrmpL%s>-sQOeW*;cr+SiS(c`0 z9LHf820`HazU#V<<5-qu7>2Ivs;VlAB1uxe-xmZS#xOh%20PDNJ8o;)Gs7%3eXMAi zq(q|R3w@j8b(WQTj6l;Y)mHhu9L^?bmB-~UEYe_{_@l_p0w?jU*fT>%AK02_DvmDO znp9?f9@|-9#-28?W!DfbRnTQFN&PT#27%@JhV7_^C2NMLXnn-!&^g34Hwc+9p^3>-a(aMJMU;h5p=kIXY+3 VfBk#Rp#`6is#Vi{#Opm60it;GRp(q=`1TX;bu)}w2+%9lE$5n%i z8ru@*Lu~T*lk_-__hq;n2AhGm%AI9qx2e^{<|H!4pbb1Ok{pN~hZhWvQy5mHX^v{^VpjF1qpU8HsvnhEI81{UNRO135%3ZG^{6uZ69_5#y!HPcpfQ&RN~Vtm-To4N6}l&7gs zdTigIVhM=WxZUD>j%A5yioTD!j)H&yM}T(#8-OK13(x@6042ZxAOna2dH@~(k&NiI z-{WF|lL;0D#xXh$sw#02p&^sd5Dr2>&^bT|;N12-Y;iNkMTt#{V-E`rGyW##4iU5K zF&m#=y3|`6W+qIH5BJ0kVuM&9hKMGjhzPX~l?p={`XVuB$B=ndWM!TvEk0OD1CRkk z01kj80V@Od7N!J>D_B)fMiACv`1?QSUjf{KAD&z}r1ZZYue5(9@>HLEclixbnPzX} z4*dG^Qyp{96n!GnjCdN9<(8#12Wm%q`&J@<0X<@?U% ze&5#@ZS(lnd$$1K`24}?LvkKn=h02FU;Wws1>h!Jd~$h4N`a#}hO#UR5qX|xS(c`0 zilSsy5G95aD24-DlT1a_B_1b}SEJF@aJU}~c15x6b~kCdisMBX&Vyj)c~jSIYNYflOtBXn19S^d)NUCmBW??@Kda;*>ZW`E$Z$+-radh8O zT|;qnxypkgaq`ege7)l+o+;UyXefM|1ySsFLfZ>W$JI<*(M?I!TZr*~N*Mn0vrHd0;~ZR05gCFpav)bdH@+f4A24a0ElEn zuiXyka~zGZC@_xEaZpu>iwF%_gobbs0)ox~LICG_?tX*oDb7o5QXG0%XqfR=F}IJH zZHHO=^uncH*f23+Y`lIat`Qr=0x?815k*9(b*NP6%g_~xIa`Lzt0F7&G#T;QN*aI+ zAOdgzqzPCVxU(=NP+Y>Yf--`z4#PkGKK>Zs27LLj?U1Ygb$qY=BayFq^U;IPh{`m3 zoj2gww|7WWIzRpB^62TkZ+<$4leeBfKYM(yb^FQX`zLol{Qbw@@^}CG^otL^d;6<@ co8cRGFMfUJ=kbZyCNMZZYoGpb|MMsR0r?SXBYVC2V_6Fj+2{Yz54U=XMme<|C5Jz$x+~Fj-f2eLPVbDS(c?~ znxZIK6-0^Q1d8Fn)+AFAb&1E>>{ZiTO(uu&cwZE|!C;%F>o{J9VHX4o&zrk$Yui)P ztaW{&X{Dl!Wx0@~p(y5pknw!NaWTt=4AZA+pQ1d9awy6MFaZnzJnZnr8n+#;=eTOI zt8r1{e1vWOs!5NNcwdIQQLq_$tK3;;_9C^~*lZ$W66$536}~!fmCTV7TMEsdZ-|aA zSSqi}oFcK3$Q+Ny{eHjO?Y7(Pdc9sQmtEH_7K_`b=)R@8 zhT`aQl?O%QWr94fA z(qjh(6-z+0#_bm8b1X|tQ}lh*brb{yI0C!?*Z?d6762_k4Nw9M0WyFXpby{y5Xp#M z`#p9YHVqa9#xXh$sw#02p&^sd5Dr2>&^bT|;9U1TY;iNkuEaLQiHC)T8GjXXhlttr znT<~`UFx|FGZUu9>wDq`u|+HpLqro%M1)$0N`;XO1Cf}sXUM!NvNBJT7O$KBM9p-{Nv^6#{f6r%LkVZDgCd<_uAhQd8#)a-}{uPOtaT< z1HSq8Es}iy;{2nBCtrW??3XvmH}d3*_uS~$-=wq0pPl{w&eIQ1&i*>TJ^bgVA0M55 Y{@v|=4=>;SieTX4?&bLpcOE_Y54|pGzW@LL diff --git a/fonts/SmallFont/ヘ.png b/fonts/SmallFont/ヘ.png deleted file mode 100644 index 90a880e6d9734d0369d030332c96dbcab4633b22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1170 zcmd^7F{|WM6h4nF@_g|TBt_JKfekufgcK=Kq==fgjJc3^?MrOff}@DV{jU6jMBLyFK2wf5XE)_j1nV`_AQl z-^2Tt=IP0+CjfAIaej71&g0uWzC-q#Czn3~+=2V=Ke$IqfulKwvMdV`d7fukmZoWn zqGVMNC596yh67uZOhwcs9;ef%y(4MX~Mm+B99q@iGh-K`{5cnd>&TJu%H% z*GHOGD#}on3rXsWVlD_7&nFxgvuwyPU7GeO%A+WUqHF*YzyQGg7O&UXE^s}=RfCHf z=OxYt*yK;g>0uP_%5XafHhpiEJIlhr?mF+ikbowr$tz^>VpfEEe$U?;v6xklH~eM@x> z#nI&|4~oReLo4z1uA_LSWNV_K@M#uAvD*!8FEAZfGi^mTB~|Yr#{1UY%#6pSJV}Mp zV|xY_OF*>7w#C^D%M#NReIIol1pxsL0M`H;fF-~jpaG}>N`O8<1`q>u0XzUA8PRLE z!^Hx}V=M}cV{{x;RpKH-Ll&VS9E5A~9#jka<;PWu7J@o?A%+kO4#h z4uCWPD+6~HrUZ&BSXEF)5Y}P%`=6)p0UW_+SC7d*{LN*RTKf%PGK%M{mFJ5fO+=j7vF#U>7&=4 c{J~J)J*2Hyp8fg{!NJA7%d;Qe{pj=m0EfD4`2YX_ diff --git a/fonts/SmallFont/ホ.png b/fonts/SmallFont/ホ.png deleted file mode 100644 index 15de393b079ab95be1e979f7619279190af8468a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1163 zcmd^7F{|5F6h3L7dWrhbpn^g*C{z>=8Z>Copg~Rbg7T_|6`lg3Xiz{8JZMls1q~Vm z6~q(|8a%kI0xEdWAX*O^Oz_|#g9?V4;(`Yc9#ZPTgNHX{DyR45Z}f1_y_|FTzH_X? zC|MOmiQxo_;lS1;QxSEE$NBty)7(y{$I0YS6#Lj@hZT`MVPt*8NhWl}_9eL~AS!MPzwc6NhB4ZlrWuO(lI&_uHkrP`A&7NCrD4EDaicD<$T%uK7&jj^id zvKmWrAod(yFgQ+OSdpeVYFQWaYB-x@b&*uVsLaA~8jNBu58X7d6W@wlW8mn%rMiaV z=yH_@MdIY4mH7I=Q9M(!HPKM`Gz+5G9fY*i_j1bLO{?tKnUR6%{}gLyTGo*HpQujg@ze_8*|5q*$WJtfT?R03rYf zK$?J+fd>my0>w3~D<~rf>oEM|@AIz#?!kB0eTQ8Auj5zkABlX`gKwXGLsX{OySxWK zzkWoTUtC^1d2#kr@bc!b?RIc;a|74>mscPEd;a*B;`5JQ{r<_1pI&Lu@0e5JG_MH& OE}!-_x}Ns=xF!= diff --git a/fonts/SmallFont/マ.png b/fonts/SmallFont/マ.png deleted file mode 100644 index 22a868004c663e9499e1df7ad10b76dd712f3130..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1167 zcmd^9F{|WM6h6xqd2W29h!8PIiXel8B}Ix9DWc}B*=OYCxmk!3BtnWQQbfr@iWC7; z4C@prrWn?UL8eF%bcz&%OfjsBWO2k{8DxqnrdV;1DMoz7R&u;=|Av=)?&Y4t_npiA zKJLTI3-k2W8@B-9^!)DGJ+hx%$H`5yUOl_`5#T0Vet7>5ISL%jF_dLlh{*Fi%d#|0 zQxqkuf+#VZKrtNHnq(@XF7Y^cB|?~7tL7;MvY9mmTs?1Et7d2`ooZF_2( zwXRPztyGk;EEkeA6vbQ+GM-O3E@s(~Vfr-fQ=~99J!N zH7-h=kFd>OH0f~?@5^vE3N}M;l{?GKUZhqVn@wa)LcI*M!dC~bk~wl>OQG5G4bjmB zOXYQ$QzTXrnd9-e-|u(3-FCZOuh+}vvg^9VVlkV|+O}<)rmpL%s>b8-XfzrQhk2f7 zS(YS86h&be20`F?p6j}{ZJVZP7>1^4s;bJe-0Ss3QA{w3j{W}5_gAjBu$`%CRk|@! z^;}kCNe;xG!wUw-DGV#pG)FD!Vpa{NmZTO135%3ZG^{6ubS<_5#y!HPcpfQ&ROFVtm-To4N6%l&7gs zdhEcUVhM=WxZUD>j%A5yioTD!j)H&yM}X%58-OLi0-yz`0ZM=&Kn4&4^Z`5oA{o(Z zzsIh_rop1XI7Y`oRV6MWG-MJQ!a)cKItK^=oa?@aEpF!6mDr{@@vzV^i}&1YsS9zx{Fg0l*D-aPPt)rT_K#Ui(ubPxZ>@cRwL2)9iKJ zfUm!Koh08rKYRE7$)nr9JU%7g$WQM)diwjDAAR-DUq65RZ}aW1Phb7?@#Poaz5m+Z ZZ{2>#GW@d#olih;e&^!shxb1F@;|KRZKD7H diff --git a/fonts/SmallFont/ミ.png b/fonts/SmallFont/ミ.png deleted file mode 100644 index bdd1cbff100d976404d686e641b2a3c3f616896f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1159 zcmd^7F{|WM6h4m!o9BihMT&?KqNbQ4MT!(bQp7cHC;N=NESrTODIx@%B4C6FDN+PX zF~}4trWiCriYZbA9VNveQ;e|16a$Vj#S|$~h;huBPcP{t) zzJ7XZ_8z|V5CD2NPp+Slcy;ermt?>D{q|>oOL+S6^T*^Ua5TqImSrI#&+{zH(lkv` zl&lJ(#Bc(|aA0easffD7<6`luY3^pT({y?)ioPQKqt7NYYpob3w>>KH<2SWkZG;(zH)e9z{76WdoQ11^}K8_;QEc8h1CrH4iCP+b-k7C%uTD(jftw~ zvKmWrAod+zFgQ+OSdpeVYE>7DYBZl_b&*t~sLaAi8jNEv58X7d6W@wlW9aCoENFuii%h7x3k?TZfeX*Xw)jZ;5=>8(%#6gs@Dr_kIE2 ze)lFxzI${1==s$*!Ee;%VDRAI-Usm6AKb-Hzr6R(`ws?#!H;i)DKek`+0*_Zm*M8| L?ez~Ie)`paivwhK diff --git a/fonts/SmallFont/ム.png b/fonts/SmallFont/ム.png deleted file mode 100644 index d0db32190ad08dee02a00312951fbb6f08fdcb41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1169 zcmd^9F{|WM6h4my^W5+Vm?C0|6cMI~k|ITl6k*L<@}7~Gb+Zs9NW>Haric(BEGZ(U z7#<@8nPSi=DF#dt+(Cj2%M>ZLm}0;|rkG;DQC1ve7N&T`mdE?{Z+N-qUhX-3-?`lH z<6b|wGSBY5br%56E-%g>lKu2HPVbQQ=J%_o0C(WQ2aoQPqrlM|Ls^!Eh&<1;EKAcg zMNzUUh!VpI6vKh7Nv0y|5|6Xl%ci-ROb+Amz9@Es!8T3Tal8z}MG$nJH+S9Ewx_09 z>-t2~N<|sVav@1WQOpG)bkC~YCIl~Mx)_ynCE$x zWl54mQ51$@5Cop*xvp#5wrQG%VQ8ABs;Vr@y*sOB_LYkc8l{lmL;Ys`abG93IYNg0iFYF0G0q9KnqXD-1a?eaWlt7iEWA#4+{-5{wC%Q5wq(v z8=qdf)H54qCQOZ2_rwiii&!9rh$f##G?%i+hy+OW_lgHmq)6YKq$c;1Qj|^VS)-JD4;?t zI-Pbm6*!t>D9f@Ck>`1qWoeqG zC`wiZQDQiOVmPoh$y7vL;&D2CJ09PRM*HD#R}|Y`uT9f+952Ig5d?G3o4Iad+Y{5Q zb$z61rJ@XFxsas3DCUBY@qEH@G0TPw)1_&jqCARnD9Q#f0So}#Z}IgS+Xb#?xN2}w zbb1Ok{pN~hZhWvQy5mHX^xuL#kA^8hFM)CRWB;DaF7Q5*vmsV4eZ3XBG>3Tx^Jnj zp*Xr+*tR&EVOe6DqVJ=wqaYx_0pK;j24D#=2WS9lfD)h&kO9O1T>uY&P)7LL z?QpTc@feE&;}{(WRh6iSzz`!a1cLyO>Kq^haBlnVTincWQDT$g$iqUzjK7JweZ*|L z%*LmeF7?WWsRw5uw(hQehxNPbA{(7&5PltjyD-#XBi!05X6G zzyXjTU}fOW!jzQa3RV@A5rlOZ{`uzg3xFf|?$MP)Qvd7otM;!%R(0o_i?0aFG<)ku z@ZzVBNKm>w`~30AkHM4o-@CrPe(=F(!SS=BH}^m0@BMLp@995Jzy9Im;(_q#&&=O< Z;Fp&lZeG6lmMkCO^8D)TxBE}N{|~XCX)yo* diff --git a/fonts/SmallFont/モ.png b/fonts/SmallFont/モ.png deleted file mode 100644 index 934ee0bc2b00e6f2feace790b4d4ff2ca22eb51f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1157 zcmd^9F{|WM6h6xX^W5+lFhyhoMhG%RiXbUcqzG=_n)i&nESrTW0VAfEB1MD~h;ofu4cP{t) zxL-fMF)r>uxDNmq*H@QMNIbvu^D{Ev{(18gz!^OL@aZG6P^M`jBFAwI!_YKM zQIw?cf;eD#YQTb}iiRv`B8SW6%euau&yTa&AQJ8tTH&j?r;HsrwWZh+17qmvg01nU z!f6sKi;O4?PN&o1aMyLcj$>JtVHmoutE#FfiX=(H;ZP8S7{l;18tpxA8@8hwmaG|~q74zFWAE%%`tw3sBz)mA zW1WgbAY5bL<7$OPfk}d%hnj{wj{qlt7XUkeH9!l{08{`4zyu%#hyX?aE&!p7@O3y~ z*I`{_o?{fDZKI+P6%iO>1cqP`08*U+1OWD3-(!!v6?O$S3C>;2RZO|th&_gb{b;cB z=(R&Vw_s_&LVtBn+#xoIIbwilAPR_3X;3OKm0&CoaSnBfQv^ohXwu@9lvDr-KmcF? z$R=Q^{VqAH4C=CvWjQISSX0 MZZ3a#`01Db0RnqvI{*Lx diff --git a/fonts/SmallFont/ャ.png b/fonts/SmallFont/ャ.png deleted file mode 100644 index 07df11d2934f92d47ca7cfb00f8915182684146b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1168 zcmd^9F^l6y6n>j4v^im1s8BdTRH!gS1QiOXP$3fSq1z}}%jrM~Dil!RfJhWjf(jMl zR)slSDB!{*3W%H!RG6GORG46hVYhH$5))jwP~qajxiG|mEiRDaW%m9?hIup0dwky; z=KGi@7hR)u_ugFqXq`Vedr0=v+c>>L)|)@NzX05Ui%%ZiCr6&8**0aGCL(ei$1n^{ z(-cKX3NMIlmZ#b*SgL5qf+lh}o4uY)ZpP!oXtdAsUBBNX$tH?cL9q1wh3n28r?#xA zVN{wnR@Fk5N0O9_;y@5Go=-V0X4!~gf_A${(;h{+6lGJC1z-T^0C?Ep%MCV5+{|%Z zi*bV*dz+GqdDzz4gSx3es)W?BV_-gJceMe4hDYnGG=y&`OcHD(!PYtuw z^r50GXhPs)S}8~Wq&$Kt2{3IVUY&I#2-X%7C4D-#hw{Dde7E8 zQ*m_J)}%7?^VrS;GxoHeExU$jse&$ZN$Q7@(+e!uH*7~WELk%|Me86&hsN2?_3J{K zCVb&CeVvL#AX;P7;Czlnfk}d%hnj{wj{rx2mjGLU6~F?Z2B-iEfB`@X5CQZ6TmT{& z(QCiQ<-yghak#FSc@29{1_2lyL;}3rN;$G|G)2qvG-}>s^e}3ye b8zt&@ujuQ4zq~pjC^*00J$wGq=a>Hh_y29p diff --git a/fonts/SmallFont/ヤ.png b/fonts/SmallFont/ヤ.png deleted file mode 100644 index e59a42e9d0a99e6beddece64a8172e20e1998788..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1168 zcmd^7F{|WM6h7-i@^<4hMT#t@h!AAZ6e&^!447T>*6cI#vTRm@q=*o4gcK1XrbrPm z#h_E97-Y~00jEeYtW%^IWQriGL>O?8DF&Qkid~#yia{Q@GWzcIgH2qqSy@v+caIr@iGj%AZR^r;ku1&&rGw{ z^@*mHiZYhvLXw7}my{8FaYqd!>4Q9cDP>Ps==cCYpM^0=hG<&`wI=Wz~ zye@N!#7ZJ_JRbM^{cgA0Znx|8dbwP7UDvkld_HfQW;&hLbzN1}csw4BM#JGS&+{zH zk|c?uC=A0O2t3boUDvj4(=-jk&@@d|RausMy`CtF2}aSe-{1NE%Jo{?nVD9l8zWWE zWi^)MKKn&0a@BoNpM6dlG zyAG#QEDDTcbR1Mw;vzyr7NH>=gn*!PfDpjBo_pBhW`SLaO^Oo_3k@^=D&`Imv+FY( zpI*Au6C36x%#0WB#0_GDSRjUoCZdQ4wGNdEBN+xFF=x+^c~xX(o+cw+SV;qr0Ym@} zfHVOs1NRoD1d1zIRZvC{)?xU^v$OXBZon50FCB9AzmCV+-xB$%o1fqRh^S1n*LefJ z|KT=izIAba_tEKhAO8N!O}O*QOLrfC=FNZA{`vOxx6eQAonE~2*C*9`UsBA!FaLJ( YP5;$rZ~iE~K~QjU@ACYocR&8>KZl8F$N&HU diff --git a/fonts/SmallFont/ュ.png b/fonts/SmallFont/ュ.png deleted file mode 100644 index 5805db608a471fdc24e483e77c0ff7cd65bca7b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1166 zcmd^7F^l6y6n>jKPMcE}7lJ56g$fluP(T4eRHzWS*+sWeSRJPW5me|vg$ofBP(XzU zg6O~`4ybTp5(QMa5W!p=P+@`#A8g@(AttzRK!phx;(!YmTU_}vdw(O3c{98>eBT@9 z`@VU6WuD!C|2_bmT|PR0LeJCNJiSBrn?J681-Ju`KYe;ZOOa>!4r5ssA_{`QaU9FC z48tgzD9IgOWI8<9x@@YFAqzO0y`D^N#^b|iv@eQXzu%_mCXQEOxD0}Y=gnQWvF)j8 z)`l_G^-@(wic-k(K$3D%%mg9f`IzIvPN&DRKErqn<1ma3U;+>TJnZn*2HPcW=D2Qf zS>vL_`4F4@^&~xx<9!+KhQW5=t#fCU*^AU_VsjFaacGo*UiezyRWnCPY&kT$K9L+l zv^2p`cva?PsdGFY_xt^Bw`<#Wv)QaxtL1XJSS)6kE@oAKI?C!Isrpfwg~K!$#9kh{X<#S56}hD67`~;s zM0E_M%7Y?t^3Y0rqvxoeDcib4R3XiRD0X|H?FFXe>ZYw4rmPuV#Q4y<+c~)|m1!!L z9@i&KECbaV+ZN|@EK5vN^nEl86h#C$0=xp)0;~WQ01ZG5Py!49GJqJM2jBrv$*5lY zJua6xnP5?19HZl)rcoDB8oDSA<)8!om$|lKX2O)bc_(fW8^i)JL^Kg4M5qm@G#Dz-m#8_rL=iNJQv{Zdcw;3UKmm{d zcmUc2tO)KcOeqxCu&$ttAgsgi_rK3R0XTs#pIkZg>VF+C^nYafRd0Xs=rgJ^%iZP) z{P5#@wE5uj{Ntym-v`g0zjf~}5%0eI?o9aTUvlyCov%J5;%|Tca`FN5?#WO0;K7)^ V{_Dl(-%<=*UR<63{P5Y={{dg8XOI8@ diff --git a/fonts/SmallFont/ユ.png b/fonts/SmallFont/ユ.png deleted file mode 100644 index 62d13dce01e1370d700a5ffab0fe05c88b116ee0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1168 zcmd^7F{|WM6h4oK=DFdSB1Oa$5h4tjB1Mo0DWc}>W}lIlb@L!diYx@2B1MD>Kog&2`Qw*|576u$;iYW%2ViyOTVv1L6CCB^rZ|vcodpYOwedlt& z@2dw_=J}mB?*PF0<^79?1&-zz%Cam(IP zijq}9lo(E+7!GVrG8Ivmc%03iH_gptau|>IMX?(UwrRSK<7F6jL9p<=x$CyJJvGf* z*C(1*D#}=v3rQM^VlD_7&nFxgvuwyPeVXY(Qmc*4CNd_WUItp>s{>cb967P2(Cqn!=;(r_ z^193^5-W+!@p#*aFUb=_jIn9XKw+cr&8*L77@Rb^T3^?ITxCKyG>et+ltE7x1t&eXIj-59BQ zE~~L52V&3R1%u-hh81a=qZV~Bs|M3?Ru@S%h{`M+rNJ=v^3Y8KJMpc^HTsV3TdHd) zjxJYuP$W(sT8Xds9mO*xTN4e1PqQG3-F|3$f$6xKX)C%Zsd^7FK5X61+<08d(^M!u zc3@Dk1Vn4xZgD=xvcxn+-$z|XK|p{bz*B$?z!G2q&;rx|CBP6M1Be0o03HC5jOexB zW7lERU{PQkqvN2e5*HB~vIq^~AOr-R1B3w1?cBo_H*@StY*UH!*jJm|dUQ z`1I1H9@{W8VQRd1CvFg1!~!uyG!aEasCB4R7|AdYi8*_Q%&Q_R^E4Up!b%!|3?Kq< z0Hg_68MwDFB~V8 diff --git a/fonts/SmallFont/ョ.png b/fonts/SmallFont/ョ.png deleted file mode 100644 index c8f363813df785d7360aa63534c116773ddfeb0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1159 zcmd^7F^l6?5T3mY(PqWQg$f;~LIf2q6i|X7Dg-AI?M1gySRJPY5me|vg$or5D4;?F zanXTuxKQE3Bnl|Og#spVp~3_cR9vCLAttzRp~A(57~;ak7FSN*-rvY$<~`mF^UW~d z_u}!Daej9H3;@nAA6+~l@9C|d-X-_VUst~Y+=a)VUq2*Yo~79yWtt`;avaAn3{BG% zMM(-Th&`64dMsF~Xvl&la=2K$p3QEi)5B!4&-2}I*d@s(idI3;`hMfOOUJ1#Yi<~o zrcG6~kmZRa<)SzegpB7?j*D3~Vwj-U8_={zQ7%Q<6lDPz06G93cKB+8U5lF~u4`;7 zYzkbCvCdx4lH)Ym7r}1qZ%6JrvsbCrBxW5MvrwM~TH&j?rwkoAwWZh+1EcThg01nU z!f6sKi;O7rj>qGEzu)b4UDs_ko7HO7wr$fii^Za@>)C8pRaIG*lgVT}9*;(&EX&d~ zjpH~B!ypKJ-*;WtaU9FC48zcMT~$>@Q6x#~_xpk%#2ALh!C>ckYsYOYdv2JerjHdZ zlaxr5e4%f1yw0+6j}d5^rJ5>Vl*9QXt@5}WhD92T6Mq!BS>PnT6?@Ckuw=~;6|IjL9Xe;b)L$0TJmCwM z8R}Fd0^u6F4wp+T3QQ98Jk&Jgc?38DyaLz)tND)nxr!-w6S0S|w;S}f z9=&p?mliAxnCoxm#4Tctm?H*=2BLrnl?J5(V+n==5oceQI7MJ2jwUVMNJ#~d00aOQ zfCK?c9rq?Cq!ib%E};k^sDj|nzt2AdIDxO8T-hY`zdpaH|A=H&?|k{_3&JwZ-1-T8 z|HC~JeDCt&r5=;z5NJL^0GY9$f0dLrOik;NcCSLpi-Kf1{Uk?%|$u&v!2O z`@Vg0ZC>2_=pF!ETs^#eO5*vgpWh+-&2QH~0NjBmkDomtM}ea`hO#UR5qX|xS(c`0 zilSsy5G95aD24-DlT1a_B_0=xcTICMn;oaqLs9HUqg|SA;&>H?eGqh>w{+dsw&$i< z>-tR7N=2E3Umdwh=E#XHh33FFL`N4a zmDgoXkyuG&PN&o1aMRb^Qo3+XKq@RZcJ1? zm(^I3199N+g28bL!-_P`QC(dus?mI!)kRW`qB097X)unxJap5*PJAnJjiICamg*Xc zqsvtu6p53ER^sbJNAXO_)d_fgkT5D?%5@D^YTumb1+T7Vj$1Q-Kk05QN2zylzZ5xx!w z?0ak)EDDTcbR1Mwq9OuAjKB~K0zkTRfDpjBoqOEjc8Pt7ZHhAw3k@^=CgzS2vmY{B zpI*7t8yglT%#HWTcrSRjUoCZdQ4wGNdE6B$M#5$C{=c~xX(o+cySOGyKe0Ym@} zfFuDc0}mFaq!rh&uAqz{ti$k^KQA5uoWa*muN_kQU$5`9za;WiAAI%jbHXys-ufB5 zeDxto@>iFiJUf38{5pcq?*4mmAHID4QK<$G8bnb*g9g#asq&)o6rzAA8WgI*6hT!`L4yXB zYB0fr2p-&40Sz8Bh}IMhrg$(V6b**D#e)Y89#ZPTgNFyrR8H^9-{|F>d${M^^PS86 zzUPmxjEmcMZv()^<-@@f63=h^{1(}-|GfGI;1)do^yvd~gz*iiRv`B8Q8`o4UT9&5qOQA-#I$T{=!{{F|anoR1 z;i|yp1e@$lot$RTp$PU9e>ZkFnY~V}Rbn=gQHT00&#C|MiXur;zuy-GA;vH~4TpQr+c@sZvgd|bYWhUc zGD(R<$rt)I$LlOB_ZWeuS!z|~i*hudrd1x7qp(PWN#c(qHw&D^w_?u>9erqPo~byx zY->`P`FU(-ff;++(3V|8v{XTtxg_<&$QcHf>l?PC8kVdXqN4Q?qhsgnmintgnkRhW zG9#UeL?B#a*Wq%BMS)3zo`;%-JdXe;fY$&!fHlAhpaG}=3V<;{3J?Jd0bBq=8R6@2 zz_!J@#yrO;Lfb|~Au1v;#0U(*AONI00|)@@o4LmhcS~#wY!aNgn5&p_*AaURd;4K; z=h172dS$`FfVuwmow!465Oc%;(LfXsq0*pKU?RatAmZ%n5~m1^#L;BLTPdjk5`X}} z0+1wNspG-KgtX!YHYF4x1XU3H{@2ALfHU~|$(2n?|LgUm`nO2F>fNs%enwcPnHxWY zA70)e$qz3FA3r_+-v46+pS<($#Ru^DGxqGGJHOuh?&q_CKKSOI0586H&;0HEFaII8 O;qt-N;HUe~zWopSYh^)Hj4WcNZL4(@LL3veq3Q<554QkNfL4yiv(4ax3 z8cgw^!GqhXpuvL%)0(2e6c3^Vs=-jVc<`XXLrOfj;NcCK%ISUi8$H}}FXvpo?_BQp zef#*@=-qq&9su;N9u1$6^YS(??~wiGuj^j{?!e>Eo<1Zc&(dt4GEEZ^IgVo(hNfwX zq9lbE#6HVYeHJWLG-N>&Ib5w?FBUiR`Dr#g=J{bf?vi8|MVlaKeZO(twd2&5wKR-M z)8?vL$ns2*a#5TJLdNqc$HgogF-*|!k7(MXD3_vain0I<0385N2Yk81uEpINw>7pE zHU+MySZA*n$$1_fi{LQz_Y-%U*_+gA60?qsMX1jMt?<>{Q^t;*+EQ$ZfiduO!PaZS9y)?{H)2E7- zNlGM2zA&&kUT0ak&j>WlQcabw%JFiRR(V{G!y*l)i9dn{pvnec_n zjCCp!foP3ghwC*K1ttl49%>r$JOZ2nUIOd^HUJGk4Nw6T026=|AOaWxxBx^lqSx_= zZHtQq<~c?Y+BPZ*aS@>*i_j1bLO{?NKmcIh&OLRwUt?Qfo#5QXT*Z{TiP%%vKaBc& zkKQ=c3ky~TEcG|<#64n-m?H*=2BLrnl?J5(QwhcbG3P*+I7MJ2jwU1CSV;wt00aOQ zfHVP19gij^1d3bOmQaKcR6+2^-@Q)(F5s&t*EYHOU&l}CE0KKFJ6}HfoTyAQw|N0S z{CJ-8%TfAy?5 Q5&&F1ydM7i$rs=J2ZNPpQ2+n{ diff --git a/fonts/SmallFont/ル.png b/fonts/SmallFont/ル.png deleted file mode 100644 index 14c98f41c0927859313a57d0a90f0601ee49020f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1168 zcmd^7F{|5F6h4nP=;eurS~RFsg9Z%_(V#(t1`TSemnyF+Paz73qCo{wJP4|S3K}#B zs=*1SXfV_?DroSaf|`2JV1fq|0yV*qcWIuTes~H1XBT(R@00W7I!}(te)Y%YQ-EW*_t}Fxq!c)sV<^kA5RvD3mSt(0 zrYK5Q1yN!+fnqqYHOW*&UE*;vdDApkqtSji+!e*P*W0A&DvlRnI1hrE=S^L=we7KK z*1A5@v{F%qvRp_~Uleme$ap^CxR_-_hUwC@Pf;F4ITU3Bm;eRXgOO_Lr*@vaQFgJ9kFmbtUY>{)8HvDrk%DAdb9D}1%*Dw!iEwiKEj-w+*L zuvA``IYnY6kvSX=yWMWP-EKCU)oQg^Eavn1Y&M%rCT-g`O;gu(RaL{`a4;D3`~5u6 zvn)%JB#NRi41*x>JkNDq+qO;9Gz>%2G*wk)S?+W?q9`U9MTc&8>-$UBo7v9Tv?|>g zsCq7|u_Om#$KeHo;}nJ!X_}*Ebup=W<6%}8N!5$WEF7dkKlbv_O#?get;jXHj_zBk zYbcH`S9wq*P99o`uXi2AGbLLS4TVp$Ad1~?XnTR_xSDAzx+$r82Ql7n-1XFWUdrQC zC_T1kP_YC=Yus#bI>oZYG)3P>T}MGcfCIowfHlAZUg27!;HU*xqZZJ zyUg0B7cTYOhKUJdlo5n=82${&5m1*`m zkKpl-ACTs)i}TwLPJZ~Z|LlGE=)Gq@-Fzaw{`v6wM*iE2?=RjSKfHbV-HXTje}4V* a?a{4&nXmr(B!5LvaB=7I{Fjfv`1U_o;&9vm diff --git a/fonts/SmallFont/レ.png b/fonts/SmallFont/レ.png deleted file mode 100644 index a7b7d06a2e4a470d4e0921f37b75837c67286b3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1165 zcmd^7F{|WM6h4oY&2zJl6e+T9iijyjNRc8%kQ8yvTk@Wfmu2%HNQww4Qly9wAw`NT zrWj?42vZCiA-hZwB8pKL$sIYhrO530hUn;m zrSiJWDH1D*%<*{K@AtdiZoA#C*X!kSxmYab^Z9f-?YgdQ+ooyix*m;2!{Kl+7!*a3 z=Xsi@aU4fc6a<0id9Lf)wr!fGVHldGsj4c=a&A_37Fw_BXeu&OZ2(DzZ-Q4kQ|2=EGE1F!^`19SilKm{-W$N>_75WoWyTMi9%GkP+=}ERG8qxfh|-R;sgg=xKME+hPZIC#g&t{_c!vGdBdA|^UdRZ z-}g_h%=7zi-v@y6%SRVaNj$srvwLK}{qyQqfP3)d@w12IC~!2#P?lvOBG2Sdr6zB+J~%#jmY3eBExh>k8; zDzD3&BC(Rl9FNESe&2Q7ZnxWPHmlXDZQJE?IiJs)rkPHsbzN6gH6D*gqtS3U%=0|U zvLs2OCh5RaKVdUau#LVuDe0?Dsq0U%TGYc4nqk>BdOa zb6JfgIS_jeFBlxBFsw+^9JQ>Ac{P}gv${yCK~!epC=G_Omxpc|*okjNuF-dN-%?#e zadf%LgCcSA&`Ny0? zk8O+7DHa9BF***aDp3)EAx2;b1_2=5IY0>D+|51gaJ#^^#3sdwhlPe2e;ad$i0S&w z)~8o4bz{TagqiXBow!A85DUZ*(L@vxq1K^NVI;#qB;xEDGOvoP%+qAVYbj{}GJpuc z0gxnMW#Hbzl(ga+))kZygmoDH{`dLE04MO}(<_IR{@3e;_K!rq>dh}6eM(rS**iah zAAfp_B;UEb`0&};55e`fZ=8Pp?)4uXoIW`Hj`{q(_y3(d|Lw02PT-RpmJ&bv`73f6 OE+1Z9{PNNDH~#^zYGt?p diff --git a/fonts/SmallFont/ワ.png b/fonts/SmallFont/ワ.png deleted file mode 100644 index 15ae7eb2226f3829884564ba4f1bc8810250f077..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1167 zcmd^7F{|5F6h4m(dX4%JL4!&)2&#e!qG%9QgIYwR7nD~ePiYiTiv|@mc+jAN0va@k zMuT~H(BQ%3DWJgx4Qk>+1yekjkiir~P2$0Wp&nA|!Gni4q}%Cz`5Qglb1&yyzVBS_ z_gy?ZH&1SUdJ_On&hDK)BIogS9^WAQ)tmF*0dBy<`;YIEQs8Kgp)AWnM4snamZfQ$ zq9|DvM2X=9is8W4BvTP}iO0$0ebZcxM*HD#R}|Y`Z-tF3N<|sUav@25QOpG)bb1Ok{pN~hZhWvQy5mHX^xuJ#iZ(uhgn@DRWB;DaF7Q5*vmsV4eZ3XBG>3Tx^Jnj zp*Xr+&^bT|;9Sq$Z*V=ud5LX`BM%D=GyW>(_7St~ zGHah+xYTPKCMJxH5AVb^VvATHhKMGjhzPX~l?nqHdLl7r$B=ndWM!TvBR*J31CRkk z01kjO0V@M{7N!J>OITJ=MiACv_~+jz-vS)LlSk(cx%ywn3+*3?eAP!k-TQ&4OtaT{ z1eec0Am~r4p5HrrNaD$rpIj&V<)0V70$hg&Up%@?jsiz>3}smsBJw=XvMf#0 z6h+CZAW94;Pz(pQCYg$;OFYi!Z>H1B$>cB|?~7tL7<6g6iQ`omwn4D;yoKvFwmmb= zTGuCuxoL%z;%Od zjmr`jBW&_F)ATrr_hq;n1>2#w&Ye|eFH@_D&1qyzLcI*M!dC~bk~wl>OQG5G4bjmB zOXYQ$QzTXrnd9-e-|u(3UDtJ+&1SV)wQajxF6Z-k(=^lRw65!_s>b8-XfzrQhk2f7 zS(YS86h&be20`F?p6j}{ZJVZP7>1^4s;bJe-0Ss3QA{w3j{W}5_t&nsw4Ir0Rk|@! z^;}kCNe;xG!wUw-DGV#pG)FD#VqOhqmZTO135%3ZG^{6ubS<_5#y!HPcpfQ&ROFVtnY_?ZS9j%Cl4` zJ$7JFu>^!`>^fX5uq-i6(f3i;Q4kQ|2=E$U3$OxM0yF?MKnXAe$N*x1K7a>6C?kCB z_t>^Lonld79HZl)suC3u7-9s5U=RS(odbjb&ehyQhua0VB{nHeJS;TK_{*3(M9i+w zY<+s=QZH?on=mupz7w~I4Pt>9BASRIBGfumDvV?ph(w${L*`YHm3f+scq=6hKn4&2 zH~^9atPI>+n37gp!@7bpg0K$5-~T?n4{!~>d3fQF(*Jt>toCO+2Z@u~pe*EChC(qu47f;`P_2ow& ReoU^z`Q3}NUp{;M-G7o9W|sf} diff --git a/fonts/SmallFont/ン.png b/fonts/SmallFont/ン.png deleted file mode 100644 index 161a9680454ef6c016ea7e0aa31ee08e77d41587..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1170 zcmd^7F{|5F6h7t+dX4hXph0aks33|5rBOkHC>lhomnyFcPvI#bf(8{dc+jAN3K}#B zB7!L%G`L_=6*PEIL8KlunBu{d6kO_3Qw;TBiVG<<)PsjNWb5gD`5Qglb1&yyzVBS_ z_kH>3(mcC$=N15*T|79yBIoH%o}Q5X`nSvP0Z!o2!^ihYDR4B$P?lvOBG2)m zS(YS86h&be20`F?p6j}{ZJVZP7>1^4s;bJe-0gNnQA{w3j=kQ__gAhrx1EV;Rk|@$ z^;}kCNe;xW!wUw-DGV#pG)K+rVp{blqpU8HsvnhEI81{UNRO135%3ZG^{6uZ69_5#y!HPcpfQ&ROVVtm-To0;*llqacB zdTigIVhM=WxZUDxhGmIqioTD!j)H&yM}SuV8-OLi9H0fL0ZM=YKn4&4^Z+~nA{o(Z zzsJP_n+A&l;}{(WRh77i(2zxF2nQh`=o}yfaBk)vwz!$$qQo}Ev4@3*8Gjvfhlttr zn2k>_UFxL`Qxhh}n|I;{u|+HpLqro%M1)$0N`;{eeUX^6YskDRvNBJT5pS%d0muL% z00%&tfR%xJ3sVBc6|5>KBM9p-{PnN1PXRjc#nq)luKw5YLi<}HU-j1K51tT}Y4#>N z@bx!uljhxv^N${%K7W7kLkB*%-Fg1gKcC#as;qmR_a46M{qppkC*S@q{H#4o?|r!b a_vFW~ZvXk>S?~wJ!NvW{^Y1?X?CF1P=4_k* diff --git a/fonts/SmallFont/・.png b/fonts/SmallFont/・.png deleted file mode 100644 index 385e91aaf1e8cac8477b7e20536a20e6ee2acce2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 345 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-G$+Qd;gjJKpuOE zr>`sf18xx!9kcoKw*nP2Bzn3yhIkxLPLN<-oFEdwYVdesaq5Yrfb@!kA12x?ek)OC zcqe7YnG1&xbofgO`$-D2X|lPog|R8Km3`vbaiU<#L+iupZHsyAKS(y5uTUO_QmvAUQh^kMk%6I^uA!l>kwJ)& zft9I=m8qGofvJ^&fo;gSA`}g|`6-!cm1r7FfEr978l)t4r~@@Hc)I$ztaD0e0sv$; BVk`gv diff --git a/fonts/SmallFont/ー.png b/fonts/SmallFont/ー.png deleted file mode 100644 index a7d11d6af30a2d4820abab9e7341529a5c4c3e8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1154 zcmd^7F{`9j6h1E-;>(kVg#?$FU|}(Zg(MaRgh2xxgjK||V&$BE` zk|c_vFbsnr@I23TUE8)z(=-f2(==68Wmz5!2BIh?7)7VyaPRvY*IU`n+_Wm)n5cR# ztFa^p;=thrgX0v26=|BIR&}wcM)PS_7fCgW$}F6u!8rEv&`kq7@vX=;hK}xAs%t2Y zE?0R_Bu*Y$iLVbG#WN*a6Agt=vmlDyVQ71S>A0F{E4nGE`T#LL_U>+Jye{Q=DwG~O zGN@Pr!Zr3iE|*xAn5O9asOu;Q2yg;;1F!>F1FQgAfEu6#7z1PgF~AVO10a+Uz77ZM zI&2y&3XEfP98^`JA_7BG`k0v!CAk;0r^zxc{&E{Kc0K-giFx|x*l diff --git a/fonts/SmallFont/世.png b/fonts/SmallFont/世.png deleted file mode 100644 index 9f005796d52a90e03ffcf29c4cde7259eec15b1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 247 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UOiAAEE)4(M`_JqL@;D1TB8wRq zxP?KOkzv*x37{Z*iKnkC`vY!KW>w)OJskglLLHtijv*e$--ev#I-tN~y!8M7(|279 zR?O{`V@qb`pQcuOBjQy4PFLG<|DHs%hE36rHisTKH77&mbAq43H3q2`Db}^Ej1$f- z2xVF;n!ITZ=c#TMKfSMRtWOMlPnh48Ts~d5Qr9|GrMl(OAJGM?14GoeE$x}7;1Qvo o)ynWnV7rObukBSo)awrDm1M}6oPOf52k4UOiAAEE)4(M`_JqL@;D1TB8wRq zxP?KOkzv*x37{Z*iKnkC`vY!KW>o{W*Ofg$p%zaU#}JR>PeUB}4k&OeZu?)qbN8DB zu|}<%sgFBy6$1=^*Ibyv?B=M?tR(xJY0v$c$?lHlt9e*g@QZNDI+ZCpI964C6*!Ra zq<>HLh8^iA)DC&a9iKRL<2=USvQI>(bC+#o_`W?r!ecl4Tiq#NMH?Tk4UOiAAEE)4(M`_JqL@;D1TB8wRq zxP?KOkzv*x37{Z*iKnkC`vY!KW;Gql<7Ge*h9#aZjv*e$kA`>(9ai9(Eb;Gu>ep+W z0qZlP<{KUSq{aPXyCA~?v8r!C%=L0^9P<&QAQ4?Cn0Qu)O!N zwap6OhW-!%-O2s;Tcm6*oMZlaeMQ|%V@r+5=DB(uZUvFsC(J%xq8e(W;-7 zX2*km_Ix=YW{{d(Rp4f`qiL$>U%^vrYGz$jI5%^q#{Hc}aeLUe%YAj$tzw+ct!X6j R(>)2~U{6;+mvv4FO#o)iXR`nR diff --git a/fonts/SmallFont/奥.png b/fonts/SmallFont/奥.png deleted file mode 100644 index c012c59c565ea81708b0425f81f63bd82cc1bfcf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 275 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UOiAAEE)4(M`_JqL@;D1TB8wRq zxP?KOkzv*x37{Z*iKnkC`vY!KW_9`bJZj-Up(UO!jv*e$--Z|p9Z=vfp7Z~I(XNse zQYLYG{Zd&P1)7%r*=8no?$8Ul-(~5?q8ma(o-s>G&(V2N=*HAHiTC09lQkk1Zs*iw z942(#?iOWQ#w{vw$j|>#X|v0Us>Bk<1cXYD1MZ$E`#@jlyCU3)Q6JyNBg@zrWjD|8j#+`rormvtP2mVe$yo)%$<% RTL{p-44$rjF6*2UngD2yVgUdE diff --git a/fonts/SmallFont/山.png b/fonts/SmallFont/山.png deleted file mode 100644 index 82903a710687e8e32e8d94851cc0d92c66b5b097..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 227 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UOiAAEE)4(M`_JqL@;D1TB8wRq zxP?KOkzv*x37{Z*iKnkC`vY!KW_44S?e80bLM5Iqjv*e$pH4l<*Py`Tta61)vv)uLh?6=@{{-Y)Gmj$Kmy+rIn TZW+h{?Pu_G^>bP0l+XkKx{gfD diff --git a/fonts/SmallFont/常.png b/fonts/SmallFont/常.png deleted file mode 100644 index 1f652fb64ad662b9a3202c355bb8110c4a179f9c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 292 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UOiAAEE)4(M`_JqL@;D1TB8wRq zxP?KOkzv*x37{Z*iKnkC`vY!KW(}2<^DplK3T^dtaSZV|zBbfRsKtOI+vv~#({B<> zUB#j`iV9N{R2-sv*1!CCbcauV{b3g=dzk|-I~kny4xZ}!VRdBlo8n&2B_GNYAqi|&(S zdRkuIGEa)E_bM`eyEXY}W2|56=F^MR7?;joVd+*|$baL;(fe{4im|mO=6&aL_vi?? knoH@0rUWar>mdKI;Vst0OUPyAOHXW diff --git a/fonts/SmallFont/我.png b/fonts/SmallFont/我.png deleted file mode 100644 index 5127a1f6167d0e6df8e4a1fb92e3df553220f9ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 283 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UOiAAEE)4(M`_JqL@;D1TB8wRq zxP?KOkzv*x37{Z*iKnkC`vY!KW=+0qdu?r?&>Bw{#}JR>XQv(%VpimE?tJ|J|EJeW z=iXe|F){8{?odlQT_3QYXRX<}j8#c#ihOU1f940ZUcQ}n_m^Cp&GoJGMZCan zu4noWesgtIzf8K?w*R8n&1uRDgZW>4owhz$i>*p0;AI2z=Mbku6MKKpdAhyyM&(WO zz*cUV%GuB4Z`UbYXScGNP|R3se_+#=)U+Pk4UOiAAEE)4(M`_JqL@;D1TB8wRq zxP?KOkzv*x37{Z*iKnkC`vY!KW-Z>E(wZP+4tcsbhIkx58yd)WRDol0%kTJ^e|H?^ zO#1p%^>MZ{`%)3LPvW1iOs{mE%aG92Br4KAan6Kad;Zy7R1kRc z@ZuLOjXQ}m3Y4Y9`A&nhH%s`SiwvrEt4GASM~bqX@PV*vCGgQu&X%Q~loCIG6ObrApn diff --git a/fonts/SmallFont/日.png b/fonts/SmallFont/日.png deleted file mode 100644 index 8f59713de0cd87934ee14bfc5d424188baff8ddc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 222 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UOiAAEE)4(M`_JqL@;D1TB8wRq zxP?KOkzv*x37{Z*iKnkC`vY!KW-Vpbvnq3eLiwI9jv*e$-v&o>9Z=xOKJq)>^0)LM zoo}Y65`G3vH1Um^$X2lT%=5|o%G&Ao)Mq?h9CEPZws|Hj-iEh^^O~Q$JAXpu zf&u#ljt~2o!nQOBGj1+^Aop07aq;e>GnkL=UJ$xyF2g;xYg$v}=O1OA`dh#z<7TZa P&}s%xS3j3^P6k4UOiAAEE)4(M`_JqL@;D1TB8wRq zxP?KOkzv*x37{Z*iKnkC`vY!KW^HcGZ$nP=9Z=v{eB}TCr|(P_ z&*W)2bJ;@Zx4MF9A(^OXdNgX$0B7BIj`Xl&{Yhcu6{1-oD!M<0rXiW diff --git a/fonts/SmallFont/浅.png b/fonts/SmallFont/浅.png deleted file mode 100644 index 50c695a0e93907a1ebe2b9b5285a3673653b2282..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 293 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UOiAAEE)4(M`_JqL@;D1TB8wRq zxP?KOkzv*x37{Z*iKnkC`vY!KW^JpAy?bSVLfbrD978;gUk!2OV^QSTobvDg(|3iE zxuRv0J&(=iVD(DvInKA$auRcWQ20V_DJ0SRZH^E*(w(>=qdYo z%v1_%4sWk4UOiAAEE)4(M`_JqL@;D1TB8wRq zxP?KOkzv*x37{Z*iKnkC`vY!KW*sdpZ)=dc#hxyXAs)x~h8`4aP~a%G`Tu|V^|d;| zW^bSBHZwB2YtENlxAQ1(lbwx~GSA(KsSQ(uoczRHcb$7wZcw_NJ9JC)U*+fb8D~Ts zp5wQsph5EN#^8Fk4cF&AjB#LIAhm7Q&A`VE)iM`89xf``Q|z$aI&oL|%fmSpi?+(m!eh5Jl4d-K9i7oXjr`OZ}G6jQSy`?lZuugxvlQ!g57P7~NP Q2k2Y|Pgg&ebxsLQ0BX==i2wiq diff --git a/fonts/SmallFont/色.png b/fonts/SmallFont/色.png deleted file mode 100644 index 2401f892041fdbda2d2bfc40658069464015a3e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 246 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UOiAAEE)4(M`_JqL@;D1TB8wRq zxP?KOkzv*x37{Z*iKnkC`vY!KW?ku|KCUA`p>|If#}JR>Z>L!E9WdZ&o%}nXrJPpTjS<&GC41p7XvR2OOpym?-&TMa41mh?WDtcWo51 zxzQN#R3Tf9+eOOo#>&ga&kF9wIxd$j`68sZQTM4@V;-kl;05WXGX5`>Ef;sHbY)H0 ozvauBLs!3?jNV_h-nW{;E>+5Ofw%u(ppzIpUHx3vIVCg!0I8l>pa1{> diff --git a/fonts/SmallFont/見.png b/fonts/SmallFont/見.png deleted file mode 100644 index 102241e7c3bd9778ab439e9f08d1014e1d533cca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 247 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UOiAAEE)4(M`_JqL@;D1TB8wRq zxP?KOkzv*x37{Z*iKnkC`vY!KW?jqe@4OX&LLHtijv*e$uTC};Vo>B@ZhiPa{#>b; zmc#|^CB-v1I<;w&{NT!%WK!z)#l3@)|8e#0=kL8)78&qol`;+08;T)ssI20 diff --git a/fonts/SmallFont/越.png b/fonts/SmallFont/越.png deleted file mode 100644 index fd56f296ba6cc87628dc124656ecab2d073b8390..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 302 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UOiAAEE)4(M`_JqL@;D1TB8wRq zxP?KOkzv*x37{Z*iKnkC`vY!KW0h4y>8IEHu}zZ&Yuci4dAu;Bmyo62YI zQezYjduyP#R)pzTLejTM#&tFYpIc|n6t@&VP%S0? zQ*olH)X^FLB^#A|W~uMBGn+2SAMxP=>!J-$b9BT5x0pCKe6xA9J8;`&v!I4$j~1}( zVV7%P@=+|~QoFux635(=P;vOSbP0l+XkKK9_L= diff --git a/fonts/SmallFont/酔.png b/fonts/SmallFont/酔.png deleted file mode 100644 index 3b1f4ebec42c6c8c2871eb50ea82b873328262d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 290 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UOiAAEE)4(M`_JqL@;D1TB8wRq zxP?KOkzv*x37{Z*iKnkC`vY!KW_>w@OLI;Fg*JP-IEHu}KO15xbi{z8TjJmU)TJI> zN7*@+M|$-iaN=0^I(dPM!SSDFOHVc^Irr($m^5*l(L#mG$9J`uR~_SeeW^ua7k|tf z_Pz-mxewF=?suOFWjwLeBI^L>u_Ze5!@XM;CzX2FJKt#OsBrzhq+aD$LMorny7avp zxBcaxWxKZ0-eT6x)2>eSTx$y|Yt6rXYSP;FW`bct)sG2V4;1r8#LK(7%rOoK{&=>N iSH9zSqI&KB@HSC>yn{DAn`*IP zijq}9lo(E+7!GVrG8Ivmcw8>u&gXAtv*UDnD2jeG>e6%{$J;R61i{+#R<7IF_QEu4 zU7u-MsVGxfE+lCzin$9wbD8qgdv}13VJKM}&r&bf2^T?QmdKqYiuZ~r_0mio!4qg23}U*L7{%Hcito3{BHiRh4CVFc^rUm|zs0hQr?Xcdoa#orP&tx-n7p zTvlUA4#a`O3kJt23@g$!N3H8(S&bIctS*vj6qQ*xNrQ3h<)NDfcH&!+YYZLTw^Y|q z99^#Rph%oNv=Uz*I*MmXwk8@1pJqW6yTj1-0@HCd(^hm-QuP61eC*tIWxOioMJkjY zJ2I$P0>U+R9j;bbmYAmK`>5+E2ncWjcn#13Yys8)4L}W00*nDNfEZv1-~kZI2w#T- zZZ+ZAp~Y*L(gSZJ8>Z({BkG5wHf zeR}IsuWVSFurS`g6I;Xvu|NzFO+*n9Y8@&SCNhjfBF=#!^Qy?oJWWQtmy!k`1Bd_| z07(K?1|BR-Nh|JPS3wy;Scl;se_uQTxC76g+&HB4zg{o2eS)2g5}8brB+2MroDXwV>9y`a1*JcTGl6b&jU;6Z~5DrnFk zQVphf(BQ$eDrj&)gK0cy@ZiBiNY!Gf10FnR@Q_ju9z3Lwt*1Bn8@-%!5BHpVzH_-tpFN=2E-av@10LUK{e1R>%1nB&4;Z@{uX!*~qiFpLdg0vG^z+~eylb}ep~xM{Gh zaaH1Sj7|P_mY$~Zp$zxqU^ntMxwFpfRcbY{Ig5;GsF#6O`0CJAGDl8qDKz`OK^$GQ zR6&<{MdBpVJDpC4!(qSQcU`yLZrAH|+qSFKYOz=}O*5O#>bkC~YBHIO$K%mxl;?St zWl54mQ51$@5Cop*xvp#5wrQG%VQ8ABs;Vr@{eGVil3)~_27|rtZ(MI>J9E>jbYraQ zxva*L9FV>vhz8FqJ&v#}&#dZVQ4QyltS*vj7?oK#PJ>bG<)NDfcH&!+YYZISw^Y|q z99^#Rph%oNv=Uz*IErUVwnhv^NV6b{-9c!3f$6xKX)C%Zsd^tVK6dVIX}l=qc`BA3 zH#C@70?IXZ9WIwxmYAmK`>5+EiU@E5cnz=vSOcs88h{$01Q-Ei05QM-zyqL^QN9ib zY+IbouqZH&(Q!~!sfs8JH3~y9C;;uw0YU)h-P~h`yCt?IHYrX$EHuo7H!**Vdiz0d z=d){0N*OX{ zr=RcA1DXS Me{=Qxi*LUF4 +#include + #define Lth_GenFind(hashexpr) \ Lth_HashMapElem *elem = Lth_HashFindItr(map, (hashexpr)); \ if(elem == NULL) return NULL; \ @@ -24,14 +27,14 @@ #define Lth_HashMapFind(map, expr) \ _Generic((expr)+0, \ - __str: Lth_HashMapFind_str, \ - char *: Lth_HashMapFind_char, \ - char const *: Lth_HashMapFind_char, \ - wchar_t *: Lth_HashMapFind_wchar, \ - wchar_t const *: Lth_HashMapFind_wchar, \ - size_t: Lth_HashMapFind_hash, \ - wchar_t: Lth_HashMapFind_hash, \ - int: Lth_HashMapFind_hash)((map), (expr)) + char __str_ars const *: Lth_HashMapFind_str, \ + char *: Lth_HashMapFind_char, \ + char const *: Lth_HashMapFind_char, \ + wchar_t *: Lth_HashMapFind_wchar, \ + wchar_t const *: Lth_HashMapFind_wchar, \ + size_t: Lth_HashMapFind_hash, \ + wchar_t: Lth_HashMapFind_hash, \ + int: Lth_HashMapFind_hash)((map), (expr)) // Type Definitions ----------------------------------------------------------| @@ -141,7 +144,8 @@ static inline void *Lth_HashMapFind_char(Lth_HashMap *map, char const *key) // // Lth_HashMapFind_str // -static inline void *Lth_HashMapFind_str(Lth_HashMap *map, __str key) +static inline void *Lth_HashMapFind_str(Lth_HashMap *map, + char __str_ars const *key) { Lth_GenFind(Lth_Hash_str(key)); } diff --git a/lithos_c/lithos3/inc/Lth_linklist.h b/lithos_c/inc/Lth_linklist.h similarity index 95% rename from lithos_c/lithos3/inc/Lth_linklist.h rename to lithos_c/inc/Lth_linklist.h index 3cac0b2..cb23d1e 100644 --- a/lithos_c/lithos3/inc/Lth_linklist.h +++ b/lithos_c/inc/Lth_linklist.h @@ -1,8 +1,8 @@ //----------------------------------------------------------------------------- // -// Copyright © 2016 Project Golan +// Copyright © 2016-2017 Project Golan // -// See "LICENSE" for more information. +// See "LICENSE.lithos3" for more information. // //----------------------------------------------------------------------------- // @@ -16,22 +16,26 @@ #define Lth_ListForEach(tmpv, lst) \ for(Lth_LinkList *list = (lst); list; list = list->next) \ __with(tmpv = list->owner;) + #define Lth_ListFor(tmpv, lst) \ for(Lth_LinkList *list = (lst); list;) \ __with(Lth_LinkList *next = list->next, **prev = list->prev; \ tmpv = list->owner;) + #define Lth_ListInsert(list, object, head) \ (void) \ ( \ Lth_ListLink((list), (head)), \ (list)->owner = object \ ) + #define Lth_ListInsertTail(list, object, head, tail) \ (void) \ ( \ Lth_ListLinkTail((list), (head), (tail)), \ (list)->owner = object \ ) + #define Lth_ListMove(list, head) \ (void) \ ( \ diff --git a/lithos_c/lithos3/inc/Lth_manifest.h b/lithos_c/inc/Lth_manifest.h similarity index 81% rename from lithos_c/lithos3/inc/Lth_manifest.h rename to lithos_c/inc/Lth_manifest.h index f70c334..7afee83 100644 --- a/lithos_c/lithos3/inc/Lth_manifest.h +++ b/lithos_c/inc/Lth_manifest.h @@ -1,8 +1,8 @@ //----------------------------------------------------------------------------- // -// Copyright © 2016 Project Golan +// Copyright © 2016-2017 Project Golan // -// See "LICENSE" for more information. +// See "LICENSE.lithos3" for more information. // //----------------------------------------------------------------------------- // @@ -13,6 +13,12 @@ #ifndef lithos3__Lth_manifest_h #define lithos3__Lth_manifest_h +#include "Lth_types.h" +#include "Lth_hashmap.h" + +#include +#include + #define Lth_ManifestNew(...) \ ((Lth_Manifest[]){ \ __VA_ARGS__, \ @@ -22,7 +28,7 @@ #define Lth_Resource(name, val) \ _Generic((val)+0, \ int: Lth_ManifestNew_Integ, \ - _Accum: Lth_ManifestNew_Fixed, \ + accum: Lth_ManifestNew_Fixed, \ char *: Lth_ManifestNew_Strng, \ char const *: Lth_ManifestNew_Strng)((name), (val)) @@ -45,13 +51,14 @@ typedef enum Lth_ResourceType // typedef struct Lth_Manifest { - int type; + int type; size_t keyhash; + union { - int integ; - _Accum fixed; - char *strng; + int integ; + accum fxval; + char *strng; }; } Lth_Manifest; @@ -61,7 +68,7 @@ typedef struct Lth_Manifest typedef struct Lth_ResourceMap { Lth_Vector(int) vecInteg; - Lth_Vector(_Accum) vecFixed; + Lth_Vector(accum) vecFixed; Lth_Vector(char *) vecStrng; Lth_HashMap map; } Lth_ResourceMap; @@ -75,7 +82,7 @@ Lth_ScriptCall Lth_ResourceMap *Lth_ManifestLoad_extern(char const *fname); Lth_ScriptCall Lth_ResourceMap *Lth_ManifestLoad_static(Lth_Manifest *manifest); Lth_Manifest Lth_ManifestNew_Integ(char const *key, int value); -Lth_Manifest Lth_ManifestNew_Fixed(char const *key, _Accum value); +Lth_Manifest Lth_ManifestNew_Fixed(char const *key, accum value); Lth_Manifest Lth_ManifestNew_Strng(char const *key, char const *value); #endif//lithos3__Lth_manifest_h diff --git a/lithos_c/lithos3/inc/Lth_stdlib.h b/lithos_c/inc/Lth_stdlib.h similarity index 82% rename from lithos_c/lithos3/inc/Lth_stdlib.h rename to lithos_c/inc/Lth_stdlib.h index 232a891..0616776 100644 --- a/lithos_c/lithos3/inc/Lth_stdlib.h +++ b/lithos_c/inc/Lth_stdlib.h @@ -1,8 +1,8 @@ //----------------------------------------------------------------------------- // -// Copyright © 2016 Project Golan +// Copyright © 2016-2017 Project Golan // -// See "LICENSE" for more information. +// See "LICENSE.lithos3" for more information. // //----------------------------------------------------------------------------- // @@ -13,6 +13,14 @@ #ifndef lithos3__Lth_stdlib_h #define lithos3__Lth_stdlib_h +#include "Lth_types.h" + +#include +#include +#include +#include +#include + #define Lth_isidenti(c) \ (isalnum(c) || c == '_' || c == '$' || c == '\'' || c > 0x80) @@ -42,8 +50,8 @@ wchar_t *Lth_wcsdupstr(char const *s); size_t Lth_mbslen(char const *s); // accum -int Lth_ceilk(_Accum n); -_Accum Lth_fractk(_Accum n); +int Lth_ceilk(accum n); +accum Lth_fractk(accum n); // Print void Lth_PrintString(char const *s); diff --git a/lithos_c/lithos3/inc/Lth_token.h b/lithos_c/inc/Lth_token.h similarity index 93% rename from lithos_c/lithos3/inc/Lth_token.h rename to lithos_c/inc/Lth_token.h index b622b17..e4e8960 100644 --- a/lithos_c/lithos3/inc/Lth_token.h +++ b/lithos_c/inc/Lth_token.h @@ -1,8 +1,8 @@ //----------------------------------------------------------------------------- // -// Copyright © 2016 Project Golan +// Copyright © 2016-2017 Project Golan // -// See "LICENSE" for more information. +// See "LICENSE.lithos3" for more information. // //----------------------------------------------------------------------------- // @@ -37,6 +37,8 @@ Lth_X(LnEnd ) // \n #elif !defined(lithos3__Lth_token_h) #define lithos3__Lth_token_h +#include + #define Lth_TokenSet(out, tok) \ ((out)->str = NULL, (out)->type = Lth_TOK_##tok) diff --git a/lithos_c/lithos3/inc/Lth_tokenstream.h b/lithos_c/inc/Lth_tokenstream.h similarity index 81% rename from lithos_c/lithos3/inc/Lth_tokenstream.h rename to lithos_c/inc/Lth_tokenstream.h index 15d6188..ee24770 100644 --- a/lithos_c/lithos3/inc/Lth_tokenstream.h +++ b/lithos_c/inc/Lth_tokenstream.h @@ -1,8 +1,8 @@ //----------------------------------------------------------------------------- // -// Copyright © 2016 Project Golan +// Copyright © 2016-2017 Project Golan // -// See "LICENSE" for more information. +// See "LICENSE.lithos3" for more information. // //----------------------------------------------------------------------------- // @@ -13,6 +13,10 @@ #ifndef lithos3__Lth_tokenstream_h #define lithos3__Lth_tokenstream_h +#include "Lth_token.h" + +#include + // Type Definitions ----------------------------------------------------------| @@ -25,8 +29,8 @@ // filled // // read-write -// skipeol: Skip line end tokens. -// skipspc: Skip whitespace tokens. +// skipeol: Skip line end tokens. Defaults to true. +// skipspc: Skip whitespace tokens. Defaults to true. // typedef struct Lth_TokenStream { diff --git a/lithos_c/lithos3/inc/Lth_types.h b/lithos_c/inc/Lth_types.h similarity index 83% rename from lithos_c/lithos3/inc/Lth_types.h rename to lithos_c/inc/Lth_types.h index 2849cde..ae035b5 100644 --- a/lithos_c/lithos3/inc/Lth_types.h +++ b/lithos_c/inc/Lth_types.h @@ -1,12 +1,12 @@ //----------------------------------------------------------------------------- // -// Copyright © 2016 Project Golan +// Copyright © 2016-2017 Project Golan // -// See "LICENSE" for more information. +// See "LICENSE.lithos3" for more information. // //----------------------------------------------------------------------------- // -// Basic type handling. +// Basic types and convenience macros. // //----------------------------------------------------------------------------- @@ -17,7 +17,7 @@ #define Lth_OptArgs(n) [[__optional_args(n)]] #define Lth_Inherits(name) [[__anonymous]] name _super -#define Lth_Mixin(name) [[__anonymous]] name _##name +#define Lth_Mixin(name) [[__anonymous]] name _##name #define Lth_Vector(type) struct { type *data; size_t size, bufsz; } #define Lth_VectorForEach(type, vec) \ @@ -38,17 +38,6 @@ typedef int Lth_HID; typedef char __str_ars const Lth__strchar; -// -// Lth_Signal -// -typedef enum Lth_Signal -{ -#define Lth_X(sig, name, ret, ...) \ - Lth_##sig, -#include "Lth_callback.h" - Lth_SIGMAX -} Lth_Signal; - // // Lth_Rect // diff --git a/lithos_c/lithos3/Makefile b/lithos_c/lithos3/Makefile deleted file mode 100644 index 3f195bc..0000000 --- a/lithos_c/lithos3/Makefile +++ /dev/null @@ -1,102 +0,0 @@ -##----------------------------------------------------------------------------- -## -## Copyright © 2016 Project Golan -## -## See "LICENSE" for more information. -## -##----------------------------------------------------------------------------- -## -## Main Makefile. -## -##----------------------------------------------------------------------------- - -## -## Definitions -## - -## Compiler - -CC=gdcc-cc -LD=gdcc-ld -MAKELIB=gdcc-makelib - -## Directories - -BIN=../../acs -SRC=src -INC=inc -IR=../bin - -## Compiler flags - -TARGET=--bc-target=ZDoom -LFLAGS=$(TARGET) --bc-zdacs-init-delay --bc-zdacs-chunk-STRE -CFLAGS=$(TARGET) -iinc -ALLOCMIN=--alloc-min Sta "" - -## Sources - -SOURCES= \ - $(SRC)/context.c \ - $(SRC)/control.c \ - $(SRC)/draw.c \ - $(SRC)/fontrun.c \ - $(SRC)/fontnew.c \ - $(SRC)/main.c \ - $(SRC)/manifest.c \ - $(SRC)/stdlib.c \ - $(SRC)/token.c \ - $(SRC)/tokenstream.c \ - $(SRC)/window.c \ - $(SRC)/winman.c - -HEADERS= \ - $(INC)/Lth.h \ - $(INC)/Lth_assert.h \ - $(INC)/Lth_callback.h \ - $(INC)/Lth_context.h \ - $(INC)/Lth_control.h \ - $(INC)/Lth_draw.h \ - $(INC)/Lth_font.h \ - $(INC)/Lth_hashmap.h \ - $(INC)/Lth_linklist.h \ - $(INC)/Lth_manifest.h \ - $(INC)/Lth_stdfix.h \ - $(INC)/Lth_stdlib.h \ - $(INC)/Lth_token.h \ - $(INC)/Lth_tokenstream.h \ - $(INC)/Lth_types.h \ - $(INC)/Lth_window.h \ - $(INC)/Lth_winman.h - -## Output - -OUTPUT=$(SOURCES:$(SRC)/%.c=$(IR)/%.ir) - -## -## Rules -## - -## all - -all: $(BIN)/lithos3.bin - -## bin/lithos3.bin - -$(BIN)/lithos3.bin: $(OUTPUT) $(IR)/libc.ir $(IR)/libGDCC.ir - $(LD) $(LFLAGS) $(ALLOCMIN) 7000000000 $^ -o $@ - -## ir/*.ir - -$(IR)/%.ir: $(SRC)/%.c $(HEADERS) - $(CC) $(CFLAGS) -c $< -o $@ - -## irlib/lib*.ir - -$(IR)/libc.ir: - $(MAKELIB) $(TARGET) -c libc -o $@ - -$(IR)/libGDCC.ir: - $(MAKELIB) $(TARGET) -c libGDCC -o $@ - -## EOF diff --git a/lithos_c/lithos3/inc/Lth.h b/lithos_c/lithos3/inc/Lth.h deleted file mode 100644 index ffb579b..0000000 --- a/lithos_c/lithos3/inc/Lth.h +++ /dev/null @@ -1,62 +0,0 @@ -//----------------------------------------------------------------------------- -// -// Copyright © 2016 Project Golan -// -// See "LICENSE" for more information. -// -//----------------------------------------------------------------------------- -// -// Main header file. -// -//----------------------------------------------------------------------------- - -#ifndef lithos3__Lth_h -#define lithos3__Lth_h - -#include "Lth_stdfix.h" -#include -#include -#include -#include -#include - -#include - -// Types, Assert -#include "Lth_types.h" -#include "Lth_assert.h" - -// stdlib -#include "Lth_stdlib.h" - -// LinkList, HashMap -#include "Lth_linklist.h" -#include "Lth_hashmap.h" - -// Token -#include "Lth_token.h" - -// TokenStream -#include "Lth_tokenstream.h" - -// Manifest -#include "Lth_manifest.h" - -// Context -#include "Lth_context.h" - -// Draw -#include "Lth_draw.h" - -// Font -#include "Lth_font.h" - -// Control -#include "Lth_callback.h" -#include "Lth_control.h" - -// Control Types -#include "Lth_window.h" -#include "Lth_winman.h" - -#endif//lithos3__Lth_h diff --git a/lithos_c/lithos3/inc/Lth_assert.h b/lithos_c/lithos3/inc/Lth_assert.h deleted file mode 100644 index 9093de2..0000000 --- a/lithos_c/lithos3/inc/Lth_assert.h +++ /dev/null @@ -1,27 +0,0 @@ -//----------------------------------------------------------------------------- -// -// Copyright © 2016 Project Golan -// -// See "LICENSE" for more information. -// -//----------------------------------------------------------------------------- -// -// Assertions. -// -//----------------------------------------------------------------------------- - -#ifndef lithos3__Lth_assert_h -#define lithos3__Lth_assert_h - -#ifdef NDEBUG -#define Lth_assert(expression) ((void)0) -#else -#define Lth_assert(expression) \ - if(!(expression)) \ - fprintf(stderr, "[lithos3] Assertion failed in %s (%s:%i): %s\n", \ - __func__, __FILE__, __LINE__, #expression); \ - else \ - ((void)0) -#endif - -#endif//lithos3__Lth_assert_h diff --git a/lithos_c/lithos3/inc/Lth_callback.h b/lithos_c/lithos3/inc/Lth_callback.h deleted file mode 100644 index 0f825d8..0000000 --- a/lithos_c/lithos3/inc/Lth_callback.h +++ /dev/null @@ -1,74 +0,0 @@ -//----------------------------------------------------------------------------- -// -// Copyright © 2016 Project Golan -// -// See "LICENSE" for more information. -// -//----------------------------------------------------------------------------- -// -// Callbacks. -// -// If an x-macro is defined, this file will give info about callback types. -// Format: (sig, name, ret, arguments...) -// sig - Signal name. -// name - Identifier. -// ret - Return value of callback. -// arguments - Arguments of callback (vararg). -// -//----------------------------------------------------------------------------- - -#if defined(Lth_X) - -Lth_X(SigDestroy, destroy, void, struct Lth_Control *) -Lth_X(SigClicked, click, void, struct Lth_Control *) -Lth_X(SigDraw , draw, void, struct Lth_Control *) -Lth_X(SigDrawPst, drawpost, void, struct Lth_Control *) -Lth_X(SigUpdate , update, void, struct Lth_Control *) - -#undef Lth_X - -#elif !defined(lithos3__Lth_callback_h) -#define lithos3__Lth_callback_h - -#define Lth_Callback(name) ((Lth_Callback_t)(name)) - -#define Lth_Call(name, ...) \ - do \ - { \ - if((name).data != NULL) \ - for(size_t cbIter = 0; cbIter < (name).size; cbIter++) \ - (name).data[cbIter](__VA_ARGS__); \ - } \ - while(0) - -#define Lth_CallReverse(name, ...) \ - do \ - { \ - if((name).data != NULL) \ - for(size_t cbIter = (name).size; cbIter > 0; cbIter--) \ - (name).data[cbIter - 1](__VA_ARGS__); \ - } \ - while(0) - - -// Type Definitions ----------------------------------------------------------| - -struct Lth_Control; - -typedef void (*Lth_Callback_t)(void); - -#define Lth_X(sig, name, ret, ...) \ - typedef ret (*Lth_##sig##_t)(__VA_ARGS__); -#include "Lth_callback.h" - -// -// Lth_CallbackSet -// -typedef struct Lth_CallbackSet -{ -#define Lth_X(sig, name, ret, ...) \ - Lth_Vector(Lth_##sig##_t) name; -#include "Lth_callback.h" -} Lth_CallbackSet; - -#endif//lithos3__Lth_callback_h diff --git a/lithos_c/lithos3/inc/Lth_context.h b/lithos_c/lithos3/inc/Lth_context.h deleted file mode 100644 index 185e9d7..0000000 --- a/lithos_c/lithos3/inc/Lth_context.h +++ /dev/null @@ -1,72 +0,0 @@ -//----------------------------------------------------------------------------- -// -// Copyright © 2016 Project Golan -// -// See "LICENSE" for more information. -// -//----------------------------------------------------------------------------- -// -// Context for drawing. -// -//----------------------------------------------------------------------------- - -#ifndef lithos3__Lth_context_h -#define lithos3__Lth_context_h - -#define Lth_ContextManifestLoad_extern(ctx, ...) \ - ( \ - ((ctx)->rsrc ? (Lth_ResourceMapDestroy((ctx)->rsrc)) : (void)0), \ - (ctx)->rsrc = Lth_ManifestLoad_extern(__VA_ARGS__) \ - ) - -#define Lth_ContextManifestLoad_static(ctx, ...) \ - ( \ - ((ctx)->rsrc ? (Lth_ResourceMapDestroy((ctx)->rsrc)) : (void)0), \ - (ctx)->rsrc = Lth_ManifestLoad_static(__VA_ARGS__) \ - ) - - -// Type Definitions ----------------------------------------------------------| - -// -// Lth_Context -// -// internal data -// clip -// rsrcBase -// rsrc -// -// read-only -// scale: current draw scale -// w: width of screen -// h: height of screen -// -// read-write -// hid: HUD ID range -// -typedef struct Lth_Context -{ - struct { Lth_Rect rects[16]; size_t num; } clip; - Lth_ResourceMap *rsrcBase, *rsrc; - - _Accum scale; - int w, h; - - Lth_HIDRange hid; -} Lth_Context; - - -// Extern Functions ----------------------------------------------------------| - -Lth_Context *Lth_ContextNew(int w, int h, Lth_HID hidBase, Lth_HID hidEnd); -void Lth_ContextDestroy(Lth_Context *ctx); -void Lth_ContextRun(Lth_Context *ctx); - -void Lth_ContextClipPush(Lth_Context *ctx, int x, int y, int w, int h); -void Lth_ContextClipPop(Lth_Context *ctx); - -void *Lth_ContextResource(Lth_Context *ctx, char const *key); - -void Lth_ContextScale(Lth_Context *ctx, _Accum s); - -#endif//lithos3__Lth_context_h diff --git a/lithos_c/lithos3/inc/Lth_control.h b/lithos_c/lithos3/inc/Lth_control.h deleted file mode 100644 index ef7254b..0000000 --- a/lithos_c/lithos3/inc/Lth_control.h +++ /dev/null @@ -1,82 +0,0 @@ -//----------------------------------------------------------------------------- -// -// Copyright © 2016 Project Golan -// -// See "LICENSE" for more information. -// -//----------------------------------------------------------------------------- -// -// Controls. -// -//----------------------------------------------------------------------------- - -#ifndef lithos3__Lth_control_h -#define lithos3__Lth_control_h - -#define Lth_ControlFontRunPlain(ctrl, ...) \ - Lth_FontRunPlain((ctrl)->ctx, Lth_ControlFont((ctrl)), __VA_ARGS__) - -#define Lth_ControlInit(type) \ - type *ctrl = calloc(1, sizeof(type)); \ - Lth_assert(ctrl != NULL); \ - \ - ctrl->ctx = ctx - -#define Lth_VirtControl (void *)ctrl - - -// Type Definitions ----------------------------------------------------------| - -// -// Lth_Control -// -// Has members of Lth_Rect (read-write). -// -// internal data -// cb -// descHead -// descTail -// link -// -// read-only -// vtable: virtual functions for overrides -// parent: control's parent (NULL if none) -// -// read-write -// ctx: pointer to associated context -// font: default font for drawing -// userdata: opaque pointer for the user to use -// -// -typedef struct Lth_Control -{ - Lth_CallbackSet cb; - - struct - { - Lth_Font *(*getFont)(struct Lth_Control *); - } vtable; - - Lth_LinkList *descHead, *descTail, link; - - struct Lth_Control *parent; - - Lth_Context *ctx; - Lth_Font *font; - void *userdata; - - Lth_Mixin(Lth_Rect); -} Lth_Control; - - -// Extern Functions ----------------------------------------------------------| - -void Lth_ControlRun(void *ctrl_); -void Lth_ControlConnect(void *ctrl_, Lth_Signal signal, Lth_Callback_t cb); -void Lth_ControlDestroy(void *ctrl_); -void Lth_ControlAttach(void *ctrl_, void *ctrlS_); -void Lth_ControlAttachTail(void *ctrl_, void *ctrlS_); - -Lth_Font *Lth_ControlFont(void *ctrl_); - -#endif//lithos3__Lth_control_h diff --git a/lithos_c/lithos3/inc/Lth_draw.h b/lithos_c/lithos3/inc/Lth_draw.h deleted file mode 100644 index 41c58ef..0000000 --- a/lithos_c/lithos3/inc/Lth_draw.h +++ /dev/null @@ -1,38 +0,0 @@ -//----------------------------------------------------------------------------- -// -// Copyright © 2016 Project Golan -// -// See "LICENSE" for more information. -// -//----------------------------------------------------------------------------- -// -// Drawing. -// -//----------------------------------------------------------------------------- - -#ifndef lithos3__Lth_draw_h -#define lithos3__Lth_draw_h - -#define Lth_HudMessageBegin() ACS_BeginPrint() - -#define Lth_TICK (0.029k) // One gametic, in seconds. - -#define Lth_A_Cen (0.0k) -#define Lth_A_Lef (0.1k) -#define Lth_A_Rig (0.2k) -#define Lth_A_Top (0.1k) -#define Lth_A_Bot (0.2k) -#define Lth_A_TCe (0.4k) -#define Lth_A_TLe (0.5k) -#define Lth_A_TRi (0.6k) - - -// Extern Functions ----------------------------------------------------------| - -Lth_OptArgs(1) void Lth_HudMessageEnd(Lth_Context *ctx, _Accum x, _Accum y, _Accum a); -Lth_OptArgs(1) void Lth_DrawSprite(Lth_Context *ctx, __str name, _Accum x, _Accum y, _Accum a); - -void Lth_DrawRectAndClip(Lth_Context *ctx, int x, int y, int w, int h, _Accum alpha); -void Lth_DrawRect(Lth_Context *ctx, int x, int y, int w, int h, _Accum alpha); - -#endif//lithos3__Lth_draw_h diff --git a/lithos_c/lithos3/inc/Lth_font.h b/lithos_c/lithos3/inc/Lth_font.h deleted file mode 100644 index 2b9d252..0000000 --- a/lithos_c/lithos3/inc/Lth_font.h +++ /dev/null @@ -1,89 +0,0 @@ -//----------------------------------------------------------------------------- -// -// Copyright © 2016 Project Golan -// -// See "LICENSE" for more information. -// -//----------------------------------------------------------------------------- -// -// Font layout handling. -// -//----------------------------------------------------------------------------- - -#ifndef lithos3__Lth_font_h -#define lithos3__Lth_font_h - -#define Lth_FontRunBegin() ACS_BeginPrint() - - -// Type Definitions ----------------------------------------------------------| - -struct Lth_Context; - -enum -{ - Lth_AX_Lef = 1, - Lth_AX_Rig, - Lth_AX_Cen, - - Lth_AY_Top = 1, - Lth_AY_Bot, - Lth_AY_Cen -}; - -// -// Lth_FontCasing -// -typedef enum Lth_FontCasing -{ - Lth_Case_Both, - Lth_Case_Uppr, - Lth_Case_Lowr -} Lth_FontCasing; - -// -// Lth_GlyphLookupType -// -typedef enum Lth_GlyphLookupType -{ - Lth_GT_Chara, - Lth_GT_Codep, - Lth_GT_Digit -} Lth_GlyphLookupType; - -// -// Lth_Glyph -// -typedef struct Lth_Glyph -{ - Lth_Inherits(Lth_Rect); - __str fname; - _Accum s; - wchar_t ch; - char mb[MB_CUR_MAX + 1]; -} Lth_Glyph; - -// -// Lth_Font -// -typedef struct Lth_Font -{ - Lth_FontCasing casing; - __str baseName; - int spaceWidth; - int height; - __str fnamePref; - __str fnameSuff; - Lth_HashMap glyphs; - Lth_Vector(Lth_Glyph) glyphV; -} Lth_Font; - - -// Extern Functions ----------------------------------------------------------| - -Lth_ScriptCall Lth_Font *Lth_FontNew(char const *fname); -void Lth_FontDestroy(Lth_Font *font); - -Lth_OptArgs(2) void Lth_FontRunPlain(struct Lth_Context *ctx, Lth_Font *font, int x, int y, int ax, int ay); - -#endif//lithos3__Lth_font_h diff --git a/lithos_c/lithos3/inc/Lth_stdfix.h b/lithos_c/lithos3/inc/Lth_stdfix.h deleted file mode 100644 index 30b8a6f..0000000 --- a/lithos_c/lithos3/inc/Lth_stdfix.h +++ /dev/null @@ -1,20 +0,0 @@ -//----------------------------------------------------------------------------- -// -// Copyright © 2016 Project Golan -// -// See "LICENSE" for more information. -// -//----------------------------------------------------------------------------- -// -// Define fixed because it breaks our code. -// -//----------------------------------------------------------------------------- - -#ifndef lithos3__Lth_stdfix_h -#define lithos3__Lth_stdfix_h - -#define fixed -#include -#undef fixed - -#endif//lithos3__Lth_stdfix_h diff --git a/lithos_c/lithos3/inc/Lth_window.h b/lithos_c/lithos3/inc/Lth_window.h deleted file mode 100644 index fb583bf..0000000 --- a/lithos_c/lithos3/inc/Lth_window.h +++ /dev/null @@ -1,39 +0,0 @@ -//----------------------------------------------------------------------------- -// -// Copyright © 2016 Project Golan -// -// See "LICENSE" for more information. -// -//----------------------------------------------------------------------------- -// -// Window control. -// -//----------------------------------------------------------------------------- - -#ifndef lithos3__Lth_window_h -#define lithos3__Lth_window_h - - -// Type Definitions ----------------------------------------------------------| - -// -// Lth_Window -// -// Inherits Lth_Control (read-write). -// -// read-only -// title: title of window (see also: Lth_WindowSetTitle) -// -typedef struct Lth_Window -{ - Lth_Inherits(Lth_Control); - char *title; -} Lth_Window; - - -// Extern Functions ----------------------------------------------------------| - -Lth_OptArgs(2) Lth_Window *Lth_WindowNew(Lth_Context *ctx, char const *title, int x, int y, int w, int h); -void Lth_WindowSetTitle(Lth_Window *ctrl, char const *title); - -#endif//lithos3__Lth_window_h diff --git a/lithos_c/lithos3/inc/Lth_winman.h b/lithos_c/lithos3/inc/Lth_winman.h deleted file mode 100644 index 05377d1..0000000 --- a/lithos_c/lithos3/inc/Lth_winman.h +++ /dev/null @@ -1,45 +0,0 @@ -//----------------------------------------------------------------------------- -// -// Copyright © 2016 Project Golan -// -// See "LICENSE" for more information. -// -//----------------------------------------------------------------------------- -// -// Window management. -// -//----------------------------------------------------------------------------- - -#ifndef lithos3__Lth_winman_h -#define lithos3__Lth_winman_h - - -// Type Definitions ----------------------------------------------------------| - -// -// Lth_WindowManager -// -// Inherits Lth_Control (read-write) -// -// internal data -// lastmap -// -// read-write -// mapspace: space between newly mapped windows that are auto-positioned -// -typedef struct Lth_WindowManager -{ - Lth_Inherits(Lth_Control); - - Lth_IVec2 lastmap; - - Lth_IVec2 mapspace; -} Lth_WindowManager; - - -// Extern Functions ----------------------------------------------------------| - -Lth_WindowManager *Lth_WMNew(Lth_Context *ctx); -void Lth_WMMap(Lth_WindowManager *wm, Lth_Window *window); - -#endif//lithos3__Lth_winman_h diff --git a/lithos_c/lithos3/src/context.c b/lithos_c/lithos3/src/context.c deleted file mode 100644 index 40d3f7f..0000000 --- a/lithos_c/lithos3/src/context.c +++ /dev/null @@ -1,114 +0,0 @@ -//----------------------------------------------------------------------------- -// -// Copyright © 2016 Project Golan -// -// See "LICENSE" for more information. -// -//----------------------------------------------------------------------------- -// -// Context functions. -// -//----------------------------------------------------------------------------- - -#include "Lth.h" - - -// Extern Functions ----------------------------------------------------------| - -// -// Lth_ContextNew -// -Lth_Context *Lth_ContextNew(int w, int h, Lth_HID hidBase, Lth_HID hidEnd) -{ - Lth_Context *ctx = calloc(1, sizeof(Lth_Context)); - - ctx->scale = 1.0k; - ctx->w = w; - ctx->h = h; - ctx->hid.cur = ctx->hid.base = hidBase; - ctx->hid.end = hidEnd; - - ctx->rsrcBase = Lth_ManifestLoad_static(Lth_ManifestNew( - Lth_Resource("Base.DefaultFont", "lithos_fs/Fonts/SmallFontJP.lthm") - )); - - return ctx; -} - -// -// Lth_ContextDestroy -// -void Lth_ContextDestroy(Lth_Context *ctx) -{ - if(ctx == NULL) return; - - Lth_ResourceMapDestroy(ctx->rsrc); - Lth_ResourceMapDestroy(ctx->rsrcBase); - - free(ctx); -} - -// -// Lth_ContextRun -// -void Lth_ContextRun(Lth_Context *ctx) -{ - Lth_Rect rect = ctx->clip.rects[ctx->clip.num]; - - ACS_SetHudSize(ctx->w, ctx->h, true); - ACS_SetHudClipRect(rect.x, rect.y, rect.w, rect.h); - - ctx->hid.cur = ctx->hid.base; -} - -// -// Lth_ContextClipPush -// -void Lth_ContextClipPush(Lth_Context *ctx, int x, int y, int w, int h) -{ - Lth_Rect rect = ctx->clip.rects[ctx->clip.num++]; - - if(!(rect.x == 0 && rect.y == 0 && rect.w == 0 && rect.h == 0)) - { - if(rect.x < x) rect.x = x; - if(rect.y < y) rect.y = y; - if(rect.x + rect.w > x + w) rect.w = w; - if(rect.y + rect.h > y + h) rect.h = h; - } - else - rect = (Lth_Rect){ x, y, w, h }; - - ctx->clip.rects[ctx->clip.num] = rect; - ACS_SetHudClipRect(rect.x, rect.y, rect.w, rect.h); -} - -// -// Lth_ContextClipPop -// -void Lth_ContextClipPop(Lth_Context *ctx) -{ - Lth_Rect rect = ctx->clip.rects[--ctx->clip.num]; - ACS_SetHudClipRect(rect.x, rect.y, rect.w, rect.h); -} - -// -// Lth_ContextResource -// -void *Lth_ContextResource(Lth_Context *ctx, char const *key) -{ - void *p = NULL; - if(ctx->rsrc) p = Lth_HashMapFind(&ctx->rsrc->map, key); - if(p) return p; - else return Lth_HashMapFind(&ctx->rsrcBase->map, key); -} - -// -// Lth_ContextScale -// -void Lth_ContextScale(Lth_Context *ctx, _Accum s) -{ - ctx->scale = s; - ACS_SetHudSize(ctx->w / ctx->scale, ctx->h / ctx->scale, true); -} - -// EOF diff --git a/lithos_c/lithos3/src/control.c b/lithos_c/lithos3/src/control.c deleted file mode 100644 index e2dfc27..0000000 --- a/lithos_c/lithos3/src/control.c +++ /dev/null @@ -1,120 +0,0 @@ -//----------------------------------------------------------------------------- -// -// Copyright © 2016 Project Golan -// -// See "LICENSE" for more information. -// -//----------------------------------------------------------------------------- -// -// Control functions. -// -// # of rewrites because of DavidPH: 2 -// -//----------------------------------------------------------------------------- - -#include "Lth.h" - -#include - - -// Extern Functions ----------------------------------------------------------| - -// -// Lth_ControlRun -// -void Lth_ControlRun(void *ctrl_) -{ - Lth_Control *ctrl = ctrl_; - - Lth_ListForEach(Lth_Control *owner, ctrl->descHead) - Lth_ControlRun(owner); - - Lth_Call(ctrl->cb.update, ctrl); - Lth_Call(ctrl->cb.draw, ctrl); - Lth_Call(ctrl->cb.drawpost, ctrl); -} - -// -// Lth_ControlConnect -// -void Lth_ControlConnect(void *ctrl_, Lth_Signal signal, Lth_Callback_t cb) -{ - Lth_assert(signal < Lth_SIGMAX && signal >= 0); - - Lth_Control *ctrl = ctrl_; - - switch(signal) - { -#define Lth_X(sig, name, ret, ...) \ - case Lth_##sig: \ - ctrl->cb.name.data = realloc(ctrl->cb.name.data, \ - sizeof(Lth_##sig##_t) * (ctrl->cb.name.size + 1)); \ - ctrl->cb.name.data[ctrl->cb.name.size++] = (Lth_##sig##_t)cb; \ - break; -#include "Lth_callback.h" - } -} - -// -// Lth_ControlDestroy -// -void Lth_ControlDestroy(void *ctrl_) -{ - if(ctrl_ == NULL) return; - - Lth_Control *ctrl = ctrl_; - - Lth_ListFor(Lth_Control *owner, ctrl->descHead) - { - Lth_ControlDestroy(owner); - list = next; - } - - Lth_CallReverse(ctrl->cb.destroy, ctrl); - Lth_ListRemove(&ctrl->link); - -#define Lth_X(sig, name, ret, ...) \ - free(ctrl->cb.name.data); -#include "Lth_callback.h" - - free(ctrl); -} - -// -// Lth_ControlAttach -// -void Lth_ControlAttach(void *ctrl_, void *ctrlS_) -{ - Lth_Control *ctrl = ctrl_, *ctrlS = ctrlS_; - Lth_ListInsert(&ctrlS->link, ctrlS, &ctrl->descHead); - ctrlS->ctx = ctrl->ctx; - ctrlS->parent = ctrl; -} - -// -// Lth_ControlAttachTail -// -void Lth_ControlAttachTail(void *ctrl_, void *ctrlS_) -{ - Lth_Control *ctrl = ctrl_, *ctrlS = ctrlS_; - Lth_ListInsertTail(&ctrlS->link, ctrlS, &ctrl->descHead, &ctrl->descTail); - ctrlS->ctx = ctrl->ctx; - ctrlS->parent = ctrl; -} - -// -// Lth_ControlFont -// -Lth_Font *Lth_ControlFont(void *ctrl_) -{ - Lth_Control *ctrl = ctrl_; - - if(ctrl->font || (ctrl->vtable.getFont && ctrl->vtable.getFont(ctrl))) - return ctrl->font; - else if(ctrl->parent) - return Lth_ControlFont(ctrl->parent); - else - return NULL; -} - -// EOF diff --git a/lithos_c/lithos3/src/draw.c b/lithos_c/lithos3/src/draw.c deleted file mode 100644 index e56b48e..0000000 --- a/lithos_c/lithos3/src/draw.c +++ /dev/null @@ -1,76 +0,0 @@ -//----------------------------------------------------------------------------- -// -// Copyright © 2016 Project Golan -// -// See "LICENSE" for more information. -// -//----------------------------------------------------------------------------- -// -// Context drawing functions. -// -//----------------------------------------------------------------------------- - -#include "Lth.h" - - -// Extern Functions ----------------------------------------------------------| - -// -// Lth_HudMessageEnd -// -void Lth_HudMessageEnd(Lth_Context *ctx, _Accum x, _Accum y, _Accum a) -{ - int flags = HUDMSG_PLAIN | HUDMSG_NOTWITHFULLMAP; - - if(ctx->scale != 1) - { - long _Accum xn = (int)x / (long _Accum)ctx->w; - long _Accum yn = (int)y / (long _Accum)ctx->h; - x = (xn * (ctx->w / ctx->scale)) + Lth_fractk(x); - y = (yn * (ctx->h / ctx->scale)) + Lth_fractk(y); - } - - if(a) flags |= HUDMSG_ALPHA; - - ACS_MoreHudMessage(); - ACS_OptHudMessage(flags, ctx->hid.cur--, CR_UNTRANSLATED, x, y, Lth_TICK); - if(a) ACS_EndHudMessage(a); - else ACS_EndHudMessage(); -} - -// -// Lth_DrawSprite -// -void Lth_DrawSprite(Lth_Context *ctx, __str name, _Accum x, _Accum y, _Accum a) -{ - ACS_SetFont(name); - - Lth_HudMessageBegin(); - ACS_PrintChar('A'); - Lth_HudMessageEnd(ctx, x, y, a); -} - -// -// Lth_DrawRectAndClip -// -void Lth_DrawRectAndClip(Lth_Context *ctx, int x, int y, int w, int h, - _Accum alpha) -{ - Lth_ContextClipPush(ctx, x, y, w, h); - - for(int ix = 0; ix < w; ix += 128) - for(int iy = 0; iy < h; iy += 128) - Lth_DrawSprite(ctx, s"lithos_gfx/Base/Black128.png", - x + ix + Lth_A_Lef, y + iy + Lth_A_Top, alpha); -} - -// -// Lth_DrawRect -// -void Lth_DrawRect(Lth_Context *ctx, int x, int y, int w, int h, _Accum alpha) -{ - Lth_DrawRectAndClip(ctx, x, y, w, h, alpha); - Lth_ContextClipPop(ctx); -} - -// EOF diff --git a/lithos_c/lithos3/src/fontnew.c b/lithos_c/lithos3/src/fontnew.c deleted file mode 100644 index 9006614..0000000 --- a/lithos_c/lithos3/src/fontnew.c +++ /dev/null @@ -1,250 +0,0 @@ -//----------------------------------------------------------------------------- -// -// Copyright © 2016 Project Golan -// -// See "LICENSE" for more information. -// -//----------------------------------------------------------------------------- -// -// Font creation. -// -//----------------------------------------------------------------------------- - -#include "Lth.h" - -#include -#include -#include - -#define GenFontData() \ - char const **base = Lth_HashMapFind(&rsrc->map, "Font.Base"); \ - char const **casing = Lth_HashMapFind(&rsrc->map, "Font.Case"); \ - char const **extraDir = Lth_HashMapFind(&rsrc->map, "Font.ExtraDir"); \ - char const **glyphList = Lth_HashMapFind(&rsrc->map, "Font.Glyphs"); \ - int const *height = Lth_HashMapFind(&rsrc->map, "Font.Height"); \ - char const **prefix = Lth_HashMapFind(&rsrc->map, "Font.Prefix"); \ - int const *spaceWidth = Lth_HashMapFind(&rsrc->map, "Font.SpaceWidth"); \ - char const **suffix = Lth_HashMapFind(&rsrc->map, "Font.Suffix"); \ - char const **typeStr = Lth_HashMapFind(&rsrc->map, "Font.Type"); - -#define FontError(err) \ - if(1) \ - { \ - fprintf(stderr, "%s: %s\n", __func__, err); \ - longjmp(FontJmpBuf, FontJmpBufToken); \ - } \ - else ((void)0) - - -// Static Objects ------------------------------------------------------------| - -static jmp_buf FontJmpBuf; -static int const FontJmpBufToken = 31; - - -// Static Functions ----------------------------------------------------------| - -// -// FontValidate -// -static void FontValidate(Lth_ResourceMap *rsrc) -{ - GenFontData(); - - if(!glyphList) FontError("Font definition must have a glyph list."); - if(!base && !extraDir) FontError("Font definition doesn't have a font."); - if(!height) FontError("Font definition doesn't have a height."); -} - -// -// FontLoadGlyphs -// -static void FontLoadGlyphs(Lth_Font volatile *font, Lth_ResourceMap *rsrc, - int type) -{ - char const **glyphList = Lth_HashMapFind(&rsrc->map, "Font.Glyphs"); - - wchar_t *tmpkey = Lth_wcsdup(L"Font.GlyphData. _ "); - wchar_t *keyl = wcschr(tmpkey, ' '); - wchar_t *keyr = wcsrchr(tmpkey, ' '); - - __with(mbstate_t state; size_t i = 0; memset(&state, 0, sizeof(state));) - for(char const *sptr = *glyphList; *sptr; i++) - { - wchar_t wc; - int ret = mbrtowc(&wc, sptr, 4, &state); - if(ret <= 0) FontError("Error parsing Unicode sequence."); - - Lth_Glyph glyph = { .ch = wc }; - memmove(glyph.mb, sptr, ret); - - (*keyl = wc); - int *x = (*keyr = 'x', Lth_HashMapFind(&rsrc->map, tmpkey)); - int *y = (*keyr = 'y', Lth_HashMapFind(&rsrc->map, tmpkey)); - int *w = (*keyr = 'w', Lth_HashMapFind(&rsrc->map, tmpkey)); - int *h = (*keyr = 'h', Lth_HashMapFind(&rsrc->map, tmpkey)); - _Accum *s = (*keyr = 's', Lth_HashMapFind(&rsrc->map, tmpkey)); - - if(x) glyph.x = *x; - if(y) glyph.y = *y; - if(w) glyph.w = *w; - if(h) glyph.h = *h; - if(s) glyph.s = *s; - - if(wc > 0x7F) - { - ACS_BeginPrint(); - - ACS_PrintString(font->fnamePref); - - switch(type) - { - case Lth_GT_Chara: Lth_PrintString(glyph.mb); break; - case Lth_GT_Codep: ACS_PrintHex(glyph.ch); break; - case Lth_GT_Digit: ACS_PrintInt(glyph.ch); break; - } - - ACS_PrintString(font->fnameSuff); - - glyph.fname = ACS_EndStrParam(); - } - - font->glyphV.data[i] = glyph; - font->glyphs.elem.data[i].keyhash = (size_t)wc; - font->glyphs.elem.data[i].value = &font->glyphV.data[i]; - - sptr += ret; - } - - free(tmpkey); - - Lth_HashMapBuild((Lth_HashMap *)&font->glyphs); -} - -// -// FontSetup -// -static void FontSetup(Lth_Font volatile *font, Lth_ResourceMap *rsrc) -{ - GenFontData(); - - int type; - - if(typeStr) - if(Lth_stricmp(*typeStr, "Character") == 0) type = Lth_GT_Chara; - else if(Lth_stricmp(*typeStr, "Codepoint") == 0) type = Lth_GT_Codep; - else if(Lth_stricmp(*typeStr, "Digit") == 0) type = Lth_GT_Digit; - else FontError("Invalid Font.Type"); - else - type = Lth_GT_Chara; - - font->height = *height; - - if(base) - font->baseName = Lth_strentdup(*base); - - if(extraDir) - { - ACS_BeginPrint(); - - Lth_PrintString(*extraDir); - - if((*extraDir)[strlen(*extraDir)] != '/') - ACS_PrintChar('/'); - - if(prefix) - Lth_PrintString(*prefix); - - font->fnamePref = ACS_EndStrParam(); - - if(suffix) font->fnameSuff = Lth_strentdup(*suffix); - else font->fnameSuff = s".png"; - } - - if(spaceWidth) font->spaceWidth = *spaceWidth; - else font->spaceWidth = 4; - - if(casing) - if(Lth_stricmp(*casing, "Both") == 0) - font->casing = Lth_Case_Both; - else if(Lth_stricmp(*casing, "UpperOnly") == 0) - font->casing = Lth_Case_Uppr; - else if(Lth_stricmp(*casing, "LowerOnly") == 0) - font->casing = Lth_Case_Lowr; - else - FontError("Invalid Font.Case"); - else - font->casing = Lth_Case_Both; - - font->glyphV.size = Lth_mbslen(*glyphList); - Lth_HashMapAlloc((Lth_HashMap *)&font->glyphs, font->glyphV.size); - Lth_VectorAlloc(Lth_Glyph, font->glyphV); - - FontLoadGlyphs(font, rsrc, type); -} - -// -// FontPrint -// -// [debug] Print characters out. -// -Lth_ScriptCall static void FontPrint(Lth_Font *font) -{ - for(size_t i = 0; i < font->glyphs.elem.size; i++) - __with(Lth_Glyph *glyph = font->glyphs.elem.data[i].value;) - printf("glyph %X (%s)\t\tx: %i\ty: %i\tw: %i\n", - glyph->ch, glyph->mb, glyph->x, glyph->y, glyph->w); -} - - -// Extern Functions ----------------------------------------------------------| - -// -// Lth_FontNew -// -Lth_ScriptCall Lth_Font *Lth_FontNew(char const *fname) -{ - Lth_Font volatile *font = NULL; - Lth_ResourceMap *rsrc = NULL; - - // Set up error handler. - if(setjmp(FontJmpBuf) == FontJmpBufToken) - { - if(font) Lth_FontDestroy((Lth_Font *)font); - if(rsrc) Lth_ResourceMapDestroy(rsrc); - - return NULL; - } - - rsrc = Lth_ManifestLoad_extern(fname); - - if(rsrc == NULL) - FontError("Couldn't load resource manifest."); - - FontValidate(rsrc); - - font = calloc(1, sizeof(Lth_Font)); - - if(font == NULL) - FontError("Failed to allocate font."); - - FontSetup(font, rsrc); - - Lth_ResourceMapDestroy(rsrc); - - return (Lth_Font *)font; -} - -// -// Lth_FontDestroy -// -void Lth_FontDestroy(Lth_Font *font) -{ - if(font == NULL) return; - - Lth_HashMapDestroy(&font->glyphs); - free(font->glyphV.data); - free(font); -} - -// EOF diff --git a/lithos_c/lithos3/src/fontrun.c b/lithos_c/lithos3/src/fontrun.c deleted file mode 100644 index 0df3259..0000000 --- a/lithos_c/lithos3/src/fontrun.c +++ /dev/null @@ -1,330 +0,0 @@ -//----------------------------------------------------------------------------- -// -// Copyright © 2016 Project Golan -// -// See "LICENSE" for more information. -// -//----------------------------------------------------------------------------- -// -// Font rendering. -// -//----------------------------------------------------------------------------- - -#include "Lth.h" - -#include -#include -#include "Lth_stdfix.h" - -#define FontCheckASCII(rst) if((rst)->asciiPrint) FontRenderAPr((rst)) - - -// Type Definitions ----------------------------------------------------------| - -typedef struct FontRenderState -{ - Lth_Context *ctx; - Lth_Font *font; - bool asciiPrint; - _Accum ax, ay; - int x, y; - int tmpx; - int origx, origy; -} FontRenderState; - - -// Static Objects ------------------------------------------------------------| - -static Lth_Glyph FontReplacementGlyph = { - .fname = s"lithos_gfx/ReplacementCharacter.png", - .ch = 0xFFFD, - .mb = u8"�", - .w = 32, - .h = 32, - .s = -1 -}; - - -// Static Functions ----------------------------------------------------------| - -// -// ASCII Character -// Advance Line -// ASCII Print -// Advance Space -// Advance Tabulator -// Character -// Finish -// Glyph -// Return Line -// Wide Character -// -static void FontRenderACh(FontRenderState *rst, Lth_Glyph *glyph); -static void FontRenderALn(FontRenderState *rst); -static void FontRenderAPr(FontRenderState *rst); -static void FontRenderASp(FontRenderState *rst, int amt); -static void FontRenderATa(FontRenderState *rst); -static void FontRenderChr(FontRenderState *rst, wchar_t wc); -static void FontRenderFin(FontRenderState *rst); -static void FontRenderGly(FontRenderState *rst, Lth_Glyph *glyph); -static void FontRenderRLn(FontRenderState *rst); -static void FontRenderWCh(FontRenderState *rst, wchar_t wc, bool noascii); - -// -// FontRenderACh -// -static void FontRenderACh(FontRenderState *rst, Lth_Glyph *glyph) -{ - if(!rst->asciiPrint) - { - Lth_HudMessageBegin(); - rst->asciiPrint = true; - } - - rst->tmpx += glyph->w; - ACS_PrintChar(glyph->ch); - -#if Lth_DEBUG_FONTRUN - printf("ASCII_CHAR[%c] ", glyph->ch); -#endif -} - -// -// FontRenderALn -// -static void FontRenderALn(FontRenderState *rst) -{ - FontCheckASCII(rst); - - rst->y += rst->font->height; - -#if Lth_DEBUG_FONTRUN - printf("NEWLINE "); -#endif -} - -// -// FontRenderAPr -// -static void FontRenderAPr(FontRenderState *rst) -{ - rst->asciiPrint = false; - - if(rst->font->baseName) - { - _Accum x = rst->x + rst->ax; - _Accum y = rst->y + rst->ay; - -#if Lth_DEBUG_FONTRUN - printf("ASCII_PRINT[%.2k, %.2k] ", x, y); -#endif - - ACS_SetFont(rst->font->baseName); - Lth_HudMessageEnd(rst->ctx, x, y); - - rst->x += rst->tmpx; - rst->tmpx = 0; - } - else - { - __str s = ACS_EndStrParam(); - int len = ACS_StrLen(s); - - for(int i = 0; i < len; i++) - FontRenderWCh(rst, s[i], true); - } -} - -// -// FontRenderASp -// -static void FontRenderASp(FontRenderState *rst, int amt) -{ - FontCheckASCII(rst); - - rst->x += rst->font->spaceWidth * amt; - -#if Lth_DEBUG_FONTRUN - printf("SPACE[%i] ", amt); -#endif -} - -// -// FontRenderATa -// -static void FontRenderATa(FontRenderState *rst) -{ - FontCheckASCII(rst); - - int tabw = rst->font->spaceWidth * 8; - rst->x = Lth_ceilk(rst->x / (_Accum)tabw) * tabw; - -#if Lth_DEBUG_FONTRUN - printf("TABULATOR "); -#endif -} - -// -// FontRenderChr -// -static void FontRenderChr(FontRenderState *rst, wchar_t wc) -{ - switch(wc) - { - case L' ': FontRenderASp(rst, 1); break; - case 0x3000: FontRenderASp(rst, 2); break; - case L'\t': FontRenderATa(rst); break; - case L'\n': FontRenderALn(rst); - case L'\r': FontRenderRLn(rst); break; - default: FontRenderWCh(rst, wc, false); break; - } -} - -// -// FontRenderFin -// -static void FontRenderFin(FontRenderState *rst) -{ - FontCheckASCII(rst); - -#if Lth_DEBUG_FONTRUN - printf("DONE\n"); -#endif -} - -// -// FontRenderGly -// -static void FontRenderGly(FontRenderState *rst, Lth_Glyph *glyph) -{ - FontCheckASCII(rst); - - _Accum w = glyph->w; - - _Accum scale = 0; - - if(glyph->s != 0) - { - if(glyph->s < 0) scale = rst->font->height / (_Accum)glyph->h; - else scale = glyph->s; - - w *= scale; - } - - if(scale) - Lth_ContextScale(rst->ctx, scale); - - _Accum x = (rst->x + glyph->x) + rst->ax; - _Accum y = (rst->y + glyph->y) + rst->ax; - -#if Lth_DEBUG_FONTRUN - printf("GLYPH[%s][%.2k, %.2k] ", glyph->mb, x, y); -#endif - - Lth_DrawSprite(rst->ctx, glyph->fname, x, y); - - if(scale) - Lth_ContextScale(rst->ctx, 1); - - rst->x += w; -} - -// -// FontRenderRLn -// -static void FontRenderRLn(FontRenderState *rst) -{ - FontCheckASCII(rst); - - rst->x = rst->origx; - -#if Lth_DEBUG_FONTRUN - printf("RET_LINE "); -#endif -} - -// -// FontRenderWCh -// -static void FontRenderWCh(FontRenderState *rst, wchar_t wc, bool noascii) -{ - switch(rst->font->casing) - { - case Lth_Case_Both: default: break; - case Lth_Case_Uppr: if(wc >= L'a' && wc <= L'z') wc -= 0x20; break; - case Lth_Case_Lowr: if(wc >= L'A' && wc <= L'Z') wc += 0x20; break; - } - -#if Lth_DEBUG_FONTRUN - printf("CH "); -#endif - - Lth_Glyph *glyph = Lth_HashMapFind(&rst->font->glyphs, wc); - if(glyph == NULL) glyph = &FontReplacementGlyph; - - if(glyph->ch > 0x7F || noascii) FontRenderGly(rst, glyph); - else FontRenderACh(rst, glyph); -} - - -// Extern Functions ----------------------------------------------------------| - -// -// Lth_FontRunPlain -// -void Lth_FontRunPlain(Lth_Context *ctx, Lth_Font *font, int x, int y, - int ax, int ay) -{ - if(font == NULL) - { - ACS_EndStrParam(); - return; - } - - FontRenderState rst = { - .ctx = ctx, - .font = font, - .x = x, .y = y, - .origx = x, .origy = y - }; - - switch(ax) - { - default: case Lth_AX_Lef: rst.ax = 0.1k; break; - case Lth_AX_Rig: rst.ax = 0.2k; break; - case Lth_AX_Cen: rst.ax = 0.0k; break; - } - - switch(ay) - { - default: case Lth_AY_Top: rst.ay = 0.1k; break; - case Lth_AY_Bot: rst.ay = 0.2k; break; - case Lth_AY_Cen: rst.ay = 0.0k; break; - } - - char *str = Lth_strdup_str(ACS_EndStrParam()); - - Lth_WithMbState() - for(char const *sptr = str; *sptr;) - { - wchar_t wc; - int ret = mbrtowc(&wc, sptr, 4, &state); - -#if Lth_DEBUG_FONTRUN - printf("%i: ", ret); -#endif - - if(ret > 0) FontRenderChr(&rst, wc), sptr += ret; - else FontRenderGly(&rst, &FontReplacementGlyph), sptr += -ret; - -#if Lth_DEBUG_FONTRUN - printf("\n"); -#endif - } - - FontRenderFin(&rst); - - free(str); -} - -// EOF diff --git a/lithos_c/lithos3/src/window.c b/lithos_c/lithos3/src/window.c deleted file mode 100644 index 56699f4..0000000 --- a/lithos_c/lithos3/src/window.c +++ /dev/null @@ -1,87 +0,0 @@ -//----------------------------------------------------------------------------- -// -// Copyright © 2016 Project Golan -// -// See "LICENSE" for more information. -// -//----------------------------------------------------------------------------- -// -// Window functions. -// -//----------------------------------------------------------------------------- - -#include "Lth.h" - -#include - - -// Static Functions ----------------------------------------------------------| - -// -// Lth_WindowDraw -// -static void Lth_WindowDraw(Lth_Window *ctrl) -{ - Lth_DrawRectAndClip(ctrl->ctx, ctrl->x, ctrl->y, ctrl->w, 8, 0.35k); - - Lth_FontRunBegin(); - Lth_PrintString(ctrl->title); - Lth_ControlFontRunPlain(ctrl, ctrl->x, ctrl->y); - - Lth_ContextClipPop(ctrl->ctx); - - Lth_DrawRectAndClip(ctrl->ctx, ctrl->x, ctrl->y + 8, ctrl->w, ctrl->h, 0.5k); -} - -// -// Lth_WindowDrawPost -// -static void Lth_WindowDrawPost(Lth_Window *ctrl) -{ - Lth_ContextClipPop(ctrl->ctx); -} - -// -// Lth_WindowDestroy -// -static void Lth_WindowDestroy(Lth_Window *ctrl) -{ - if(ctrl->title) - free(ctrl->title); -} - - -// Extern Functions ----------------------------------------------------------| - -// -// Lth_WindowNew -// -Lth_Window *Lth_WindowNew(Lth_Context *ctx, char const *title, int x, int y, int w, int h) -{ - Lth_ControlInit(Lth_Window); - - ctrl->x = x; - ctrl->y = y; - ctrl->w = w; - ctrl->h = h; - - Lth_WindowSetTitle(ctrl, title); - Lth_ControlConnect(ctrl, Lth_SigDraw, Lth_Callback(Lth_WindowDraw)); - Lth_ControlConnect(ctrl, Lth_SigDrawPst, Lth_Callback(Lth_WindowDrawPost)); - Lth_ControlConnect(ctrl, Lth_SigDestroy, Lth_Callback(Lth_WindowDestroy)); - - return ctrl; -} - -// -// Lth_WindowSetTitle -// -void Lth_WindowSetTitle(Lth_Window *ctrl, char const *title) -{ - if(title != NULL) - ctrl->title = Lth_strdup(title); - else - ctrl->title = Lth_strdup(""); -} - -// EOF diff --git a/lithos_c/lithos3/src/winman.c b/lithos_c/lithos3/src/winman.c deleted file mode 100644 index 016bb3f..0000000 --- a/lithos_c/lithos3/src/winman.c +++ /dev/null @@ -1,68 +0,0 @@ -//----------------------------------------------------------------------------- -// -// Copyright © 2016 Project Golan -// -// See "LICENSE" for more information. -// -//----------------------------------------------------------------------------- -// -// Window management. -// -//----------------------------------------------------------------------------- - -#include "Lth.h" - - -// Static Functions ----------------------------------------------------------| - -// -// WMFont -// -static Lth_Font *WMFont(Lth_Control *ctrl) -{ - Lth_WindowManager *wm = Lth_VirtControl; - - if(wm->font == NULL) - { - char const **name = Lth_ContextResource(wm->ctx, "Base.DefaultFont"); - if(name != NULL) - wm->font = Lth_FontNew(*name); - } - - return wm->font; -} - - -// Extern Functions ----------------------------------------------------------| - -// -// Lth_WMNew -// -Lth_WindowManager *Lth_WMNew(Lth_Context *ctx) -{ - Lth_ControlInit(Lth_WindowManager); - - ctrl->vtable.getFont = WMFont; - - ctrl->lastmap.x = ctrl->lastmap.y = -1; - ctrl->mapspace.x = 24; - ctrl->mapspace.y = 16; - - return ctrl; -} - -// -// Lth_WMMap -// -void Lth_WMMap(Lth_WindowManager *wm, Lth_Window *ctrl) -{ - if(ctrl->x == -1) ctrl->x = wm->lastmap.x += wm->mapspace.x; - else wm->lastmap.x = ctrl->x; - - if(ctrl->y == -1) ctrl->y = wm->lastmap.y += wm->mapspace.y; - else wm->lastmap.y = ctrl->y; - - Lth_ControlAttachTail(wm, ctrl); -} - -// EOF diff --git a/lithos_c/lithos3/src/manifest.c b/lithos_c/src/manifest.c similarity index 88% rename from lithos_c/lithos3/src/manifest.c rename to lithos_c/src/manifest.c index 68e690a..e6bfae6 100644 --- a/lithos_c/lithos3/src/manifest.c +++ b/lithos_c/src/manifest.c @@ -1,6 +1,6 @@ //----------------------------------------------------------------------------- // -// Copyright © 2016 Project Golan +// Copyright © 2016-2017 Project Golan // // See "LICENSE" for more information. // @@ -15,7 +15,7 @@ #include #include #include -#include "Lth_stdfix.h" +#include #define GenAlloc(name, type) \ if(rsrc->vec##name.size) \ @@ -109,12 +109,12 @@ static void ManifestGetFixed(ManifestState *repr, size_t key, char const *str) { // fixed-constant char *end; - _Accum value = strtofxk(str, &end); + accum value = strtofxk(str, &end); if(*end != '\0') ManifestError(repr, "bad fixed-point value"); - GenValueGetter(Fixed, fixed, value); + GenValueGetter(Fixed, fxval, value); } // @@ -143,9 +143,13 @@ static void ManifestGetStrng(ManifestState *repr, size_t key) // static void ManifestGetHeaderNameSequence(ManifestState *repr) { - // header-name-sequence: + // header-identifier: // identifier - // header-name-sequence . identifier + // number-constant + + // header-name-sequence: + // header-identifier + // header-name-sequence . header-identifier ACS_BeginPrint(); @@ -153,8 +157,8 @@ static void ManifestGetHeaderNameSequence(ManifestState *repr) { Lth_Token const *tok = Lth_TokenStreamPeek(repr->stream); - // identifier - if(tok->type != Lth_TOK_Identi) + // header-identifier + if(tok->type != Lth_TOK_Identi && tok->type != Lth_TOK_Number) ManifestError(repr, "expected identifier"); Lth_PrintString(tok->str); @@ -165,13 +169,20 @@ static void ManifestGetHeaderNameSequence(ManifestState *repr) } // -// ManifestGetInitializer +// ManifestGetConstantValue // -static void ManifestGetInitializer(ManifestState *repr, size_t key) +static void ManifestGetConstantValue(ManifestState *repr, size_t key) { - // initializer: + // boolean-constant: + // true + // false + + // number-constant: // integer-constant // fixed-constant + + // constant-value: + // number-constant // boolean-constant switch(Lth_TokenStreamPeek(repr->stream)->type) @@ -184,17 +195,14 @@ static void ManifestGetInitializer(ManifestState *repr, size_t key) ManifestGetFixed(repr, key, str); break; case Lth_TOK_Identi: - // boolean-constant: - // true - // false __with(char const *str = Lth_TokenStreamBump(repr->stream)->str;) - if(strcmp(str, "true") == 0) GenValueGetter(Integ, integ, 1); + if(strcmp(str, "true") == 0) GenValueGetter(Integ, integ, 1); else if(strcmp(str, "false") == 0) GenValueGetter(Integ, integ, 0); else goto unexpect; break; unexpect: default: - ManifestError(repr, "expected initializer"); + ManifestError(repr, "expected constant-value"); break; } } @@ -213,7 +221,7 @@ static void ManifestGetDecl_Object(ManifestState *repr) // ; // object-declaration: - // object-name = initializer object-decl-terminator + // object-name = constant-value object-decl-terminator // object-name = string-constant-seq // identifier @@ -221,7 +229,7 @@ static void ManifestGetDecl_Object(ManifestState *repr) Lth_TokenStreamPeek(repr->stream)->type != Lth_TOK_Identi) ManifestError(repr, "exptected object-name"); - // Build the key name. Format is: "blockname.identifier" + // Build the key name. Serialized as "blockname.identifier" __with(char const *name = Lth_TokenStreamBump(repr->stream)->str;) { ACS_BeginPrint(); @@ -237,12 +245,16 @@ static void ManifestGetDecl_Object(ManifestState *repr) if(!Lth_TokenStreamDrop(repr->stream, Lth_TOK_Equals)) ManifestError(repr, "expected '='"); - // initializer - if(Lth_TokenStreamPeek(repr->stream)->type != Lth_TOK_String) + // string-constant-seq + if(Lth_TokenStreamPeek(repr->stream)->type == Lth_TOK_String) + ManifestGetStrng(repr, key); + + // constant-value + else { repr->stream->skipeol = false; - ManifestGetInitializer(repr, key); + ManifestGetConstantValue(repr, key); // object-decl-terminator if(!Lth_TokenStreamDrop(repr->stream, Lth_TOK_LnEnd) && @@ -251,10 +263,6 @@ static void ManifestGetDecl_Object(ManifestState *repr) repr->stream->skipeol = true; } - - // string-constant-seq - else - ManifestGetStrng(repr, key); } // @@ -299,7 +307,7 @@ Lth_ScriptCall static void ManifestGetDecl(ManifestState *repr) // static void ManifestClose(ManifestState *repr) { - Lth_TokenStreamClose(repr->stream); + if(repr->stream) Lth_TokenStreamClose(repr->stream); free(repr->data); free(repr->block); free(repr->manifest.data); @@ -341,10 +349,8 @@ Lth_ScriptCall Lth_ResourceMap *Lth_ManifestLoad_extern(char const *fname) ManifestState repr = {}; - repr.fname = fname; - repr.data = Lth_strdup_str(Lth_strlocal(Lth_strentdup(repr.fname))); - repr.stream = Lth_TokenStreamOpen(repr.data, strlen(repr.data)); - repr.block = Lth_strdup("Base"); + repr.fname = fname; + repr.data = Lth_strdup_str(Lth_strlocal(Lth_strentdup(repr.fname))); if(strcmp(repr.data, repr.fname) == 0) { @@ -353,6 +359,9 @@ Lth_ScriptCall Lth_ResourceMap *Lth_ManifestLoad_extern(char const *fname) return NULL; } + repr.stream = Lth_TokenStreamOpen(repr.data, strlen(repr.data)); + repr.block = Lth_strdup("Base"); + if(setjmp(ManifestJmpBuf) != ManifestJmpBufToken) for(;;) if(Lth_TokenStreamPeek(repr.stream)->type != Lth_TOK_EOF) @@ -393,7 +402,7 @@ Lth_ScriptCall Lth_ResourceMap *Lth_ManifestLoad_static(Lth_Manifest *manifest) // Allocate each data vector and make an iterator for it. GenAlloc(Integ, int); - GenAlloc(Fixed, _Accum); + GenAlloc(Fixed, accum); GenAlloc(Strng, char *); // Allocate the hash map. @@ -406,7 +415,7 @@ Lth_ScriptCall Lth_ResourceMap *Lth_ManifestLoad_static(Lth_Manifest *manifest) switch(iter->type) { GenRsrcCase(Integ, integ, i); - GenRsrcCase(Fixed, fixed, i); + GenRsrcCase(Fixed, fxval, i); GenRsrcCase(Strng, strng, i); } @@ -426,9 +435,9 @@ Lth_Manifest Lth_ManifestNew_Integ(char const *key, int value) // // Lth_ManifestNew_Fixed // -Lth_Manifest Lth_ManifestNew_Fixed(char const *key, _Accum value) +Lth_Manifest Lth_ManifestNew_Fixed(char const *key, accum value) { - return GenManifestValue(Fixed, fixed, value); + return GenManifestValue(Fixed, fxval, value); } // diff --git a/lithos_c/lithos3/src/stdlib.c b/lithos_c/src/stdlib.c similarity index 82% rename from lithos_c/lithos3/src/stdlib.c rename to lithos_c/src/stdlib.c index a5469ec..9836c8f 100644 --- a/lithos_c/lithos3/src/stdlib.c +++ b/lithos_c/src/stdlib.c @@ -1,8 +1,8 @@ //----------------------------------------------------------------------------- // -// Copyright © 2016 Project Golan +// Copyright © 2016-2017 Project Golan // -// See "LICENSE" for more information. +// See "LICENSE.lithos3" for more information. // //----------------------------------------------------------------------------- // @@ -12,22 +12,13 @@ #include "Lth.h" -#include // OH GOD +#include #include #include #include -#include "Lth_stdfix.h" - -#define GenStrHash() \ - if(s == NULL) return 0; \ - \ - size_t ret = 0; \ - \ - while(*s) \ - ret = ret * 101 + ((unsigned char)(*s++) & 0xff); \ - \ - return ret +#include +#include // Extern Functions ----------------------------------------------------------| @@ -50,7 +41,7 @@ int Lth_fpeekc(FILE *fp) char *Lth_strdup(char const *s) { size_t len = strlen(s); - char *ret = malloc(len + 1); + char *ret = malloc(len + 1); memmove(ret, s, len); ret[len] = '\0'; return ret; @@ -64,7 +55,7 @@ char *Lth_strdup(char const *s) char *Lth_strdup_str(__str s) { size_t len = ACS_StrLen(s); - char *ret = malloc(len + 1); + char *ret = malloc(len + 1); ACS_StrArsCpyToGlobalCharRange((int)ret, __GDCC__Sta, 0, len, s); ret[len] = '\0'; return ret; @@ -77,7 +68,6 @@ char *Lth_strdup_str(__str s) // __str Lth_strentdup(char const *s) { - size_t len = strlen(s); ACS_BeginPrint(); Lth_PrintString(s); return ACS_EndStrParam(); @@ -133,15 +123,11 @@ bool Lth_strcontains(char const *s, char ch) // int Lth_stricmp(char const *s1, char const *s2) { - char a, b; - while(*s1 && *s2) - { - if((a = toupper(*s1)) != (b = toupper(*s2))) + for(; *s1 && *s2; s1++, s2++) + if(toupper(*s1) != toupper(*s2)) break; - s1++, s2++; - } - a = toupper(*s1), b = toupper(*s2); - return (int)a - (int)b; + + return (int)toupper(*s1) - (int)toupper(*s2); } // @@ -190,9 +176,9 @@ size_t Lth_mbslen(char const *s) // // Lth_ceilk // -int Lth_ceilk(_Accum n) +int Lth_ceilk(accum n) { - union { int_k_t i; _Accum a; } u = { .a = n }; + union {int_k_t i; accum a;} u = {.a = n}; if(u.i & 0xFFF1) return u.i &= 0xFFFF0000, u.a + 1; else @@ -202,9 +188,9 @@ int Lth_ceilk(_Accum n) // // Lth_fractk // -_Accum Lth_fractk(_Accum n) +accum Lth_fractk(accum n) { - union { int_k_t i; _Accum a; } u = { .a = n }; + union {int_k_t i; accum a;} u = {.a = n}; u.i &= 0xFFFF; return u.a; } @@ -224,7 +210,12 @@ void Lth_PrintString(char const *s) // size_t Lth_Hash_char(char const *s) { - GenStrHash(); + if(s == NULL) return 0; + + size_t ret = 0; + while(*s) + ret = ret * 101 + ((unsigned char)(*s++) & 0xff); + return ret; } // @@ -232,7 +223,12 @@ size_t Lth_Hash_char(char const *s) // size_t Lth_Hash_str(Lth__strchar *s) { - GenStrHash(); + if(s == NULL) return 0; + + size_t ret = 0; + while(*s) + ret = ret * 101 + ((unsigned char)(*s++) & 0xff); + return ret; } // diff --git a/lithos_c/lithos3/src/token.c b/lithos_c/src/token.c similarity index 93% rename from lithos_c/lithos3/src/token.c rename to lithos_c/src/token.c index 03373b1..a626d0f 100644 --- a/lithos_c/lithos3/src/token.c +++ b/lithos_c/src/token.c @@ -1,12 +1,10 @@ //----------------------------------------------------------------------------- // -// Copyright © 2016 Project Golan +// Copyright © 2016-2017 Project Golan, David Hill // -// See "LICENSE" for more information. +// Code by David Hill has been relicensed with consent. // -// Copyright © 2016 David Hill -// -// See "LICENSE.gdcc" and "LICENSE.gdcc-lib" for more information. +// See "LICENSE.lithos3" for more information. // //----------------------------------------------------------------------------- // @@ -20,6 +18,7 @@ #include #include +#include // Extern Functions ----------------------------------------------------------| @@ -130,7 +129,7 @@ void Lth_TokenGet(FILE *fp, Lth_Token *out) return; } - char chrseq[2] = { ch, '\0' }; + char chrseq[2] = {ch, '\0'}; out->str = Lth_strdup(chrseq); out->type = Lth_TOK_ChrSeq; } diff --git a/lithos_c/lithos3/src/tokenstream.c b/lithos_c/src/tokenstream.c similarity index 79% rename from lithos_c/lithos3/src/tokenstream.c rename to lithos_c/src/tokenstream.c index 65f6035..0883a81 100644 --- a/lithos_c/lithos3/src/tokenstream.c +++ b/lithos_c/src/tokenstream.c @@ -1,12 +1,10 @@ //----------------------------------------------------------------------------- // -// Copyright © 2016 Project Golan +// Copyright © 2016-2017 Project Golan, David Hill // -// See "LICENSE" for more information. +// Code by David Hill has been relicensed with consent. // -// Copyright © 2016 David Hill -// -// See "LICENSE.gdcc" and "LICENSE.gdcc-lib" for more information. +// See "LICENSE.lithos3" for more information. // //----------------------------------------------------------------------------- // @@ -19,6 +17,12 @@ #include "Lth.h" +// Static Functions ----------------------------------------------------------| + +static int Lth_TokenFileStream_getc(struct Lth_TokenStreamBuf *cookie); +static int Lth_TokenFileStream_bumpc(struct Lth_TokenStreamBuf *cookie); + + // Type Definitions ----------------------------------------------------------| // @@ -28,8 +32,9 @@ typedef struct Lth_TokenStreamBuf { char *beg, *itr, *end; size_t len; - int (*getc)(struct Lth_TokenStreamBuf *); - int (*bumpc)(struct Lth_TokenStreamBuf *); + + __prop getc {call: Lth_TokenFileStream_getc(this)} + __prop bumpc {call: Lth_TokenFileStream_bumpc(this)} } Lth_TokenStreamBuf; @@ -68,29 +73,29 @@ static ssize_t Lth_TokenFileStream_read(void *cookie_, char *buf, size_t size) for(ssize_t i = 0; i < size;) { - if(cookie->getc(cookie) == '/') + if(cookie->getc() == '/') { - cookie->bumpc(cookie); - if(cookie->getc(cookie) == '*') + cookie->bumpc(); + if(cookie->getc() == '*') { - for(cookie->bumpc(cookie); !(cookie->bumpc(cookie) == '*' && cookie->getc(cookie) == '/');) - if(cookie->getc(cookie) == EOF) + for(cookie->bumpc(); !(cookie->bumpc() == '*' && cookie->getc() == '/');) + if(cookie->getc() == EOF) return i; buf[i++] = ' '; } - else if(cookie->getc(cookie) == '/') + else if(cookie->getc() == '/') { - do if(cookie->bumpc(cookie) == EOF) return i; - while(cookie->getc(cookie) != '\n'); + do if(cookie->bumpc() == EOF) return i; + while(cookie->getc() != '\n'); buf[i++] = ' '; } else buf[i++] = '/'; } - else if(cookie->getc(cookie) == EOF) + else if(cookie->getc() == EOF) return i; else - buf[i++] = cookie->bumpc(cookie); + buf[i++] = cookie->bumpc(); } return size; @@ -99,9 +104,8 @@ static ssize_t Lth_TokenFileStream_read(void *cookie_, char *buf, size_t size) // // Lth_TokenFileStream_close // -static int Lth_TokenFileStream_close(void *cookie_) +static int Lth_TokenFileStream_close(void *cookie) { - Lth_TokenStreamBuf *cookie = cookie_; free(cookie); return 0; } @@ -123,8 +127,6 @@ static FILE *Lth_TokenFileStreamOpen(void *data, size_t size) cookie->beg = data; cookie->itr = data; cookie->end = cookie->beg + size; - cookie->getc = Lth_TokenFileStream_getc; - cookie->bumpc = Lth_TokenFileStream_bumpc; return fopencookie(cookie, "r", io_funcs); } diff --git a/lithos_fs/fonts/SmallFontJP.lthm b/lithos_fs/fonts/SmallFontJP.lthm deleted file mode 100644 index 80cdb3f..0000000 --- a/lithos_fs/fonts/SmallFontJP.lthm +++ /dev/null @@ -1,274 +0,0 @@ -//----------------------------------------------------------------------------- -// -// Copyright © 2016 Project Golan -// -// See "LICENSE" for more information. -// -//----------------------------------------------------------------------------- -// -// Default small font, with Japanese Katakana glyphs made by Toooooasty. -// -//----------------------------------------------------------------------------- - -[Font] - -// -// Base -// -// Base font for ASCII glyphs. -// If not supplied, all glyphs will be treated as Unicode. -// -Base = "SMALLFNT" - -// -// Case -// -// Case-sensitivity for font. -// If not supplied, defaults to Both -// -// Both -// Both upper and lower case supported. -// -// UpperOnly -// Any lower case characters printed will be converted to upper-case. -// -// LowerOnly -// Any upper case characters printed will be converted to lower-case. -// -Case = "UpperOnly" - -// -// ExtraDir -// -// Directory for Unicode glyphs. -// If not supplied, no Unicode glyphs will be loaded. -// -ExtraDir = "fonts/SmallFont" - -// -// Suffix -// -// Filename suffix for Unicode glyphs. -// If not supplied, defaults to ".png". -// -Suffix = ".png" - -// -// Type -// -// Filename suffix type for Unicode glyphs. -// If not supplied, defaults to Character. -// -// Character -// Takes the glyph as the suffix. -// Example: た = fonts/SmallFont/STCFNた.png -// -// Codepoint -// Takes the glyph's codepoint as the suffix. -// Example: た = fonts/SmallFont/STCFN305F.png -// -// Digit -// Takes the glyph's base-10 codepoint as the suffix. -// Example: た = fonts/SmallFont/STCFN12383.png -// -Type = "Character" - -// -// Glyphs -// -// A list of all glyphs available in this font. -// -Glyphs = "!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_" - "ンえョのコドトにイハシォナウッは)ツどてリた" - "カルなゥヒマらサ、ミタエオモれほヌきメホキじテ" - "るク♥ュィぬセ。ずノニヨユへァ(ーが・ャラを" - "ヘせヤレネりワロソヲもェスチむフひアケ" - "〜ぞム世今夢奥山常我散日有浅為色見越酔ɢᴜ" - -// -// SpaceWidth -// -// If not supplied, defaults to 4. -// -SpaceWidth = 4 - -// -// Height -// -// Required. -// -Height = 8 - -[Font.GlyphData] -"!_w"=4 -"\"_w"=7 -"#_w"=7 -"$_w"=7 -"%_w"=9 -"&_w"=8 -"'_w"=4 -"(_w"=7 -")_w"=7 -"*_w"=7 -"+_w"=5 -",_w"=4 -"-_w"=6 -"._w"=4 -"/_w"=7 -"0_w"=8 -"1_w"=5 -"2_w"=8 -"3_w"=8 -"4_w"=7 -"5_w"=7 -"6_w"=8 -"7_w"=8 -"8_w"=8 -"9_w"=8 -":_w"=4 -";_w"=4 -"<_w"=5 -"=_w"=5 -">_w"=5 -"?_w"=8 -"@_w"=9 -"A_w"=8 -"B_w"=8 -"C_w"=8 -"D_w"=8 -"E_w"=8 -"F_w"=8 -"G_w"=8 -"H_w"=8 -"I_w"=4 -"J_w"=8 -"K_w"=8 -"L_w"=8 -"M_w"=9 -"N_w"=8 -"O_w"=8 -"P_w"=8 -"Q_w"=8 -"R_w"=8 -"S_w"=7 -"T_w"=8 -"U_w"=8 -"V_w"=7 -"W_w"=9 -"X_w"=9 -"Y_w"=8 -"Z_w"=7 -"[_w"=5 -"\_w"=7 -"]_w"=5 -"^_w"=7 -"__w"=8 -"ン_w"=8 -"え_w"=32;"え_h"=32;"え_s"=-1 -"ョ_w"=8 -"の_w"=32;"の_h"=32;"の_s"=-1 -"コ_w"=8 -"ド_w"=8 -"ト_w"=8 -"に_w"=32;"に_h"=32;"に_s"=-1 -"イ_w"=8 -"ハ_w"=8 -"シ_w"=8 -"ォ_w"=8 -"ナ_w"=8 -"ウ_w"=8 -"ッ_w"=8 -"は_w"=32;"は_h"=32;"は_s"=-1 -")_w"=8 -"ツ_w"=8 -"ど_w"=32;"ど_h"=32;"ど_s"=-1 -"て_w"=32;"て_h"=32;"て_s"=-1 -"リ_w"=8 -"た_w"=32;"た_h"=32;"た_s"=-1 -"カ_w"=8 -"ル_w"=8 -"な_w"=32;"な_h"=32;"な_s"=-1 -"ゥ_w"=8 -"ヒ_w"=8 -"マ_w"=8 -"ら_w"=32;"ら_h"=32;"ら_s"=-1 -"サ_w"=8 -"、_w"=8 -"ミ_w"=8 -"タ_w"=8 -"エ_w"=8 -"オ_w"=8 -"モ_w"=8 -"れ_w"=32;"れ_h"=32;"れ_s"=-1 -"ほ_w"=32;"ほ_h"=32;"ほ_s"=-1 -"ヌ_w"=8 -"き_w"=32;"き_h"=32;"き_s"=-1 -"メ_w"=8 -"ホ_w"=8 -"キ_w"=8 -"じ_w"=32;"じ_h"=32;"じ_s"=-1 -"テ_w"=8 -"る_w"=32;"る_h"=32;"る_s"=-1 -"ク_w"=8 -"♥_w"=8 -"ュ_w"=8 -"ィ_w"=8 -"ぬ_w"=32;"ぬ_h"=32;"ぬ_s"=-1 -"セ_w"=8 -"。_w"=8 -"ず_w"=32;"ず_h"=32;"ず_s"=-1 -"ノ_w"=8 -"ニ_w"=8 -"ヨ_w"=8 -"ユ_w"=8 -"へ_w"=32;"へ_h"=32;"へ_s"=-1 -"ァ_w"=8 -"(_w"=8 -"ー_w"=8 -"が_w"=32;"が_h"=32;"が_s"=-1 -"・_w"=32;"・_h"=32;"・_s"=-1 -"ャ_w"=8 -"ラ_w"=8 -"を_w"=32;"を_h"=32;"を_s"=-1 -"ヘ_w"=8 -"せ_w"=32;"せ_h"=32;"せ_s"=-1 -"ヤ_w"=8 -"レ_w"=8 -"ネ_w"=8 -"り_w"=32;"り_h"=32;"り_s"=-1 -"ワ_w"=8 -"ロ_w"=8 -"ソ_w"=8 -"ヲ_w"=8 -"も_w"=32;"も_h"=32;"も_s"=-1 -"ェ_w"=8 -"ス_w"=8 -"チ_w"=8 -"む_w"=32;"む_h"=32;"む_s"=-1 -"フ_w"=8 -"ひ_w"=32;"ひ_h"=32;"ひ_s"=-1 -"ア_w"=8 -"ケ_w"=8 -"〜_w"=8 -"ぞ_w"=32;"ぞ_h"=32;"ぞ_s"=-1 -"ム_w"=8 -"世_w"=32;"世_h"=32;"世_s"=-1 -"今_w"=32;"今_h"=32;"今_s"=-1 -"夢_w"=32;"夢_h"=32;"夢_s"=-1 -"奥_w"=32;"奥_h"=32;"奥_s"=-1 -"山_w"=32;"山_h"=32;"山_s"=-1 -"常_w"=32;"常_h"=32;"常_s"=-1 -"我_w"=32;"我_h"=32;"我_s"=-1 -"散_w"=32;"散_h"=32;"散_s"=-1 -"日_w"=32;"日_h"=32;"日_s"=-1 -"有_w"=32;"有_h"=32;"有_s"=-1 -"浅_w"=32;"浅_h"=32;"浅_s"=-1 -"為_w"=32;"為_h"=32;"為_s"=-1 -"色_w"=32;"色_h"=32;"色_s"=-1 -"見_w"=32;"見_h"=32;"見_s"=-1 -"越_w"=32;"越_h"=32;"越_s"=-1 -"酔_w"=32;"酔_h"=32;"酔_s"=-1 -"ɢ_w"=32;"ɢ_h"=32;"ɢ_s"=-1 -"ᴜ_w"=43;"ᴜ_h"=28;"ᴜ_s"=-1 - -// EOF diff --git a/lithos_tools/classlayout.txt b/lithos_tools/classlayout.txt deleted file mode 100644 index c8d20ac..0000000 --- a/lithos_tools/classlayout.txt +++ /dev/null @@ -1,5 +0,0 @@ -Lth_Rect -\-Lth_Control -| |-Lth_Button -\ \-Lth_Window - diff --git a/loadacs.txt b/loadacs.txt deleted file mode 100644 index e1ca317..0000000 --- a/loadacs.txt +++ /dev/null @@ -1 +0,0 @@ -lithos3